10.12.2012 Views

Design Architect-IC User's Manual - Bad Request

Design Architect-IC User's Manual - Bad Request

Design Architect-IC User's Manual - Bad Request

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong><br />

Software Version v8.9_10<br />

<strong>IC</strong> Flow Version 2003.1<br />

Copyright © Mentor Graphics Corporation 2003<br />

All rights reserved.<br />

This document contains information that is proprietary to Mentor Graphics Corporation. The original<br />

recipient of this document may duplicate this document in whole or in part for internal business purposes<br />

only, provided that this entire notice appears in all copies. In duplicating any part of this document, the<br />

recipient agrees to make every reasonable effort to prevent the unauthorized use and distribution of the<br />

proprietary information.<br />

End-User License Agreement<br />

Trademark Information


This document is for information and instruction purposes. Mentor Graphics reserves the right to make<br />

changes in specifications and other information contained in this publication without prior notice, and the<br />

reader should, in all cases, consult Mentor Graphics to determine whether any changes have been<br />

made.<br />

The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth in<br />

written agreements between Mentor Graphics and its customers. No representation or other affirmation<br />

of fact contained in this publication shall be deemed to be a warranty or give rise to any liability of Mentor<br />

Graphics whatsoever.<br />

MENTOR GRAPH<strong>IC</strong>S MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL<br />

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR MERCHANTABILITY AND<br />

FITNESS FOR A PART<strong>IC</strong>ULAR PURPOSE.<br />

MENTOR GRAPH<strong>IC</strong>S SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, OR<br />

CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)<br />

ARISING OUT OF OR RELATED TO THIS PUBL<strong>IC</strong>ATION OR THE INFORMATION CONTAINED IN IT,<br />

EVEN IF MENTOR GRAPH<strong>IC</strong>S CORPORATION HAS BEEN ADVISED OF THE POSSIBILITY OF<br />

SUCH DAMAGES.<br />

RESTR<strong>IC</strong>TED RIGHTS LEGEND 03/97<br />

U.S. Government Restricted Rights. The SOFTWARE and documentation have been developed<br />

entirely at private expense and are commercial computer software provided with restricted rights. Use,<br />

duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the<br />

restrictions set forth in the license agreement provided with the software pursuant to DFARS 227.7202-<br />

3(a) or as set forth in subparagraph (c)(1) and (2) of the Commercial Computer Software - Restricted<br />

Rights clause at FAR 52.227-19, as applicable.<br />

Contractor/manufacturer is:<br />

Mentor Graphics Corporation<br />

8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777.<br />

This is an unpublished work of Mentor Graphics Corporation.


Table of Contents<br />

Table of Contents<br />

About This <strong>Manual</strong> ............................................................................................xxix<br />

<strong>Manual</strong> Organization .........................................................................................xxix<br />

Other Resources.................................................................................................xxxi<br />

Chapter 1<br />

Introducing DA-<strong>IC</strong> .............................................................................................. 1-1<br />

DA-<strong>IC</strong> Overview ................................................................................................ 1-1<br />

DA-<strong>IC</strong> Features................................................................................................... 1-2<br />

<strong>IC</strong>-Specific Component Libraries....................................................................... 1-4<br />

DA-<strong>IC</strong> <strong>Design</strong> Flow............................................................................................ 1-5<br />

Chapter 2<br />

Getting Started .................................................................................................... 2-1<br />

DA-<strong>IC</strong> Environment ........................................................................................... 2-2<br />

Invoking DA-<strong>IC</strong> from <strong>Design</strong> Manager-<strong>IC</strong> ........................................................ 2-2<br />

Invoking DA-<strong>IC</strong> From an Operating Shell ......................................................... 2-3<br />

Exiting DA-<strong>IC</strong> .................................................................................................... 2-4<br />

Getting Online Help............................................................................................ 2-4<br />

Setting Up the DA-<strong>IC</strong> Session............................................................................ 2-5<br />

Setting Up Display Preferences .......................................................................... 2-7<br />

Setting the Color of <strong>Design</strong> Objects................................................................. 2-7<br />

Setting the Background Color.......................................................................... 2-8<br />

Setting the Dynamic Cursor ............................................................................. 2-9<br />

Setting the Default Text Editor........................................................................... 2-9<br />

Setting up a Language Model Editor .................................................................. 2-9<br />

Setting the Mouse Selection Behavior.............................................................. 2-10<br />

Setting the Property Display............................................................................. 2-11<br />

Setting the Display Background Color .......................................................... 2-12<br />

Setting the Show Property Name Display...................................................... 2-14<br />

Browsing for Files ............................................................................................ 2-14<br />

Selecting and Unselecting Objects ................................................................... 2-15<br />

Selecting a Single Object ............................................................................... 2-16<br />

Selecting Multiple Objects............................................................................. 2-16<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 iii


iv<br />

Table of Contents (cont.)<br />

Table of Contents<br />

Selecting Attached Branches.......................................................................... 2-17<br />

Selecting Attached Instances.......................................................................... 2-18<br />

Selecting Attached Nets ................................................................................. 2-18<br />

Selecting all Nets with the Same Name ......................................................... 2-18<br />

Selecting Attached Pins.................................................................................. 2-19<br />

Selecting by Object Name.............................................................................. 2-19<br />

Unselecting a Single Object ........................................................................... 2-20<br />

Unselecting Multiple Objects......................................................................... 2-20<br />

Unselecting Everything.................................................................................. 2-21<br />

Reselecting a Selection Set ............................................................................ 2-21<br />

Reopening a Selection Set.............................................................................. 2-21<br />

Setting the Default Selection Filter ................................................................ 2-22<br />

Manipulating Graphical Objects....................................................................... 2-22<br />

Moving Objects.............................................................................................. 2-22<br />

Repeat Moving ............................................................................................... 2-23<br />

Moving Objects Between Windows............................................................... 2-23<br />

Copying Objects............................................................................................. 2-23<br />

Repeat Copying.............................................................................................. 2-24<br />

Copying Objects to a Line.............................................................................. 2-25<br />

Copying Objects to an Array.......................................................................... 2-26<br />

Copying Objects Between Windows ............................................................. 2-27<br />

Resizing Instances.......................................................................................... 2-29<br />

Grouping <strong>Design</strong> Objects............................................................................... 2-29<br />

Ungrouping Objects ....................................................................................... 2-30<br />

Reporting Groups ........................................................................................... 2-30<br />

Deleting Objects............................................................................................. 2-30<br />

Pivoting and Rotating Objects ....................................................................... 2-32<br />

Flipping Objects ............................................................................................. 2-33<br />

Using Strokes to Manipulate Objects............................................................. 2-34<br />

Understanding Object Handles in DA-<strong>IC</strong>......................................................... 2-35<br />

Changing the <strong>Design</strong> View............................................................................... 2-36<br />

Viewing a Portion of the Sheet ...................................................................... 2-36<br />

Viewing the Entire Sheet ............................................................................... 2-36<br />

Other Viewing Capabilities............................................................................ 2-37<br />

Printing in DA-<strong>IC</strong> ............................................................................................. 2-38<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Printing All Sheets in a <strong>Design</strong> ...................................................................... 2-38<br />

Printing Symbols............................................................................................ 2-43<br />

Printing a Schematic Sheet............................................................................. 2-46<br />

Printer Configuration ..................................................................................... 2-51<br />

Using Panels ..................................................................................................... 2-51<br />

Adding Panels ................................................................................................ 2-51<br />

Viewing Panels............................................................................................... 2-52<br />

Viewing and Hiding Panel Borders................................................................ 2-52<br />

Deleting a Panel Definition............................................................................ 2-53<br />

Creating and Printing Panels in Read-Only Mode......................................... 2-53<br />

Setting up an IFF Interface to ADS Schematics ............................................ 2-54<br />

Placing IFF Friendly Symbols ....................................................................... 2-55<br />

Writing Out an IFF......................................................................................... 2-55<br />

Reading In an IFF........................................................................................... 2-56<br />

Setting A Default IFF Library Palette............................................................ 2-56<br />

Chapter 3<br />

Creating Schematics............................................................................................ 3-1<br />

Schematic Creation Overview ............................................................................ 3-2<br />

Schematic Editor Features .................................................................................. 3-5<br />

Opening/Creating a Schematic ........................................................................... 3-6<br />

Opening a Language File.................................................................................... 3-8<br />

Setting Up the Schematic Editor......................................................................... 3-9<br />

Setting Grid, Pin Spacing and Snap ................................................................. 3-9<br />

Setting Net Drawing Attributes...................................................................... 3-11<br />

Setting Ripper Drawing Attributes................................................................. 3-13<br />

Setting <strong>Design</strong> Context Drawing Attributes .................................................. 3-15<br />

Setting Comment Drawing Attributes............................................................ 3-17<br />

Choosing and Placing Symbols ........................................................................ 3-19<br />

Selecting and Placing Active Symbols ............................................................. 3-20<br />

Updating and Replacing Instances.................................................................... 3-20<br />

Replacing Multiple Instances ........................................................................... 3-23<br />

Using Repeating Instances................................................................................ 3-23<br />

Using Nets, Buses and Net Bundles ................................................................. 3-24<br />

Drawing and Routing Nets............................................................................. 3-25<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 v


vi<br />

Table of Contents (cont.)<br />

Table of Contents<br />

Automatic Net Routing .................................................................................. 3-26<br />

Connecting and Disconnecting Net Vertices ................................................. 3-26<br />

Understanding Basic Pin, Bus, and Net Naming Syntax ............................... 3-27<br />

Naming Nets................................................................................................... 3-28<br />

Changing Net Names ..................................................................................... 3-29<br />

Renaming all Segments of a Net.................................................................... 3-29<br />

Moving Net Names ........................................................................................ 3-30<br />

Terminating a Dangling Net........................................................................... 3-30<br />

Declaring Dangling Nets and Pins ................................................................. 3-30<br />

Creating a Bus and Bus Connections................................................................ 3-31<br />

Creating a Bus ................................................................................................ 3-32<br />

Using Multi-Dimensional Buses .................................................................... 3-35<br />

Representing a Bus Graphically..................................................................... 3-35<br />

Using Bus Rippers ............................................................................................ 3-36<br />

Creating a Bus Ripper Component ................................................................... 3-37<br />

Connecting a Bus Ripper .................................................................................. 3-42<br />

Instantiating 1x1 Bus Ripper Automatically .................................................... 3-46<br />

Using the Automatic 1x1 Bus Ripper............................................................... 3-46<br />

Creating an Implicit Bus Ripper ....................................................................... 3-47<br />

Creating an Implicit Bundle Ripper.................................................................. 3-48<br />

Using the netcon Component............................................................................ 3-49<br />

Creating and Naming a Net Bundle.................................................................. 3-49<br />

Ripping Members from Net Bundles................................................................ 3-52<br />

Creating Multi-Level <strong>Design</strong>s .......................................................................... 3-53<br />

Creating a Schematic-Based Block................................................................ 3-53<br />

Creating a Sheet for a Symbol ....................................................................... 3-56<br />

Creating Additional Sheets in a Schematic.................................................... 3-57<br />

Using Off-Page Connectors ........................................................................... 3-58<br />

Using Portin and Portout Symbols................................................................. 3-59<br />

Editing the Underlying Sheet of a Symbol .................................................... 3-60<br />

Creating a Symbol for a Sheet ....................................................................... 3-60<br />

Creating a Pin List.......................................................................................... 3-62<br />

Displaying a Lower Level Sheet .................................................................... 3-63<br />

Displaying a Higher Level Sheet ................................................................... 3-63<br />

Displaying the Top Level Sheet..................................................................... 3-64<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Locking/Unlocking Schematic Sheet Edits.................................................... 3-64<br />

Adding Comment Text and Graphics ............................................................... 3-64<br />

Types of Comment Objects............................................................................ 3-65<br />

Uses for Comments ........................................................................................ 3-65<br />

Setting Comment Text and Graphic Drawing Attributes............................... 3-66<br />

Creating Comment Objects on Schematic Sheets.......................................... 3-67<br />

Making a Symbol From Comment Objects ................................................... 3-68<br />

Converting Electrical Objects to Comments.................................................. 3-69<br />

Removing Comment Status............................................................................ 3-69<br />

Creating FOR, CASE, and IF Frames .............................................................. 3-70<br />

Creating FOR Frames .................................................................................... 3-70<br />

Creating Repeating Instances......................................................................... 3-71<br />

Creating IF Frames......................................................................................... 3-74<br />

Creating CASE, OTHERWISE Frames......................................................... 3-75<br />

Setting Parameters.......................................................................................... 3-75<br />

Checking a Schematic for Errors...................................................................... 3-77<br />

Saving and Registering a Schematic................................................................. 3-80<br />

Saving and Registering to the Default Component Interface......................... 3-80<br />

Saving and Registering to a Specified Component Interface......................... 3-80<br />

Navigating Multiple Page Schematics.............................................................. 3-83<br />

Navigating Multi-Sheet Schematics with a Single Window.......................... 3-84<br />

Sequentially Traversing a Schematic ............................................................. 3-84<br />

Multiple Page Icon Button ............................................................................. 3-84<br />

Closing a Multiple Sheet Schematic .............................................................. 3-85<br />

Displaying/Editing Registered Models............................................................. 3-86<br />

Netlisting a Schematic ...................................................................................... 3-88<br />

Creating a SP<strong>IC</strong>E Netlist................................................................................ 3-88<br />

Using Advanced Options for a SP<strong>IC</strong>E Netlist ............................................... 3-90<br />

Creating a Verilog Netlist .............................................................................. 3-92<br />

Using Advanced Options for a Verilog Netlist .............................................. 3-93<br />

Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong>........................................................ 3-95<br />

Chapter 4<br />

Creating Symbols ................................................................................................ 4-1<br />

Symbol Creation Overview ................................................................................ 4-2<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 vii


Table of Contents (cont.)<br />

Table of Contents<br />

Symbol Editor Features ...................................................................................... 4-2<br />

Opening a Symbol Editor Window..................................................................... 4-3<br />

Setting Up the Symbol Editor............................................................................. 4-4<br />

Setting Grid and Pin Spacing and Snap ........................................................... 4-4<br />

Setting Symbol Body Attributes ...................................................................... 4-4<br />

Drawing a Symbol Body .................................................................................... 4-6<br />

Drawing an Arc ................................................................................................ 4-7<br />

Drawing a Circle .............................................................................................. 4-7<br />

Drawing a Dot .................................................................................................. 4-8<br />

Drawing a Line................................................................................................. 4-8<br />

Drawing a Polyline........................................................................................... 4-9<br />

Drawing a Rectangle ...................................................................................... 4-10<br />

Drawing a Polygon......................................................................................... 4-10<br />

Slicing Geometric Objects ............................................................................. 4-11<br />

Joining Sliced Objects into Polylines and Polygons ...................................... 4-12<br />

Adding and Naming Symbol Pins .................................................................... 4-13<br />

Adding a Single Pin ....................................................................................... 4-13<br />

Adding Multiple Pins ..................................................................................... 4-14<br />

Creating Consecutive Pins ............................................................................. 4-15<br />

Adding and Naming a Pin Bundle .................................................................... 4-21<br />

Bundles Connected to Ports ........................................................................... 4-23<br />

Checking a Symbol for Errors .......................................................................... 4-23<br />

Saving and Registering a Symbol..................................................................... 4-24<br />

Saving a Symbol and Deleting The Registration ........................................... 4-24<br />

Saving a Symbol and Changing The Registration ......................................... 4-25<br />

Registering Multiple Symbols to One Component Interface......................... 4-25<br />

Chapter 5<br />

Managing/Registering Models ........................................................................... 5-1<br />

viii<br />

Registering Models for Simulation..................................................................... 5-2<br />

Supported Modeling Types .............................................................................. 5-2<br />

Invoking the Model Registrar .......................................................................... 5-3<br />

Create Mode ..................................................................................................... 5-4<br />

Manage Mode................................................................................................... 5-5<br />

Edit Mode......................................................................................................... 5-5<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Choosing a Model ............................................................................................ 5-7<br />

Registering a Model to an Existing Symbol .................................................... 5-8<br />

Editing an Existing Symbol for a Model.......................................................... 5-9<br />

Generating a Symbol for a Model.................................................................. 5-10<br />

Creating a Symbol for a Model...................................................................... 5-13<br />

Registering a Model from a Symbol .............................................................. 5-14<br />

Mapping a Model to a Symbol....................................................................... 5-16<br />

Setting a Default Model Registration............................................................. 5-19<br />

Viewing the Registered Models for a Symbol ............................................... 5-20<br />

Checking a Model Registration...................................................................... 5-22<br />

Editing a Model Registration ......................................................................... 5-23<br />

Renaming a Model Registration..................................................................... 5-25<br />

Copying a Model Registration ....................................................................... 5-26<br />

Deleting a Model Registration ....................................................................... 5-27<br />

Restoring Deleted Model Registrations ......................................................... 5-28<br />

Closing the Model Registrar .......................................................................... 5-29<br />

Using the Model Registrar in Batch Mode .................................................... 5-29<br />

Creating a Batch File Using the Model Registrar .......................................... 5-29<br />

Creating a Batch File <strong>Manual</strong>ly ..................................................................... 5-31<br />

Registering Models Using a Batch File ......................................................... 5-35<br />

Chapter 6<br />

Using Function Blocks ........................................................................................ 6-1<br />

Function Block Terminology.............................................................................. 6-1<br />

Chapter Structure ................................................................................................ 6-2<br />

Setting up a Function Block ............................................................................... 6-3<br />

Creating FB Definitions and FB Instances ......................................................... 6-6<br />

FB Definitions and FB Instances Usage Models ............................................. 6-7<br />

Creating FB Definitions ................................................................................... 6-8<br />

Creating FB Instances .................................................................................... 6-13<br />

Adding FB Pins .............................................................................................. 6-23<br />

Net Construction............................................................................................... 6-25<br />

Constructing Internal Nets ............................................................................. 6-26<br />

Constructing External Nets ............................................................................ 6-28<br />

Constructing Passthru Nets ............................................................................ 6-29<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 ix


x<br />

Table of Contents (cont.)<br />

Table of Contents<br />

Constructing Flythru Nets .............................................................................. 6-29<br />

FB Definition and FB Instance Checks.......................................................... 6-29<br />

Manipulating FB Definitions and FB Instances ............................................... 6-30<br />

Converting FB Instances to FB Definitions ................................................... 6-30<br />

Selecting FB Definitions and FB Instances ................................................... 6-31<br />

Adding or Removing Objects from within an FB Definition ........................ 6-32<br />

Stretching or Resizing FB Definition and FB Instance Boundaries .............. 6-33<br />

Setting Colors On-the-Fly .............................................................................. 6-35<br />

Creating Made FB Definitions and FB Instances ............................................. 6-37<br />

Prerequisites ................................................................................................... 6-37<br />

Procedures ...................................................................................................... 6-38<br />

Errors Encountered During the Make Function Block Operation ................. 6-41<br />

Interface Pin Changes .................................................................................... 6-42<br />

Unmaking Made FB Definitions and Made FB Instances................................ 6-42<br />

Checking Function Blocks................................................................................ 6-45<br />

Chapter 7<br />

Using Properties .................................................................................................. 7-1<br />

Introduction to Properties ................................................................................... 7-1<br />

Property Ownership ............................................................................................ 7-4<br />

Property Names Versus Property Values ........................................................... 7-4<br />

Property Types.................................................................................................... 7-4<br />

Property Name/Value Restrictions ..................................................................... 7-5<br />

Property Name Restrictions ............................................................................. 7-6<br />

Property Value Restriction............................................................................... 7-6<br />

Special Case Restrictions ................................................................................. 7-6<br />

Properties and Color......................................................................................... 7-7<br />

Symbol Properties............................................................................................... 7-9<br />

Logical Symbol Properties............................................................................. 7-10<br />

Property Stability Switches ............................................................................ 7-11<br />

Property Visibility Switches .......................................................................... 7-12<br />

Updating Properties on an Instance .................................................................. 7-13<br />

Attribute-Modified Properties........................................................................ 7-13<br />

Value-Modified Properties............................................................................. 7-13<br />

Mark Property Attributes ............................................................................... 7-14<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Mark Property Value...................................................................................... 7-14<br />

Property Merge Options................................................................................. 7-15<br />

Automatic Update Process ............................................................................. 7-15<br />

Property Update Examples............................................................................. 7-16<br />

Parameters......................................................................................................... 7-17<br />

Using Expressions as Property Values ............................................................. 7-19<br />

Rules for Resolving Property Value Variables................................................. 7-19<br />

Facts About Property Variable Resolution .................................................... 7-21<br />

Example of Property Variable Resolution ..................................................... 7-22<br />

Structured Logic <strong>Design</strong> Properties.................................................................. 7-25<br />

Class Property ................................................................................................ 7-28<br />

Global Property .............................................................................................. 7-29<br />

Inst Property ................................................................................................... 7-29<br />

Net Property ................................................................................................... 7-30<br />

Pin Property.................................................................................................... 7-30<br />

Rule Property ................................................................................................. 7-30<br />

Frexp Property................................................................................................ 7-31<br />

Function Block Properties.............................................................................. 7-31<br />

Special Notation for CASE, FOR, and IF Property Values ........................... 7-32<br />

Assigning Properties......................................................................................... 7-35<br />

Setting Up Property Text Attributes .............................................................. 7-36<br />

Adding a Single Property ............................................................................... 7-39<br />

Adding Multiple Properties to the Same Object ............................................ 7-41<br />

Repeat Adding Properties to Changing Selection.......................................... 7-42<br />

Deleting Property Name/Value ...................................................................... 7-43<br />

Setting Property Owners ................................................................................ 7-43<br />

Deleting Property Owners.............................................................................. 7-44<br />

Listing Property Information.......................................................................... 7-45<br />

Changing Property Values ............................................................................. 7-45<br />

Changing Property Attributes ........................................................................ 7-47<br />

Changing Property Text Color ....................................................................... 7-49<br />

Changing the Background of Hidden Property Text...................................... 7-50<br />

Changing Multiple Properties on the Same Object........................................ 7-50<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xi


Table of Contents (cont.)<br />

Table of Contents<br />

Chapter 8<br />

Running <strong>Design</strong> Simulation................................................................................ 8-1<br />

xii<br />

Simulation Mode Overview................................................................................ 8-4<br />

Supported Language Types ................................................................................ 8-5<br />

Requirements ...................................................................................................... 8-5<br />

Using the HSP<strong>IC</strong>E Simulator ............................................................................. 8-6<br />

HSP<strong>IC</strong>E Options .............................................................................................. 8-6<br />

HSP<strong>IC</strong>E ............................................................................................................ 8-7<br />

Measurements .................................................................................................. 8-8<br />

Adding an HSP<strong>IC</strong>E Voltage Source ................................................................ 8-8<br />

Running a Simulation ......................................................................................... 8-8<br />

Changing the Default Editor for Simulation Mode.......................................... 8-9<br />

Setting up a Default Viewpoint........................................................................ 8-9<br />

Invoking Simulation Mode ............................................................................ 8-11<br />

Setting Up the Default Simulator and Viewer ............................................... 8-14<br />

Setting Ground/Node 0 .................................................................................. 8-16<br />

Setting up the Simulation Environment ......................................................... 8-17<br />

Creating Default Simulation Environment Setups......................................... 8-20<br />

Restoring Simulation Environment Setups .................................................... 8-20<br />

Copying a Simulation Configuration ............................................................. 8-20<br />

Setting up Standard Simulator Options.......................................................... 8-21<br />

Adding Forces ................................................................................................ 8-22<br />

Adding Safe Operating Areas ........................................................................ 8-25<br />

Specifying a Circuit Temperature .................................................................. 8-31<br />

Setting up Parameter Variables for Models ................................................... 8-32<br />

Reordering, Enabling/Disabling, Editing, and Deleting Sweep Analyses ..... 8-32<br />

Setting up a Sweep Analysis .......................................................................... 8-34<br />

Setting up a Monte Carlo Analysis ................................................................ 8-39<br />

Setting up Simulation Analyses........................................................................ 8-43<br />

Setting up a DCOP Analysis .......................................................................... 8-44<br />

Setting up a DC Analysis ............................................................................... 8-45<br />

Setting up an AC Analysis ............................................................................. 8-48<br />

Setting up an AC Noise Analysis................................................................... 8-51<br />

Setting up a Transient Analysis...................................................................... 8-54<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Setting up a Transient Noise Analysis ........................................................... 8-57<br />

Setting up a Steady State Analysis................................................................. 8-60<br />

Setting up a Modulated Steady State Analysis .............................................. 8-63<br />

Setting up an Oscillator Steady State Analysis .............................................. 8-64<br />

Setting up a Steady State Noise Analysis ...................................................... 8-67<br />

Setting up a Steady State AC Analysis .......................................................... 8-70<br />

Setting Model Libraries for Simulation ......................................................... 8-73<br />

Selecting/Editing Registered Models............................................................. 8-75<br />

Displaying/Editing the Default Registered Model......................................... 8-82<br />

Including SP<strong>IC</strong>E Command Files .................................................................. 8-83<br />

Entering Additional Simulator Commands.................................................... 8-84<br />

Setting Probes................................................................................................. 8-84<br />

Plotting Simulation Results............................................................................ 8-86<br />

Deleting Plots and Probes .............................................................................. 8-91<br />

Displaying the Current Simulation Setups..................................................... 8-92<br />

Displaying the Simulation Command File..................................................... 8-93<br />

Displaying the DCOP Values......................................................................... 8-93<br />

Hiding the DCOP Values ............................................................................... 8-94<br />

Displaying Small Signal DCOP Parameters .................................................. 8-94<br />

Reporting DCOP Values for a Selected Object ............................................. 8-96<br />

Using Estimated Pre-layout Parasitic Extractions.......................................... 8-96<br />

Using Post-layout Parasitic Extractions ....................................................... 8-103<br />

Setting up the Netlist.................................................................................... 8-115<br />

Understanding Analog/Digital Converters................................................... 8-119<br />

Defining Default Analog/Digital Converters for Auto-Insertion................. 8-119<br />

Editing Default Analog/Digital Converter Parameters ................................ 8-122<br />

Deleting Default Analog/Digital Converters ............................................... 8-123<br />

Inserting Analog/Digital Converters on Instances ....................................... 8-123<br />

Inserting Analog/Digital Converters on Nets............................................... 8-126<br />

Inserting Analog/Digital Converters on Pins ............................................... 8-129<br />

Deleting Analog/Digital Converters ............................................................ 8-131<br />

Understanding Analog/Digital Converter Properties ................................... 8-131<br />

Associating an SDF File with an Instance ................................................... 8-132<br />

Displaying SDF File Setups ......................................................................... 8-133<br />

Deleting SDF File Setups............................................................................. 8-134<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xiii


Table of Contents (cont.)<br />

Table of Contents<br />

Changing SDF File Setups ........................................................................... 8-135<br />

Deleting Unused References\Invalid Backannotations................................ 8-136<br />

Checking the <strong>Design</strong> Before Simulation...................................................... 8-137<br />

Setting up the <strong>Design</strong> Check ........................................................................ 8-138<br />

Generating a Netlist...................................................................................... 8-139<br />

Running the Simulation................................................................................ 8-140<br />

Extracting Waveform Measurements........................................................... 8-141<br />

Exiting Simulation Mode ............................................................................. 8-144<br />

Viewing Waveforms....................................................................................... 8-145<br />

About Xelga ................................................................................................. 8-145<br />

Invoking Xelga............................................................................................. 8-146<br />

Crossprobing Schematics with Xelga .......................................................... 8-146<br />

Closing Xelga............................................................................................... 8-149<br />

About <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View (DA-<strong>IC</strong> View) ........................................ 8-149<br />

Invoking DA-<strong>IC</strong> View.................................................................................. 8-150<br />

Crossprobing Schematics with DA-<strong>IC</strong> View ............................................... 8-150<br />

Closing DA-<strong>IC</strong> View.................................................................................... 8-152<br />

About EZwave ............................................................................................. 8-153<br />

Invoking EZwave ......................................................................................... 8-153<br />

Crossprobing Schematics with EZwave....................................................... 8-155<br />

Closing EZwave ........................................................................................... 8-158<br />

Chapter 9<br />

Managing <strong>Design</strong>s ............................................................................................... 9-1<br />

<strong>Design</strong> Management Overview .......................................................................... 9-2<br />

Component Window ........................................................................................ 9-2<br />

Component Hierarchy Window ....................................................................... 9-5<br />

Viewing <strong>Design</strong> Hierarchy............................................................................... 9-5<br />

Renaming a Component................................................................................... 9-7<br />

Changing Component References.................................................................... 9-7<br />

Releasing <strong>Design</strong>s ............................................................................................ 9-8<br />

Version Operations........................................................................................... 9-9<br />

<strong>Design</strong> Verification............................................................................................. 9-9<br />

Reference and Object Checking....................................................................... 9-9<br />

Configuration Build ....................................................................................... 9-10<br />

xiv<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Application Invocation................................................................................... 9-11<br />

Updating Parts on all Schematics in a <strong>Design</strong> .................................................. 9-12<br />

Reporting on Objects ........................................................................................ 9-13<br />

Reporting on Component Interfaces .............................................................. 9-13<br />

Reporting on Schematic and Symbol Objects................................................ 9-15<br />

Reporting on Object Status ............................................................................ 9-16<br />

Chapter 10<br />

Troubleshooting ................................................................................................. 10-1<br />

No Response from DA-<strong>IC</strong> View....................................................................... 10-1<br />

Cannot Invoke ADVance MS, Eldo,<br />

DA-<strong>IC</strong> View, or EldoNet.................................................................................. 10-1<br />

Chapter 11<br />

Editing in <strong>Design</strong> Context................................................................................. 11-1<br />

In Simulation Mode .......................................................................................... 11-1<br />

Properties in the Context of a <strong>Design</strong> ............................................................... 11-2<br />

Setting New Annotation Visibility................................................................. 11-2<br />

Adding Properties........................................................................................... 11-3<br />

Viewing Annotations vs. Evaluations ............................................................ 11-4<br />

Merging Backannotations to Schematic ........................................................... 11-5<br />

Viewing Backannotations................................................................................. 11-5<br />

Evaluating Properties...................................................................................... 11-10<br />

Expressions in Backannotation Objects.......................................................... 11-13<br />

Applying Edits to the “In-Memory” <strong>Design</strong>................................................... 11-16<br />

When Objects are Deleted .............................................................................. 11-16<br />

Opening Non-Existent Schematics and Components ..................................... 11-17<br />

Opening/Creating a <strong>Design</strong> Configuration................................................... 11-17<br />

Creating Backannotations ............................................................................ 11-20<br />

Editing Backannotations .............................................................................. 11-20<br />

Viewing Evaluated Properties...................................................................... 11-21<br />

Merging Backannotations ............................................................................ 11-22<br />

Locking Schematic Sheet for Edits .............................................................. 11-23<br />

Opening a Non-Existent Schematic in <strong>Design</strong> Context ............................... 11-23<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xv


xvi<br />

Table of Contents (cont.)<br />

Table of Contents<br />

Opening a Non-Existent Component in <strong>Design</strong> Context ............................. 11-23<br />

Chapter 12<br />

Function Block Concepts .................................................................................. 12-1<br />

Function Block Objects.................................................................................. 12-1<br />

Function Block Development States.............................................................. 12-2<br />

Terminology................................................................................................... 12-3<br />

Understanding Function Block Properties ..................................................... 12-4<br />

Unmade Function Blocks ................................................................................. 12-4<br />

FB Definition ................................................................................................. 12-4<br />

FB Instance..................................................................................................... 12-6<br />

FB Pins ........................................................................................................... 12-8<br />

Made Function Blocks...................................................................................... 12-9<br />

The Made FB Definition and Made FB Instance Creation Operation ......... 12-10<br />

Usage Paradigm .............................................................................................. 12-11<br />

Models.......................................................................................................... 12-12<br />

Nested Function Blocks ............................................................................... 12-15<br />

FB Definition and FB Instance Net Constructs............................................ 12-17<br />

External Nets................................................................................................ 12-19<br />

Passthru Nets................................................................................................ 12-20<br />

Flythru Nets.................................................................................................. 12-21<br />

Chapter 13<br />

Using Hotkeys .................................................................................................... 13-1<br />

Hotkey Types ................................................................................................. 13-1<br />

Hotkey User Interface Overview ................................................................... 13-2<br />

Using DA-<strong>IC</strong> Predefined Hotkeys .................................................................... 13-4<br />

Loading DA-<strong>IC</strong> Editing Hotkeys ................................................................... 13-4<br />

Using User-Defined Hotkeys............................................................................ 13-6<br />

Creating User-Defined Hotkeys..................................................................... 13-6<br />

Loading User-Defined Hotkeys ................................................................... 13-10<br />

Using Custom Hotkeys ................................................................................... 13-10<br />

Customizing Hotkeys ................................................................................... 13-11<br />

Loading Custom Hotkeys............................................................................. 13-14<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Reporting Hotkey Status................................................................................. 13-15<br />

Enabling and Disabling Hotkeys .................................................................... 13-16<br />

Enabling Hotkeys ......................................................................................... 13-16<br />

Disabling Hotkeys........................................................................................ 13-18<br />

Chapter 14<br />

Creating DA-<strong>IC</strong> Userware ................................................................................ 14-1<br />

Customization Guidelines................................................................................. 14-2<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes ............................................................................. 14-3<br />

Scope Specific Userware Directories............................................................. 14-4<br />

Scope Search Order........................................................................................ 14-6<br />

Simple Customizing........................................................................................ 14-11<br />

DA-<strong>IC</strong> Startup Files ..................................................................................... 14-11<br />

Source Location ........................................................................................... 14-15<br />

How to Load Userware ................................................................................ 14-16<br />

AMPLE_PATH Environment Variable ....................................................... 14-16<br />

Scope Specific Dofiles ................................................................................. 14-18<br />

DES_ARCH_PKGS_TO_LOAD Environment Variable............................ 14-19<br />

Personal Startup Example ............................................................................ 14-19<br />

Userware Examples...................................................................................... 14-20<br />

Advanced Customizing................................................................................... 14-23<br />

DES_ARCH_AUX_PKG_LIST Environment Variable ............................. 14-23<br />

DES_ARCH_AUX_PKGS_LIST Example................................................. 14-25<br />

Environment Variable Summary.................................................................. 14-26<br />

Schematic Menus ......................................................................................... 14-28<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Menu Customization Functions.................................. 14-35<br />

Userware Examples...................................................................................... 14-43<br />

Recommendations........................................................................................... 14-47<br />

Chapter 15<br />

Hotkey Function Dictionary............................................................................. 15-1<br />

Function Summary............................................................................................ 15-1<br />

Function Description Legend ........................................................................... 15-2<br />

Function Title ................................................................................................. 15-2<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xvii


Table of Contents (cont.)<br />

Table of Contents<br />

Usage.............................................................................................................. 15-2<br />

Description ..................................................................................................... 15-5<br />

Arguments ...................................................................................................... 15-5<br />

Examples ........................................................................................................ 15-5<br />

Function Descriptions....................................................................................... 15-5<br />

$copy_edit_hotkey_settings() ........................................................................ 15-6<br />

$define_hotkey() ............................................................................................ 15-7<br />

$get_hotkey_mode() ...................................................................................... 15-9<br />

$get_hotkey_settings() ................................................................................. 15-10<br />

$load_hotkey_settings() ............................................................................... 15-11<br />

$report_hotkey_settings() ............................................................................ 15-13<br />

$set_hotkey_mode()..................................................................................... 15-15<br />

Appendix A<br />

Predefined Hotkeys..............................................................................................A-1<br />

Appendix B<br />

Hotkey Commands..............................................................................................B-1<br />

Appendix C<br />

<strong>Design</strong> Checks......................................................................................................C-1<br />

Symbol Checks ...................................................................................................C-1<br />

Special Symbols* .............................................................................................C-2<br />

Pin* ..................................................................................................................C-2<br />

Body* ...............................................................................................................C-3<br />

Interface............................................................................................................C-3<br />

Schematic Sheet Checks .....................................................................................C-3<br />

Instance* ..........................................................................................................C-4<br />

Special Instances* ............................................................................................C-4<br />

Net* ..................................................................................................................C-6<br />

Frame*..............................................................................................................C-7<br />

Symbol Pins* ...................................................................................................C-8<br />

Parameter..........................................................................................................C-8<br />

Expressions ......................................................................................................C-8<br />

Owner...............................................................................................................C-8<br />

xviii<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

Table of Contents (cont.)<br />

Overlap.............................................................................................................C-9<br />

Notdots .............................................................................................................C-9<br />

Closedots ..........................................................................................................C-9<br />

Dangles...........................................................................................................C-10<br />

Init Props ........................................................................................................C-10<br />

Annotations ....................................................................................................C-11<br />

Bus Shorts ......................................................................................................C-11<br />

Function Blocks .............................................................................................C-11<br />

Analog/Digital Converters .............................................................................C-12<br />

Schematic Checks.............................................................................................C-13<br />

Schematic Interface........................................................................................C-13<br />

Schematic Special ..........................................................................................C-14<br />

Schematic Instance.........................................................................................C-14<br />

Schematic Bus Shorts.....................................................................................C-14<br />

Schematic Net I/O ..........................................................................................C-14<br />

Appendix D<br />

Migrating Userware to DA-<strong>IC</strong> ...........................................................................D-1<br />

Scopes .................................................................................................................D-1<br />

User Interface......................................................................................................D-2<br />

Menu Changes..................................................................................................D-3<br />

Softkey Changes...............................................................................................D-5<br />

Default Behavior Changes ...............................................................................D-6<br />

User Functions ....................................................................................................D-6<br />

Files.....................................................................................................................D-7<br />

Executables ......................................................................................................D-7<br />

Header Files ...................................................................................................D-10<br />

Libraries............................................................................................................D-11<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xix


Table of Contents (cont.)<br />

Table of Contents<br />

Appendix E<br />

Special Instances.................................................................................................. E-1<br />

Index<br />

Trademark Information<br />

End-User License Agreement<br />

xx<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


xxi<br />

List of Figures<br />

Table of Contents<br />

Figure 1-1. DA-<strong>IC</strong> <strong>Design</strong> Flow........................................................................ 1-6<br />

Figure 2-1. <strong>Design</strong> Manager-<strong>IC</strong> Session Window............................................. 2-3<br />

Figure 2-2. Session Setup Dialog Box............................................................... 2-6<br />

Figure 2-3. Setup Display Dialog Box .............................................................. 2-7<br />

Figure 2-4. Setup Selection Dialog Box .......................................................... 2-11<br />

Figure 2-5. The Setup Property Display dialog box ........................................ 2-13<br />

Figure 2-6. Selecting a Single Object .............................................................. 2-16<br />

Figure 2-7. Selecting Multiple Objects............................................................ 2-17<br />

Figure 2-8. Unselecting Multiple Objects ....................................................... 2-21<br />

Figure 2-9. Result of Copy Multiple................................................................ 2-25<br />

Figure 2-10. Result of Copy to Array.............................................................. 2-26<br />

Figure 2-11. Schematic Window Strokes ........................................................ 2-34<br />

Figure 3-1. Schematic Sheet .............................................................................. 3-5<br />

Figure 3-2. Open (new) Sheet Options Dialog Box .......................................... 3-7<br />

Figure 3-3. Setup Grid Dialog Box.................................................................. 3-10<br />

Figure 3-4. Setup Objects Dialog Box............................................................. 3-12<br />

Figure 3-5. Setup Objects Ripper Dialog Box................................................. 3-14<br />

Figure 3-6. Setup Objects <strong>Design</strong> Context Dialog Box................................... 3-16<br />

Figure 3-7. Setup Objects Comment Dialog Box............................................ 3-18<br />

Figure 3-8. A Bus Connected to a Four-Wide Output Port ............................. 3-31<br />

Figure 3-9. Add Multiple Properties Dialog Box ............................................ 3-34<br />

Figure 3-10. A Multi-Dimensional Bus........................................................... 3-35<br />

Figure 3-11. A 8x1 Bus Ripper from $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip ........... 3-37<br />

Figure 3-12. Bus Ripper Symbol ..................................................................... 3-39<br />

Figure 3-13. Installing a Bus Ripper................................................................ 3-40<br />

Figure 3-14. A Bus with a Connected Sub-Bus............................................... 3-41<br />

Figure 3-15. A Bus Ripper Extracts a Range of Lines .................................... 3-42<br />

Figure 3-16. Basic Layout ............................................................................... 3-43<br />

Figure 3-17. The Sequence Text dialog box.................................................... 3-44<br />

Figure 3-18. Fully Connected Bus Ripper....................................................... 3-45<br />

Figure 3-19. Choose Bundle Member Dialog Box.......................................... 3-53<br />

Figure 3-20. Generate Symbol Dialog Box ..................................................... 3-55<br />

Figure 3-21. Open Schematic Options Dialog Box ......................................... 3-57<br />

Figure 3-22. Generate Symbol Dialog Box ..................................................... 3-61<br />

Figure 3-23. FOR Frame Example .................................................................. 3-70<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


List of Figures (cont.)<br />

Table of Contents<br />

Figure 3-24. Repeating Instance Example....................................................... 3-73<br />

Figure 3-25. Check Schematic Log ................................................................. 3-78<br />

Figure 3-26. Default Sheet Check Settings Dialog Box .................................. 3-79<br />

Figure 3-27. Save Sheet As Dialog Box.......................................................... 3-81<br />

Figure 3-28. Schematic Sheet Navigation Buttons.......................................... 3-83<br />

Figure 3-29. Display Specific Sheet Dialog Box............................................. 3-84<br />

Figure 3-30. New Sheet Option ....................................................................... 3-85<br />

Figure 3-31. Save Multiple Sheets Dialog Box ............................................... 3-86<br />

Figure 3-32. Export SP<strong>IC</strong>E Netlist Dialog Box............................................... 3-89<br />

Figure 3-33. Export SP<strong>IC</strong>E Options Dialog Box............................................. 3-91<br />

Figure 3-34. Export Verilog Netlist Dialog Box ............................................. 3-92<br />

Figure 3-35. Export Verilog Options Dialog Box ........................................... 3-94<br />

Figure 4-1. Setup Symbol Body Dialog Box..................................................... 4-5<br />

Figure 4-2. Pintype Property Text Location .................................................... 4-15<br />

Figure 4-3. Copying Pins and Sequencing Text .............................................. 4-17<br />

Figure 4-4. IXO and OUT Pins on PLD Symbol............................................. 4-19<br />

Figure 4-5. $MGC_PLDLIB/16hd8 Symbol................................................... 4-21<br />

Figure 4-6. Check Symbol Log ....................................................................... 4-24<br />

Figure 5-1. Create Dialog Box........................................................................... 5-4<br />

Figure 5-2. Model Registrar Dialog Box........................................................... 5-5<br />

Figure 5-3. Model Registrar Dialog Box........................................................... 5-6<br />

Figure 6-1. Setup Function Blocks Dialog Box................................................. 6-4<br />

Figure 6-2. Set Color Dialog Box...................................................................... 6-5<br />

Figure 6-3. Add Popup Menu with Function Block Options............................. 6-7<br />

Figure 6-4. Example Schematic......................................................................... 6-9<br />

Figure 6-5. Function Block Options in the Add Popup Menu......................... 6-10<br />

Figure 6-6. FB Definition Example ................................................................. 6-13<br />

Figure 6-7. Function Block Popup Menu ........................................................ 6-15<br />

Figure 6-8. Create Function Block Definition to Instance Prompt.................. 6-15<br />

Figure 6-9. Positioning a FB Instance ............................................................. 6-16<br />

Figure 6-10. FB Instance Created from a FB Definition ................................. 6-17<br />

Figure 6-11. Example FB Definition ............................................................... 6-18<br />

Figure 6-12. Add Popup Menu with Function Block Menu Options .............. 6-19<br />

Figure 6-13. FB Instance Creation Example ................................................... 6-21<br />

Figure 6-14. FB Instance Example .................................................................. 6-22<br />

xxii<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

List of Figures (cont.)<br />

Figure 6-15. Function Block Pins in the Add Popup Menu ............................ 6-23<br />

Figure 6-16. Add Function Block Pin Prompt Bar .......................................... 6-23<br />

Figure 6-17. FB Pin Placement........................................................................ 6-24<br />

Figure 6-18. FB Definition with FB Pins ........................................................ 6-25<br />

Figure 6-19. Example Circuit .......................................................................... 6-26<br />

Figure 6-20. Example of an Enclosed Circuit within an FB Definition .......... 6-27<br />

Figure 6-21. Completed FB Definition Example ............................................ 6-28<br />

Figure 6-22. Setup Select Filter Dialog Box ................................................... 6-32<br />

Figure 6-23. Resize in the Function Block Popup Menu................................. 6-34<br />

Figure 6-24. Stretch Prompt Bar...................................................................... 6-34<br />

Figure 6-25. Stretch Operation ........................................................................ 6-35<br />

Figure 6-26. Setup Color Dialog Box.............................................................. 6-36<br />

Figure 6-27. FB Definition Illustration............................................................ 6-39<br />

Figure 6-28. Made FB Definition Example..................................................... 6-40<br />

Figure 6-29. Interface Pin Change Notification Box....................................... 6-42<br />

Figure 6-30. Unmake Function Block Menu Patch ......................................... 6-43<br />

Figure 6-31. Select Number of Unmake Levels Dialog Box........................... 6-44<br />

Figure 6-32. The Default Schematic Check Settings Dialog Box ................... 6-46<br />

Figure 7-1. Parameter Evaluation Rules.......................................................... 7-20<br />

Figure 7-2. Property Variable Resolution Example ........................................ 7-24<br />

Figure 7-3. Status Line Showing Annotations ON.......................................... 7-26<br />

Figure 7-4. Typical FOR Frame ...................................................................... 7-35<br />

Figure 7-5. Setup Objects Property Text Dialog Box...................................... 7-37<br />

Figure 7-6. Change Color dialog box .............................................................. 7-49<br />

Figure 7-7. Setup Property Display dialog box ............................................... 7-50<br />

Figure 7-8. Modify Editable Properties dialog box ......................................... 7-51<br />

Figure 8-1. Add Source Dialog Box .................................................................. 8-8<br />

Figure 8-2. Setup Monte Carlo Analysis Dialog Box...................................... 8-40<br />

Figure 8-3. Model Selector Tree Display ........................................................ 8-77<br />

Figure 8-4. Generate Symbol Dialog Box ..................................................... 8-100<br />

Figure 9-1. Component Window ....................................................................... 9-4<br />

Figure 9-2. Hierarchy Window.......................................................................... 9-6<br />

Figure 9-3. Renaming a Component Containing a Symbol............................... 9-7<br />

Figure 9-4. Report Interfaces Example............................................................ 9-13<br />

Figure 9-5. Component Window Transcript.................................................... 9-14<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xxiii


List of Figures (cont.)<br />

Table of Contents<br />

Figure 9-6. Report Object Example................................................................. 9-16<br />

Figure 11-1. “my_design” <strong>Design</strong> ................................................................... 11-6<br />

Figure 11-2. “default” Backannotation Window ............................................. 11-6<br />

Figure 11-3. “default: I$1” Window................................................................ 11-7<br />

Figure 11-4. “default: I$1” Window with Backannotations............................ 11-8<br />

Figure 11-5. “default: I$2” Window................................................................ 11-9<br />

Figure 11-6. “default: I$2” Window with Backannotations............................ 11-9<br />

Figure 11-7. “my_design” <strong>Design</strong> Configuration with COMP Property ...... 11-11<br />

Figure 11-8. “default” Backannotation Window with I$1/I$4 ...................... 11-11<br />

Figure 11-9. “default” with Expression ......................................................... 11-12<br />

Figure 11-10. “default” with Expression Evaluated ...................................... 11-12<br />

Figure 11-11. “default” with Backannotations Enabled ................................ 11-13<br />

Figure 11-12. “default” Backannotation Window with Expression .............. 11-14<br />

Figure 11-13. “default: I$1” Window............................................................ 11-14<br />

Figure 11-14. “default” with Backannotation Expression............................. 11-15<br />

Figure 11-15. “default” with Backannotation Expression Evaluated............ 11-15<br />

Figure 11-16. “&” In the Schematic Window ............................................... 11-16<br />

Figure 11-17. Create <strong>Design</strong> Configuration Dialog Box............................... 11-18<br />

Figure 11-18. Open <strong>Design</strong> Configuration Dialog Box................................. 11-19<br />

Figure 12-1. FB Definition and FB Instance Usage Model............................. 12-2<br />

Figure 12-2. FB Definition .............................................................................. 12-5<br />

Figure 12-3. FB Instance ................................................................................. 12-6<br />

Figure 12-4. FB Definition Pin........................................................................ 12-8<br />

Figure 12-5. FB Inst Pin .................................................................................. 12-9<br />

Figure 12-6. Made FB Definition .................................................................. 12-10<br />

Figure 12-7. Unconnected FB Definition Usage Model................................ 12-12<br />

Figure 12-8. The Function Block Popup Menu ............................................. 12-13<br />

Figure 12-9. Connected FB Definition Usage Model.................................... 12-14<br />

Figure 12-10. Nested Function Blocks .......................................................... 12-15<br />

Figure 12-11. Unmake Function Block Menu Option................................... 12-16<br />

Figure 12-12. FB Definition’s Internal Net Example.................................... 12-18<br />

Figure 12-13. External Net Example ............................................................. 12-19<br />

Figure 12-14. Passthru Net Examples ........................................................... 12-20<br />

Figure 12-15. Flythru Net Example............................................................... 12-21<br />

Figure 13-1. Hotkeys Cascading Menu (Schematic Scope) ............................ 13-2<br />

xxiv<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Table of Contents<br />

List of Figures (cont.)<br />

Figure 13-2. Hotkey Cascading Menu............................................................. 13-3<br />

Figure 13-3. Loading Hotkeys (Schematic Scope).......................................... 13-4<br />

Figure 13-4. Load Hotkey Settings dialog box................................................ 13-5<br />

Figure 13-5. <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Status Bar with Hotkeys Enabled (Schematic<br />

Scope) ............................................................................................................... 13-6<br />

Figure 13-6. Defining Hotkeys (Schematic Scope)......................................... 13-7<br />

Figure 13-7. Define Hotkey Dialog Box ......................................................... 13-7<br />

Figure 13-8. User-Defined Hotkey Comment Dialog Box.............................. 13-8<br />

Figure 13-9. Define more hotkeys? dialog box ............................................... 13-9<br />

Figure 13-10. Hotkey Customize Menu Option (Schematic Scope) ............. 13-11<br />

Figure 13-11. Customize Hotkey Settings dialog box................................... 13-11<br />

Figure 13-12. Close Window Pulldown Menu .............................................. 13-13<br />

Figure 13-13. Save Changes dialog box ........................................................ 13-13<br />

Figure 13-14. The Load Hotkey Settings dialog box .................................... 13-14<br />

Figure 13-15. Specify Custom Hotkey File dialog box................................. 13-15<br />

Figure 13-16. Report Hotkey Settings Dialog Box ....................................... 13-16<br />

Figure 13-17. Load Hotkey Settings Dialog Box .......................................... 13-18<br />

Figure 13-18. Disabling Hotkeys via the Miscellaneous Pulldown (Schematic<br />

Scope) ............................................................................................................. 13-19<br />

Figure N-1. Sample Menu Item ..................................................................... 14-22<br />

Figure 15-1. Function Usage Line Legend ...................................................... 15-2<br />

Figure 15-2. Example of Function Command Usage ...................................... 15-3<br />

Figure 15-3. Menu Path Example.................................................................... 15-4<br />

Figure 15-4. $define_hotkey() Dialog Box ..................................................... 15-7<br />

Figure 15-5. $load_hotkey_settings() Dialog Box ........................................ 15-11<br />

Figure 15-6. $report_hotkey_settings() Dialog Box...................................... 15-13<br />

Figure 15-7. $set_hotkey_mode() Prompt Bar .............................................. 15-15<br />

Figure 15-8. Implicit Ripper Examples ............................................................. E-4<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xxv


Table of Contents<br />

List of Tables<br />

Table 1-1. Library Environment Variables ........................................................ 1-4<br />

Table 2-1. Schematic Objects to Symbol Objects ........................................... 2-27<br />

Table 2-2. Symbol Objects to Schematic Objects ........................................... 2-28<br />

Table 3-1. Available Bus Rippers in $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip .......... 3-37<br />

Table 3-2. Pin and Bus Line Connections ..................................................... 3-46<br />

Table 5-1. Example Registration Argument Values ........................................ 5-31<br />

Table 5-2. Default Values for Optional Arguments ........................................ 5-32<br />

Table 6-1. Function Block-Specific Properties ................................................. 6-6<br />

Table 7-1. Property Structure ............................................................................ 7-3<br />

Table 7-2. Property Update Examples ........................................................... 7-17<br />

Table 7-3. DA-<strong>IC</strong> Objects Associated with Specific SLD Properties ............. 7-26<br />

Table 7-4. Structured Logic <strong>Design</strong> Properties ............................................. 7-26<br />

Table 8-1. Supported Simulation Language Types ........................................... 8-5<br />

Table 8-2. Parameters Supported by Type ...................................................... 8-27<br />

Table 8-3. Model Selector Model-Type Icons ................................................. 8-78<br />

Table 8-4. VHDL-AMS Converter Properties ............................................... 8-131<br />

Table 8-5. SP<strong>IC</strong>E Converter Properties ......................................................... 8-132<br />

Table 11-1. Where Properties are Added ........................................................ 11-3<br />

Table 11-2. Property Values Displayed ........................................................... 11-4<br />

Table 12-1. Function Block Terminology ....................................................... 12-3<br />

Table 12-2. Function Block Properties ............................................................ 12-4<br />

Table 14-1. Customization Tasks Categorized by Re-work Level .................. 14-3<br />

Table 14-2. Scopes Searched in each Window ............................................. 14-6<br />

Table 14-3. Environment Variable Summary .............................................. 14-26<br />

Table 15-1. Function Summary ....................................................................... 15-1<br />

Table A-1. DA-<strong>IC</strong> Hotkey Set ...........................................................................A-1<br />

Table B-1. Hotkey Commands ..........................................................................B-1<br />

Table D-1. Window Name Changes ..................................................................D-2<br />

Table D-2. Session Scope Menu Changes .........................................................D-3<br />

Table D-3. Schematic Scope Menu Changes ....................................................D-3<br />

Table D-4. Symbol Scope Menu Changes .........................................................D-4<br />

Table D-5. Remapped Softkeys .........................................................................D-5<br />

Table D-6. Executable Filename Changes .........................................................D-7<br />

Table D-7. Header Filename Changes .............................................................D-10<br />

Table D-8. New <strong>IC</strong> Libraries ...........................................................................D-11<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xxvi


Table D-9. Library Filename Changes ............................................................D-11<br />

xxvii<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


xxviii<br />

List of Tables (cont.)<br />

Table of Contents<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


About This <strong>Manual</strong><br />

This manual describes the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> application and provides<br />

procedures for creating and simulating analog, RF, and mixed signal designs. This<br />

manual is intended to help novice users create, edit, and simulate designs using<br />

the menu interface.<br />

<strong>Manual</strong> Organization<br />

This manual contains the following chapters:<br />

• Chapter 1 “Introducing DA-<strong>IC</strong>” - Introduces <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> and<br />

describes the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> design flow.<br />

• Chapter 2 “Getting Started” - Introduces the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

environment and provides basic information on the editing tools and setting<br />

up the user interface preferences.<br />

• Chapter 3 “Creating Schematics” - Provides step-by-step procedures for<br />

capturing schematic designs in DA-<strong>IC</strong>.<br />

• Chapter 4 “Creating Symbols” - Provides step-by-step procedures for<br />

creating symbols in DA-<strong>IC</strong>.<br />

• Chapter 5 “Managing/Registering Models” - Introduces the Model<br />

Registrar and provides detailed procedures for creating and managing<br />

model registrations in DA-<strong>IC</strong>.<br />

• Chapter 6 “Using Function Blocks” - Provides procedures to create,<br />

manipulate, and convert Function Blocks.<br />

• Chapter 7 “Using Properties” - Describes how properties are assigned and<br />

used by DA-<strong>IC</strong> and downstream tools.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xxix


<strong>Manual</strong> Organization About This <strong>Manual</strong><br />

xxx<br />

• Chapter 8 “Running <strong>Design</strong> Simulation” - Provides an overview of the<br />

simulator and waveform viewer functions and provides procedures for<br />

setting up and performing a simulation from DA-<strong>IC</strong> and viewing the results<br />

with DA-<strong>IC</strong> View.<br />

• Chapter 9 “Managing <strong>Design</strong>s” - Provides information for changing and<br />

deleting components, updating component references, releasing designs<br />

and managing designs in DA-<strong>IC</strong>.<br />

• Chapter 10 “Troubleshooting” - Provides information for solving problems<br />

when the application does not perform as expected.<br />

• Chapter 11 “Editing in <strong>Design</strong> Context” - Defines design viewpoints,<br />

backannotation objects, and design configurations and how to manipulate<br />

data in each.<br />

• Chapter 12 “Function Block Concepts” - Outlines Function Block<br />

methodology and implementation.<br />

• Chapter 13 “Using Hotkeys” - Outlines the hotkey methodology and<br />

provides procedures for customization.<br />

• Chapter 14 “Creating DA-<strong>IC</strong> Userware” - Provides information for creating<br />

custom userware for <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>.<br />

• Chapter 15 “Hotkey Function Dictionary” - Describes hotkey-specific<br />

functions and available options.<br />

• Appendix A “Predefined Hotkeys” - Lists the predefined hotkeys available<br />

in DA-<strong>IC</strong>.<br />

• Appendix B “Hotkey Commands” - Lists the commands available from the<br />

Define Hotkey dialog box.<br />

• Appendix C “<strong>Design</strong> Checks” - Lists all the design checks available for<br />

schematic, symbol, and interface checking.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


About This <strong>Manual</strong> Other Resources<br />

• Appendix D “Migrating Userware to DA-<strong>IC</strong>” - Describes the changes<br />

between <strong>Design</strong> <strong>Architect</strong> and DA-<strong>IC</strong> as it pertains to migrating custom<br />

userware from <strong>Design</strong> <strong>Architect</strong> to DA-<strong>IC</strong>.<br />

• Appendix E,“Special Instances” - Describes the special instances available<br />

in the gen_lib provided with DA-<strong>IC</strong>.<br />

Other Resources<br />

Task Link<br />

To learn about online documentation Online Documentation a<br />

To learn about searching manuals Searching <strong>Manual</strong>s a<br />

To find related <strong>IC</strong> Flow manuals Related Publications a<br />

To learn documentation conventions Documentation Conventions a<br />

To learn about the Support Pulldown Menu Using the Support Menu b<br />

a. Refers to sections in the Managing Mentor Graphics <strong>IC</strong> Flow Software manual<br />

b. Refers to sections in the <strong>IC</strong> Flow Common User Interface manual<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 xxxi


Other Resources About This <strong>Manual</strong><br />

xxxii<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 1<br />

Introducing DA-<strong>IC</strong><br />

This chapter introduces the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) features and design<br />

flow. The following topics are available:<br />

DA-<strong>IC</strong> Overview<br />

DA-<strong>IC</strong> Features<br />

<strong>IC</strong>-Specific Component Libraries<br />

DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

DA-<strong>IC</strong> Overview<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) is a full schematic capture application with a multilevel<br />

environment designed to optimize the creation of integrated circuits. DA-<strong>IC</strong><br />

is used to create and simulate analog, RF, and mixed signal schematic designs.<br />

DA-<strong>IC</strong> provides an open architecture which allows you to customize the<br />

application to fit your specific needs. For more information on customizing DA-<br />

<strong>IC</strong>, see the <strong>IC</strong> Flow Common User Interface <strong>Manual</strong> and<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

Depending on the application, one or more of the following separately licensed<br />

components are required for the integrated simulation functions:<br />

• Eldo or HSP<strong>IC</strong>E<br />

Analog simulator applications. One is required for analog simulations.<br />

• Eldo RF<br />

Simulator application required for RF simulations.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 1-1


DA-<strong>IC</strong> Features Introducing DA-<strong>IC</strong><br />

1-2<br />

• Xelga Viewer<br />

Waveform viewer used for analog, digital, RF, and mixed signal<br />

waveforms.<br />

• ADVance-MS<br />

Simulation application required for mixed-signal simulations.<br />

DA-<strong>IC</strong> Features<br />

DA-<strong>IC</strong> provides the following features:<br />

• Allows you to capture and verify working schematic designs. For more<br />

information, see Chapter 3 “Creating Schematics”.<br />

• Provides predefined hotkeys and supports user-defined hotkeys. For<br />

more information, see Chapter 13 “Using Hotkeys”.<br />

• Supports stroke and function key shortcuts. For more information, see<br />

the <strong>IC</strong> Flow Common User Interface <strong>Manual</strong>.<br />

• Allows you to specify hierarchical designs using top-down and bottomup<br />

methods. For more information, see Chapter 12 “Function Block<br />

Concepts” and Chapter 3 “Creating Schematics”.<br />

• Provides predefined component libraries. For more information, see “<strong>IC</strong>-<br />

Specific Component Libraries” in this chapter.<br />

• Provides an integrated SP<strong>IC</strong>E netlister. For more information on<br />

netlisting, see the EldoNet User’s and Reference <strong>Manual</strong>.<br />

• Provides an integrated simulator and waveform viewer. For more<br />

information, see Chapter 8 “Running <strong>Design</strong> Simulation”.<br />

• Supports analog, RF, and mixed signal designs.<br />

• Allows editing in the context of a design viewpoint allowing different<br />

design processes to occur simultaneously. For more information, see<br />

Chapter 11 “Editing in <strong>Design</strong> Context”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Introducing DA-<strong>IC</strong> DA-<strong>IC</strong> Features<br />

• Supports custom userware developed with AMPLE. For more<br />

information, see 14 “Creating DA-<strong>IC</strong> Userware”.<br />

• Supports an interface to Agilent <strong>Design</strong> System (ADS) schematics. For<br />

more information, see<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 1-3


<strong>IC</strong>-Specific Component Libraries Introducing DA-<strong>IC</strong><br />

<strong>IC</strong>-Specific Component Libraries<br />

DA-<strong>IC</strong> provides four <strong>IC</strong>-specific component libraries that contain primitive<br />

functional models (symbols). Libraries are accessed via the palette menu in the<br />

Schematic Editor. You can add these components to your design or put them<br />

together to form schematics and simulation models. The following component<br />

libraries are provided:<br />

1-4<br />

• Device Lib - Provides symbols that represent primitive analog devices used<br />

in <strong>IC</strong> design, such as resistors and capacitors.<br />

• Generic Lib - Provides symbols that represent generic components such as<br />

ports and off-page connectors. Also provides an option for adding custom<br />

borders to your schematics.<br />

• Sources Lib - Provides symbols that represent different voltage and current<br />

sources.<br />

• MCG <strong>IC</strong> Commlib - Provides VHDL-AMS templates for simulating<br />

mixed signal circuits with ADVance MS. For more information, see<br />

ADVance CommLib Library manual.<br />

You must use a location map variable to access component libraries as listed in<br />

the following table.<br />

Table 1-1. Library Environment Variables<br />

For this library... Set this environment variable...<br />

Device Lib MGC_<strong>IC</strong>_DEV<strong>IC</strong>E_LIB<br />

Generic Lib MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB<br />

Sources Lib MGC_<strong>IC</strong>_SOURCES_LIB<br />

MGC <strong>IC</strong> Commlib MGC_<strong>IC</strong>_COMMLIB<br />

Ask your system administrator where to find a location map and how to set your<br />

environment variables. For more information on location maps, see<br />

“<strong>Design</strong> Management with Location Maps” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong><br />

<strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Introducing DA-<strong>IC</strong> DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

DA-<strong>IC</strong> simplifies the design process by integrating schematic capture tools with a<br />

netlister, simulator, and waveform viewer. You can capture a hierarchical design,<br />

check it for errors, netlist and simulate it, view the results, and edit the design<br />

without leaving DA-<strong>IC</strong>.<br />

Figure 1-1 illustrates the design process in DA-<strong>IC</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 1-5


DA-<strong>IC</strong> <strong>Design</strong> Flow Introducing DA-<strong>IC</strong><br />

1-6<br />

Symbols<br />

Lib<br />

Components<br />

Simulation<br />

Stimulus<br />

Function<br />

Blocks<br />

1. Capture/edit<br />

schematic<br />

design.<br />

2. Check design<br />

for errors.<br />

3. Create design<br />

configuration.<br />

4. Set up the<br />

simulation.<br />

5. Create<br />

design netlist.<br />

<strong>Design</strong><br />

Properties<br />

Model<br />

Registration<br />

8. Edit design<br />

and simulation<br />

setups.<br />

7. View<br />

simulation<br />

results.<br />

6. Run<br />

simulation.<br />

Figure 1-1. DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Introducing DA-<strong>IC</strong> DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

The design flow for developing a typical schematic design is described in the<br />

following steps:<br />

1. Capture/edit schematic design.<br />

Use the Schematic editor and Symbol editor to create and edit your design<br />

including symbols, Function Blocks, and property annotations. Use Mentor<br />

Graphics library components or create your own unique component models.<br />

For more information, see:<br />

o Chapter 12 “Function Block Concepts”<br />

o Chapter 3 “Creating Schematics”<br />

o Chapter 4 “Creating Symbols”<br />

o Chapter 7 “Using Properties”<br />

2. Check design for errors.<br />

Use DA-<strong>IC</strong> error checking to verify the schematic is a valid working circuit<br />

that can be used by other design processes. For more information, see<br />

“Checking a Schematic for Errors” in Chapter 3.<br />

3. Create design configuration.<br />

The design configuration consists of a design viewpoint and it’s<br />

backannotation object. The design viewpoint is a versioned representation<br />

of the schematic that contains configuration rules to define how the<br />

simulator or other downstream application interprets the schematic. For<br />

more information, see Chapter 11 “Editing in <strong>Design</strong> Context”.<br />

4. Set up the simulation.<br />

From the palette menu in simulation mode, you can specify many setup<br />

conditions including the stimulus to use and simulator commands to run.<br />

The setups you specify are translated into commands for the simulator and<br />

placed in an ASCII simulator command file. The command file is used by<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 1-7


DA-<strong>IC</strong> <strong>Design</strong> Flow Introducing DA-<strong>IC</strong><br />

1-8<br />

the simulator. You can modify the setup as needed. For more information,<br />

see Chapter 8 “Running <strong>Design</strong> Simulation”.<br />

5. Create design netlist.<br />

The netlist is an ASCII text representation of your schematic design<br />

required by the simulator. For more information on netlisting, see the<br />

EldoNet User’s and Reference <strong>Manual</strong>.<br />

6. Run simulation.<br />

The simulator uses the command file and netlist to simulate the design and<br />

writes the simulation results to waveform databases. A waveform database<br />

is a binary format of the waveforms that represent a signal's activity. For<br />

more information, see Chapter 8 “Running <strong>Design</strong> Simulation”.<br />

7. View simulation results.<br />

Use Xelga or DA-<strong>IC</strong> View to graphically display the results of the<br />

simulation. For more information, see Chapter 8 “Running <strong>Design</strong><br />

Simulation”.<br />

8. Edit design and simulation setups.<br />

During the simulation session, you can modify design property values. For<br />

example, you can change the temperature, voltage, and analysis parameters<br />

to immediately affect the results of the simulation. For more information,<br />

see Chapter 8 “Running <strong>Design</strong> Simulation”.<br />

Some edits, such as property changes that are not related to other<br />

components on the schematic (W, L, RESISTANCE) are stored in a backannotation<br />

object until you merge them into the source schematic with the<br />

Merge option on the simulation palette. For more information, see Chapter<br />

11 “Editing in <strong>Design</strong> Context”.<br />

9. Repeat steps 5 through 8 until the design produces the desired<br />

simulation results.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Introducing DA-<strong>IC</strong> DA-<strong>IC</strong> <strong>Design</strong> Flow<br />

10. Netlist your design for downstream applications such as <strong>IC</strong> Station. For<br />

more information on <strong>IC</strong> Station, see <strong>IC</strong> Station User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 1-9


DA-<strong>IC</strong> <strong>Design</strong> Flow Introducing DA-<strong>IC</strong><br />

1-10<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 2<br />

Getting Started<br />

This chapter introduces the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) environment and<br />

provides basic information on the editing tools and setting up the user interface<br />

preferences. The following topics are available:<br />

DA-<strong>IC</strong> Environment<br />

Invoking DA-<strong>IC</strong> from <strong>Design</strong> Manager-<strong>IC</strong><br />

Invoking DA-<strong>IC</strong> From an Operating Shell<br />

Exiting DA-<strong>IC</strong><br />

Getting Online Help<br />

Setting Up the DA-<strong>IC</strong> Session<br />

Setting Up Display Preferences<br />

Setting the Default Text Editor<br />

Setting up a Language Model Editor<br />

Setting the Mouse Selection Behavior<br />

Setting the Property Display<br />

Browsing for Files<br />

Selecting and Unselecting Objects<br />

Manipulating Graphical Objects<br />

Understanding Object Handles in DA-<strong>IC</strong><br />

Changing the <strong>Design</strong> View<br />

Printing in DA-<strong>IC</strong><br />

Using Panels<br />

Setting up an IFF Interface to ADS Schematics<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-1


DA-<strong>IC</strong> Environment Getting Started<br />

DA-<strong>IC</strong> Environment<br />

2-2<br />

DA-<strong>IC</strong> provides three editors as follows:<br />

• Schematic Editor<br />

Allows you to edit and create schematics and function blocks. Also<br />

provides access to simulation mode and design context mode. The<br />

Schematic Editor is automatically invoked when you open/create a<br />

schematic from the session_palette menu.<br />

• Symbol Editor<br />

Allows you to edit and create user-defined symbols. The Symbol Editor is<br />

automatically invoked when you open/create a symbol from the<br />

session_palette menu.<br />

• VHDL Editor<br />

Allows you to edit and create VHDL models. The VHDL Editor is<br />

automatically invoked when you open/create an ASCII language file from<br />

the session_palette menu.<br />

Each editor operates in its own window within the Session window. Multiple<br />

windows for each editor can be open at the same time.<br />

Invoking DA-<strong>IC</strong> from <strong>Design</strong> Manager-<strong>IC</strong><br />

Use the following steps to invoke DA-<strong>IC</strong> from <strong>Design</strong> Manager-<strong>IC</strong>:<br />

1. Enter the following command at a shell prompt:<br />

$ dmgr_ic<br />

<strong>Design</strong> Manager-<strong>IC</strong> opens and displays the Tools window.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Invoking DA-<strong>IC</strong> From an Operating Shell<br />

2. Click the DA-<strong>IC</strong> icon in the Tools window as shown in Figure 5-1.<br />

DA-<strong>IC</strong> icon<br />

Figure 2-1. <strong>Design</strong> Manager-<strong>IC</strong> Session Window<br />

For more information , see the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

Invoking DA-<strong>IC</strong> From an Operating Shell<br />

To invoke the DA-<strong>IC</strong> from an operating system shell, enter the following<br />

command at a shell prompt:<br />

$da_ic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-3


Exiting DA-<strong>IC</strong> Getting Started<br />

No arguments are needed for invocation. You can specify a sheet or symbol to<br />

automatically open by entering a pathname with the command.<br />

2-4<br />

Note<br />

For a complete list of switches available for the da_ic shell command, see<br />

“Shell Command Dictionary” in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

Exiting DA-<strong>IC</strong><br />

If you provide a relative pathname that does not begin with the<br />

dollar sign ($) character, it is converted to an absolute pathname<br />

based on the value of the environment variable MGC_WD. You<br />

must ensure that the value of MGC_WD is set to the correct value<br />

for your current working directory. If it is not set properly, an<br />

incorrect pathname for the reference may be stored.<br />

Select MGC >Exit from the DA-<strong>IC</strong> Session pulldown menu to exit DA-<strong>IC</strong>. If<br />

other windows are open in the DA-<strong>IC</strong> session area with unsaved edits, you are<br />

prompted to save or discard the edits for each window. The DA-<strong>IC</strong> Session<br />

window closes when all other windows are closed.<br />

Getting Online Help<br />

You can access online help using any of the following methods:<br />

• Select the Help pulldown menu from any window.<br />

• Select the Help button inside dialog boxes to get Quick Help specific to the<br />

function you are performing.<br />

• Select the Ref Help button within Quick Help windows to display detailed<br />

information from the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong> for the<br />

function.<br />

• Enter an asterisk (*) in a prompt bar, and then press Ctrl-? or Ctrl-Shift-? to<br />

list all the commands available for the active window. For more<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Setting Up the DA-<strong>IC</strong> Session<br />

information on using prompt bars, see the <strong>IC</strong> Flow Common User Interface<br />

<strong>Manual</strong>.<br />

Setting Up the DA-<strong>IC</strong> Session<br />

This section provides procedures for setting the default user preferences for the<br />

session window.<br />

1. Click Session on the session_palette menu. The Session Setup dialog box<br />

displays. See Figure 2-2 for the DA-<strong>IC</strong> default settings.<br />

2. Click the button to enable the following settings:<br />

• Show Menu Bar<br />

• Show Session Title<br />

• Show Message Area<br />

• Show Status Line<br />

• Show Softkey Area<br />

• Show Symbol Window<br />

• Show Context Window<br />

• Show Palette<br />

• Show Palette Scrollbars<br />

3. Adjust the mouse Double Click Speed from slow to fast as needed.<br />

4. Select the Window Layout you desire. Options available are Stacking,<br />

Up-Down Tiling, Quadrant Tiling, Left-to-Right Tiling, or Ask the User for<br />

Window Position.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-5


Setting Up the DA-<strong>IC</strong> Session Getting Started<br />

2-6<br />

5. Click OK.<br />

Figure 2-2. Session Setup Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Setting Up Display Preferences<br />

Setting Up Display Preferences<br />

From the Setup Display dialog box, you can change the colors of the display<br />

components and the cursor type. Click Display on the session_palette menu. The<br />

Setup Display dialog box displays as shown in Figure 2-3.<br />

Setup Display<br />

Set Object Color:<br />

Aquamarine<br />

Black<br />

Blue<br />

BlueViolet<br />

Brown<br />

CadetBlue<br />

Comments<br />

Frames<br />

Instances<br />

Pin<br />

Nets<br />

Dots<br />

Symbol Bodies<br />

Background Color Config<br />

Selection<br />

Annotation<br />

Made Fn Block Defs<br />

Unmade Fn Block Defs<br />

Made Fn Block Insts<br />

Unmade Fn Block Insts<br />

Dynamic Cursor<br />

Black White<br />

Plus Diamond CrossHair<br />

OK Reset Cancel Help<br />

Figure 2-3. Setup Display Dialog Box<br />

Setting the Color of <strong>Design</strong> Objects<br />

Set the color of a design object to any one of a number of choices. If you change<br />

the color of property to something different than the object that owns the property,<br />

then the annotated value of the property, as well as the original value of the<br />

property, display in the new color.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-7


Setting Up Display Preferences Getting Started<br />

2-8<br />

Select colors for design objects as follows:<br />

1. Click Display on the session_palette menu. The Setup Display dialog box<br />

displays.<br />

2. Click the desired color in the list box. A preview of the color displays at the<br />

bottom of the list box.<br />

3. Click the component(s) to display in that color.<br />

4. Click OK.<br />

If you view a schematic sheet in the context of a design configuration, annotated<br />

property values display in red by default. You can change the color that annotated<br />

property values display in by selecting the Annotation option.<br />

Backannotated property values display in the “selected” color. If you click the<br />

“No” button on the dialog box, the annotation colors return back to their original<br />

colors. Use this color change for display purposes only; it is not saved when the<br />

sheet is saved.<br />

Setting the Background Color<br />

The background color of a Schematic or Symbol editor window can be either<br />

black or white. The default is black.<br />

Change the background color as follows:<br />

1. Click Display on the session_palette menu. The Setup Display dialog box<br />

displays.<br />

2. Click White under the Background Color Config setting.<br />

3. Click OK.<br />

When you use this function to change the background, all design objects in all<br />

windows are reset to the new default colors.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Setting the Default Text Editor<br />

Setting the Dynamic Cursor<br />

Setup the Schematic and Symbol Editor to use a plus sign (the default), a<br />

diamond, or a full window crosshair cursor when prompting for a diagram<br />

location. The full window crosshair cursor is especially helpful when connecting<br />

instance pins with nets during a schematic editing session.<br />

To set the cursor shape, activate the DA-<strong>IC</strong> Session window, click Display on the<br />

session_palette menu. In the Dynamic Cursor area of the dialog box, enable Plus,<br />

Diamond, or CrossHair as desired, then click OK.<br />

Setting the Default Text Editor<br />

You can set the default editor in DA-<strong>IC</strong> to any UNIX/LINUX editor present on<br />

your system. By default the DA-<strong>IC</strong> Notepad editor is used. Use the following step<br />

to change your default editor:<br />

1. Set the environment variable MGC_SIM_EDITOR to the invoke command<br />

for the desired editor.<br />

Note<br />

The editor you choose must be capable of opening its own Xterm<br />

window, and the invoke command must contain command options<br />

to open the window.<br />

For example: If MGC_SIM_EDITOR=vi, DA-<strong>IC</strong> does not open an Xterm<br />

window and allow you to access the Vi editor.<br />

If MGC_SIM_EDITOR = xterm -e vi, DA-<strong>IC</strong> opens Vi in an Xterm window<br />

whenever the editor is invoked.<br />

Setting up a Language Model Editor<br />

You can setup a specific text editor to invoke whenever you open language<br />

models for editing as follows:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-9


Setting the Mouse Selection Behavior Getting Started<br />

2-10<br />

1. From the Session window, select Setup > Model Editor. The Setup Model<br />

Editor dialog box displays.<br />

2. Specify the desired text editor for opening language models. Options<br />

include:<br />

o Text Editor - Selects a text editor invoked with the command specified<br />

in the Editor field. If no invoke command is specified in the Editor<br />

field, the default editor is used. For more information on the invoke<br />

commands and default editor, see “Setting the Default Text Editor” in<br />

this chapter.<br />

o ADMS Editor - Selects the ADVance MS text editor.<br />

3. Select Save > Setup to save the specified text editor as the default editor for<br />

language models. For more information on saving setups to a startup file,<br />

see $save_setup() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong> and<br />

Chapter 10, Startup Files in the Ample for <strong>IC</strong> Flow User’s <strong>Manual</strong>.<br />

For information on using the ADVance MS text editor, see “Source window” in<br />

the ADVance MS User’s And Reference <strong>Manual</strong>.<br />

Setting the Mouse Selection Behavior<br />

Use the following steps to setup the mouse selection defaults for DA-<strong>IC</strong>:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Setting the Property Display<br />

1. Click the Selection option on the session_palette menu. The Setup<br />

Selection dialog box displays as shown in Figure 2-4.<br />

Setup Selection<br />

Selection Model Individual Additive<br />

Out of view Warning On Off<br />

OK<br />

Name Display On Off<br />

Reset Cancel Help<br />

Figure 2-4. Setup Selection Dialog Box<br />

2. Click Individual or Additive to specify the left mouse button selection<br />

behavior as follows:<br />

• Additive mode, each selection is added to the current selection set.<br />

• Individual mode, only a single item can be selected. A previously<br />

selected item is unselected when a new item is selected.<br />

3. If necessary enable/disable the Out of View Warning option. When on, a<br />

warning displays when a selected object is outside the viewed area.<br />

4. If necessary enable/disable the Name Display option. When on, the name<br />

of instances and nets are reported in the message area as they are selected.<br />

Setting the Property Display<br />

If you add a property value to a symbol that is invisible when the symbol is<br />

instantiated on a schematic sheet, the property value has a solid DimGray<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-11


Setting the Property Display Getting Started<br />

rectangle as a background. The following sections provide information to allow<br />

you to modify the display of this rectangle.<br />

Setting the Display Background Color<br />

The color and background of this rectangle can be changed from the DA-<strong>IC</strong><br />

Session pulldown menu Setup > Property Display.... For example, to change the<br />

background color of all hidden property text to white, perform the following steps:<br />

2-12<br />

1. Activate the DA-<strong>IC</strong> Session window, then execute the pulldown menu<br />

item:<br />

Setup > Property Display...<br />

2. In the Hidden Property Display in Symbol Editor portion of the dialog box,<br />

move the window slider button down to the bottom, then click White.<br />

The Setup Property Display dialog box is displayed in Figure 2-5.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Setting the Property Display<br />

Violet<br />

VioletRed<br />

Wheat<br />

White<br />

Yellow<br />

YellowGreen<br />

Setup Property Display<br />

Hidden Property Display in Symbol Editor<br />

Display background? No Yes<br />

Background Color<br />

Background Pattern<br />

Solid<br />

Stipple<br />

Properties: All None Specific<br />

L<br />

W<br />

AD<br />

AS<br />

PD<br />

PS<br />

NRD<br />

NRS<br />

RDC<br />

RSD<br />

RSC<br />

M<br />

Property Name<br />

Show Property Name<br />

NL<br />

PL<br />

NW<br />

PW<br />

Modify Properties Filter<br />

Figure 2-5. The Setup Property Display dialog box<br />

3. Select either Solid or Stipple for the Background pattern then click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-13<br />

LN<br />

LP<br />

WN<br />

WP<br />

Property Name<br />

MOS Properties SUBCKT Properties Mscellaneous Properties<br />

R<br />

TC1<br />

TC2<br />

Additonal properties whose name to display:<br />

OK Reset Cancel Help<br />

AREA<br />

CL<br />

CW<br />

<strong>IC</strong><br />

T<br />

INSTPARTOL


Browsing for Files Getting Started<br />

Setting the Show Property Name Display<br />

DA-<strong>IC</strong> allows you to select All, None, or Specify for MOS Properties, SUBCKT<br />

Properties, and miscellaneous property names. Figure 2-5 displays the Show<br />

property Name Display default settings. Make changes to the default settings as<br />

your needs require.<br />

Browsing for Files<br />

Navigate through your directory, and select DA-<strong>IC</strong> objects with the dialog<br />

navigator. Invoke the dialog navigator from dialog boxes within DA-<strong>IC</strong> that<br />

request object names. Enter the requested object names in the requesting dialog<br />

box text fields when selected.<br />

For example, when you execute the Open Symbol command, the Open Symbol<br />

dialog box appears with a button labeled Navigator. Type the full component<br />

name in the “Component Name” text box, or invoke the dialog navigator, and<br />

navigate through your directory structure until you find the correct object. After<br />

locating the correct object, click the “OK” button. DA-<strong>IC</strong> automatically enters the<br />

correct object name in the dialog text field.<br />

When you first invoke the dialog navigator, it lists the contents of the working<br />

directory in alphabetic order with an icon preceding each design object name. To<br />

select a name in the list, click the left mouse button on the item. If you have set the<br />

navigation filter to exclude certain types of objects, those objects that meet the<br />

filter requirements for exclusion are not visible when you explore the contents of a<br />

directory.<br />

2-14<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Selecting and Unselecting Objects<br />

The buttons to the right of the list are the navigation buttons. They let you explore<br />

and move through the directory structure. These buttons have the following<br />

meanings:<br />

• Explore Contents (down arrow). After you have selected an item from the<br />

list, clicking the left mouse button navigates you down one level of<br />

hierarchy, and displays the contents of that directory, if hierarchy exists.<br />

• Explore Parent (up arrow) navigates one level up the hierarchy to the<br />

parent directory, and displays the contents of that directory.<br />

• Explore References (right arrow) replaces the current display with the<br />

references of the selected design object.<br />

• Explore Back to Parent (left arrow) navigates back to the design object<br />

that holds the references currently displayed. That is, you return to the<br />

design object from which you originally explored references. This button is<br />

only activated when you have selected an object and explored its references<br />

(“@” is the right-most character in the title bar).<br />

• Go To (multi-directional arrows) displays a dialog box in which you can<br />

enter a soft or hard pathname for the file system destination to which you<br />

want to navigate.<br />

Note<br />

When invoking the Go To dialog box, you can enter either a soft<br />

path (such as “$MGC_HOME”) or a hard pathname. When using a<br />

hard pathname, you must specify a drive letter, such as “C” or<br />

“D”, followed by a colon “:”, and then a forward slash “/”. For<br />

example, the hard pathname “C:/<strong>Design</strong>s” would resolve to the<br />

“<strong>Design</strong>s” directory on the “C” drive.<br />

Selecting and Unselecting Objects<br />

The following procedures describe how to select, unselect, and set the default<br />

selection filter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-15


Selecting and Unselecting Objects Getting Started<br />

Selecting a Single Object<br />

Before you can manipulate objects, you must select the objects you want to<br />

change. By default, the left mouse button selects various objects for you. You can<br />

use it to select a single object or a number of types of objects which fall within an<br />

area of a sheet.<br />

To select a single object, follow these steps:<br />

2-16<br />

1. Position the cursor on the object to be selected.<br />

2. Click the left mouse button.<br />

The selected object becomes highlighted on the display, as shown in Figure 2-7.<br />

The basepoint (hourglass) icon is a reference point for future manipulations. The<br />

select count in the status line of the window reflects the number of selected<br />

objects (in this case, 1).<br />

Selecting Multiple Objects<br />

Figure 2-6. Selecting a Single Object<br />

To select multiple objects, as shown in Figure 2-7, follow these steps:<br />

1. Position the cursor at one corner of the objects to be selected. Press and<br />

hold the left mouse button.<br />

2. Move the cursor while still holding the left mouse button. A dynamic<br />

rectangle is created which defines an area of the sheet. Manipulate the<br />

rectangle until it surrounds the objects to be selected.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Selecting and Unselecting Objects<br />

3. Release the left mouse button.<br />

Figure 2-7. Selecting Multiple Objects<br />

The object types selected are controlled by the Selection Filter. Objects<br />

completely or partially intersected by the rectangle are selected. Each selected net<br />

vertex has a selection (bow tie) icon. The basepoint icon is a reference point for<br />

future selections. The select count in the status line reflects the number of selected<br />

objects.<br />

Selecting Attached Branches<br />

A branch is defined as the portion of a net between junction dots, pins, or dangling<br />

vertices. The following procedure selects the entire branch of any net that contains<br />

selected vertices on a schematic sheet.<br />

1. Select one or more net vertices.<br />

2. Execute the following menu items:<br />

(Most popup menus) Select > Attached > Branches<br />

(Pulldown menu) Edit > Select > Attached > Branches<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-17


Selecting and Unselecting Objects Getting Started<br />

Selecting Attached Instances<br />

The following procedure selects all unselected instances that have selected pins.<br />

Whenever an object is selected, the basepoint is automatically reset to the origin<br />

of the newly-selected object. If several objects are selected concurrently, the<br />

basepoint is reset to the left-most, lowest origin of the newly-selected objects<br />

(left-most takes precedence over lowest).<br />

2-18<br />

1. Select one or more pins.<br />

2. Execute the following menu items:<br />

(Most popup menus) Select > Attached > Instances<br />

(Pulldown menu) Edit > Select > Attached > Instances<br />

Selecting Attached Nets<br />

The following procedure selects all unselected net segments and vertices of nets<br />

that have at least one selected net segment or vertex.<br />

As explained above, whenever an object is selected, the basepoint is automatically<br />

reset to the origin of the newly selected object. If several objects are selected<br />

concurrently, the basepoint is reset to the left-most, lowest origin of the newlyselected<br />

objects (left-most takes precedence over lowest).<br />

1. Select one or more net vertices.<br />

2. Execute the following menu items:<br />

(Most popup menus) Select > Attached > Nets<br />

(Pulldown menu) Edit > Select > Attached > Nets<br />

Selecting all Nets with the Same Name<br />

The following procedure selects all vertices and segments of a net and/or all nets<br />

with the same name.<br />

1. Select one or more net vertices.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Selecting and Unselecting Objects<br />

2. Execute the following menu items:<br />

(Most popup menus) Select > Attached > Nets<br />

(Pulldown menu) Edit > Select > Attached > Nets<br />

3. Hold the Ctrl key down, and reselect the object with the pointer and left<br />

mouse button. Alternatively, hold the Ctrl key down, and reselect by area.<br />

At this point, all the net components will be selected.<br />

4. To select all nets with the same name as the selected net, hold the Ctrl key<br />

down again, and reselect the object.<br />

All nets with the same name are now selected.<br />

Selecting Attached Pins<br />

The following procedure selects pins of one or more selected instances.<br />

1. Select one or more pins.<br />

2. Execute the following menu items:<br />

(Most popup menus) Select > Attached > Pins<br />

(Pulldown menu) Edit > Select > Attached > Pins<br />

Selecting by Object Name<br />

This selection is based upon the INST property for instances, the NET property<br />

for nets, and the PIN property for pins. The following procedures allow you to<br />

select instances, nets, and pins by name.<br />

1. Execute the pop up menu in the Schematic session.<br />

2. Execute the following menu items<br />

For instances, Select > By Name > Instances:<br />

For nets, Select > By Name > Nets:<br />

For pins, Select > By Name > Pins:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-19


Selecting and Unselecting Objects Getting Started<br />

2-20<br />

3. The Select by Name Prompt bar appears. Type the INST, NET, or PIN<br />

property name of the object you want to select in the Names field, and<br />

select OK.<br />

Alternatively, you can enter names with wild cards using regular expression<br />

syntax. Use the following procedure:<br />

1. Execute the popup menu in the Schematic session.<br />

2. Execute the following menu items<br />

For instances, Select > By Name > Reg Expr: > Instances:<br />

For nets, Select > By Name > Reg Expr: > Nets:<br />

For pins, Select > By Name > Reg Expr: > Pins:<br />

3. The Select by Name Prompt bar appears. Type the INST, NET, or PIN<br />

property name of the object you want to select in the Names field, and<br />

select OK.<br />

For instances and pins, only the object(s) that match the specified name are<br />

selected. For nets, all vertices and segments on nets that match the specified<br />

name are selected.<br />

Unselecting a Single Object<br />

To unselect a single object, position the cursor on the object you want to unselect.<br />

Click the left mouse button.<br />

The object is now unselected. If you do not move the cursor and click the left<br />

mouse button again, this action reselects the currently unselected object.<br />

Unselecting Multiple Objects<br />

To unselect multiple objects, as shown in Figure 2-7, follow these steps:<br />

1. Position the cursor at one corner of the objects to be selected.<br />

2. Press the Shift-F2 (Unselect Area Anything) function key sequence and<br />

hold.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Selecting and Unselecting Objects<br />

3. Move the cursor while still holding the function key. A dynamic rectangle<br />

is created which defines an area of the sheet. Manipulate the rectangle until<br />

it surrounds the objects to be unselected, then release the keys.<br />

Unselecting Everything<br />

Figure 2-8. Unselecting Multiple Objects<br />

To unselect all selected objects on a sheet, press F2 (Unselect All Anything), or<br />

execute the Unselect All > Anything menu item. Objects that were previously<br />

unselected remain unselected.<br />

Reselecting a Selection Set<br />

To reselect the last closed and discarded selection set, execute the Select ><br />

Reselect popup menu item.<br />

Reopening a Selection Set<br />

To reopen the last, closed selection set, execute the Select > Reopen Selection<br />

popup menu item, or press Ctrl-F1 (Reopen Selection Set).<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-21


Manipulating Graphical Objects Getting Started<br />

Setting the Default Selection Filter<br />

To setup the default selection filter, choose the Setup > Select Filter menu item.<br />

The Setup Select Filter dialog box displays.<br />

Manipulating Graphical Objects<br />

The following topics describe how to move, copy, delete, rotate, pivot, and flip<br />

selected schematic and symbol objects. These edit operations do not automatically<br />

make new electrical connections if a net passes over any existing pins or vertices.<br />

Moving Objects<br />

To move objects from one position to another, perform the following steps:<br />

2-22<br />

1. Select the object(s) to be moved. For information about selecting and<br />

unselecting objects, refer to “Selecting a Single Object” in this chapter.<br />

2. Choose the Move > Selected popup menu item. The Move prompt bar<br />

appears in the schematic window with the location cursor on “To<br />

Location”. The moving cursor also appears when you move the mouse into<br />

the active window.<br />

To alter the basepoint while moving multiple objects, activate the Move<br />

prompt bar either by the Move Stroke or the Move > Selected popup menu<br />

item. Once the Move prompt bar appears, type the letter “c”. The Basepoint<br />

prompt bar appears over the Move prompt bar. Move the cursor to the<br />

desired location, and set the new basepoint by pressing the left mouse<br />

button. To finish moving the objects, proceed to Step 4.<br />

3. Using the mouse, move the object(s) from one location to another. A ghost<br />

image of the object(s) appears on the screen. As the cursor moves, this<br />

image drags across the screen.<br />

4. Press the left mouse button when the ghost image is in the proper location.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

Repeat Moving<br />

To move the same object(s) again, hold the Shift key down, move the cursor<br />

inside the schematic window, and click the right mouse button. This repeat key<br />

sequence only works if no other popup menu command has been issued in the<br />

meantime.<br />

Moving Objects Between Windows<br />

You can move objects to-and-from different schematic and symbol windows. The<br />

procedures for these operations are the same. When you move objects from one<br />

type of editor to another, a conversion of object type may occur.<br />

To move object(s) from one schematic or symbol window to another schematic or<br />

symbol window, perform the following steps:<br />

1. Activate the Schematic or Symbol Editor window, from where you want to<br />

move objects, by clicking the center mouse button in the window area.<br />

2. Select the object(s) to be moved.<br />

3. Choose the Move > Selected popup menu item. The Move prompt bar<br />

appears in the schematic window with the location cursor on “To<br />

Location”. The moving cursor also appears when you move the mouse into<br />

the active window.<br />

4. Using the mouse, move the object(s) from one location to another. A ghost<br />

image of the object(s) appears on the screen. As the cursor moves, this<br />

image drags across the screen.<br />

5. Press the left mouse button when the ghost image is in the proper location.<br />

Copying Objects<br />

To copy object(s) from a schematic sheet, perform the following steps:<br />

1. Select the object(s) to copy.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-23


Manipulating Graphical Objects Getting Started<br />

2-24<br />

2. Choose the Copy > Selected popup menu item. The Copy prompt bar<br />

displays.<br />

3. Press, but do not release the left mouse button.<br />

4. Drag the ghost image to the position where you want the copy placed. The<br />

moving cursor is located on the basepoint of the ghost image.<br />

5. Release the left mouse button when the ghost image is in the final position.<br />

Repeat Copying<br />

To copy the same instance again, hold the Shift key down, move the cursor inside<br />

the schematic window, and click the right mouse button. This repeat key sequence<br />

only works if no other popup menu command has been issued in the meantime.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

Copying Objects to a Line<br />

You can place copies of one or more selected objects in a line, specifying their<br />

locations by the offset between the basepoint of the selected objects, and the<br />

basepoint of the first copy. The line of copied objects can be in any direction. To<br />

create a diagonal line of four copies of two instances, perform the following steps,<br />

and refer to Figure 2-9.<br />

1. Select the instances to copy.<br />

2. Choose Copy > Multiple from one of the popup menus. This displays the<br />

Copy Multiple prompt bar. Enter the number of copies in the “Count” text<br />

entry box. Press either the Return or Tab key to move the location cursor to<br />

“Placement”.<br />

3. Drag the ghost image of the selected items to the desired location for the<br />

first copy.<br />

4. Press the left mouse button when the ghost image is in the correct position<br />

for the first copy. The distance and angle between the basepoint of the<br />

selected objects and the location you specify determine the placement for<br />

the other copies. The last copy remains selected. Figure 2-9 shows the result<br />

of this Copy Multiple.<br />

Figure 2-9. Result of Copy Multiple<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-25


Manipulating Graphical Objects Getting Started<br />

Copying Objects to an Array<br />

There are two methods of copying one or more selected objects to an array. If you<br />

know the x- and y-offsets, perform the following steps:<br />

2-26<br />

1. Select the object(s) to copy.<br />

2. Choose Copy > To Array from one of the popup menus.<br />

3. Enter the number of columns in the “X Count” text entry box, and the<br />

number of rows in the “Y Count” text entry box. Press the Tab key to move<br />

from one prompt bar entry field to another.<br />

4. The offset values displayed in the prompt bar are the minimum values you<br />

can use without objects overlapping when the array is created with the<br />

selected object in the upper left corner. Change values as needed.<br />

5. Click OK, using the Select (left) mouse button. Figure 2-10 shows the array<br />

created. The last copied object remains selected.<br />

Figure 2-10. Result of Copy to Array<br />

If you want to use the mouse cursor to specify the row and column locations, you<br />

can use the Copy Multiple command as follows:<br />

1. Select the object to copy.<br />

2. Choose Copy > Multiple from one of the popup menus.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

3. Enter the number of rows in the “Count” text entry box in the Copy<br />

Multiple prompt bar. Press the Tab key to move the location cursor to<br />

“Placement”.<br />

4. Drag the ghost image of the selected object to the desired location for the<br />

second row of the array, then release the button. This creates the first<br />

column.<br />

5. Select the column of objects.<br />

6. Choose Copy > Multiple from one of the popup menus.<br />

7. Enter the number of columns in the “Count” text entry box. Press the Tab<br />

key to move the location cursor to “Placement”.<br />

8. Drag the ghost image of the first column to the location for the second<br />

column, then press the Select button. The last column of the array remains<br />

selected.<br />

Copying Objects Between Windows<br />

You can copy objects to and from different schematic and symbol windows. The<br />

procedures used to copy between different windows are the same.<br />

When you move or copy objects from a schematic window to a symbol window,<br />

or from a symbol window to a schematic window, an object conversion occurs.<br />

Refer to Table 2-1 for how schematic objects are converted to symbol objects.<br />

Table 2-1. Schematic Objects to Symbol Objects<br />

Schematic Objects To Symbol Objects<br />

Instances, nets, pins, visible comments,<br />

and visible properties<br />

Invisible properties No translation<br />

Symbol text and graphics, and<br />

properties<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-27


Manipulating Graphical Objects Getting Started<br />

Refer to Table 2-2 for information on how symbol objects are converted to<br />

schematic objects.<br />

2-28<br />

Table 2-2. Symbol Objects to Schematic Objects<br />

Symbol Objects To Schematic Objects<br />

Symbol graphics, visible properties (not<br />

pin properties), symbol comments<br />

Pins No change<br />

Properties attached to the pins No change<br />

Invisible properties (not pin properties) No translation<br />

Comment text and graphics, and<br />

properties<br />

Use the following steps to move object(s) from one schematic or symbol window<br />

to another schematic or symbol window:<br />

1. Activate the window, from where you want to copy objects, by clicking the<br />

center mouse button in the window area.<br />

2. Select the object(s) to be copied. For information about how to select and<br />

unselect objects, refer “Selecting and Unselecting Objects” in this chapter.<br />

3. Choose the Copy > Selected popup menu item. The Copy prompt bar<br />

displays in the window with the location cursor on “At Location”. The<br />

moving pointer appears when you move the mouse into the active window.<br />

4. Using the left mouse button, activate the window you want to copy the<br />

objects into.<br />

5. Drag the ghost image of the object(s) to the location within the window<br />

where you wish to copy the object(s). The moving pointer is located at the<br />

basepoint of the ghost image.<br />

6. Press the left mouse button when the ghost image is in the final position.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

Resizing Instances<br />

You can set the schematic environment to allow resizing of instances.<br />

1. Enter “$allow_resizable_instances()” function in a popup command line.<br />

2. Select the appropriate instance(s) to be resized.<br />

3. Execute the Resize > Half Size | Quarter Size | Normal Size | Four_x<br />

Size | Two_x Size item in the Schematic popup menu.<br />

All the size choices are absolute; that is, they are relative to the “normal”<br />

size of the component as established when the symbol was created in the<br />

Symbol Editor. If you choose “Four_x Size”, the selected instance(s) will<br />

be four times normal size. If you then choose “Half Size”, for example, the<br />

instance(s) will be one-half normal size, not one-half the Four_x size.<br />

The grid size is adjusted for both the Half Size and the Quarter Size, so that<br />

the pin spacing on the smallest instance is still accurate.<br />

Grouping <strong>Design</strong> Objects<br />

You can group design objects to make other editing actions easier. By giving the<br />

objects a group name, you can select the group, and move or copy it; if they are<br />

copied, the new objects do not retain the group name.<br />

You can append more objects to a group, which enables you to select and perform<br />

editing actions on more objects than the ones you originally had in the group.<br />

Additionally, you can report all the names of the groups in a design.<br />

To create a group of objects on the schematic sheet, perform the following steps:<br />

1. Select the objects to be grouped. For information about selecting and<br />

unselecting objects, refer to “Selecting and Unselecting Objects” in this<br />

chapter.<br />

2. Execute the Miscellaneous > Group pulldown menu to display the Group<br />

prompt bar.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-29


Manipulating Graphical Objects Getting Started<br />

2-30<br />

3. Enter the appropriate value beside “Group Name”.<br />

4. Choose the appropriate mode beside “Existing”.<br />

5. Choose whether the name is persistent or temporary beside “Duration”.<br />

6. Click OK.<br />

Once a group is created, you can select the group using the following steps:<br />

1. Execute the Select > Group popup menu item to display the Select Group<br />

prompt bar.<br />

2. Enter in the text box the name of the group you want to select.<br />

3. Click OK.<br />

Ungrouping Objects<br />

To remove the name of a group from a set of objects, perform these steps:<br />

1. Execute the Miscellaneous > Group > Ungroup pulldown menu item to<br />

display the Ungroup prompt bar.<br />

2. Enter the name of the appropriate group beside “Group Name.”<br />

3. Click OK.<br />

Reporting Groups<br />

To display a list of the groups in the active schematic design:<br />

Choose the Report > Groups pulldown menu item.<br />

Deleting Objects<br />

When you delete an object within a component, other objects in that component<br />

that reference the deleted object, are updated. However, if you delete an object (or<br />

an entire component), other objects that reference the deleted object (component)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

need updating. For example, if you delete $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/and2, then<br />

any designs that reference that component need updating.<br />

Keep the following in mind when deleting design objects:<br />

• Before deleting a model other than a symbol or schematic, unregister the<br />

model from the component interface using the Component Interface<br />

Browser.<br />

• Deleting a symbol does not delete the pin and property information from<br />

the interface, unless it is the last pin-creating model. Check Schematic and<br />

other evaluations will continue to compare the pins and properties with the<br />

models registered with the interface. When the last pin-creating model is<br />

deleted or unregistered from an interface, the pins are removed from the<br />

interface. The models considered to be “pin-creating models” are symbols<br />

and VHDL entities.<br />

• Always delete objects using iconic navigators. This method deletes file sets,<br />

not just files. Remember, external object references to the deleted object<br />

will always need to be changed.<br />

• Never delete an object using operating system commands. These<br />

commands do not preserve design object and file set relationships, and can<br />

easily corrupt data beyond repair.<br />

For general information about deleting a component, refer to “Deleting a <strong>Design</strong><br />

Object” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

To delete object(s) from schematic sheet, perform the following steps:<br />

1. Select the object(s) to be deleted. For information about selecting and<br />

unselecting objects, refer to “Selecting and Unselecting Objects” in this<br />

chapter.<br />

2. Click on the schematic_edit [Edit] Delete palette item, or execute the<br />

Delete > Selected popup menu item.<br />

The selected object is now deleted. You can delete instances, frames, net vertices,<br />

pins, properties, comment text, and comment graphics using this method. You<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-31


Manipulating Graphical Objects Getting Started<br />

also can delete properties by executing the Delete > Property popup menu item<br />

and filling out the Delete Property dialog box.<br />

Pivoting and Rotating Objects<br />

Pivoting and rotating are two identical operations when executed on an individual<br />

object. However, when you pivot or rotate a group of selected objects, there is an<br />

important difference. Pivoted objects move with respect to the origin on each<br />

individual object. Rotated objects move with respect to the basepoint of the<br />

selected objects. Furthermore, pivot operations do not affect nets, while rotate<br />

operations affect nets.<br />

Perform the following steps to pivot or rotate an object:<br />

2-32<br />

Note<br />

After you delete a selected object(s), a basepoint icon remains.<br />

This icon displays until something else is selected, and facilitates<br />

replacing the new object(s) in the same location, when you issue<br />

the Undo command. The basepoint icon is not a part of the design.<br />

1. Select the object(s) you want to pivot or rotate. For information about<br />

selecting and unselecting objects, refer to “Selecting and Unselecting<br />

Objects” in this chapter.<br />

2. Choose Edit > Edit Operations >Rotate menu item or select the [Edit]<br />

Rotate from the schematic_edit palette.<br />

3. Cascading to the right of these menu items are three menu selections. Select<br />

one of the following:<br />

• 90 - moves object(s) 90 degrees, counter-clockwise<br />

• -90 - moves object(s) 90 degrees, clockwise<br />

• 180 - moves object(s) 180 degrees<br />

The selected object(s) are rotated to the specified position. The rotation must be<br />

multiple of 90 degrees.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Manipulating Graphical Objects<br />

Flipping Objects<br />

To flip an object or a group of objects, perform the following steps.<br />

1. Select the object(s) you want to flip. For information about selecting and<br />

unselecting objects, refer to “Selecting and Unselecting Objects” in this<br />

chapter.<br />

2. Choose Edit > Edit Operations >Flip or select the [Edit] Flip from the<br />

schematic_edit palette.<br />

3. Choose either Horizontal or Vertical from the cascading submenu.<br />

Note<br />

Objects are flipped, pivoted, and rotated in place. If you want to flip,<br />

pivot, or rotate object(s) that you are moving or copying, the Copy<br />

and Move menu items have cascading menu items for these<br />

operations.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-33


Manipulating Graphical Objects Getting Started<br />

Using Strokes to Manipulate Objects<br />

Hold down the middle mouse button and draw a question mark stroke “?” , the<br />

Quick Help on Strokes chart displays as shown in Figure 2-11. The chart defines<br />

the strokes that are available to you in the active window.<br />

2-34<br />

Quick Help on Strokes<br />

Common <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Strokes Schematic Strokes<br />

Activate Window<br />

5<br />

View Centered<br />

Double Click MMB<br />

View Area<br />

159<br />

View All<br />

951<br />

Zoom In (2)<br />

357<br />

Zoom Out (2)<br />

753<br />

Refresh<br />

75357<br />

Select Window<br />

1475963<br />

Copy<br />

3214789<br />

Copy Multiple<br />

9874123<br />

Move<br />

74159<br />

Stroke Recognition Grid<br />

1<br />

2<br />

3<br />

4 5 6<br />

7 8 9<br />

Delete<br />

741236987<br />

Undo<br />

7412369<br />

Select Area<br />

74123<br />

Unselect All<br />

1478963<br />

Setup Select Filter<br />

32147<br />

Flip Horizontally<br />

9632147<br />

Rotate (90)<br />

3698741<br />

Report Selected<br />

1474123<br />

Set Active Symbol<br />

321456987<br />

Add Property<br />

32159<br />

Modify Property<br />

95123<br />

Help on Strokes<br />

123658<br />

Print<br />

Add Wire<br />

258<br />

Add Bus<br />

852<br />

Route Selected<br />

96321<br />

Connect Selected<br />

7896321<br />

Connect All<br />

1236987<br />

Choose Symbol<br />

36987<br />

More help on strokes<br />

Ref Help<br />

Figure 2-11. Schematic Window Strokes<br />

Display Schematic Palette<br />

78963<br />

Display Default Palette<br />

98741<br />

Place Active Symbol<br />

14789<br />

Close<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Understanding Object Handles in DA-<strong>IC</strong><br />

Understanding Object Handles in DA-<strong>IC</strong><br />

In <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, every graphical comment and electrical object has an<br />

associated handle. A handle is a unique, system-assigned identifier. You can also<br />

assign a name to an instance with the Inst property. The system recognizes the<br />

name you assign, but the instance handle is retained, not replaced. Depending on<br />

the object, a handle consists of one of the key letters listed below followed by the<br />

dollar sign character ($) and a system-assigned number.<br />

• B = Bundle<br />

• C = Comment<br />

• F = Frame<br />

• G = Group<br />

• I = Instance<br />

• N = Net<br />

• P = Pin<br />

• T = Property Text<br />

• V = Vertex<br />

An example of an instance handle is:<br />

I$385<br />

Handles, like this one, appear in various error messages and netlists. The handle<br />

can be specified as an argument in commands such as Select By Handle or Report<br />

Object, as in the following examples:<br />

Select By Handle I$385 -View<br />

Report Object I$385<br />

The first command selects the object by its handle. The second command requests<br />

an extended status list associated with the object whose handle is I$385.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-35


Changing the <strong>Design</strong> View Getting Started<br />

Methods exist to make the handle of an instance visible. Assign the Inst property<br />

to the instance with a value of I$0. When the Check or Save commands are issued,<br />

the I$0 value will be replaced by the unique handle for that instance. Similarly,<br />

assigning the Net property a value of N$0 makes the net handles visible after the<br />

Check or Save commands are executed.<br />

Changing the <strong>Design</strong> View<br />

Changing the view of a sheet is useful when large schematics are edited. It allows<br />

you to see the schematic sheet or symbol in adequate detail. You can change the<br />

sheet view any time to see a small portion of the sheet, or zoom out to see the<br />

entire sheet.<br />

Viewing a Portion of the Sheet<br />

To view a portion of the sheet, perform the following steps:<br />

1. Select the View > View Area menu item. The View Area prompt bar<br />

appears on the screen, with the location cursor on “Area”.<br />

2-36<br />

2. Place the cursor at one corner of the rectangular area you want to view.<br />

3. Press and hold down the left mouse button. While the left mouse button is<br />

depressed, move the cursor to the opposite corner of the rectangular area.<br />

Notice that as you move the cursor, a rectangular box is displayed. This<br />

rectangle is the boundary of the area that will be viewed.<br />

4. When the area you want to view is within the rectangle, release the left<br />

mouse button.<br />

The area you specified is enlarged to fill the active window.<br />

View Area is also available from the popup menu in a scroll bar, or by defining<br />

the view area within the Context window.<br />

Viewing the Entire Sheet<br />

To view the entire design sheet, perform the following steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Changing the <strong>Design</strong> View<br />

1. Select the View > View All menu item.<br />

2. The entire design sheet displays in the active sheet window.<br />

You can also view the entire sheet by double-clicking the left mouse key in the<br />

Context window.<br />

Other Viewing Capabilities<br />

You can change the view of the design by choosing one of the following menu<br />

items:<br />

• View > View Centered. This view option centers the view around the<br />

specified location. After choosing this menu item, the View Centered<br />

prompt bar appears in the active window with the location cursor on<br />

“Center of View”. As you move the mouse into the active window, the<br />

moving cursor appears. Click the left mouse button at the desired center of<br />

view. The view of the design is now centered around the location specified.<br />

Another method of centering the view is to double-click the center mouse<br />

button in the edit window.<br />

• View > View Selected. This view option centers the view around the<br />

selected object(s).<br />

• View > Zoom In > 2.0 | 3.0 | As Specified. This view option expands the<br />

image size in the active window to show more detail in the window. The<br />

image is zoomed-in by a factor of 2.0, 3.0, or the factor you specify in a<br />

prompt bar, with respect to the center of the image.<br />

• View > Zoom Out > 2.0 | 3.0 | As Specified. This view option shrinks the<br />

image size in the active window to show less detail in the window. The<br />

image is zoomed out by a factor of 2.0, 3.0, or the factor you specify in a<br />

prompt bar, with respect to the center of the image.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-37


Printing in DA-<strong>IC</strong> Getting Started<br />

Printing in DA-<strong>IC</strong><br />

You can print schematic designs from DA-<strong>IC</strong> in a variety of ways as follows:<br />

2-38<br />

• From the Session window you can print:<br />

o All the schematic sheets that comprise a schematic.<br />

o All design sheets with backannotations specified by the current design<br />

configuration.<br />

For more information, see “Printing All Sheets in a <strong>Design</strong>” in this chapter.<br />

• From the Symbol Editor window, you can print the contents of the active<br />

window. For more information, see “Printing Symbols” in this chapter.<br />

• From a Schematic Editor window, you can print a schematic sheet. For<br />

more information, see “Printing a Schematic Sheet” in this chapter.<br />

Printing All Sheets in a <strong>Design</strong><br />

From the Session window, you can print all the schematic sheets in a specified<br />

design. The File pulldown menu provides two options as follows:<br />

• Print All Schematics with <strong>IC</strong>print - Prints all sheets in a specified<br />

schematic design. Generates Postscript files for each schematic sheet and<br />

sends them to a specified UNIX printer. For more information, see<br />

“Printing all Sheets in a Schematic with <strong>IC</strong>print” in this chapter.<br />

• Print All Schematics - Prints all sheets in a specified schematic design. For<br />

more information, see “Printing all Sheets in a Schematic with Print/Plot”<br />

in this chapter.<br />

Printing all Sheets in a Schematic with <strong>IC</strong>print<br />

<strong>IC</strong>print is not affected by the MGC > Setup > Printer setups. You must specify<br />

printing options, including a UNIX printer name, in the Print All Schematics with<br />

<strong>IC</strong>print dialog box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

Use the following steps to print all schematic sheets in a design with <strong>IC</strong>print:<br />

1. From the Session window, choose File > Print All Schematics with<br />

<strong>IC</strong>print > Source Schematics....The Print All Schematics with <strong>IC</strong>print<br />

dialog box displays.<br />

2. Select a Destination for the PostScript printer files. The dialog box changes<br />

depending on the option you select. The following options are available:<br />

o Send to Printer - Sends the file to the printer for printing. You must<br />

enter a Printer Name. Specifies a UNIX printer to send the Postscript<br />

file to. This is the default setting.<br />

o Print to File - Saves the file to disk in the working directory. Enter an<br />

Output File name. The schematic number and sheet number are<br />

appended to the specified filename followed by _n for the page number.<br />

One file is generated for each schematic sheet printed. For example,<br />

myfile_Schematic#1_sheet#1_1.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-39


Printing in DA-<strong>IC</strong> Getting Started<br />

2-40<br />

If no filename is specified, random names starting with mgc are<br />

generated without a schematic number or sheet number appended. For<br />

example: mgcOXDJ4U_1.<br />

3. If necessary, enter a new Working Directory. The working directory is<br />

used to store the PostScript and temporary printer files. Defaults to the<br />

location of the active schematic sheet.<br />

4. If necessary, enter a Page Width and Page Length. The default page size is<br />

8.5 x 11.<br />

5. If necessary, select Continuous Paper Roll. Select this option to avoid<br />

clipping data at the top or bottom of printout when using a continuous roll<br />

printer.<br />

6. If necessary, enter a Panel Name. Panels are used to print only a portion of<br />

a window. For more information, see “Using Panels” in this chapter.<br />

7. If necessary, select a Rotation option. The following options are available:<br />

o Best Fit - Automatically determines the data orientation, and prints<br />

either Portrait or Landscape. Selects the orientation that uses the least<br />

amount of paper. This is the default setting.<br />

o Portrait - Prints data vertically on the page.<br />

o Landscape - Prints data horizontally on the page.<br />

8. If necessary, click Color to toggle the setting. The following options are<br />

available:<br />

o Enabled - prints color<br />

o Disabled - prints in black and white. This is the default setting.<br />

9. If necessary, enter the Dot-Per-Inch (DPI) to print. The default is 300 DPI.<br />

10. If necessary, enter a new value for the Text Scale%. Scales the text to the<br />

specified percentage on the printout. <strong>IC</strong>print text sizing approximates what<br />

is on the display. Due to the conversion of fonts for printing, text sizing<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

discrepancies can sometimes occur. To decrease or increase text size, enter<br />

a new value for Text Scale%. The default setting is 100%. A value of 0<br />

omits all text.<br />

11. Specify the number of copies to print up to 99. Default is 1.<br />

12. If necessary enter any additional Printer Commands. For more<br />

information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

13. Click OK. The Print All Schematics dialog box displays.<br />

14. Enter the pathname to the top-level sheet in the design in the Top-Level<br />

Component Name field.<br />

15. If necessary, enter a vector of strings to restrict which sheets print. Sheets<br />

whose pathname includes a filter string (case sensitive), do not print.<br />

16. Select Yes under Preview to display a list of the sheets available for<br />

printing to select from.<br />

17. Click OK. The Print All Schematics Preview dialog box displays.<br />

18. Select the sheets to print from the list.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-41


Printing in DA-<strong>IC</strong> Getting Started<br />

2-42<br />

19. Click OK. The files are sent to the printer or saved to disk as specified. For<br />

more information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference<br />

<strong>Manual</strong>.<br />

Printing all Sheets in a Schematic with Print/Plot<br />

Use the following steps to print all schematic sheets in a design with Print/Plot:<br />

1. Choose the File > Print All Schematics > Source Schematics... item from<br />

the Session menu bar. The Print All Schematics dialog box displays.<br />

2. Enter the pathname to the top-level sheet in the design in the Top-Level<br />

Component Name field.<br />

3. If necessary, enter a vector of strings to restrict which sheets print. Sheets<br />

whose pathname includes a filter string (case sensitive), do not print.<br />

4. Select Yes under Preview to display the Print All Schematics Preview<br />

dialog box before the sheets print.<br />

a. A list of all sheets available in the design display.<br />

b. Select the sheets from the list to print.<br />

5. Click OK to print the sheets.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

Printing Symbols<br />

The Symbol Editor provides two printing options from the File pulldown menu:<br />

• Print Symbol with <strong>IC</strong>print - Generates a Postscript file and sends it to the<br />

specified UNIX printer. For more information, see “Printing the Active<br />

Symbol with <strong>IC</strong>print” in this chapter.<br />

• Print Symbol - Prints the active symbol with Print/Plot. For more<br />

information, see “Printing the Active Symbol with Print/Plot” in this<br />

chapter.<br />

Printing the Active Symbol with <strong>IC</strong>print<br />

<strong>IC</strong>print is not affected by the MGC > Setup > Printer setups. You must specify<br />

printing options, including a UNIX printer name, in the Print Symbol with <strong>IC</strong>print<br />

dialog box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-43


Printing in DA-<strong>IC</strong> Getting Started<br />

Use the following steps to print a symbol with <strong>IC</strong>print:<br />

2-44<br />

1. From the Symbol Editor, select File > Print Symbol with <strong>IC</strong>print. The<br />

Print Symbol with <strong>IC</strong>print dialog box displays.<br />

2. Select a Destination for the PostScript printer file. The dialog box changes<br />

depending on the option you select. The following options are available:<br />

o Send to Printer — Sends the file to the printer for printing. You must<br />

enter a Printer Name. Specifies a UNIX printer to send the Postscript<br />

file to. This is the default setting.<br />

o Print to File — Saves the file to disk in the working directory. Enter an<br />

Output File name. If no name is specified, a random name starting<br />

with mgc is generated. View the transcript to determine the exact name.<br />

All generated printer files are appended with a “_n” where “n” is the<br />

number of pages in the file.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

3. If necessary, enter a new Working Directory. The PostScript and<br />

temporary printer files are stored in the specified directory. Defaults to the<br />

location of the active symbol.<br />

4. If necessary, enter a Page Width and Page Length. The default page size is<br />

8.5 x 11.<br />

5. If necessary, select Continuous Paper Roll. Select this option to avoid<br />

clipping data at the top or bottom of printout when using a continuous roll<br />

printer.<br />

6. If necessary, enter a Panel Name. Panels are used to print only a portion of<br />

a window. For more information, see “Using Panels” in this chapter.<br />

7. If necessary, select a Rotation option. The following options are available:<br />

o Best Fit — Automatically determines the data orientation, and prints<br />

either Portrait or Landscape. Selects the orientation that uses the least<br />

amount of paper. This is the default setting.<br />

o Portrait — Prints data vertically on the page.<br />

o Landscape — Prints data horizontally on the page.<br />

8. If necessary, click Color to toggle the setting. The following options are<br />

available:<br />

o Enabled — Prints color.<br />

o Disabled — Prints in black and white. This is the default setting.<br />

9. If necessary, enter the Dot-Per-Inch (DPI) to print. The default is 300 DPI.<br />

10. If necessary, enter a new value for the Text Scale%. Scales the text to the<br />

specified percentage on the printout. <strong>IC</strong>print text sizing approximates what<br />

is on the display. Due to the conversion of fonts for printing, text sizing<br />

discrepancies can sometimes occur. To decrease or increase text size, enter<br />

a new value for Text Scale%. The default setting is 100%. A value of 0<br />

omits all text.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-45


Printing in DA-<strong>IC</strong> Getting Started<br />

2-46<br />

11. Specify the number of copies to print up to 99. Default is 1.<br />

12. If necessary enter any additional Printer Commands. For more<br />

information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

13. Click OK. The file is sent to the printer or saved to disk as specified. For<br />

more information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference<br />

<strong>Manual</strong>.<br />

Printing the Active Symbol with Print/Plot<br />

To print the contents of a Symbol Editor window, perform the following steps:<br />

1. Activate the edit window for the symbol you want to print. Choose the<br />

File > Print Symbol menu item to display the Print Object prompt bar.<br />

2. Type the printer name in the “Printer name” text box.<br />

3. If you want to override the default printer options, click the “Options”<br />

button. The Print <strong>Design</strong> Object dialog box displays. You can specify the<br />

number of copies, a job configuration file, the orientation, the priority,<br />

notification level, the scale, and the panel name (if you want to plot only a<br />

portion of the window). For a procedure describing how to create panels,<br />

refer to “Using Panels” in this chapter.<br />

You can change the default printer settings by specifying any or all of the<br />

printer attributes. This overrides the default printer settings for this job<br />

only. If you want to change the printer attributes for all subsequent print<br />

jobs, click Keep options. This changes the default settings to the values<br />

specified in the Print Screen dialog box.<br />

You can change the default printer settings by changing the MGC ><br />

Setup > Printer menu item. Refer to the Printer Interface Reference <strong>Manual</strong> for<br />

a description of all required and optional arguments.<br />

Printing a Schematic Sheet<br />

The Schematic Editor provides two printing options from the File pulldown menu:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

• Print Sheet with <strong>IC</strong>print - Generates a Postscript file and sends it to the<br />

specified UNIX printer. For more information, see “Printing the Active<br />

Sheet with <strong>IC</strong>print” in this chapter.<br />

• Print Sheet - Prints the active sheet with Print/Plot. For more information,<br />

see “Printing the Active Sheet with Print/Plot” in this chapter.<br />

Printing the Active Sheet with <strong>IC</strong>print<br />

<strong>IC</strong>print is not affected by the MGC > Setup > Printer setups. You must specify<br />

printing options, including a UNIX printer name, in the Print Sheet with <strong>IC</strong>print<br />

dialog box.<br />

Linux<br />

LINUX 6.X saves the temporary PostScript printer files to the<br />

working directory. You need to delete them once the sheet is sent<br />

to the printer.<br />

Use the following steps to print a schematic sheet with <strong>IC</strong>print:<br />

1. From the Schematic Editor, click on the sheet to print.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-47


Printing in DA-<strong>IC</strong> Getting Started<br />

2-48<br />

2. Select File > Print Sheet with <strong>IC</strong>print. The Print Sheet with <strong>IC</strong>print dialog<br />

box displays.<br />

3. Select a Destination for the PostScript printer file. The dialog box changes<br />

depending on the option you select. The following options are available:<br />

o Send to Printer - Sends the file to the printer for printing. You must<br />

enter a Printer Name. Specifies a UNIX printer to send the Postscript<br />

file to. This is the default setting.<br />

o Print to File - Saves the file to disk in the working directory. Enter an<br />

Output File name. If no name is specified, a random name starting<br />

with mgc is generated. View the transcript to determine the exact name.<br />

All generated printer files are appended with a “_n” where “n” is the<br />

number of pages in the file.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Printing in DA-<strong>IC</strong><br />

4. If necessary, enter a new Working Directory. The PostScript and<br />

temporary printer files are stored in the specified directory. Defaults to the<br />

location of the active schematic sheet.<br />

5. If necessary, enter a Page Width and Page Length. The default page size is<br />

8.5 x 11.<br />

6. If necessary, select Continuous Paper Roll. Select this option to avoid<br />

clipping data at the top or bottom of printout when using a continuous roll<br />

printer.<br />

7. If necessary, enter a Panel Name. Panels are used to print only a portion of<br />

a window. For more information, see “Using Panels” in this chapter.<br />

8. If necessary, select a Rotation option. The following options are available:<br />

o Best Fit - Automatically determines the data orientation, and prints<br />

either Portrait or Landscape. Selects the orientation that uses the least<br />

amount of paper. This is the default setting.<br />

o Portrait - Prints data vertically on the page.<br />

o Landscape - Prints data horizontally on the page.<br />

9. If necessary, click Color to toggle the setting. The following options are<br />

available:<br />

o Enabled - prints color<br />

o Disabled - prints in black and white. This is the default setting.<br />

10. If necessary, enter the Dot-Per-Inch (DPI) to print. The default is 300 DPI.<br />

11. If necessary, enter a new value for the Text Scale%. Scales the text to the<br />

specified percentage on the printout. <strong>IC</strong>print text sizing approximates what<br />

is on the display. Due to the conversion of fonts for printing, text sizing<br />

discrepancies can sometimes occur. To decrease or increase text size, enter<br />

a new value for Text Scale%. The default setting is 100%. A value of 0<br />

omits all text.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-49


Printing in DA-<strong>IC</strong> Getting Started<br />

2-50<br />

12. Specify the number of copies to print up to 99. Default is 1.<br />

13. If necessary enter any additional Printer Commands. For more<br />

information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

14. Click OK. The file is sent to the printer or saved to disk as specified. For<br />

more information, see $$icprint() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference<br />

<strong>Manual</strong>.<br />

Printing the Active Sheet with Print/Plot<br />

Use the following steps to print the active schematic sheet with Print/Plot:<br />

1. Click on the sheet to print, and select File > Print Sheet. The Print Object<br />

prompt bar displays.<br />

2. Type the printer name in the “Printer name” text box.<br />

3. If you want to override the default printer options, click the Options button.<br />

The Print <strong>Design</strong> Object dialog box displays. You can specify the site<br />

name, the number of copies, a job configuration file, the orientation, the<br />

priority, notification level, the scale, and the panel name (if you want to plot<br />

only a portion of the window). For a procedure describing how to create<br />

panels, refer to “Using Panels” in this chapter.<br />

You can change the default printer settings by specifying any or all of the<br />

printer attributes. This overrides only the default printer settings for this<br />

job. If you want to change the printer attributes for all subsequent print jobs,<br />

click Keep options. This changes the default settings to the values<br />

specified in the Print Screen dialog box.<br />

You can change the default printer settings by changing the MGC ><br />

Setup > Printer menu item. Refer to the<br />

Printer Interface Reference <strong>Manual</strong> for a description of all required and<br />

optional arguments.<br />

Note<br />

When you send a schematic to a plotter, protected objects are<br />

plotted in their unprotected color.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Using Panels<br />

Printer Configuration<br />

You may want to adjust your printer configuration for plotting DA-<strong>IC</strong> data.<br />

Depending upon how your network printers are set up, you may want to use a<br />

separate printer configuration file for DA-<strong>IC</strong>, so that it will not affect printing<br />

from other applications.<br />

Add the following lines (or modify them, if they already exist) to your printer<br />

configuration file to adjust the page offset and the line weight for buses and<br />

borders:<br />

tray_page_offset_top 1 0.25<br />

tray_page_offset_left 1 0.25<br />

## <br />

line_weight 1 1<br />

line_weight 3 7 #default=5<br />

line_weight 5 9 #default=7<br />

line_weight 7 11 #default=9<br />

Using Panels<br />

You define panels to plot particular areas of symbol or schematic windows. The<br />

panel area is defined by the coordinates of a rectangular region. Panels can be<br />

large or small, and they may overlap.<br />

Adding Panels<br />

To create a panel in a Symbol or Schematic Editor window, perform the following<br />

steps:<br />

1. Place the cursor in the Symbol or Schematic Editor window in which you<br />

want to create a panel, and click the center mouse button.<br />

2. Execute the Add > Panel > Add Panel menu item. The Add Panel prompt<br />

bar displays.<br />

3. Type the panel name in the “Panel Name” text box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-51


Using Panels Getting Started<br />

2-52<br />

4. If you want to replace a previously defined panel with the same name you<br />

specified, click the left mouse button on the choice stepper button to select<br />

the “replace” switch.<br />

5. Click the left mouse button on the “Panel Area” button.<br />

6. Position the cursor at one corner of the panel. Click and drag the left mouse<br />

button until a dynamic rectangle is created which defines an area of the<br />

sheet.<br />

7. Release the mouse button.<br />

Viewing Panels<br />

To view and center the current panel in a Symbol or Schematic Editor window,<br />

perform the following steps:<br />

1. Activate the edit window of the panel you want to view. Execute the<br />

View > Panel > View Panel menu item. The View Panel prompt bar<br />

displays.<br />

2. Type the panel name in the Panel Name text box, then click OK.<br />

Viewing and Hiding Panel Borders<br />

To view panel borders in a Symbol or Schematic Editor window, perform the<br />

following steps:<br />

1. Place the cursor in the Symbol or Schematic Editor window in which you<br />

want to view a panel and its border, and click the center mouse button.<br />

2. Execute the View > Panel > Show Panel Border > All Panels On Sheet<br />

menu item to view all panel borders on the sheet. Execute the View ><br />

Panel > Show Panel Border > By Panel Name menu item to view a panel<br />

by name.<br />

3. Type the panel name in the Panel Name text box, then click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Using Panels<br />

To hide panel borders, perform the following steps:<br />

1. Execute the View > Panel > Hide Panel Border > All Panels On Sheet<br />

menu item to view all panel borders on the sheet. Execute the View ><br />

Panel > Hide Panel Border > By Panel Name menu item to view a panel<br />

by name.<br />

2. Type the panel name in the Panel Name text box, and click OK.<br />

Deleting a Panel Definition<br />

To delete a panel definition in a Symbol or Schematic Editor window, perform the<br />

following steps:<br />

1. Place the cursor in the Symbol or Schematic Editor window from which<br />

you want to delete a panel, and click the mouse button.<br />

2. Execute the Edit > Delete > Panel menu item.<br />

3. Type the panel name in the Panel Name text box, and click OK.<br />

This deletes the definition of the panel; it does not delete objects in the panel.<br />

Creating and Printing Panels in Read-Only Mode<br />

DA-<strong>IC</strong> allows you to open a schematic sheet in read-only mode, create temporary<br />

panels, and print those panels without changing the read-only status of the sheet.<br />

The temporary panels are deleted when the schematic is closed, unless you<br />

specifically enter Edit Mode, and check and save the sheet. The procedure for<br />

creating and printing panels in read-only mode is as follows:<br />

1. Open a sheet in Read-Only mode.<br />

2. Execute the Add > Panel > Add Panel menu item. The Add Panel prompt<br />

bar displays.<br />

3. Type the panel name of the temporary panel in the “Panel Name” text entry<br />

box, then create the panel as described in the previous procedure.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-53


Using Panels Getting Started<br />

2-54<br />

4. View the panel border by executing the menu item: View ><br />

Panel > Show Panel Border > All Panels On Sheet<br />

5. Print the panel by executing the menu File > Print Sheet:<br />

6. Verify the printer name in the prompt bar.<br />

7. Click the Options... button, and enter the Panel name in the dialog box text<br />

entry area.<br />

8. Click OK on both forms.<br />

Setting up an IFF Interface to ADS Schematics<br />

DA-<strong>IC</strong> supports an interface to Agilent <strong>Design</strong> System (ADS) RF schematic<br />

format through an Intermediate File Format (IFF) translator.<br />

In order for the IFF interface to work correctly, you need to set up DA-<strong>IC</strong> to<br />

access the translator and symbol library. To access the translator and symbol<br />

library, you need access to a Mentor Graphics EN2002.1 installed software tree<br />

that is compatible with DA-<strong>IC</strong>. You can either use a Mentor Graphics combined<br />

tree that contains both DA-<strong>IC</strong> and RF <strong>Architect</strong> or separate trees.<br />

The symbol library is located at:<br />

$MGC_HOME/pkgs/pcb_rf/data/lib/mgc_adslib.tar.Z<br />

You will need to set additional Environment Variables, load necessary Libraries,<br />

and have an RF <strong>Architect</strong> License.<br />

Environment Variables<br />

In addition to the environment variables you must set to run DA-<strong>IC</strong>, set the<br />

following environment variables:<br />

Environment Variable Value<br />

ALTERNATE_MGC_HOME a Location of PCB tree<br />

DES_ARCH_PKGS_TO_LOAD ads_iff_da_ic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Getting Started Using Panels<br />

Libraries<br />

a. set only if using separate trees<br />

In order for the interface to work correctly, you must have the correct symbol<br />

library. The library is contained in the PCB tree, but it is not loaded automatically<br />

with the software. Check the software tree to make sure it contains the mgc_adslib<br />

directory. If it does not contain this directory, load this library from the software<br />

CD.<br />

RF <strong>Architect</strong> License<br />

An RF <strong>Architect</strong> license is required to use the IFF interface.<br />

Placing IFF Friendly Symbols<br />

DA-<strong>IC</strong> provides access to symbol libraries that contain parts that have equivalents<br />

in ADS. To place IFF friendly symbols:<br />

1. Select Libraries > Select RF Library-ADS Equivalents. The Select RF<br />

Library dialog box displays.<br />

2. Select the desired library and click OK. The selected library displays in the<br />

palette menu.<br />

3. Select and place the desired symbol from the palette.<br />

For information on the available libraries and symbols, refer to the RF <strong>Design</strong><br />

Tools <strong>User's</strong> and Reference <strong>Manual</strong> Supplement: Supported ADS Library<br />

Elements <strong>Manual</strong>.<br />

Writing Out an IFF<br />

To write out a schematic in IFF that is available to read into ADS, complete the<br />

following:<br />

1. Save the schematic/symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 2-55


Using Panels Getting Started<br />

2-56<br />

2. Select RF > IFF Write. The Write IFF dialog box displays.<br />

3. Enter the name of the output IFF file and click OK. The IFF file is written<br />

and placed in the same directory as the schematic. A transcript displays,<br />

detailing the actions taken by DA-<strong>IC</strong>.<br />

For more information on writing IFF, refer to the RF <strong>Design</strong> Tools <strong>User's</strong> <strong>Manual</strong>.<br />

Reading In an IFF<br />

To read in an IFF, you must be in schematic scope and have a schematic open.<br />

Complete the following:<br />

1. From the DA-<strong>IC</strong> menu bar, select RF > IFF Read. The Read IFF dialog<br />

box displays.<br />

2. Enter the name of the input file and transfer directory name and click OK.<br />

For more information on reading IFF, refer to the RF <strong>Design</strong> Tools <strong>User's</strong><br />

<strong>Manual</strong>.<br />

Setting A Default IFF Library Palette<br />

DA-<strong>IC</strong> allows you to set up and access a default palette from the Library menu. To<br />

set a palette as the default palette:<br />

1. Display the palette to set as the default.<br />

2. Select Libraries > Set Default Palette. The current palette is set as the<br />

default palette.<br />

To display the default palette:<br />

1. Select Libraries > Display Default Palette. The default palette displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 3<br />

Creating Schematics<br />

This chapter introduces the Schematic Editor and provides procedures for<br />

creating, checking, and netlisting schematics. The following topics are available:<br />

Schematic Creation Overview<br />

Schematic Editor Features<br />

Opening/Creating a Schematic<br />

Opening a Language File<br />

Setting Up the Schematic Editor<br />

Choosing and Placing Symbols<br />

Selecting and Placing Active Symbols<br />

Updating and Replacing Instances<br />

Using Repeating Instances<br />

Using Nets, Buses and Net Bundles<br />

Creating a Bus and Bus Connections<br />

Using Bus Rippers<br />

Creating a Bus Ripper Component<br />

Connecting a Bus Ripper<br />

Instantiating 1x1 Bus Ripper Automatically<br />

Using the Automatic 1x1 Bus Ripper<br />

Creating an Implicit Bus Ripper<br />

Creating an Implicit Bundle Ripper<br />

Using the netcon Component<br />

Creating and Naming a Net Bundle<br />

Ripping Members from Net Bundles<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-1


Schematic Creation Overview Creating Schematics<br />

3-2<br />

Creating Multi-Level <strong>Design</strong>s<br />

Adding Comment Text and Graphics<br />

Creating FOR, CASE, and IF Frames<br />

Checking a Schematic for Errors<br />

Saving and Registering a Schematic<br />

Navigating Multiple Page Schematics<br />

Displaying/Editing Registered Models<br />

Netlisting a Schematic<br />

Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong><br />

Schematic Creation Overview<br />

A schematic is a graphical and behavioral description of a circuit. Schematics<br />

include information about components, wiring, connectors, test points, timing,<br />

and engineering notes used by downstream applications. Schematics in DA-<strong>IC</strong><br />

may include one or more of the following components:<br />

• Symbol instances<br />

Instances of logical symbols represent anything from a simple logic<br />

function to a complete integrated circuit. An instance is a copy of a<br />

component symbol. For example: When you select a component symbol<br />

from a library and place it on your schematic, a copy of that symbol is<br />

generated and placed on the schematic. The copy of the component symbol<br />

is called an instance. The instance reflects the connectivity defined by the<br />

original component symbol. An instance is graphically represented by a<br />

symbol and can be updated by updating the original symbol. Placing the<br />

representative symbol on a schematic sheet is called instantiation.<br />

In order for an instance to be evaluated correctly, it must follow a set of<br />

connectivity rules. A full set of checks that define the proper instance<br />

connectivity is described in Appendix C, “<strong>Design</strong> Checks”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Schematic Creation Overview<br />

• Special Instances<br />

Special instance connectors are not part of the final evaluated design and do<br />

not translate into physical components. They pass connectivity information<br />

to downstream applications that use an evaluated design. They are created<br />

by adding specific Class property values to an instance. Refer to “Class<br />

Property” in chapter 7 for more information about Class properties.<br />

You may define your own special instance symbols, or use components<br />

provided in the generic_lib in DA-<strong>IC</strong>. For more information, see Appendix<br />

E, “Special Instances”.<br />

• Properties<br />

A property name is the label for a property, much like a variable name is a<br />

label for a variable in a programming language. The property value is the<br />

value associated with the name. The combination property name/value<br />

attaches to different objects in a schematic to supply more information<br />

about the object. For example, the rise time for a pin is specified by a value<br />

(for example, “10, 20, 30”) of a property name “Rise”, attached to that pin.<br />

• Nets, buses, and net bundles<br />

Nets provide pin-to-pin wiring connections between instances on a<br />

schematic sheet.<br />

A bus has the same electrical meaning as a set of individual wires collected<br />

together. Buses have a defined width, derived from the number of elements<br />

in the bus. The expression A(0:15) defines a bus with a width of 16 wires.<br />

Each wire is referenced sequentially: A(0), A(1), ..., A(15) through the<br />

array.<br />

• Comment text and Graphics<br />

Comment text and graphics, also called comments, have no electrical<br />

meaning, but add other information to the schematic sheet. For example,<br />

the border of the schematic sheet is created with comment text and<br />

graphics. Many other forms of comments can be added to the sheet. See<br />

“Adding Comment Text and Graphics” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-3


Schematic Creation Overview Creating Schematics<br />

3-4<br />

• Function Blocks<br />

Function Blocks allow you to create and reuse hierarchical design<br />

components from within a schematic. Function Blocks are created with the<br />

Schematic Editor and can consist of a schematic design as well as symbols.<br />

Once created, the Function Block can be instantiated on other design sheets<br />

and schematics. Function Blocks support both top-down and bottom-up<br />

design methodologies. For procedures to create Function Blocks, see<br />

Chapter 6, Using Function Blocks.<br />

• Frames<br />

A frame is a graphical box that encloses circuitry that is repeated or<br />

conditionally included in a final netlist by a frame expression. FOR, IF, and<br />

CASE frame expression types are described in “Frexp Property” in chapter<br />

7. Frames are used on schematic sheets only.<br />

In order for the contents of a frame to be evaluated correctly, certain<br />

connectivity rules must be followed. A full set of checks that define the<br />

proper frame connectivity is described in Appendix C, “<strong>Design</strong> Checks”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Schematic Editor Features<br />

A<br />

B<br />

C<br />

D<br />

E<br />

1<br />

1<br />

$MGC_HOME/shared/training/qsim82nwp/parts/models/fusefile.jed<br />

COUNT(11:0)<br />

OSC<br />

FINISH<br />

COMPARE(7:0)<br />

Property Values Net<br />

Figure 3-1. Schematic Sheet<br />

When you open the Schematic Editor, a set of schematic-specific palettes, popup,<br />

and pulldown menus display.<br />

Schematic Editor Features<br />

The Schematic Editor allows you to:<br />

• Instantiate components<br />

2<br />

2<br />

• Create and modify properties<br />

3<br />

3<br />

9<br />

10<br />

4<br />

74LS08<br />

U11<br />

Changed by:<br />

john smith<br />

4<br />

8<br />

Instances of Symbols<br />

PULSE<br />

C<br />

LATCH<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-5<br />

9<br />

8<br />

7<br />

6<br />

5<br />

11<br />

Date Changed:<br />

Monday, August 31, 1992<br />

5<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

PLS155<br />

P6<br />

U30 P7<br />

CK P8<br />

_OE P9<br />

P12<br />

P2 P13<br />

P3 P18<br />

P4 P19<br />

P5 P14<br />

P15<br />

P16<br />

P17<br />

Time:<br />

1:46:33 pm<br />

6<br />

6<br />

7<br />

8<br />

9<br />

12<br />

13<br />

18<br />

19<br />

14<br />

15<br />

16<br />

17<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

5<br />

4<br />

7<br />

Engineer:<br />

john smith<br />

Drawn by:<br />

john smith<br />

R&D CHK:<br />

DOC CTRL CHK<br />

MFG CTRL CHK<br />

QA CHK: REV<br />

B<br />

7<br />

A<br />

B<br />

D<br />

Comment Text and Graphics<br />

8<br />

Mentor Graphics<br />

8005 SW Creek Rd.<br />

Wilsonville, OR<br />

Size:<br />

TITLE:<br />

D<br />

design_2397<br />

Drawing Number:<br />

24<br />

8<br />

Page:<br />

1<br />

E


Opening/Creating a Schematic Creating Schematics<br />

3-6<br />

• Create and modify nets<br />

• Create and edit comment graphics and text<br />

• Set up templates for creating nets, comments, property text, grids, pages<br />

• Edit objects (moving, copying, deleting, or connecting)<br />

• Report on sheet objects' status<br />

• Check schematic sheets for errors<br />

• Save and register schematics<br />

In addition to schematic creation, the Schematic Editor allows you to:<br />

• Edit schematics in <strong>Design</strong> Context<br />

• Register, edit and select behavioral models<br />

• Netlist schematics<br />

• Set up and run design simulations<br />

• View and crossprobe design simulation results<br />

Opening/Creating a Schematic<br />

To open a schematic, click Open > Schematic on the session_palette menu. The<br />

Open Schematic dialog box prompts you for the component and schematic names.<br />

If no schematic is specified, “sheet1” of the default “schematic” model is opened.<br />

You can change the sheet name for the default model, and you can open an<br />

existing sheet in read only mode, or list the component hierarchy in a window.<br />

To browse for a component, click the Navigator button. For more information, see<br />

“Browsing for Files” in Chapter 2.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Opening/Creating a Schematic<br />

To replace the default schematic and sheet name select the Options button. The<br />

options for a new sheet are different than those for an existing sheet. Click the<br />

New Sheet button to see the “Open Schematic” Options dialog box illustrated in<br />

Figure 3-2.<br />

Open Schematic Options<br />

Component Name: $CUSTOM_PARTS/dff<br />

Available:<br />

Existing New Sheet<br />

Auto Update Mode:<br />

Auto<br />

None<br />

Clear<br />

Startup File Path:<br />

OK Reset Cancel<br />

Version...<br />

Figure 3-2. Open (new) Sheet Options Dialog Box<br />

The Open Schematic Options dialog box lists the names of available schematics in<br />

the component. You can click the left mouse button on a name in the list, or you<br />

can enter schematic name in the respective text entry boxes in the dialog box. If<br />

you hold down the SHIFT key, and select more than one sheet in the list, all<br />

selected sheets will open at the same time.<br />

By default, the most current version of a schematic (indicated by “0”) is opened; if<br />

you want an older version, enter the number in the Version box. To see which<br />

versions exist, click the Version button. If you want to execute a startup file for<br />

this sheet, click Yes for that option, and enter the file pathname.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-7<br />

0<br />

Navigator...


Opening a Language File Creating Schematics<br />

When you open an existing sheet, the Auto Update Mode allows you to specify<br />

whether instances should be updated when the sheet is opened and, if so, how the<br />

properties are merged. Click on one of the following buttons:<br />

3-8<br />

• Auto: Instance-only and Value_Modified properties are not changed; new<br />

properties on the current symbol are added to the instance.<br />

• None: Instances are not updated when the sheet is opened.<br />

• Clear: Instance-only properties are deleted; all other properties are reset to<br />

the current symbol values.<br />

For more information about how properties are updated, refer to “Updating<br />

Properties on an Instance” in Chapter 7.<br />

Opening a Language File<br />

You can open/edit VHDL, VHDL-AMS, Verilog, Verilog-A, SP<strong>IC</strong>E, HSP<strong>IC</strong>E<br />

and EldoSP<strong>IC</strong>E language files from DA-<strong>IC</strong>.<br />

Use the following steps to open a language file:<br />

1. Click Open >Language on the session_palette menu. The Open Language<br />

dialog box displays.<br />

2. Next to Source File, enter the name of the language file to open.<br />

3. Click OK.<br />

4. The contents of the language file displays in the Notepad editor.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Setting Up the Schematic Editor<br />

For more information on setting up a specific language file editor, see “Setting up<br />

a Language Model Editor” in Chapter 2.<br />

For information on using Notepad, see the Notepad for <strong>IC</strong> Flow User’s and<br />

Reference <strong>Manual</strong>.<br />

Setting Up the Schematic Editor<br />

Before you start working on a schematic sheet, you can change some or all of the<br />

default attribute settings for your schematic editing environment. Attributes such<br />

as pin spacing, grid spacing and snap, net drawing, and comment text and graphics<br />

display are all set to default settings when a new schematic sheet is opened. Menu<br />

items contained in the Setup menu set these attributes. The following procedures<br />

show you how to set up these attributes. These settings are available when the<br />

Schematic Editor window is open.<br />

Setting Grid, Pin Spacing and Snap<br />

A pattern of grid points normally displays in the editing window to assist you in<br />

drawing straight lines and finding points of reference. You can turn the grid<br />

pattern off or redefine the layout of the grid points. You can also stipulate that any<br />

object drawn snaps to the nearest grid point. Each window can have independent<br />

grid settings which allow different object placement characteristics (dynamics) for<br />

each window.<br />

To set up the grid and pin spacing and enable snap, perform the following steps:<br />

1. Activate a symbol or schematic edit window, and execute the Setup > Grid<br />

pulldown menu item. The Set Grid dialog box appears.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-9


Setting Up the Schematic Editor Creating Schematics<br />

3-10<br />

Figure 3-3. Setup Grid Dialog Box<br />

2. Enter the number of grid points to be established between pins in the Grids<br />

Per Pin text box. A value of 4 means 4 grid points within 1 pin space. A<br />

value greater than 1 defines a finer grid by placing the specified number of<br />

points between each pin spacing interval. A value less than 1 is a coarser<br />

grid, which you can use to “spread out” objects in a design. The default is 4.<br />

3. Type in the Minor Multiple text box the number of grid locations between<br />

displayed locations. Dots indicate minor multiple grid points. The default<br />

is 1.<br />

4. Type in the Major Multiple text box the number of visible grid points to be<br />

highlighted with a cross. This feature can be used to highlight pin spacing<br />

or note relative distances between various objects on the sheet. The default<br />

is 4.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Setting Up the Schematic Editor<br />

5. Click the left mouse button on the snap you want (On/Off).<br />

6. Click the left mouse button on whether to show the grid (On/Off).<br />

7. Type the pin space number in the “Pin Space” text entry box.<br />

8. Click the left mouse button on the user units (inch, cm, mm, or pin). Even<br />

though you are allowed to choose a user unit in the symbol editor, all pin<br />

spacing is measured in pin grid spaces in the Symbol Editor window.<br />

9. When the grid, pin spacing, and snap setup are complete, click OK.<br />

The number used for each grid setting must be an even divisor of 1920. If the<br />

number you specify is not a divisor of 1920, the next larger divisor will be used.<br />

Valid numbers include 1, 2, 3, 4, 5, 6, 8, 10, 12, ... Numbers not supported include<br />

7, 9, 11, 13, 14, ... If the system uses a number other than the one you specify, you<br />

will receive a warning message.<br />

Setting Net Drawing Attributes<br />

Before you begin drawing nets, you can specify how nets are graphically<br />

represented (bus width and net style) and other net drawing characteristics, such<br />

as automatic orthogonal net drawing, automatic net routing, and pin snapping.<br />

To set up the net characteristics, perform the following steps:<br />

1. Place the cursor in a Schematic Editor window, and press the mouse button<br />

to activate the window.<br />

2. Execute the Setup > Objects menu item. The Setup Objects dialog box<br />

appears in the active Schematic Editor window.<br />

3. Choose Net.<br />

The Setup Objects dialog box displays the Net selections.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-11


Setting Up the Schematic Editor Creating Schematics<br />

3-12<br />

Figure 3-4. Setup Objects Dialog Box<br />

4. Type in the Set Dot Size text box the dot size (default is 0.025 user units).<br />

5. Click on either Circle or Square to choose the dot style.<br />

6. Type in the Set Snap Angle text box the snap angle (default 45).<br />

7. Press the Set Ortho button On and the Set Snap button On, to set up<br />

orthogonal routing and pin snap.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Setting Up the Schematic Editor<br />

8. Select the Net Style (solid, dotted, long dash, short dash, centerline, and<br />

phantom) and Bus/Bundle Width (3 pixels, 5 pixels, or 7 pixels) by clicking<br />

on the appropriate buttons.<br />

9. When you turn on Auto Net Name Placement and optionally enable Auto<br />

Net Naming, net names are automatically placed when you name nets that<br />

do not already have a NET property attached.<br />

a. Type the Name Offset value in the text field.<br />

b. Type the Intent Offset value in the text field.<br />

10. If you want close-dots displayed on the sheet, press the Close Dots button<br />

On. The close-dot appears on a vertex when a non-orthogonal net segment<br />

passes so close to the vertex, that it is visually difficult to determine that<br />

they are not connected.<br />

11. If you want nets automatically routed immediately after they are drawn,<br />

press the Auto Route button On. The net router defines an orthogonal path<br />

for a connected net that avoids instance extents, comment objects, and other<br />

nets.<br />

12. When Net Setup is complete, click OK.<br />

Setting Ripper Drawing Attributes<br />

When you invoke DA-<strong>IC</strong>, implicit rippers are the default. They are not library<br />

symbols, but rather instances that look like rippers. To set the Ripper Drawing<br />

Attributes, follow these steps:<br />

1. Choose the Setup > Objects pulldown menu item.<br />

The Setup Objects dialog box appears.<br />

2. Choose Ripper.<br />

The Setup Objects dialog box displays the Ripper selections.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-13


Setting Up the Schematic Editor Creating Schematics<br />

3-14<br />

Figure 3-5. Setup Objects Ripper Dialog Box<br />

3. Select the Ripper Mode: Implicit (default), Auto, or None.<br />

4. Select the Implicit Ripper as angled or straight.<br />

5. Set the Ripper Query On or Off.<br />

6. If you want junction dots to appear where bus rippers join bus lines, press<br />

the Set Ripper Dots button On.<br />

7. Define the Autoplaced Text Height in the text box (default is 0.125 units)<br />

8. Set Auto Ripper Symbol specifies that a single bit bus rippers is placed<br />

automatically during net creation when the current net width is “1” (default<br />

wire width), and one of the input vertices falls on a net segment with width<br />

greater than “1” (default bus width is “3”). If you press the On button, you<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Setting Up the Schematic Editor<br />

also need to specify a ripper component and symbol name. The default is<br />

the 1X1 symbol of $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip.<br />

Note<br />

9. When Ripper Setup is complete, click OK.<br />

Setting <strong>Design</strong> Context Drawing Attributes<br />

To set <strong>Design</strong> Context attributes, follow these steps:<br />

1. Choose the Setup > Objects pulldown menu item.<br />

The Setup Objects dialog box appears.<br />

2. Choose <strong>Design</strong> Context.<br />

Note<br />

The specified ripper must have one BUNDLE, and one WIRE pin,<br />

evenly spaced in the X & Y direction.<br />

Changes can only be made in the menu when a schematic is open<br />

in design context.<br />

The Setup Objects dialog box displays the <strong>Design</strong> Context selections.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-15


Setting Up the Schematic Editor Creating Schematics<br />

3-16<br />

Figure 3-6. Setup Objects <strong>Design</strong> Context Dialog Box<br />

3. In the Default Annotated Property Attributes area of the menu, set the<br />

following item:<br />

a. Type in the font name you desire. Fonts and font registries for all<br />

workstations are located in $MGC_HOME/registry/fonts. The default is<br />

the “stroke” font. To change from the default, click the Menu... button<br />

to display all available choices. Select from the list displayed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Setting Up the Schematic Editor<br />

b. Type in the font height you desire. The default height is 0.1875 user<br />

units.<br />

c. Orientation: 0 is the default setting.<br />

d. Horizontal Justification: select Left, Center, or Right (left is the<br />

default setting).<br />

e. Visibility: toggle On or Off (on is the default setting).<br />

4. Click on the text vertical justification you desire (Top, Center, or Bottom).<br />

5. Click on the text transparency you desire to On or Off.<br />

6. Set the Apply Attributes To Existing Annotations? to Yes or No (no is<br />

the default setting.<br />

7. Set the Show Annotations? to Yes or No (yes is the default setting).<br />

8. Evaluate Expressions? toggle Yes or No (yes is the default setting).<br />

9. When <strong>Design</strong> Context Setup is complete, click OK.<br />

Setting Comment Drawing Attributes<br />

To set Comment attributes, follow these steps:<br />

1. Choose the Setup > Objects pulldown menu item.<br />

The Setup Objects dialog box appears.<br />

2. Choose Comment.<br />

The Setup Objects dialog box displays the Comment selections.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-17


Setting Up the Schematic Editor Creating Schematics<br />

3-18<br />

Figure 3-7. Setup Objects Comment Dialog Box<br />

3. In the Default Comment Text Attributes area of the menu, set the following<br />

item:<br />

a. Type in the font name you desire. Fonts and font registries for all<br />

workstations are located in $MGC_HOME/registry/fonts. The default is<br />

the “stroke” font. To change from the default, click the Menu... button<br />

to display all available choices. Select from the list displayed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Choosing and Placing Symbols<br />

b. Type in the font height you desire. The default height is 0.1875 user<br />

units.<br />

c. Orientation: 0 is the default setting.<br />

d. Click on the text vertical justification you desire (Top, Center, or<br />

Bottom).<br />

e. Click on the text horizontal justification you desire (Left, Center, or<br />

Right).<br />

f. Click on the text transparency you desire to On or Off.<br />

g. Click to set the restricted flipped/rotated text to On or Off.<br />

4. In the Default Comment Graphics Attributes, set the following items:<br />

a. Click on the line width you desire (1 pixel, 3 pixels, 5 pixels, or 7<br />

pixels).<br />

b. Click on the fill type you desire (Clear, Solid, or Stipple).<br />

c. Click on the line style you desire (Solid, Dotted, Long Dash, Short<br />

Dash, Centerline, and Phantom).<br />

5. When Comment Setup is complete, click OK.<br />

Choosing and Placing Symbols<br />

Component symbols are selected and placed on a schematic sheet from the library<br />

palette as follows:<br />

1. Click in a Schematic Editor window to activate.<br />

2. Click Library on the schematic_edit palette menu. The ic_library palette<br />

menu displays.<br />

3. Click the desired library. A list of the components in the selected library<br />

displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-19


Selecting and Placing Active Symbols Creating Schematics<br />

3-20<br />

4. Click the symbol you want to place.<br />

5. Move the cursor to the schematic window. The moving cursor displays,<br />

prompting you for a location to place the symbol.<br />

6. Move the cursor to display a ghost image of the symbol.<br />

7. Drag the ghost image to the desired location and click the left mouse<br />

button.<br />

Selecting and Placing Active Symbols<br />

The active symbol is the last symbol instantiated. To graphically display the active<br />

symbol, click the right mouse button on the palette menu and select Show Active<br />

Symbol Window from the popup menu. Use the following steps to place an<br />

instance of the active symbol:<br />

1. Execute the Add > Instance > Active Symbol or Active Symbol ><br />

Add Active Symbol menu item. The Place Active Symbol prompt bar<br />

displays.<br />

2. Move the cursor in the schematic window. A ghost image of the symbol<br />

appears.<br />

3. Drag the ghost image to the desired location and click the left mouse<br />

button.<br />

You can also place an instance of the active symbol by clicking the left mouse<br />

button in the Active Symbol window, dragging the ghost image to the desired<br />

location, and clicking the left mouse button.<br />

Updating and Replacing Instances<br />

The Update command lets you update a symbol instance with the newest version<br />

of the same symbol. The Replace command lets you replace a symbol instance<br />

with an instance of a different symbol, such as replacing an AND with an OR.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Updating and Replacing Instances<br />

The method used to merge current symbol properties with properties attached to<br />

instances that are updated or replaced is determined by the following switches:<br />

• -Clear<br />

• -Symbol<br />

• -Instance<br />

• -Auto<br />

These switches are described in “Property Merge Options” in Chapter 7.<br />

For example, to update some instances on a sheet using the -Instance option,<br />

perform the following steps:<br />

1. Select the instances you want to update.<br />

2. Choose the Instance > Update > Instance menu item.<br />

To update selected instances using the default property merge, choose Instance ><br />

Update. Update is also available through the Edit > Update > submenu. The<br />

default Update menu pick is Auto.<br />

To automatically update all instances on a schematic when you open a sheet,<br />

specify the desired Auto Update Mode choice on the Open Schematic dialog box.<br />

To set up your DA-<strong>IC</strong> session to perform automatic updates using a different<br />

property merge option, execute the $set_auto_update_mode() function. For<br />

example, to perform an update with the -Instance merge, type the following<br />

function:<br />

$set_auto_update_mode(@instance)<br />

If you do not want subsequently opened schematics automatically updated during<br />

the current session, type this function:<br />

$set_auto_update_mode(@noupdate)<br />

When you set the auto_update mode, that setting remains in effect for the current<br />

DA-<strong>IC</strong> session, or until you explicitly change it. If you do not specify an<br />

auto_update_mode, sheets are not automatically updated when they are read.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-21


Updating and Replacing Instances Creating Schematics<br />

The Replace command, like Update, is accessible through the Edit pulldown<br />

menu and the Instance popup menu. You can replace selected instances with the<br />

active symbol, or you can choose a replacement symbol from a library, or you can<br />

enter the pathname of the replacement symbol in a dialog box.<br />

To replace selected instances with the active symbol, choose the Active Symbol ><br />

Replace Selected menu item. Replace Instance is also available in the Palette<br />

popup menu.<br />

To replace a selected symbol instance by choosing the replacement symbol from a<br />

library (when you do not know the pathname), perform the following steps:<br />

3-22<br />

1. Display the library that contains the desired component, as described in<br />

“Choosing and Placing Symbols” in this chapter.<br />

2. Choose the Palette > Replace Instance menu item.<br />

3. Click the left mouse button on the desired component in the library.<br />

If no instances were selected, you will be warned that the replace did not occur<br />

because no instances were selected to be replaced. Select the instance to replace,<br />

then select the replacement symbol.<br />

The Palette > Replace Instance menu item changes to Palette > Add Instance,<br />

indicating that the next component selected from a library will be instantiated on<br />

the sheet.<br />

Instance > Replace > From Library Menu and Edit > Replace > From Library<br />

Menu are used in the same manner. Select the instance to be replaced, then<br />

choose the menu item. These methods use the default replacement property merge<br />

set by the specific library menus. Mentor Graphics library menus set the default to<br />

-Clear.<br />

To replace a selected symbol instance with the active symbol, choose the desired<br />

property merge from the Instance > Replace > Active Symbol > submenu.<br />

If you know the pathname to the replacement component, select the instance(s) to<br />

be replaced, then choose Instance > Replace > Other. The Replace Instance<br />

dialog box displays for you to enter the pathname. If you want a symbol other than<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Replacing Multiple Instances<br />

the default, or a property merge other than -Clear, click the Options? YES button<br />

and enter the appropriate information.<br />

Replacing Multiple Instances<br />

Replace Instance Mode allows you to repeatedly select instances and replace them<br />

with different symbol instances from a library. You can select and replace<br />

instances continually until you exit the mode.<br />

Use the following steps to replace multiple instances using the Replace Instance<br />

Mode:<br />

1. Display the library that contains the desired symbols as described in<br />

“Choosing and Placing Symbols” in this chapter.<br />

2. Select an instance to replace on the schematic sheet.<br />

3. Choose the Edit > Replace > From Library Menu. You are now in<br />

Replace Instance Mode.<br />

4. Click the library symbol you want to replace the instance with. The instance<br />

is replaced with the library symbol.<br />

5. Select another instance on the schematic sheet and click the library symbol<br />

you want to replace the instance with. The instance is replaced with the<br />

library symbol.<br />

6. Repeat Step 5 until all instances are replaced.<br />

7. Right click on the palette menu and select Instance Replace Mode Off to<br />

exit the Replace Instance Mode.<br />

Using Repeating Instances<br />

A repeating instance is a short-hand way to specify a simple FOR Frame. A<br />

repeating instance enables you to repeat a single instance by entering a<br />

one-dimensional range in the “INST” property; for example, INST = XINST(3:0).<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-23


Using Nets, Buses and Net Bundles Creating Schematics<br />

Using this optional range in the INST property value defines the number of times<br />

the instance is repeated and how the nets are connected to each repeated instance.<br />

Connections are implied by the ratio of the dimensions of a connected wire or bus<br />

to the dimensions of the pin of the repeated instance.<br />

The system creates a FOR frame to match the expression and connectivity of the<br />

repeated instance when the sheet is written to the EDDM database. Because a<br />

FOR frame is created for a repeating instance, downstream tools are not able to<br />

tell the difference between a real FOR Frame, and the short-hand FOR Frame of a<br />

repeating instance.<br />

Repeating instances should be used only in simple cases. For more robust<br />

purposes, you should use standard FOR frames.<br />

Using Nets, Buses and Net Bundles<br />

A net is the fundamental unit of connection. A net with a single connection is<br />

called a wire. A net composed of a set of wires is called a bus. And a net<br />

composed of a group of wires and buses is called a net bundle.<br />

Nets bind instances of symbols together at their pin locations through multiple<br />

hierarchies of the design. Nets on the same sheet, and different sheets in the same<br />

schematic (having the same name), are automatically tied together. A single net<br />

can not have the same name as a bus or bundle. For example, naming a single net<br />

DATA and a separate bus DATA(4:0) is not allowed. Proper net connectivity is<br />

defined by a set of checks, described in Appendix C, “<strong>Design</strong> Checks”.<br />

Bus’ have the same electrical meaning as a set of individual wires collected<br />

together. Buses have a defined width, derived from the number of elements in the<br />

bus. The expression A(0:15) defines a bus with a width of 16 wires. Each wire is<br />

referenced sequentially: A(0), A(1), ..., A(15) through the array.<br />

Net bundles are a means of collecting a set of signals into a logical unit in a single<br />

schematic. Net bundles cannot span the design hierarchy. Proper net bundle<br />

connectivity is defined by a set of checks, described in Appendix C, “<strong>Design</strong><br />

Checks”.<br />

3-24<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Using Nets, Buses and Net Bundles<br />

Drawing and Routing Nets<br />

Unconnected wires, buses, and pins cause warning messages when you check the<br />

schematic sheet. If you want to indicate that an unconnected wire, bus or pin is<br />

valid, use the Class Property.<br />

All input wires and buses should begin with a portin or offpag.in component from<br />

the gen_lib component library. Similarly, output nets and buses should be<br />

terminated with a portout or offpag.out component. If this is not done, warnings<br />

may result. See “Choosing and Placing Symbols” in this chapter.<br />

To draw a net, perform the following steps:<br />

1. Click on the schematic_edit [Add] Wire palette item, or execute the Add ><br />

Wire popup menu item. The Add Wire prompt bar displays on the screen,<br />

prompting you to select the beginning net vertex location.<br />

2. Position the cursor where the net is to begin (usually, at an instance pin<br />

location). Click the left mouse button. This is the start of the net segment,<br />

and is identified by the moving pointer.<br />

3. Move the cursor to where the net segment is to end, and click the left mouse<br />

button. The net segment is created from the start point to the one you just<br />

specified; notice that the moving pointer moves to the end of the new net<br />

segment.<br />

4. To continue the net, move the cursor to the vertex, and click the left mouse<br />

button. You can continue net to as many points (vertices) as necessary.<br />

Notice, at each net vertex there is a small hollow dot.<br />

5. To complete a net, double-click the left mouse button.<br />

The Add Wire prompt bar is still displayed. Follow steps 1 – 5 to add more net<br />

segments.<br />

To exit from the Add Wire mode, click the Cancel button on the prompt bar. As<br />

you create net segments, and before the net is unselected, they can be deleted with<br />

the Delete key or the Backspace key.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-25


Using Nets, Buses and Net Bundles Creating Schematics<br />

Automatic Net Routing<br />

When automatic routing is turned on, the Route command is automatically called<br />

after each net is drawn.<br />

The net router defines an orthogonalized pathway for a connected net that avoids<br />

instance extents, comment objects, and other nets. The net router utilizes the pin<br />

snap grid as the routing grid. If net vertices are not on the grid, they are not routed.<br />

Routing performance is faster if the pin snap grid is set to a value larger than one<br />

pin interval during the route operation, and then set back for component<br />

instantiation.<br />

To set up automatic net routing, perform the following steps:<br />

3-26<br />

1. Activate the schematic window by clicking in an open schematic design.<br />

2. Choose the Setup > Objects... menu item.<br />

3. Choose the Nets button.<br />

4. Enable Auto Route On by clicking the ON button in the lower right of the<br />

Setup Objects Nets dialog box. Nets are now automatically routed as<br />

drawn.<br />

Connecting and Disconnecting Net Vertices<br />

After moving or copying objects, you may need to change some net connections.<br />

A not-dot on a vertex indicates that not all segments passing through the vertex<br />

are connected, even though they appear to be connected.<br />

• To force connections for an instance or an area, select the instance or area,<br />

then choose the Edit > Connect > Connect Selected menu item.<br />

• To force connections at all not-dot locations on a sheet, choose the Edit ><br />

Connect > Connect All menu item. The not-dots disappear, indicating<br />

there is an electrical connection. DA-<strong>IC</strong> replaces the not-dots with junction<br />

dots at overlapping net segments.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Using Nets, Buses and Net Bundles<br />

• To disconnect nets, choose the Edit > Disconnect > Selected Area, or<br />

Edit > Disconnect > Disconnect All, or Edit > Disconnect > Disconnect<br />

Area: menu item.<br />

Understanding Basic Pin, Bus, and Net Naming<br />

Syntax<br />

A net name is defined by selecting the net vertex and adding a Net property with a<br />

string value that becomes the net name. A discussion about property name/value<br />

restrictions can be found in “Property Name/Value Restrictions” in Chapter 7,<br />

Using Properties.<br />

Pins, wires, and buses are named using the following syntax:<br />

name = AMPLE_expression or explicit_name<br />

explicit_name=base_name[left_delimiter[dimension;...]right_delimiter...,[] ...]<br />

base_name = string with no delimiters, or slashes<br />

left_delimiter = '[', '(', or ''<br />

dimension = range...[,range]<br />

range = field or field:field<br />

field = AMPLE_expression or number<br />

The enclosed left and right brackets denote an optional block. The “...” characters<br />

denote an optional repeating block.<br />

• AMPLE_expression must comply with AMPLE syntax and evaluate to a<br />

valid explicit_name.<br />

• explicit_name is the base_name of the pin or net (bus), plus an optional<br />

array description. The base_name can be any legal name allowed in <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong>. No space is allowed between the base_name and the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-27


Using Nets, Buses and Net Bundles Creating Schematics<br />

3-28<br />

delimiters. If an array is specified, delimiters (square brackets or<br />

parentheses) are required.<br />

• base_name is a text string with no delimiters or slash characters.<br />

• dimension defines an array of nets delimited by either brackets,<br />

parentheses, or angle brackets. Multiple dimensions can be defined inside a<br />

set of delimiters and separated by a semicolon.<br />

The following list describes some array descriptions for single and multiple<br />

dimensional arrays:<br />

• (2) -- Defines a single pin or net labeled “2”.<br />

• (0:15) -- Defines an array of pins or nets labeled “0”, “1”, and so on, up<br />

to “15”.<br />

• (1,3,5,7) -- Defines an array of pins or nets labeled “1”, “3”, “5”, and<br />

“7”.<br />

• (0:2; 0:2) -- Defines a two-dimensional matrix with array elements<br />

labeled “0,0”, “1,0”, “2,0”, “0,1”, “1,1”, “2,1”, “0,2”, “1,2”, and “2,2”.<br />

For information on ripping bits from a two-dimensional bus, refer to<br />

“Special Instances” in this chapter.<br />

Naming Nets<br />

You can name one or more selected nets by clicking on the schematic_edit palette<br />

[Name] Net palette item, or by choosing the Net > Name Nets popup menu item.<br />

A net must be selected (not a vertex). A prompt bar displays as follows:<br />

• If there is no Net property on the net, you are prompted to add one.<br />

• If there is already a Net property on one of the vertices, you are prompted<br />

for a new Net property value.<br />

• If there is already a Net property, but it is not attached to any of the selected<br />

vertices, you are prompted to place another Net property of the same value<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Using Nets, Buses and Net Bundles<br />

on one of the selected vertices. If you want, you can change the current<br />

property value at the same time.<br />

In all cases, the Net property is added to only one of the selected vertices.<br />

Changing Net Names<br />

A net should always terminate at a component pin or connect with another net at a<br />

junction. The components portin, portout, offpag.in, and offpag.out provide net<br />

termination. By default, the portin and portout symbols assign the name NET to<br />

an unnamed net when attached. If two nets have the same name, the simulator sees<br />

them as being connected.<br />

Use the following steps to change a net name:<br />

1. Select the net.<br />

2. Select Name > Net on the schematic_edit palette menu.<br />

3. When the prompt bar appears on the screen, type in the new value.<br />

4. Click OK on the prompt bar.<br />

The new net name displays at the same location.<br />

Renaming all Segments of a Net<br />

Use the following steps to select and rename all the segments of a net:<br />

1. Select all the nets with the same name. For more information, see<br />

“Selecting all Nets with the Same Name” in chapter 2.<br />

2. Select Name > Net on the schematic_edit palette menu. A prompt bar<br />

displays.<br />

3. Enter the new name in the New Value field.<br />

4. Click OK on the prompt bar. The new name displays on the net.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-29


Using Nets, Buses and Net Bundles Creating Schematics<br />

Moving Net Names<br />

Sometimes, after placing a net property value on the sheet, you may decide that<br />

you want it somewhere else. To save the effort of deleting the property and adding<br />

a new one, you can move the net property text value by completing these steps:<br />

3-30<br />

1. Place the cursor on the text you want to move.<br />

2. Press F7 (Select Text and Move) and hold it down. Notice that you do not<br />

have to select the text beforehand; this is done automatically for you.<br />

3. A ghost image of the text outline displays when the mouse is moved. Move<br />

the mouse until the text is positioned where you want it.<br />

4. Release F7 (Select Text and Move) to lock in the new position of the text.<br />

The net property text value is now in its new location.<br />

Terminating a Dangling Net<br />

All input nets and buses should begin with a portin or offpag.in component from<br />

the gen_lib component library or any other component with a Class = “P” or Class<br />

= “O” property value. Similarly, output nets and buses should be terminated with<br />

a portout or offpag.out component. If this is not done, warnings can result.<br />

See “Choosing and Placing Symbols” in this chapter for details about how to<br />

place these components onto your schematic.<br />

See “Assigning Properties” in chapter 7 for details on how to add property values.<br />

Declaring Dangling Nets and Pins<br />

You can specify that a dangling net vertex or instance pin is valid and should not<br />

be reported by the Check command when you check the schematic. You do this by<br />

attaching the Class property with a value of “dangle” to any unconnected net, bus,<br />

or instance pin that you want the Check command to recognize as valid.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus and Bus Connections<br />

When you attempt to add the Class property to a pin or net, you may receive the<br />

following error message:<br />

// Warning: Added 0 properties (1 failed for bad owners)<br />

(from: Capture/gdc/warning B6)<br />

If this occurs, use the Set Property Owner command to declare pins and/or nets as<br />

valid owners of the Class property, then add the property to the pin or net.<br />

Creating a Bus and Bus Connections<br />

Buses let you represent multiple nets without drawing them individually. This<br />

increases drawing speed, reduces space requirements, and increases readability.<br />

Figure 3-8 shows a typical bus: four inverters connected into a bus for a set of<br />

output nets.<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

Figure 3-8. A Bus Connected to a Four-Wide Output Port<br />

The following topics describe procedures that demonstrate:<br />

• How to create and represent buses<br />

1<br />

2<br />

3<br />

Out(0:3)<br />

• How to run individual lines from the bus through the use of bus rippers<br />

Information is also presented on the use of the netcon component, which is used to<br />

connect two nets that have different Net property values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-31


Creating a Bus and Bus Connections Creating Schematics<br />

Creating a Bus<br />

You create a bus by assigning a net name that defines an array of nets. For<br />

example, a bus could use the following naming conventions:<br />

“bus_net_name(msb:lsb)”<br />

3-32<br />

• bus_net_name is the name of the net that represents the bus. It can be any<br />

legal name allowed in DA-<strong>IC</strong>. No space is allowed between the name of the<br />

bus net and the parenthesis, and the parenthesis is required. An example of<br />

a bus name is address.<br />

• msb is the most significant bit of the bus. No spaces are allowed between<br />

the msb, the first parenthesis, and the bus_net_name. The colon must<br />

follow the most significant bit, with no intervening spaces.<br />

• lsb is the least significant bit of the bus. The final parenthesis follows the<br />

least significant bit of the bus.<br />

Downstream applications such as <strong>Design</strong> Viewpoint Editor-<strong>IC</strong> (DVE-<strong>IC</strong>) and<br />

AccuSim II interpret buses based on bit ordering; the bit appearing first is<br />

considered to be the msb (that is, “0:7” labels bit 0 as the msb, whereas “7:0”<br />

labels bit 7 as the msb).<br />

When DA-<strong>IC</strong> compares or evaluates values on a bus, it scans the range of bit<br />

values from left to right. You can arrange your wires in ascending order (from left<br />

to right), or you can arrange your wires in descending order (from left to right).<br />

Regardless of the way you number the wires in your bus, you must always be<br />

consistent within your design. Portions of the same bus must always have its wires<br />

arranged in the same order.<br />

When you name buses, keep the following limitations in mind:<br />

• The least significant bit and most significant bit must be non-negative.<br />

• No suffix is allowed following a right parenthesis. Therefore, net name<br />

A(10) is legal, but name A(10)IN is illegal. If such suffixes are<br />

encountered, the Check command reports an error.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus and Bus Connections<br />

An example of a full bus name is address(31:0). This name represents the<br />

following:<br />

• A bus whose name is address<br />

• A bus whose wires range from 31 to 0 (zero)<br />

Again, the ordering of the bits is a convention that you establish within your<br />

schematic. DA-<strong>IC</strong> only checks that the bus lines define legal limits and numbers.<br />

To create a bus from a net, perform the following steps:<br />

1. Draw the bus:<br />

a. Click on the schematic_edit pallet [Add] Bus/Bundle palette item, or<br />

choose the Add > Bus/Bundle popup menu item.<br />

b. Press the left mouse button at the start location for the bus.<br />

c. Move the mouse cursor to the end location of the bus, and double-click<br />

the left mouse button.<br />

d. Click Cancel on the prompt bar to terminate the Add Bus command.<br />

2. Name the bus:<br />

a. Select a vertex on the bus segment by clicking the left mouse button on<br />

one of the vertices.<br />

b. Click the Net > Name Nets > [Properties] Add popup menu.<br />

The Add Multiple Property dialog box displays.<br />

c. Type “Net” in the Property Name text box.<br />

d. Select “NET” in the Existing Properties Names list.<br />

e. Type the name that defines the bus in the Property Value text box.<br />

f. Press OK. See Figure 3-9.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-33


Creating a Bus and Bus Connections Creating Schematics<br />

3-34<br />

Figure 3-9. Add Multiple Properties Dialog Box<br />

g. Move the cursor in the schematic window. Press the left mouse button,<br />

and drag the property name text to the location to where you want it<br />

displayed. Release the mouse button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus and Bus Connections<br />

Using Multi-Dimensional Buses<br />

The expression B(0:2;0:2) defines a 2-dimensional bus which is a 3 X 3 matrix as<br />

shown in Figure 3-10:<br />

Figure 3-10. A Multi-Dimensional Bus<br />

The following are two more examples of multi-dimensional buses:<br />

A(2,5;1:4) is a 2 X 4 matrix with the following eight wires: A(2;1), A(2;2),<br />

A(2;3), A(2;4), A(5;1), A(5;2), A(5;3), A(5;4).<br />

Z(0:1;0:1;0:1) is a 2 X 2 X 2 matrix with the following eight wires: Z(0;0;0),<br />

Z(0;0;1), Z(0;1;0), Z(0;1;1), Z(1;0;0), Z(1;0;1), Z(1;1;0), Z(1;1;1).<br />

!<br />

Caution<br />

B(0:2;0:2)<br />

B(0;0) B(0;1) B(0;2)<br />

B(1;0) B(1;1) B(1;2)<br />

B(2;0) B(2;1) B(2;2)<br />

Downstream applications using the DFI procedural interface (for<br />

example, Board layout applications) may not be able to recognize<br />

and utilize multi-dimensional buses, such as A(0:7;0:7), since they<br />

consider a multi-dimensional bus to be a single net joining all<br />

attached pins.<br />

Representing a Bus Graphically<br />

To increase the readability of your schematic, you can represent buses with<br />

different graphical rendering (line width and style). The default bus width is three<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-35


Using Bus Rippers Creating Schematics<br />

pixels, and the default style is solid. To change the graphical rendering for the bus,<br />

perform the following steps:<br />

3-36<br />

1. Click the left mouse button on the bus graphic to select it.<br />

2. To change the graphical rendering for the bus width, select the desired<br />

Net > Change Net > Width > 1 pixel | 3 pixels | 5 pixels | 7 pixels menu<br />

item.<br />

3. To change the graphical rendering for the bus style, select the desired<br />

Net > Change Net > Style > Solid | Dot | Long Dash | Short Dash menu<br />

item.<br />

Using Bus Rippers<br />

On a schematic sheet, you may be required to run individual lines from the bus to<br />

either another bus or a component. To accomplish this on your schematic, you<br />

need a special component called a bus ripper. A bus ripper connects individual<br />

lines or sub-buses from a source bus to a destination wire, bus, or device pin in a<br />

precise order.<br />

The bus ripper has a Class property value of “R”, indicating that the component is<br />

used to extract a range of lines from a bus (see Table 7-4, “Structured Logic<br />

<strong>Design</strong> Properties” in Chapter 7).<br />

The following topics provide information about the bus ripper component, and<br />

directions for connecting a bus ripper to a DRAM with eight data pins.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus Ripper Component<br />

Creating a Bus Ripper Component<br />

You can find the bus ripper component in $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip.<br />

Figure 3-11 shows a bus ripper for connecting eight wires to a bus. Figure 3-11<br />

represents only one type of bus ripper (8x1); many other types are also available.<br />

R<br />

R<br />

R<br />

R<br />

R<br />

Figure 3-11. A 8x1 Bus Ripper from $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip<br />

Table 3-1 describes the variations of the bus ripper that are available:<br />

Table 3-1. Available Bus Rippers in $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip<br />

Symbol<br />

Name<br />

Description<br />

1X1 1 wire wirex 1 grid<br />

1X2 1 wire x 2 grids<br />

1X3 1 wire x 3 grids<br />

1X4 1 wire x 4 grids<br />

1r1 1 wire x 1 grid, rounded corner<br />

1r2 1 wire x 2 grids, rounded corner<br />

2X1 2 wires x 1 grid<br />

3X1 3 wires x 1 grid<br />

4X1 4 wires x 1 grid<br />

8X1 8 wires x 1 grid<br />

16X1 16 wires x 1 grid<br />

To select and activate an instance of a bus ripper symbol on a schematic sheet,<br />

perform the following steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-37<br />

R<br />

R<br />

R


Creating a Bus Ripper Component Creating Schematics<br />

3-38<br />

1. Click the left mouse button on the Library palette item. This displays the<br />

various libraries available.<br />

2. Click the left mouse button on “Generic Lib” in the library palette. This<br />

displays the components in $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB.<br />

3. Scroll down the component names until you see “Bus Rippers”. Click on<br />

the Bus Rippers palette item, and DA-<strong>IC</strong> displays the list of bus ripper<br />

symbol names shown in Table 3-1.<br />

4. Click on the name of the desired symbol. The Place Active Component<br />

prompt bar displays.<br />

5. Move the cursor to the schematic window. Press the left mouse button and<br />

hold. A ghost image of the symbol displays. Drag the ghost image to the<br />

desired location, and release the mouse button.<br />

Each bus ripper pin owns a Rule property. This property tells you which lines to<br />

extract from a “source” bus. Figure 3-11 shows each bus ripper pin having this<br />

property, as identified by the series of eight “R” characters. The Rule property,<br />

called the “Ripping Rule,” identifies the bus lines that the ripper taps.<br />

When the bus ripper is first instantiated, each Rule property is set to a default<br />

value of “R”. You must change this property to identify what line or lines of the<br />

source bus are connected to an attached net, pin, or sub-bus. For example, if you<br />

change the Rule property to “1”, then any pin or net attached to that ripper is<br />

connected to the “number one” wire of the bus. You must not leave the Rule<br />

property unchanged, or you will produce an error when you check the sheet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus Ripper Component<br />

Each bus ripper component has at least two pins: the “wire” end and the “bundle”<br />

end. Figure 3-12 shows a 1x1 bus ripper illustrating the wire end, the bundle end,<br />

and the Rule property.<br />

Wire End --><br />

R<br />


Creating a Bus Ripper Component Creating Schematics<br />

Figure 3-13 shows how the bundle and wire ends must be connected to a bus. The<br />

bundle end must be connected directly to the bus you want to tap.<br />

3-40<br />

Wire<br />

O<br />

Bundle end<br />

extends towards<br />

bus<br />

Bus Installation<br />

BUS(0:7)<br />

If a bus is installed backward, you will receive<br />

an error when a Check command is executed.<br />

Figure 3-13. Installing a Bus Ripper<br />

BUS(0:7)<br />

Bus rippers allow you to tap the entire source bus or a specific range of wires.<br />

That is, bus rippers are not restricted to tapping only single wires. Figure 3-14<br />

shows an example of a bus NETS(3:0), created by bundling individual wires, and<br />

a sub-bus called STROBES(127:126) branching off a larger bus. Bus ripper<br />

components from $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB are used in both cases.<br />

The STROBES bus taps the bus wires NETS(3) and NETS(2) (which are the same<br />

as the wires named QB and Q, respectively), and assigns them to STROBES(127)<br />

and STROBES (126). Therefore, the following wires are equivalent:<br />

Wire<br />

Yes No<br />

QB = NETS(3) = STROBES(127) and Q = NETS(2) = STROBES(126)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating a Bus Ripper Component<br />

CLK<br />

CLR<br />

Q<br />

o<br />

o<br />

o<br />

QB o<br />

0<br />

1<br />

2<br />

3<br />

Bus Rippers<br />

NETS(3:0)<br />

STROBES(127:126)<br />

Figure 3-14. A Bus with a Connected Sub-Bus<br />

You must alter the Rule property in a special manner when you run a group of<br />

wires from a source bus. Figure 3-15 illustrates the following rules for connecting<br />

sub-buses through the use of a bus ripper:<br />

• The Rule property value specifies a range of wires to be extracted. You can<br />

use the following methods to identify which wires you want to tap:<br />

a. The Rule property value follows the range of nets to be ripped. The<br />

range format “bus_line1:bus_line2” represents the beginning and<br />

ending wires of a range of wires to be tapped. The colon must be<br />

present between the numbers, with no intervening spaces. For example,<br />

0:10 is a legitimate way to specify that you want to tap the first to<br />

eleventh wires of the bus as a range.<br />

b. The Rule property value can specify a group of non-sequential wires by<br />

the format “wire, wire, [wire]”; “wire” can be any wire on the bus. If<br />

the source bus wires are in ascending order, then the order of the tapped<br />

wires must be in ascending order. If the source bus wires are in<br />

descending order, then the order of the tapped wires must be in<br />

descending order. Here are legitimate examples: 0, 3, 6, 9 or 8, 6, 3.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-41<br />

3:2


Connecting a Bus Ripper Creating Schematics<br />

3-42<br />

c. The Rule property value can mix single wires with a range of wires.<br />

Here are legitimate examples: 0, 3, 5:12 or 20:10, 7<br />

d. The Rule property can be parameterized, allowing the same schematic<br />

sheet to be used in different designs which require different wires to be<br />

extracted from a bus. Here is an example of a parameterized Rule<br />

property: w, x, y, z.<br />

In this example, a value must be supplied, using the Add Parameter<br />

command for each parameter in DVE-<strong>IC</strong>. A value can be supplied in DA-<br />

<strong>IC</strong> with the Set Parameter command. If no value is supplied to the<br />

parameter in DA-<strong>IC</strong>, a warning message “undefined parameters” occurs<br />

when the schematic is checked.<br />

• The most significant bit and the least significant bit must match. If you<br />

always put the least significant bit first when you name a bus, you must<br />

continue to follow that convention. The same holds true if your naming<br />

convention puts the most significant bit in the first position of the bus name.<br />

3, 0<br />

The Rule property designates the MSB of the<br />

NETS bus to go to bit 127 of the STROBES<br />

bus. The LSB goes to bit 126.<br />

Figure 3-15. A Bus Ripper Extracts a Range of Lines<br />

Connecting a Bus Ripper<br />

The following steps show you how to connect the address pins of a 4164_20<br />

DRAM to an 8x1 bus ripper, and then how to connect the bus ripper to a bus.<br />

3<br />

QB<br />

NETS (3:0)<br />

STROBES (127:126)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Connecting a Bus Ripper<br />

1. Place the source bus, address(7:0), an 8x1 bus ripper component, and the<br />

DRAM component onto your schematic sheet, as shown in Figure 3-16.<br />

address(7:0)<br />

Figure 3-16. Basic Layout<br />

2. Flip the bus ripper component vertically, by first selecting the bus ripper<br />

component and then executing the Instance > Flip > Vertical popup menu<br />

item. To flip and also move the bus ripper, execute the Instance ><br />

Move > Flipped > Vertical popup menu item.<br />

3. Draw a net segment between the wire end of each separate bus ripper to a<br />

pin on the memory component. To draw a net segment from the top-most<br />

pin on the bus ripper to the top-most pin on the memory component,<br />

perform the following steps:<br />

a. Select Add > Wire from the Add popup menu.<br />

b. Click the left mouse button on the bus ripper pin.<br />

c. Move the cursor to the corresponding pin on the memory component,<br />

and double-click with the left mouse button.<br />

d. Repeat steps b and c for all the bus ripper pins.<br />

R<br />

e. Click Cancel in the prompt bar.<br />

R<br />

R<br />

R<br />

R<br />

R<br />

R<br />

R<br />

4164_20<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-43<br />

A0<br />

A1<br />

A2<br />

A3<br />

A4<br />

A5<br />

A6<br />

A7<br />

D<br />

_RAS<br />

_CAS<br />

_W<br />

Q


Connecting a Bus Ripper Creating Schematics<br />

3-44<br />

4. Change the Rule property of each separate bus ripper pin to indicate what<br />

wire you want your DRAM pin to match. For example, if you want pin A0<br />

to connect to address(0), then you must change the Rule property value of<br />

the given bus ripper to “0”.<br />

To change the Rule property value of each individual bus ripper, perform<br />

the following steps:<br />

a. Click the left mouse button on the Schematic palette item, and select<br />

the Text palette item. The schematic_text palette displays.<br />

b. Select [Edit] Sequence Text palette item.<br />

The Sequence Text dialog box displays as shown in Figure 3-17:<br />

New Prefix<br />

New Suffix<br />

Sequence Type<br />

Auto<br />

Text will be sequenced<br />

left to right, top to bottom.<br />

Sequence Text<br />

<strong>Manual</strong><br />

Beginning Index Number 0<br />

Step By 1<br />

Choose Sequence Order...<br />

OK Reset Cancel<br />

Figure 3-17. The Sequence Text dialog box<br />

c. Type the initial index number (for this example “0”) that represents the<br />

first Rule property value in the Beginning Index Number text box.<br />

d. The Step By value determines the difference between sequenced<br />

property values. You can also specify a prefix and suffix for the<br />

property values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Connecting a Bus Ripper<br />

e. Click Auto for the Sequence Type.<br />

f. (optional) Click Choose Sequence Order... to change the sequence<br />

order.<br />

g. Click OK.<br />

h. The Select Area prompt bar displays. Move the cursor to the top of the<br />

bus ripper. Press and hold the left mouse button; move the cursor so that<br />

all the “R” property text is within the dynamic rectangle. Be sure no<br />

other property text is within the selected area, then release the left<br />

mouse button.<br />

DA-<strong>IC</strong> automatically replaces the Rule property values within the selected<br />

area. Figure 3-18 shows the memory component and the bus ripper after<br />

you complete the preceding steps. Note that all the original “R” values of<br />

each bus ripper have been changed to indicate what bus line a pin goes to.<br />

address(7:0)<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

4164_20<br />

Figure 3-18. Fully Connected Bus Ripper<br />

5. Connect the top of the bus ripper to the address(7:0) bus with a net<br />

segment. This step does not require you to perform any special actions<br />

other than connecting the bus ripper and the address bus. Table 3-2 shows<br />

how each pin relates to the address(7:0) bus.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-45<br />

A0<br />

A1<br />

A2<br />

A3<br />

A4<br />

A5<br />

A6<br />

A7<br />

D<br />

_RAS<br />

_CAS<br />

_W<br />

Q


Instantiating 1x1 Bus Ripper Automatically Creating Schematics<br />

3-46<br />

Table 3-2. Pin and Bus Line Connections<br />

Pin Name Data Bus<br />

Connection<br />

A0 address(0) 0<br />

A1 address(1) 1<br />

A2 address(2) 2<br />

A3 address(3) 3<br />

A4 address(4) 4<br />

A5 address(5) 5<br />

A6 address(6) 6<br />

A7 address(7) 7<br />

Instantiating 1x1 Bus Ripper<br />

Automatically<br />

When the ripper mode is set to “auto” using either the $set_ripper_mode()<br />

function or the $setup_ripper() function, DA-<strong>IC</strong> places a real ripper symbol. At<br />

startup, DA-<strong>IC</strong> uses the 1X1 ripper symbol from the<br />

$MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/rip component. You can change the default using the<br />

$setup_ripper() function.<br />

Using the Automatic 1x1 Bus Ripper<br />

The following steps show an example of using automatic ripper instantiation:<br />

1. Route a wire to a bus; the bus ripper is placed automatically.<br />

2. Select the bus ripper and its net.<br />

Rule Property<br />

Value<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating an Implicit Bus Ripper<br />

3. Choose Copy > Multiple from one of the popup menus. In the prompt bar,<br />

enter the number of additional ripped nets you need. For example, if you<br />

need eight bus rippers, enter “7” for the number of copies.<br />

4. Position the first copy, and click the Select (left) mouse button. The copies<br />

are created at an equal displacement.<br />

Creating an Implicit Bus Ripper<br />

When you invoke DA-<strong>IC</strong>, the Implicit ripper is the default. To place an implicit<br />

bus ripper, follow these steps:<br />

Warning<br />

1. In the schematic_edit palette, choose [Add] Wire palette item to display<br />

the Add Wire prompt bar.<br />

2. Route the wire between the bus and the object you want to connect using a<br />

single click for the beginning of the wire, and a double-click for the end of<br />

the wire. If the ripper is set for a 45-degree angle, you will need to take that<br />

into account when placing the wire.<br />

3. DA-<strong>IC</strong> displays the Choose Bus Bit dialog box, which tells you the bus<br />

name. Follow these steps:<br />

a. Beside “Bit,” enter the bit of the bus that you are ripping. You can<br />

either specify just the bit number, such as “17” from bus “data(19:0),”<br />

in which case DA-<strong>IC</strong> puts the bus name and parentheses around the bit,<br />

or you can specify the entire bus/bit name, such as “data(17).”<br />

b. Click OK.<br />

This section contains instructions for the Implicit Bus Ripper only.<br />

See “Creating an Implicit Bundle Ripper” in this chapter for<br />

instructions on creating an Implicit Bundle Ripper.<br />

4. If the wire is routed into an unnamed wide net, DA-<strong>IC</strong> displays the Name<br />

Ripped Net dialog box. Follow these steps:<br />

a. Enter the name of the wide net beside “Wide Net Name.” Using the<br />

wide net name, you can create either a bus or a bundle.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-47


Creating an Implicit Bundle Ripper Creating Schematics<br />

3-48<br />

b. Enter the name of the ripped bit beside “Ripped Net Name.” Make sure<br />

that you enter the entire name, such as “out(3)” from bus “out(7:0)”.<br />

Giving only a bit number will result in an error during a Check<br />

Schematic.<br />

c. Click OK. The Add Property To Handle prompt bar appears.<br />

d. Click the left mouse button in the appropriate location to place the new,<br />

wide net name.<br />

Creating an Implicit Bundle Ripper<br />

When you invoke DA-<strong>IC</strong>, the implicit ripper is the default. To place an implicit<br />

bundle ripper, follow these steps:<br />

Warning<br />

1. In the schematic_edit palette, choose [Add] Wire palette item to display<br />

the Add Wire prompt bar.<br />

2. Route the wire between the bundle, and the object to which you are<br />

connecting it, using a single click for the beginning of the wire and a<br />

double-click for the end of the wire. If the ripper is set for a 45-degree<br />

angle, you will need to take that into account when placing the wire.<br />

3. DA-<strong>IC</strong> displays the Choose Bundle Member dialog box. Follow these<br />

steps:<br />

a. Either select the bundle member to be ripped from the list of members,<br />

or enter the name of a bundle member in the “Bundle Member” entry<br />

field. Text that you enter will override any selections made in the list.<br />

b. Click OK.<br />

This section contains instructions for the Implicit Bundle Ripper<br />

only. See “Creating an Implicit Bus Ripper” in this chapter for<br />

instructions on creating an Implicit Bus Ripper.<br />

4. If the wire is routed into an unnamed wide net, DA-<strong>IC</strong> displays the Name<br />

Ripped Net dialog box. Follow these steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Using the netcon Component<br />

a. Enter the name of the wide net beside “Wide Net Name.” You can<br />

create either a bus or a bundle using the wide net name.<br />

b. Enter the name of the ripped bit beside “Ripped Net Name.” Make sure<br />

that you enter the entire name, such as “out(3)” from bus “out(7:0)”.<br />

Giving only a bit number will result in an error during a Check<br />

Schematic.<br />

c. Click OK. The Add Property To Handle prompt bar appears.<br />

d. Click the left mouse button (in the appropriate location) to place the<br />

new, wide net name.<br />

Using the netcon Component<br />

The net connector component $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/netcon is used to<br />

connect together two nets that possess different Net property values. In DA-<strong>IC</strong>,<br />

the result is a single net with two names. But when the schematic is evaluated, the<br />

two property values become the same.<br />

There are several occasions when you might want to use the netcon component.<br />

For example, you might be copying a portion of an earlier schematic into the one<br />

you are currently working on, and find a mismatch in the names of some of the<br />

wires on the two designs (for example, you named the reset line “Reset” on one<br />

design, and “Rst” on the other). By connecting the appropriate nets together with<br />

netcon, you can avoid changing either of the Net property values.<br />

Note<br />

Although use of netcon may be convenient at times, if it is used too<br />

often, the time spent in evaluating the design can increase<br />

dramatically.<br />

Creating and Naming a Net Bundle<br />

You can create a net bundle by adding a Net property to a wide net. The value of<br />

the Net property must include a comma-separated list of nets, buses, and/or other<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-49


Creating and Naming a Net Bundle Creating Schematics<br />

net bundles. Specifically, net bundle syntax requires a list to be enclosed in curly<br />

braces “{}”; for example, “{ground,clk,data(15:0)}.”<br />

A member of a net bundle is defined as a net, bus, or nested bundle contained in<br />

the list of a net bundle. If a bundle includes a nested bundle, the members of the<br />

nested bundle must be enclosed within curly braces. For example:<br />

“{clk,data(15:0),{ground,out(15:0)}}.”<br />

A net bundle list can be preceded by a bundle name, such names cannot be<br />

expressions or include parentheses, square brackets, curly braces, or slashes. For<br />

example: “BUND{ground,clk,data(15:0)}.”<br />

You can refer to an existing bundle without (again) listing its members by using<br />

the bundle name and empty curly braces, but only if the full list of members have<br />

been defined elsewhere on the sheet or on another sheet of the schematic. For<br />

example, “BUND{}” identifies the same net bundle as<br />

“BUND{ground,clk,data(15:0)}” within the same schematic.<br />

A net bundle definition can span multiple sheets of a schematic. You create a net<br />

bundle using the following steps:<br />

3-50<br />

1. Draw a wide net on a sheet.<br />

2. Select the new net.<br />

3. Use the schematic_edit palette [Name] Net item to name the net using<br />

bundle syntax within the value of the Net property.<br />

You can edit a net bundle by changing the value of the Net property. Errors caused<br />

by editing the syntax of a net bundle are identified only when the sheet or<br />

schematic is checked. For more information on creating properties, refer to<br />

“Assigning Properties” in chapter 7.<br />

Net bundles have the following characteristics:<br />

• A net bundle can contain nets, buses, and other net bundles.<br />

• A net can be contained within different net bundles.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating and Naming a Net Bundle<br />

• Only one net bundle in a schematic needs to list the contents; all other<br />

occurrences of the net bundle can use the bundle name followed by “{}”.<br />

• The contents of all occurrences of a named net bundle in a schematic must<br />

be the same; there cannot be two net bundles of the same name in the same<br />

schematic, but containing different members.<br />

• A net that is a member within a bundle is the same as the net by itself; a new<br />

net is not created when it is placed in a bundle.<br />

• A net bundle can have properties. However, the properties on a net bundle<br />

are not propagated to the individual members, since a net or bus can be in<br />

multiple net bundles, and there is no way to determine which property<br />

should be used if a conflict occurs.<br />

• The order in which the members are specified in a net bundle defines their<br />

position. Two declarations of the same net bundle, where the members are<br />

listed in a different order, will produce an error when the sheet is checked.<br />

• The position of a member in a net bundle is important when connecting to<br />

pins.<br />

• A net can appear more than once in a single net bundle.<br />

• A net can be ripped more than once from a net bundle.<br />

• A net bundle can connect to pin bundles or wide pins. The connection<br />

between the members in a net bundle, and the members in a pin bundle or a<br />

wide pin, is mapped by position.<br />

• A net bundle can be connected through a Net Connector to another net<br />

bundle of the same width, or to a bus of the same width.<br />

• The width of a net bundle is the total number of individual nets and bus bits<br />

in the bundle. If a net bundle contains a bus, the bits of the bus are counted<br />

in the width, but not the bus itself. The same is true for the elements of a net<br />

bundle included in another net bundle.<br />

• The width of the net bundle must match the width of a connecting pin<br />

bundle or wide pin.<br />

• A net bundle name cannot be a parameterized expression.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-51


Ripping Members from Net Bundles Creating Schematics<br />

3-52<br />

• Nets are ripped by name from a net bundle; the ripped net must exist in the<br />

net bundle.<br />

• A net bundle can contain parameterized buses.<br />

• The name of a bundle member must be explicit; names generated through<br />

evaluating an AMPLE expression are not allowed.<br />

Note<br />

Ripping Members from Net Bundles<br />

You can rip members from net bundles by name, which is similar to ripping bits<br />

of a bus by bit position. To rip a member of a net bundle, follow these steps:<br />

1. Choose the schematic_edit [Add] Wire palette item to display the Add<br />

Wire prompt bar.<br />

2. Connect the net bundle and the object to which the new wire leads; the<br />

Choose Bundle Member dialog box appears.<br />

3. Choose a member from the list or enter the name of the member you want<br />

to rip from the bundle beside “Bundle Member”.<br />

4. Click OK.<br />

Net bundles are named using the entire Net property. Thus the net<br />

bundle “B{x,y}” is named “B{x,y}”, whereas the bus “B(3:0)” is<br />

named “B”.<br />

The name of the ripped bundle member appears beside the wire and is now<br />

the value of the Net property for that wire. Figure 3-19 illustrates the<br />

Choose Bundle Member dialog box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

Figure 3-19. Choose Bundle Member Dialog Box<br />

Creating Multi-Level <strong>Design</strong>s<br />

The following topics contain some of the procedures used for schematics that<br />

have multiple sheets and/or multiple levels of hierarchy. For information on<br />

viewing a design hierarchy, see “Viewing <strong>Design</strong> Hierarchy” in Chapter 9.<br />

i<br />

Choose Bundle Member<br />

Members on attached bundle:<br />

Clk<br />

gnd<br />

data(19:0)<br />

Bundle Member:<br />

OK Reset Cancel<br />

All non-primitive instances must be associated with a model.<br />

Instances of symbols cannot contain references to itself.<br />

Creating a Schematic-Based Block<br />

Schematic-based blocks are helpful when creating top-down designs. A<br />

schematic-based block is a symbol (usually rectangular) that represents a high<br />

level of functionality. You can create lower-level descriptions for each block.<br />

Use the following steps to create a schematic-based block:<br />

1. Create comment graphics by clicking the left mouse button on the<br />

schematic_edit [Add] Rectangle pallet item.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-53<br />

Clk


Creating Multi-Level <strong>Design</strong>s Creating Schematics<br />

3-54<br />

2. Press the left mouse button to specify one corner of the rectangle, hold the<br />

button down as you move the cursor to the diagonally opposite corner of the<br />

rectangle, then release the mouse button.<br />

3. Add pins by choosing the [Add] Pin palette item.<br />

4. Add properties to the comment graphics.<br />

5. Select the comment graphics, property text, and pins.<br />

6. Execute the Edit > Make Symbol menu item.<br />

The Make Symbol dialog box displays for you to enter a component name,<br />

and (optionally), a symbol name and interface name. See Figure 3-20.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

Figure 3-20. Generate Symbol Dialog Box<br />

7. After you click OK, the newly-created symbol is checked. If it passes the<br />

required checks, the symbol is saved, and automatically registered with the<br />

default interface. The symbol is then instantiated on the sheet, replacing the<br />

comment graphics and symbol pins. Make Symbol is described in the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-55


Creating Multi-Level <strong>Design</strong>s Creating Schematics<br />

Creating a Sheet for a Symbol<br />

The following procedures describe two of the methods by which DA-<strong>IC</strong> can<br />

automatically create a partial sheet for an existing symbol.<br />

In the Schematic Editor, perform the following steps:<br />

3-56<br />

1. Select the symbol instance for which you want to create a sheet.<br />

2. Choose File > Open Down > Choose Model. The Open Down dialog box<br />

displays.<br />

3. Click on the New Sheet button. The dialog box now contains text entry<br />

boxes for schematic and sheet names.<br />

4. The default names for the schematic and sheet display in the dialog box.<br />

Note that “sheet1” may change to “sheet2” if the symbol already contains a<br />

sheet1.<br />

5. DA-<strong>IC</strong> automatically creates I/O ports from the pins on the symbol. If you<br />

do not want this option, click the appropriate No button.<br />

6. Specify a startup file for this sheet by clicking Yes, and entering the<br />

pathname to the startup file in the text entry box.<br />

7. After you click OK, DA-<strong>IC</strong> opens an editing window on the new sheet.<br />

If you request I/O ports, there will be a portin, portout, or portbi symbol<br />

instance on the sheet for each pin on the symbol. The Net property value<br />

attached to each of these instances is the same as the Pin property value on<br />

the corresponding pin.<br />

8. Now, the sheet is ready for you to add nets and other instances.<br />

To create a sheet for a symbol that you have opened in the Symbol Editor,<br />

perform the following steps:<br />

1. If the symbol has not been checked, check and save it, before creating a<br />

sheet for it.<br />

2. Choose the Miscellaneous > Create Sheet menu item. This displays the<br />

Create Sheet dialog box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

3. You can change the default schematic and sheet names, if desired. Specify<br />

whether to replace an existing sheet of the same name.<br />

4. When you click OK, a sheet generates with portin and portout symbols<br />

corresponding to the pins on the symbol.<br />

Creating Additional Sheets in a Schematic<br />

To create a second sheet on the same hierarchical level of a schematic, perform<br />

the following steps:<br />

1. Click on [Open] Schematic on the session_palette.<br />

2. In the Open Schematic dialog box, enter the component name, and click the<br />

Options... button. The Open Schematic Options dialog box displays as<br />

illustrated in Figure 3-21.<br />

Figure 3-21. Open Schematic Options Dialog Box<br />

3. Change the default sheet name from “sheet1” to “sheet2”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-57


Creating Multi-Level <strong>Design</strong>s Creating Schematics<br />

3-58<br />

4. Click the appropriate button if you want Auto Update Mode enabled.<br />

5. If a specific startup file used, enter the path. Then click OK on each dialog<br />

box.<br />

6. A new sheet is displayed in a Schematic Editor window. You need to place<br />

$MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/offpage.in and<br />

$MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB/offpage.out connector symbols on the sheets to<br />

establish electrical connectivity.<br />

Using Off-Page Connectors<br />

Off-page connectors are used to intentionally connect nets having the same name<br />

on different sheets in a schematic. Mentor Graphics supplies off-page connectors<br />

in $MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB. Generally, offpage.in connectors are on the left<br />

side of the sheet, and offpage.out connectors are placed on the right side of the<br />

sheet. There is also an offpage.bi symbol for bidirectional nets.<br />

Suppose you have a net named “DATA” that begins on sheet1 and extends<br />

beyond the right side of the sheet. “DATA” continues on the left side of sheet2.<br />

Follow these steps to connect the nets:<br />

1. Open sheet1. Press Ctrl-H to display the symbol history list. Click the left<br />

mouse button on “offpage.out” in the list to activate the symbol.<br />

2. Click on the end point of the net named “DATA” near the right side of the<br />

sheet.<br />

3. In the schematic_edit window, click Check & Save for sheet1.<br />

4. Open sheet2. Press Ctrl-H to display the symbol history list. Click on<br />

“offpage.in” in the list.<br />

5. Click on the end of “DATA”, near the left side of the sheet, to place the<br />

symbol instance.<br />

6. In the schematic_edit window, click Check & Save for sheet2.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

7. Choose the File > Check Schematic menu item. A report generates that<br />

flags any mismatched off-page connectors and any nets having the same<br />

name, but no connectors.<br />

Using Portin and Portout Symbols<br />

Ports connect Net names on a sheet to Pin names on the symbol that represents<br />

that sheet. Mentor Graphics supplies portin, portout, and portbi components in<br />

$MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB for input nets, output nets, and bidirectional nets,<br />

respectively.<br />

To add port symbol instances to the sheet you are editing, perform the following<br />

steps:<br />

1. Press Ctrl-H to display the active symbol list. Click on “portin” in the list to<br />

activate the symbol.<br />

2. Position the cursor at the beginning of an input net, and press F5 (Place<br />

Symbol).<br />

3. Click on the sheet to place the “portin” instance. Repeat for each input net.<br />

Notice that each portin symbol instance has a Net property attached, and all<br />

have a value of NET.<br />

4. Using the mouse, enclose the Net property text in a dynamic rectangle. The<br />

text within the rectangle is selected.<br />

5. Click on the [Edit] Change Value palette item. This displays the Change<br />

Property Value prompt bar.<br />

6. When you press the Return key, or click OK on the prompt bar, the selected<br />

property text is changed to its new value. The newly changed property text<br />

is unselected.<br />

Use the same procedure for adding portout or portbi symbol instances and<br />

changing Net property values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-59


Creating Multi-Level <strong>Design</strong>s Creating Schematics<br />

Editing the Underlying Sheet of a Symbol<br />

After you have opened a schematic sheet, you can select an instance on the sheet,<br />

and choose one of the models registered to the component instance to edit or view.<br />

To open a model for a selected instance, perform the following steps:<br />

3-60<br />

1. Select the instance you want to open down into. For information about<br />

selecting and unselecting objects, refer to “Selecting and Unselecting<br />

Objects” in Chapter 2.<br />

2. Execute the File > Open Down > Choose Model menu item. The Open<br />

Down dialog box appears with a list of registered models. For example, a<br />

symbol model, schematic model, Language source, VHDL Entity, or a<br />

VHDL <strong>Architect</strong>ure might be chosen.<br />

3. The selected model displays.<br />

If a symbol or schematic model is selected, the associated schematic or<br />

symbol displays in DA-<strong>IC</strong>.<br />

If a language file is selected, the contents of the model file displays in the<br />

default text editor window. For more information on the default text editor,<br />

see “Setting the Default Text Editor” in Chapter 3.<br />

Creating a Symbol for a Sheet<br />

You can generate a symbol for the sheet you are currently editing, or for another<br />

sheet, by performing the following steps:<br />

1. Choose the Miscellaneous > Generate Symbol menu item.<br />

The Generate Symbol dialog box displays as illustrated in Figure 3-22<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

Figure 3-22. Generate Symbol Dialog Box<br />

2. Enter the pathname to the component that will contain the generated<br />

symbol in the Component Name field.<br />

3. Enter the name of the symbol to generate in the Symbol Name field.<br />

4. Choose radio buttons that effect the symbol to be created. The following list<br />

explains your choices:<br />

• Choose to replace an existing symbol that has the same name.<br />

• Choose to how the generated symbol is initially saved.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-61


Creating Multi-Level <strong>Design</strong>s Creating Schematics<br />

3-62<br />

• Choose to make the symbol the active. You must choose either the Save<br />

Symbol or Save and Edit radio buttons under Once Generated... to<br />

make the new symbol active.<br />

5. Click the Schematic button.<br />

6. Enter the pathname to the component that contains the schematic in the<br />

Component Name field.<br />

7. Enter the name of the schematic in the Schematic Name field.<br />

8. If desired, adjust the values in the Pin Spacing, Sort Pins, Component<br />

Shape fields. For information on possible values for these fields, refer to the<br />

“$generate_symbol()” function description in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

Reference <strong>Manual</strong>.<br />

9. Click OK when you have completed your entries in the dialog box.<br />

The generated symbol will have whiskers from the pin to the symbol body. The<br />

Pin property text will be placed at the end of the whisker inside the symbol body.<br />

Pin locations are determined by the port instances on the schematic sheet.<br />

Note<br />

Creating a Pin List<br />

The schematic generator always places user-defined ports on the<br />

input side of the symbol, unless the user adds a PINTYPE property<br />

to the pin and specifies the value as “OUT” or “IXO”.<br />

You can create a pin list for a sheet using the following procedure:<br />

1. Choose the Miscellaneous > Create Pin List item from the main menu bar.<br />

The Create Pin List dialog box appears.<br />

2. Enter the pathname to the schematic.<br />

3. Enter the pathname to the pin list file to be created.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating Multi-Level <strong>Design</strong>s<br />

4. If you want to replace an existing pin list file with the same name, click the<br />

Yes radio button under Replace existing pin list file?.<br />

5. If you want to edit the pin list, click the Yes radio button under Edit pin list<br />

file?.<br />

This opens a Notepad window with the generated pin list, after you click<br />

OK.<br />

6. If you want the pin information sorted in alphabetical order in the pin list<br />

file, click the Yes radio button under Sort Pins?.<br />

7. Click OK when you have completed your entries in the dialog box.<br />

For detailed information on the constructs used in the pin list file, refer to the “Pin<br />

List File Format” appendix in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

Displaying a Lower Level Sheet<br />

Use the following steps to open the schematic sheet below a selected instance in a<br />

hierarchical design:<br />

1. Open the design and select an instance.<br />

2. Select File > Open Down. Displays the schematic sheet one hierarchical<br />

level down from a selected instance determined by the VIEW property. If<br />

the sheet is already open, it activates and pops to the front. If a language<br />

model is set as the default model with the VIEW property, then the model is<br />

opened in the Notepad Editor.<br />

3. For information on setting up a text editor for models, see “Setting up a<br />

Language Model Editor”.<br />

Displaying a Higher Level Sheet<br />

Use the following steps to open the schematic sheet above a selected instance in a<br />

hierarchical design:<br />

1. Open the design and select an instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-63


Adding Comment Text and Graphics Creating Schematics<br />

3-64<br />

2. Select File > Open Up. Displays the sheet one hierarchical level up from a<br />

selected instance. If the sheet is already open, it activates and pops to the<br />

front.<br />

Displaying the Top Level Sheet<br />

Use the following steps to open the top-level sheet for a selected instance in a<br />

hierarchical design:<br />

1. Open the design and select an instance.<br />

2. Select File > Open Top. Opens a sheet . Displays the sheet at the top<br />

hierarchical level up from a selected instance. If the sheet is already open, it<br />

activates and pops to the front.<br />

Locking/Unlocking Schematic Sheet Edits<br />

Assigning the source_edit_allowed property to the parent instance allows you to<br />

lock and unlock schematic sheet edits in a multi-level design.<br />

Use the following property values:<br />

o true - allows editing of the underlying sheet<br />

o false - disables editing the underlying sheet.<br />

For information on adding or changing properties see “Adding a Single Property”<br />

and “Changing Property Values” in Chapter 7.<br />

Adding Comment Text and Graphics<br />

Comment objects are used for adding non-electrical text to a design. These objects<br />

have no electrical significance. Comment objects cannot be instantiated.<br />

Add comment text and graphics directly to a sheet in the Schematic Editor. In the<br />

Symbol Editor, you create symbol graphics and text, then convert selected objects<br />

to comment objects.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Adding Comment Text and Graphics<br />

Types of Comment Objects<br />

The following are comment objects:<br />

• Arcs<br />

• Circles<br />

• Lines<br />

• Polygons<br />

• Dots<br />

• Polylines<br />

• Rectangles<br />

• Text<br />

The Convert To Comment command converts any selected electrical or graphical<br />

object, or group of objects, to comments. For example, selected:<br />

• Nets become comment lines<br />

• Symbol instances become comment text and graphics<br />

• Visible properties become properties of the newly created comment object<br />

!<br />

Caution<br />

Uses for Comments<br />

After an object has been converted to a comment, all hidden<br />

properties associated with that object are deleted. This process can<br />

be reversed using the Undo command.<br />

Using comment text, graphic objects, and system functions that return standard<br />

information (such as date and version numbers of the design), you can create<br />

many useful structures that are distinct from the electrical elements of the<br />

schematic. For example, you can create:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-65


Adding Comment Text and Graphics Creating Schematics<br />

3-66<br />

• Title blocks (can be automatically created on a new sheet)<br />

• Revision blocks<br />

• Page borders (can be automatically created on a new sheet)<br />

• Backplane, wire wrap, and other tentative design elements<br />

• Explanations, review notes, and fabrication notes<br />

Setting Comment Text and Graphic Drawing Attributes<br />

Before you begin drawing comment objects, you can set up how text and<br />

graphical shapes are graphically represented. For more information on these<br />

functions, see “$setup_comment()” and “$setup_property_text()” in the <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

Use the following steps to set up comment text and graphical drawing attributes:<br />

1. Execute the Setup > Object menu item. The Setup Object dialog box<br />

appears in the active Schematic Editor window.<br />

2. Click Comment.<br />

3. Enter the desired font name. The default is the “stroke” font. Fonts and font<br />

registry files are located in $MGC_HOME/registry/fonts.<br />

4. Enter the desired text height. The default height is 0.1875 user units.<br />

5. Enter the desired text orientation: (0 or 90 degrees). The default is 0 degrees<br />

(horizontal).<br />

6. Click the left mouse button on the text vertical justification you want: (Top,<br />

Center, Bottom).<br />

7. Click the left mouse button on the text horizontal justification you want:<br />

(Left, Center, Right).<br />

8. Click the left mouse button on the text transparency you want (On, Off).<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Adding Comment Text and Graphics<br />

9. Click the left mouse button on the Restrict Flipped/Rotated Text button<br />

(On, Off).<br />

10. Click the left mouse button on the line width you want (1 pixel, 3 pixels, 5<br />

pixels, or 7 pixels).<br />

11. Click the left mouse button on the fill type you want (Clear, Solid, Stipple).<br />

12. Click the left mouse button on the line style you want: (Solid, Dotted, Long<br />

Dash, Short Dash, Centerline, and Phantom).<br />

13. Click OK when comment attribute selection is complete.<br />

Creating Comment Objects on Schematic Sheets<br />

You can access comment object functionality through the schematic_draw<br />

palette, and the Add > Draw popup menu items. Click the left mouse button on<br />

the Draw palette button to display the Draw palette. The following list describes<br />

how to create various comment objects on a schematic sheet.<br />

• Click the left mouse button on the [Draw] Add Polyline palette item. Click<br />

the left mouse button at the beginning of the line and at each vertex. Each<br />

time you click and move the mouse, a line stretches from the vertex to the<br />

cursor. Double-click to end the line.<br />

• Click the left mouse button on the [Draw] Add Rectangle palette item.<br />

Specify the location of one corner of the rectangle by pressing the left<br />

mouse button. Hold the mouse button down and move the cursor to the<br />

desired location of the diagonally opposite corner, then release the mouse<br />

button.<br />

• Click the left mouse button on the [Draw] Add Circle palette item. Specify<br />

the center of the circle by pressing the left mouse button. Hold the mouse<br />

button down, and move the cursor to define the perimeter, then release the<br />

mouse button. A ghost image of the circle moves with the cursor.<br />

• Click the left mouse button on the [Draw] Add Polygon palette item. Click<br />

the left mouse button at each vertex of the polygon. Double-click at the last<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-67


Adding Comment Text and Graphics Creating Schematics<br />

3-68<br />

vertex. DA-<strong>IC</strong> automatically draws a segment between the last and first<br />

vertices to close the figure.<br />

• Click the left mouse button on the [Draw] Add Arc palette item. Click at<br />

the desired location for one end of the arc, then click at the other end of the<br />

arc. A ghost image moves as you move the cursor to define the arc point.<br />

When the arc is the desired size, click the left mouse button to place it.<br />

• Choose the Add > Draw > Two Point Line popup menu item. Press the<br />

left mouse button at one end of the line, hold the mouse button down as you<br />

move the cursor to the other end of the line, then release the mouse button.<br />

• Choose the Add >Draw > Dot popup menu item. Click the left mouse<br />

button at the point you want the dot.<br />

• Click the left mouse button on the schematic_text palette Add Comment<br />

Text palette item. Enter the comment text you want to add in the prompt<br />

bar that appears, then press the Return key. As you move the cursor, a ghost<br />

image of the text appears and moves with the cursor. Move the text to the<br />

desired location, and click the left mouse button.<br />

Making a Symbol From Comment Objects<br />

Creating a symbol from comment objects is the same as creating a functional<br />

block, described in the “Creating a Schematic-Based Block” section of this<br />

chapter. The basic steps are as follows:<br />

1. In the Schematic Editor, create a rectangle for the symbol body.<br />

2. Add pins to the symbol body.<br />

3. Add other property text, as needed.<br />

4. Select the symbol body, pins, and associated text.<br />

5. In the symbol_draw palette, choose Check & Save. The symbol is checked<br />

and, if it passes all checks, DA-<strong>IC</strong> creates a symbol, registers it (using<br />

default registration), and instantiates it in the location of the original<br />

comment objects.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Adding Comment Text and Graphics<br />

Converting Electrical Objects to Comments<br />

You can select electrical objects and convert them to comment objects by<br />

choosing the Edit > Convert to Comment menu item in the Schematic Editor.<br />

Create comment objects from symbol objects by performing the following steps:<br />

1. Select the symbol graphics and text you want to convert.<br />

2. Choose Edit > Convert to Comment menu item.<br />

Selected symbol graphics become comment graphics; selected property text<br />

attached to the symbol body becomes property text attached to the graphics,<br />

symbol text and other property text become comment text, and are placed at<br />

their current locations.<br />

Comment graphics and text cannot be instantiated; therefore, they do not<br />

appear when an instance of the symbol is placed on a sheet.<br />

To convert schematic objects to comments, perform the following steps:<br />

1. Select the objects and text to convert.<br />

2. Choose the Edit > Convert to Comment menu item.<br />

Selected nets become lines, selected instances become graphic objects, property<br />

text attached to the symbol body remains property text now attached to the<br />

graphics, and visible property text becomes comment text.<br />

Removing Comment Status<br />

To remove comment status from comment objects that were created by converting<br />

selected symbol objects, perform the following steps in the Symbol Editor:<br />

1. Select the comment graphics and text.<br />

2. Choose the Edit > Remove Comment Status menu item.<br />

The objects may now be instantiated on a schematic sheet. This function does not<br />

restore electrical information that was previously on the symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-69


Creating FOR, CASE, and IF Frames Creating Schematics<br />

Creating FOR, CASE, and IF Frames<br />

FOR, IF, CASE, and OTHERWISE frames are tools provided by the DA-<strong>IC</strong><br />

Schematic Editor to allow repetitive or conditional inclusion of circuitry in the<br />

final netlist.<br />

Creating FOR Frames<br />

There are many times you find yourself repeating the same circuit over and over.<br />

Although you can copy the circuit so that it appears in its entirety as many times<br />

as needed, using FOR frames saves disk space, minimizes the number of pages a<br />

schematic fills, and makes the design easier to understand. Furthermore, by using<br />

a property value variable in the frame expression, the same schematic sheet can be<br />

used in different designs that require a different number of frame copies.<br />

To add a FOR frame that repeats the same circuit “N” times, perform the<br />

following steps:<br />

3-70<br />

1. Position the pointer at the initial edge of the frame.<br />

2. Click and drag the mouse to the desired size of the frame, and release the<br />

mouse button. Refer to Figure 3-23 for an example circuit enclosed in a<br />

FOR frame.<br />

EN<br />

I0(I)<br />

sa0,sa1<br />

sa0,sa1<br />

FOR I:= 0 TO N-1<br />

0<br />

0<br />

0<br />

0<br />

sa0,sa1 sa0,sa1<br />

sa0,sa1 sa0,sa1<br />

0<br />

0<br />

(TPZH)<br />

(TPHZ)<br />

sa0,sa1<br />

(TPZL)<br />

(TPLZ)<br />

sa0,sa1<br />

(TPZH) 0<br />

(TPZL)<br />

0<br />

sa0,sa1<br />

sa0,sa1<br />

(TRISE)<br />

(TFALL)<br />

Figure 3-23. FOR Frame Example<br />

0<br />

0<br />

0<br />

0<br />

sa0,sa1<br />

0<br />

0<br />

sa0,sa1<br />

sa0,sa1<br />

sa0,sa1<br />

sa0,sa1<br />

0<br />

0<br />

sa0,sa1<br />

OUT(I)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating FOR, CASE, and IF Frames<br />

3. Execute the Add > Frame pulldown menu item. The Add Frame dialog<br />

box displays.<br />

4. Click For.<br />

a. Type a Variable value in the text box.<br />

b. Type a Start value in the text box.<br />

c. For the Directions setting, select either To or Downto<br />

d. Type the End value in the text box.<br />

Refer to “Frexp Property” in Chapter 7 for a description of valid FOR frame<br />

expression syntax.<br />

Note<br />

When creating a net with the FOR frame expression, you must<br />

name the net if the net crosses the border of the frame. If the net<br />

does not have a name and crosses the FOR frame border, DA-<strong>IC</strong><br />

will create multiple nets.<br />

Creating Repeating Instances<br />

A repeating instance is a short-hand method of creating FOR frames for single<br />

instances. To create a repeating instance, follow these steps:<br />

1. Select the instance that you want to repeat in your design.<br />

2. Execute the Properties > Add schematic popup menu to display the Add<br />

Property dialog box.<br />

3. Select the “INST” item in the list box under “Existing Property Name.”<br />

4. Enter a name followed by a continuous range enclosed in parentheses<br />

beside “Property Value.”<br />

5. Choose the type of visibility appropriate in your design for the Inst<br />

property.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-71


Creating FOR, CASE, and IF Frames Creating Schematics<br />

3-72<br />

6. Click OK.<br />

The following rules determine which nets attach to which pins of a repeating<br />

instance:<br />

• If a single bit pin is connected to a single bit net, then the net will be<br />

connected to the pin on each repeated instance.<br />

• If a single bit pin is connected to a bus or bundle, then the width of the bus<br />

or bundle must be equal to the number of times the instance is repeated. The<br />

pin on each repeated instance will be attached to the bus bit or bundle<br />

member in the matching position.<br />

• If a wide pin is connected to a bus of the same width, then the bus will be<br />

connected to the wide pin on each repeated instance. Likewise, if a wide pin<br />

is connected to a net bundle of the same width, then the net bundle will be<br />

connected to the wide pin on each repeated instance.<br />

• If a wide pin is connected to a bus that is wider than the pin, then the bus<br />

width must be equal to the width of the pin times the number of times the<br />

instance is repeated. Each sub-bus with a width equal to the width of the pin<br />

will be connected to the pin on the repeated instance. A wide pin cannot be<br />

connected to a net bundle with a different width.<br />

• A bus connected to a wide pin must be named.<br />

• All other connections are illegal and result in an error during Check<br />

Schematic.<br />

Figure 3-73 illustrates an example of a repeating instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating FOR, CASE, and IF Frames<br />

DATA(15:0)<br />

(1)<br />

(2)<br />

CLK<br />

INST = XINST(3:0)<br />

A(3:0)<br />

CLK<br />

(3)<br />

Bund1{N1, DATA(1:0), N2} BP<br />

B(3:0)<br />

(4)<br />

NEW(3:0)<br />

(5)<br />

X(3:0)<br />

(6) Bund{N1, N2}<br />

Figure 3-24. Repeating Instance Example<br />

Assume that the system calls the instance “I$231.” When the sheet is written, DA-<br />

<strong>IC</strong> creates a FOR frame with the expression<br />

“FOR I231_REPEAT := 3 downto 0.” When the EDDM evaluates the FOR<br />

frame, it generates four instances named XINST#3, XINST#2, XINST#1, and<br />

XINST#0. Each instance has the same set of pins, A(3:0), B(3:0), CLK, X, BP and<br />

D(1:0), but some are attached to different nets.<br />

1. The pin XINST#3/A(3:0) is attached to the net DATA(15:12); the pin<br />

XINST#2/A(3:0) is attached to the net DATA(11:8); the pin<br />

XINST#1/A(3:0) is attached to the net DATA(7:4); and the pin<br />

XINST#0/A(3:0) is attached to the net DATA(3:0).<br />

2. The net CLK is attached to the CLK pin on each repeated instance.<br />

3. The pin XINST#3/BP is attached to the net N1; the pin<br />

XINST#2/BP is attached to the net DATA(1); the pin<br />

XINST#1/BP is attached to the net DATA(0); and the pin<br />

XINST#0/BP is attached to the net N2.<br />

4. The pin XINST#3/B(3:0) is attached to the net NEW(3:0), as is the pin<br />

XINST#2/B(3:0), and so on.<br />

5. The pin XINST#3/X is attached to the net X(3), the pin XINST#2/X is<br />

attached to the net X(2), and so on.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-73<br />

X<br />

D(1:0)


Creating FOR, CASE, and IF Frames Creating Schematics<br />

3-74<br />

6. The pin XINST#3/D(1:0) is attached to the net bundle Bund{N1, N2}, as is<br />

the pin XINST#2/D(1:0), and so on.<br />

Note<br />

Creating IF Frames<br />

The FOR frame expression is created as a “to” expression when<br />

the subscript is ascending, and as a “downto” expression if the<br />

subscript is ascending and has no parameters.<br />

IF frames let you conditionally include circuitry in your schematic. An IF frame is<br />

created in the same way as a FOR frame, except the IF frame follows its own IF<br />

frame expression syntax. To create an IF frame follow this procedure:<br />

1. Position the pointer at the initial edge of the frame.<br />

2. Click and drag the mouse to the desired size of the frame, and release the<br />

mouse button.<br />

3. Execute the Add > Frame pulldown menu item. The Add Frame dialog<br />

box displays.<br />

4. Click the If button.<br />

a. Type a Variable value in the text box.<br />

b. Select the comparison criteria in the dialog box.<br />

c. Type the Value in the text box.<br />

Refer to “Frexp Property” in Chapter 7 for a description of valid IF frame<br />

expression syntax. The evaluation of an IF frame expressions results in a True or<br />

False condition.<br />

• If True, the enclosed circuitry is included in the schematic sheet.<br />

• If False, the circuitry is not included in the schematic sheet.<br />

The Check command does not check non-included circuitry. You may want to<br />

check your circuitry before you create an IF frame around it.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Creating FOR, CASE, and IF Frames<br />

Creating CASE, OTHERWISE Frames<br />

CASE frames allow you to define cases when a portion of a circuit is included in a<br />

schematic sheet. You can have multiple CASE frames in a schematic sheet.<br />

• If the CASE frame expression evaluates to True, the circuitry is included.<br />

• If the CASE frame expression evaluates to False, the framed circuit is not<br />

included.<br />

• If an OTHERWISE frame exists, the circuitry within the OTHERWISE<br />

frame is included.<br />

CASE and OTHERWISE frames are created in the same way as FOR frames,<br />

except the CASE and OTHERWISE frames have a different frame expression<br />

syntax.<br />

To create a CASE or OTHERWISE frame follow the procedure described in<br />

“Creating FOR Frames”. Refer to “Frexp Property” in Chapter 7 for a description<br />

of valid CASE and OTHERWISE frame expression syntax.<br />

Setting Parameters<br />

You need to provide a value for any variables included in frame expressions. You<br />

can set a parameter value in DA-<strong>IC</strong> which is used only when the sheet is checked.<br />

Although this value is stored with the sheet, it is not recognized outside of the<br />

sheet or by other tools. Suppose you have framed circuitry that you want repeated<br />

ten times, and the Frexp property value is “FOR I = 0 TO N-1”. To provide a<br />

value to be used when the sheet is checked, do the following in the Schematic<br />

Editor:<br />

1. Choose the Add > Parameters > Set menu item to display the Set<br />

Parameter prompt bar.<br />

2. Enter “N” in the parameter name text entry box, and “10” in the parameter<br />

value text entry box in the prompt bar. Click OK.<br />

Another method of assigning a value to the variable is to add a property to the<br />

symbol body representing the sheet, or to an instance of that symbol on a higher<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-75


Creating FOR, CASE, and IF Frames Creating Schematics<br />

level sheet. You can add the property to the symbol body and give it some dummy<br />

value that you change for different instances of the symbol (similar to Net and<br />

Rule property values). Here are the steps using the previous frame expression:<br />

3-76<br />

1. Open the component in the Symbol Editor.<br />

2. Select the symbol body (be sure nothing else is selected).<br />

3. Click in the symbol_text palette [Add] Property palette item. This displays<br />

the Add Property dialog box.<br />

a. Enter “N” for the Property Name.<br />

b. Enter “1” for the Property Value.<br />

c. Click the Property Type Number.<br />

d. Click the Stability Switch Variable buttons.<br />

e. Click the Visibility Switch On.<br />

f. Click OK.<br />

4. Move the cursor to a location for the text, and click the left mouse button.<br />

5. To indicate the meaning of the number on the symbol, choose the [Add]<br />

Comment Text palette item.<br />

6. Type “N=” in the text entry box in the displayed prompt bar. Click OK,<br />

move the cursor to the left of the “1”, and click the left mouse button.<br />

When you place the symbol on a sheet, you can change the value of N for that<br />

instance. Because the property stability is variable, its value can be changed at any<br />

time.<br />

You can also assign values to variables through backannotation and design<br />

configurations. Backannotated values take precedence over all others, followed by<br />

instance-specific values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Checking a Schematic for Errors<br />

Checking a Schematic for Errors<br />

All designs must pass a full set of checks for validation. A design must be<br />

validated before it can be used by downstream processes. For example, schematic<br />

sheets must be validated or downstream applications issue warnings indicating<br />

errors exist that may cause problems later in the design process.<br />

By default, all the checks required by Mentor Graphics applications are enabled.<br />

For a description of all the checks available, see “<strong>Design</strong> Checks” in Appendix C.<br />

Use the following option from the session scope to change the default settings:<br />

Setup>Check Schematic...<br />

To execute the default checks, perform the following steps:<br />

1. Activate the Schematic Editor window you want to check by placing the<br />

cursor in the window, and clicking the center mouse button.<br />

2. Click Check & Save. Errors and warnings display in the Check Schematic<br />

window by default for each individual check. By default, the error log<br />

displays in its own window, but can be sent to a file or to the transcript.<br />

Note<br />

If you select Check & Save form the schematic_edit palette,<br />

DA-<strong>IC</strong> does not display the Schematic Error and Warnings log. To<br />

view the Schematic Error and Warnings log, select the File ><br />

Check Schematic pulldown menu item.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-77


Checking a Schematic for Errors Creating Schematics<br />

3-78<br />

Figure 3-25 shows a Check Schematic log for a schematic sheet.<br />

Check #2 dff:Schematic<br />

Check Schematic "dff/schematic/sheet1"<br />

Check Sheet "dff/schematic/sheet1"<br />

Check SymbolPins -------- 0 errors 0 warnings (MGC-required)<br />

Check Overlap ----------- 0 errors 0 warnings<br />

Check NotDots ----------- 0 errors 0 warnings<br />

Check Closedots --------- 0 errors 0 warnings<br />

Check Dangles ----------- 0 errors 0 warnings<br />

Check INIT Properties--- 0 errors 0 warnings<br />

Check Function Blocks --- 0 errors 0 warnings<br />

Check Owner ------------- 0 errors 0 warnings (MGC-required)<br />

Check Instance ---------- 0 errors 0 warnings (MGC-required)<br />

Check Special ----------- 0 errors 0 warnings (MGC-required)<br />

Check Net --------------- 0 errors 0 warnings (MGC-required)<br />

Check Frame ------------- 0 errors 0 warnings (MGC-required)<br />

"dff/schematic/sheet1" passed check: 0 Errors 0 Warnings<br />

Check Schematic Interface ------- 0 errors 0 warnings<br />

Check Schematic Instance -------- 0 errors 0 warnings<br />

Check Schematic Special --------- 0 errors 0 warnings<br />

Check Schematic Net ------------- 0 errors 0 warnings<br />

Check Schematic Function Blocks - 0 errors 0 warnings<br />

"dff/schematic/sheet1" passed check : 0 Errors 0 Warnings<br />

Figure 3-25. Check Schematic Log<br />

To set up Schematic checks other than the default schematic checks, perform the<br />

following steps:<br />

1. Activate a Schematic Editor window by placing the cursor in the schematic<br />

window.<br />

2. Choose Setup > Check... menu item.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Checking a Schematic for Errors<br />

Instance*<br />

Special*<br />

Net*<br />

Frame*<br />

Symbol Pins*<br />

Parameter<br />

Expressions<br />

The Default Schematic Check Settings dialog box displays as in<br />

Figure 3-26.<br />

Errors/<br />

Warnings Errors<br />

Only No<br />

Check<br />

Required check category*<br />

Macro File:<br />

Userrule Checks:<br />

All No Check<br />

Default Schematic Check Settings<br />

Owner<br />

Overlap<br />

Notdots<br />

Closedots<br />

Dangles<br />

INIT Props<br />

Annotations<br />

Bus Shorts<br />

Function Blocks<br />

Errors/<br />

Warnings Errors<br />

Only No<br />

Check<br />

File Mode:<br />

Add Replace No File<br />

File: da_check_file<br />

OK Reset Cancel Help<br />

Figure 3-26. Default Sheet Check Settings Dialog Box<br />

3. Select the checks you want to execute by clicking the appropriate check<br />

name button. Select one of the three buttons displayed for each check.<br />

• Errors/Warnings display both error and warning messages.<br />

• Errors only display errors only.<br />

• No check means this check is not executed.<br />

For more information, see “<strong>Design</strong> Checks” in Appendix C.<br />

4. Press OK when check settings are complete.<br />

Schematic Interface<br />

Schematic Special<br />

Schematic Instance<br />

Schematic Net<br />

Schematic Net I/O<br />

Schematic Bus Shorts<br />

Errors/<br />

Warnings Errors<br />

Only No<br />

Check<br />

Display in Window<br />

Write to Transcript<br />

The check settings you set using the Setup > Check... menu item are set<br />

only while in the current DA-<strong>IC</strong> session. When you exit DA-<strong>IC</strong>, these<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-79


Saving and Registering a Schematic Creating Schematics<br />

3-80<br />

schematic check settings are lost. When DA-<strong>IC</strong> is re-invoked, the standard<br />

default checks are re-set.<br />

Saving and Registering a Schematic<br />

Before a schematic can be used with a downstream application, it must be<br />

registered to a component. By default, when you save your schematic, it is<br />

registered with the component specified when you opened the schematic sheet.<br />

You can register a schematic with other components.<br />

For more information on component structure and model registration, see Chapter<br />

5, “Managing/Registering Models”.<br />

Saving and Registering to the Default Component<br />

Interface<br />

Use the following step to save and register a schematic sheet to the default<br />

component:<br />

1. Choose File > Save Sheet from the Schematic Editor window.<br />

Saving and Registering to a Specified Component<br />

Interface<br />

To save a schematic sheet and change the default registration, follow these steps:<br />

1. Select File > Save Sheet As. The Save Sheet As dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Saving and Registering a Schematic<br />

2. Next to Options?, click the YES button. The Save Sheet As dialog box<br />

shown in figure 3-27 displays.<br />

Figure 3-27. Save Sheet As Dialog Box<br />

3. Enter the following information as necessary:<br />

o Component Name: Enter a new component name<br />

o Sheet Name:<br />

o Schematic Name:<br />

o Delete Registration From Interfaces: To delete registration from<br />

component interface(s), type the name of the component interface to<br />

delete the text entry box.<br />

o Add Registration From Interfaces: To register the schematic to<br />

another component interface(s), type the component interface name in<br />

the text entry box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-81


Saving and Registering a Schematic Creating Schematics<br />

3-82<br />

o Remove Labels: To remove multiple labels associated with the<br />

component interface(s), type one label per box in the text entry boxes.<br />

o Add Labels: To add multiple labels to a component interface(s), type<br />

one label per box in the text entry boxes.<br />

4. Click OK.<br />

For more information on registering schematic models, see<br />

“Managing/Registering Models” in Chapter 5.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Navigating Multiple Page Schematics<br />

Navigating Multiple Page Schematics<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> allows you to easily navigate through multi-sheet designs<br />

using one window. In order to accomplish this, you do not need to open all of the<br />

sheets in the schematic. This feature is only available in the Schematic scope.<br />

You can open and edit multiple sheets from within one window. In addition, you<br />

can switch between existing sheets in the schematic, and also create new sheets.<br />

This ability exists in source sheets, as well as design sheets. <strong>Design</strong> navigation<br />

provides the following three general modes of operation:<br />

1. moving to the next sheet of a schematic by using the Right Arrow button<br />

in the title bar of every schematic window.<br />

2. moving to the previous sheet of the schematic by using the Left Arrow<br />

button in the title bar of every schematic window.<br />

3. moving to any schematic sheet or creating a new sheet within a schematic<br />

by using the Multiple Page icon button in the title bar of every schematic<br />

window. Figure 3-28 illustrates the schematic sheet navigation buttons.<br />

Multiple-Page<br />

Icon<br />

Previous<br />

Sheet<br />

Next<br />

Sheet<br />

Figure 3-28. Schematic Sheet Navigation Buttons<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-83


Navigating Multiple Page Schematics Creating Schematics<br />

Navigating Multi-Sheet Schematics with a Single<br />

Window<br />

To use the schematic sheet navigation buttons, you must open at least one<br />

schematic sheet of the design. To open a schematic sheet, refer to the step-by-step<br />

procedures in the “Opening/Creating a Schematic” in this chapter.<br />

Sequentially Traversing a Schematic<br />

Once the sheet is open and active, you can traverse a multi-sheet design by<br />

stepping sequentially through the schematic sheets. This is achieved by using<br />

either the Left Arrow button to step to the previous sheet, or the Right Arrow<br />

button to step to the next sheet.<br />

Multiple Page Icon Button<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> also allows you to jump to any sheet in a schematic or create<br />

a new schematic sheet within a single window. By clicking on the Multiple Page<br />

icon button, the Display Specific Sheet dialog box displays. Figure 3-29<br />

illustrates the Display Specific Sheet dialog box.<br />

3-84<br />

Display Specific Sheet<br />

Existing Create<br />

sheet1 Editable Passed<br />

sheet2<br />

sheet3<br />

Editable Unchecked<br />

Editable Passed<br />

OK Cancel<br />

Figure 3-29. Display Specific Sheet Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Navigating Multiple Page Schematics<br />

The Display Specific Sheet Dialog box presents a list of existing sheets that make<br />

up the schematic. In addition to the sheet name, the Display Specific Sheet Dialog<br />

box provides the edit status of the sheet(s) as Closed, Editable, Read Only, or<br />

Modified. If the sheet is open, the status of the last known Check for the sheet<br />

(Unchecked, Passed, or Failed) is displayed.<br />

To open a sheet from within the Display Specific Sheet Dialog box, double click<br />

the desired sheet. To create a new sheet for the schematic, select the Create<br />

button. The resultant dialog box allows you to enter the name of a new sheet. See<br />

Figure 3-30.<br />

Existing<br />

Display Specific Sheet<br />

Sheet Name sheet1<br />

Create<br />

OK Cancel<br />

Figure 3-30. New Sheet Option<br />

Closing a Multiple Sheet Schematic<br />

Once you have made edits to an existing schematic sheet or created new sheets for<br />

the schematic, you can close the schematic using the procedures outlined in<br />

“Saving and Registering a Schematic” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-85


Displaying/Editing Registered Models Creating Schematics<br />

If multiple sheets have been edited, you must specify which of the sheets you want<br />

to save. Upon closing a schematic, the dialog box in Figure 3-31 displays.<br />

3-86<br />

Figure 3-31. Save Multiple Sheets Dialog Box<br />

All of the sheets with pending edits are selected. You can select all the sheets or<br />

selected sheets, or unselect all of the sheets.<br />

!<br />

Caution<br />

Multiple sheets edited in schematic<br />

$TRAINING/danwp/card_reader/my_dff/schematic<br />

Select Sheet to Save<br />

sheet1<br />

sheet2<br />

sheet3<br />

Save Selected Save Nothing<br />

Select All<br />

Unselect All<br />

Warning: Edits to unselected sheets will be lost.<br />

Cancel<br />

When navigating between sheets in the same window, ensure that<br />

any Prompt Bars (for example, Move or Add Wire) are cancelled.<br />

Prompt bars are tied to a window rather than a sheet.<br />

Displaying/Editing Registered Models<br />

You can display/edit the models registered to a selected instance from simulation<br />

mode or the schematic editor. For more information on displaying/editing models<br />

from simulation mode, see “Displaying/Editing the Default Registered Model”in<br />

chapter 8.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Displaying/Editing Registered Models<br />

Use the following steps to display/edit the models registered to an instance using<br />

the Schematic editor:<br />

1. Open a schematic design and select the instance to display/edit models for.<br />

2. Click the arrow next to File > Open Down and select Choose Model. The<br />

Open Down dialog box displays.<br />

3. Select the model to display from the list box. If a language model, such as<br />

VHDL-AMS, is selected, other options in the dialog box do not apply.<br />

4. Click OK.<br />

The selected model displays.<br />

If a symbol or schematic/symbol model is selected, the associated<br />

schematic or symbol displays in DA-<strong>IC</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-87


Netlisting a Schematic Creating Schematics<br />

3-88<br />

If a language file is selected, the contents of the model file displays in the<br />

Notepad editor.<br />

For information on setting up a default model editor, see “Setting up a<br />

Language Model Editor” in chapter 2.<br />

5. Edit and save the model as necessary.<br />

Netlisting a Schematic<br />

From DA-<strong>IC</strong>, you can create SP<strong>IC</strong>E and Verilog netlists with EldoNet. For more<br />

information on EldoNet, see the EldoNet User’s and Reference <strong>Manual</strong>.<br />

A netlist is an ASCII text representation of a schematic design. The netlist allows<br />

downstream applications, such as Eldo or <strong>IC</strong> Station, to import and manipulate a<br />

design created in DA-<strong>IC</strong>.<br />

Before creating a netlist, you must assign the appropriate property values to the<br />

schematic design. The appropriate property values are determined by the<br />

downstream application. For more information on properties, see Chapter 7,<br />

“Using Properties”. For more information on netlists, see the EldoNet User’s and<br />

Reference <strong>Manual</strong>.<br />

Creating a SP<strong>IC</strong>E Netlist<br />

You can create a SP<strong>IC</strong>E netlist for a schematic design from the Session window or<br />

Simulation mode. The following procedure describes how to netlist from the<br />

Session window. For more information on creating a netlist from Simulation<br />

mode, see “Generating a Netlist” in chapter 8.<br />

1. Check and save the design.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Netlisting a Schematic<br />

2. Select File > Export SP<strong>IC</strong>E. The Export SP<strong>IC</strong>E Netlist dialog box shown<br />

in Figure 3-32 displays.<br />

Figure 3-32. Export SP<strong>IC</strong>E Netlist Dialog Box<br />

3. Select the Output Type: for the netlist. Options include:<br />

o EldoSP<strong>IC</strong>E - creates a SP<strong>IC</strong>E netlist compatible with the Eldo<br />

simulator. This is the default setting.<br />

o HSP<strong>IC</strong>E - creates a SP<strong>IC</strong>E netlist compatible with the HSP<strong>IC</strong>E<br />

simulator.<br />

o LVS - creates a layout versus schematic SP<strong>IC</strong>E netlist compatible with<br />

Calibre. See “Using Advanced Options for a SP<strong>IC</strong>E Netlist”.<br />

4. If necessary, select a case for object names output in the netlist. Objects<br />

include: subcircuits/modules, instances, nets, pins, ports, etc. Options<br />

include:<br />

o Upper - Outputs object names in uppercase. This is the default setting.<br />

o Lower - Outputs object names in lowercase.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-89


Netlisting a Schematic Creating Schematics<br />

3-90<br />

5. In the <strong>Design</strong> Path data field, enter the path to the location of the design<br />

viewpoint for the design. If no design viewpoint is specified, an EldoNet<br />

viewpoint is created under the component.<br />

6. Click OK. The SP<strong>IC</strong>E netlist assumes the component name and is written<br />

to the design viewpoint directory.<br />

Using Advanced Options for a SP<strong>IC</strong>E Netlist<br />

Advanced options allow you to specify how the netlister runs and how the output<br />

netlist is formatted. Use the following steps to specify the advanced options:<br />

1. Check and save the design.<br />

2. Select File > Export SP<strong>IC</strong>E from the Session window. The Export SP<strong>IC</strong>E<br />

Netlist dialog box shown in Figure 3-32 displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Netlisting a Schematic<br />

3. Next to Options?, click Yes. The dialog box displays the advanced options<br />

shown in Figure 3-33.<br />

Figure 3-33. Export SP<strong>IC</strong>E Options Dialog Box<br />

4. Set the advanced options as necessary. For more information on the<br />

advanced option settings, see $export_spice() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

Reference <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-91


Netlisting a Schematic Creating Schematics<br />

3-92<br />

5. Click OK. The netlist is written as specified.<br />

Creating a Verilog Netlist<br />

Use the following procedure to create a verilog netlist from the Session window.<br />

1. Check and Save the design.<br />

2. Select File > Export Verilog. The Export Verilog Netlist dialog box shown<br />

in Figure 3-34 displays.<br />

Figure 3-34. Export Verilog Netlist Dialog Box<br />

3. If necessary, select a case for object names output in the netlist. Objects<br />

include: modules/subcircuits, instances, nets, pins, ports, etc. Options<br />

include:<br />

o Upper - Outputs all object names in uppercase.<br />

o Lower - Outputs all object names in lowercase. This is the default<br />

setting.<br />

o Uppercase Modules - Outputs module/subcircuit names in uppercase<br />

and all other object names in lowercase.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Netlisting a Schematic<br />

4. In the <strong>Design</strong> Path data field, enter the path to the location of the design<br />

viewpoint for the design. If no design viewpoint is specified, an EldoNet<br />

viewpoint is created under the component.<br />

5. Click OK. The Verilog netlist assumes the component name and is written<br />

to the design viewpoint directory.<br />

Using Advanced Options for a Verilog Netlist<br />

The advanced options allow you to specify how the netlister runs and how the<br />

output netlist is formatted. Use the following steps to specify the advanced<br />

options:<br />

1. Check and Save the design.<br />

2. Select File > Export Verilog from the Session window. The Export<br />

Verilog Netlist dialog box shown in Figure 3-34 displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-93


Netlisting a Schematic Creating Schematics<br />

3-94<br />

3. Next to Options?, click Yes. The dialog box displays the advanced options<br />

shown in Figure 3-34.<br />

Figure 3-35. Export Verilog Options Dialog Box<br />

4. Set the advanced options as necessary. For more information on the option<br />

settings, see $export_verilog() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference<br />

<strong>Manual</strong>.<br />

5. Click OK. The specified netlist is written.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong><br />

Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong><br />

You can invoke <strong>IC</strong> Station from within DA-<strong>IC</strong>. Invoking <strong>IC</strong> Station in this manner<br />

allows you to create a schematic, create or open a cell, and begin doing Schematic<br />

Driven Layout (SDL) without having to open <strong>IC</strong> Station independently. You can<br />

specify the Process file and rules file to load during <strong>IC</strong> Station invocation. If a<br />

design kit is loaded, the process file and SDL rules file provided with the kit are<br />

automatically loaded as the default arguments for SDL.<br />

Because the viewpoint, layout cell, process, and rules file information is<br />

associated with the schematic component, those values automatically load as<br />

default argument values for subsequent DA-<strong>IC</strong> sessions. Calibre Interactive can<br />

also access this viewpoint when creating its source netlist.<br />

Use the following steps to open a new layout cell for SDL from the active<br />

schematic in DA-<strong>IC</strong>:<br />

1. Select File > Invoke <strong>IC</strong> Station. The Invoke <strong>IC</strong> Station dialog box<br />

displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-95


Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong> Creating Schematics<br />

3-96<br />

2. Click Create New to create a new layout cell. The Invoke <strong>IC</strong> Station dialog<br />

box expands to include additional options.<br />

3. Enter a name for the new cell in the Cell Path field. The name can be a<br />

string containing any alphanumeric character.<br />

4. Enter the name of the process to load in the Process field.<br />

5. Click SDL for the <strong>Design</strong> Style, to specify Schematic Driven Layout.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Schematics Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong><br />

6. Enter the name of the rules files to load in the SDL Rules field.<br />

7. Specify the configuration to use in the Config Name field. A configuration<br />

consists of a viewpoint object, one or more backannotation objects, and<br />

setup information. The configuration determines which viewpoint is used<br />

and, therefore, which primitives are set in the viewpoint. For more<br />

information, see the “Opening/Creating a <strong>Design</strong> Configuration” section in<br />

Chapter 12, “Editing in <strong>Design</strong> Context,” of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s<br />

<strong>Manual</strong>.<br />

8. Specify the configuration setup for the configuration you want to create by<br />

clicking one of the options in the Configuration Type field.<br />

• SP<strong>IC</strong>E_Netlister: the default viewpoint setup for doing SP<strong>IC</strong>E<br />

netlisting with EldoNet.<br />

• Verilog_Netlister: the default setup for doing Verilog netlisting with<br />

EldoNet.<br />

• <strong>IC</strong>_Station_Flat: the default setup for doing SDL at the device level.<br />

This is the default.<br />

• <strong>IC</strong>_Station_Hierarchical: the default setup for doing SDL from the cell<br />

level.<br />

9. Click OK.<br />

When creating new cells, <strong>IC</strong> Station invokes with both the specified cell window<br />

and the source schematic window open. The specified rules and process files are<br />

loaded. You can begin placing and routing. If you open an existing cell, only the<br />

cell window displays.<br />

For more information about the arguments on the Invoke <strong>IC</strong> Station dialog box,<br />

refer to the $sdl_create_cell() function reference page in the <strong>IC</strong> Station Reference<br />

<strong>Manual</strong>. For more information on Schematic-Driven Layout (SDL), see Chapter<br />

3, “Schematic-Driven Layout (SDL),” in the <strong>IC</strong> Station Device Level Automation<br />

<strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 3-97


Invoking <strong>IC</strong> Station Directly from DA-<strong>IC</strong> Creating Schematics<br />

3-98<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 4<br />

Creating Symbols<br />

This chapter introduces the Symbol Editor in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) and<br />

provides procedures for creating symbols. The following topics are available:<br />

Symbol Creation Overview<br />

Symbol Editor Features<br />

Opening a Symbol Editor Window<br />

Setting Up the Symbol Editor<br />

Setting Grid and Pin Spacing and Snap<br />

Setting Symbol Body Attributes<br />

Drawing a Symbol Body<br />

Drawing an Arc<br />

Drawing a Circle<br />

Drawing a Dot<br />

Drawing a Line<br />

Drawing a Polyline<br />

Drawing a Rectangle<br />

Drawing a Polygon<br />

Slicing Geometric Objects<br />

Joining Sliced Objects into Polylines and Polygons<br />

Adding and Naming Symbol Pins<br />

Adding a Single Pin<br />

Adding Multiple Pins<br />

Creating Consecutive Pins<br />

Adding and Naming a Pin Bundle<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-1


Symbol Creation Overview Creating Symbols<br />

4-2<br />

Bundles Connected to Ports<br />

Checking a Symbol for Errors<br />

Saving and Registering a Symbol<br />

Saving a Symbol and Deleting The Registration<br />

Saving a Symbol and Changing The Registration<br />

Registering Multiple Symbols to One Component Interface<br />

Symbol Creation Overview<br />

Symbols are used to represent schematic components. You can use/modify<br />

symbols that come in DA-<strong>IC</strong> custom libraries or create your own. Once created,<br />

instances of these symbols are used throughout your schematic design. Using<br />

instances of a symbol allows you to reuse the same component throughout your<br />

design without having to create it more than once.<br />

You can open the Symbol Editor from <strong>Design</strong> Manager-<strong>IC</strong> or from within <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong>. For more information on invoking Mentor Graphics applications<br />

from <strong>Design</strong> Manager-<strong>IC</strong>, see the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

When you open the Symbol Editor, a set of symbol-specific palettes, popup, and<br />

pulldown menus display.<br />

Symbol Editor Features<br />

The Symbol Editor allows you to:<br />

• Create symbol body graphics<br />

• Set up templates for creating comments, property text, grids, and pages<br />

• Edit objects (moving, copying, or deleting)<br />

• Report on symbol objects' status<br />

• View a symbol<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Opening a Symbol Editor Window<br />

• Add pins and properties to the symbol<br />

• Create and edit non-instantiable comments<br />

• Check a symbol for errors<br />

• Save and register a symbol<br />

• Access online help<br />

Use the following procedures to edit/create symbols.<br />

Opening a Symbol Editor Window<br />

Use the following steps to open a Symbol Editor window from the DA-<strong>IC</strong> Session<br />

window:<br />

1. Click Open Symbol on the session_palette menu.<br />

To browse for a component, click the Navigator button. For more<br />

information, see “Browsing for Files” in Chapter 2 “Getting Started”.<br />

If the specified component does not exist, a new component and symbol are<br />

created. If a symbol name is not specified, the symbol name defaults to the<br />

leaf name of the component. If the symbol does not exist within the<br />

component, a new symbol is created.<br />

Replace the symbol name by pressing the Options... button (this opens the<br />

expanded Open Symbol Options dialog box), then type the new symbol<br />

name in the Symbol Name text box. Also, from the expanded Open Symbol<br />

Options dialog box, you can open the symbol as editable or read-only. If<br />

you want to execute a startup file for this symbol, click Yes for that option,<br />

and enter the file pathname.<br />

2. After you complete the selections, click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-3


Setting Up the Symbol Editor Creating Symbols<br />

Setting Up the Symbol Editor<br />

Before you start working on a symbol, you can change some or all of the default<br />

attribute settings for your symbol editing environment. Attributes such as pin<br />

spacing, grid spacing and snap, and symbol body attributes are all set to default<br />

settings when a new Symbol Editor window is opened. Menu items contained in<br />

the Setup and Set menus set these attributes.<br />

4-4<br />

The following procedures show you how to setup these attributes.<br />

Setting Grid and Pin Spacing and Snap<br />

The procedure for setting grid and pin spacing is the same as in the Schematic<br />

Editor setup. For more information, see “Setting Grid, Pin Spacing and Snap” in<br />

Chapter 3.<br />

Setting Symbol Body Attributes<br />

To set up symbol body text and graphical drawing attributes, perform the<br />

following steps:<br />

1. Choose the Setup > Symbol Body... pulldown menu item.<br />

The Setup Symbol Body dialog box displays as in Figure 4-1.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Setting Up the Symbol Editor<br />

Figure 4-1. Setup Symbol Body Dialog Box<br />

2. Click on the Line Style you desire (solid, dotted, long dash, short dash,<br />

centerline, and phantom).<br />

3. Click on the Line Width you desire (1 pixel, 3 pixels, 5 pixels, or 7 pixels).<br />

4. Type in the Font Name you desire. Fonts and font registries for all<br />

workstations are located in $MGC_HOME/registry/fonts. The default is the<br />

“stroke” font.<br />

5. Type in the Text Height you desire. The default height is 0.75 user units.<br />

6. Type in the Text Orientation you desire (0 or 90 degrees). The default is 0<br />

degrees (horizontal).<br />

7. Click to set the Restricted Flipped/Rotated Text to On or Off.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-5


Drawing a Symbol Body Creating Symbols<br />

4-6<br />

8. Click on the text Vertical Justification you desire (Top, Center, or<br />

Bottom).<br />

9. Click on the text Horizontal Justification you desire (Left, Center, or<br />

Right).<br />

10. Click to set the Orthogonal Drawing Mode to On or Off.<br />

11. Click on the Text Transparency you desire to On or Off.<br />

12. Click on the Fill Type you desire (Clear, Solid, or Stipple).<br />

13. Type in the Dot Size (diameter) you desire. The default size is 0.1 user<br />

units.<br />

14. Click on the Dot Style you desire (Square, Circle).<br />

15. Press OK, when symbol body attribute selection is complete.<br />

Drawing a Symbol Body<br />

A symbol body can be made up of the following graphical entities:<br />

• Arcs<br />

• Circles<br />

• Dots<br />

• Lines<br />

• Polygons<br />

• Polylines<br />

• Rectangles<br />

In addition, a symbol body typically has short lines called “whiskers” that project<br />

from the symbol body border to indicate where the pins will be connected. These<br />

“whiskers” are not a required part of the symbol, but rather a convention used in<br />

the Mentor Graphics component libraries.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Drawing a Symbol Body<br />

Access the menu items used to draw the symbol body from the Add popup menu.<br />

You can also perform these tasks by clicking the left mouse button on the<br />

appropriate symbol_draw [Add] palette item.<br />

Before you start drawing your symbol, set the dot style, dot width, line style, line<br />

width, and polygon fill that determines the attributes of the graphical entities. To<br />

use something other than the default values for these attributes, select the<br />

Setup > Symbol Body menu item to change the default values. This topic is<br />

discussed in the “Setting Symbol Body Attributes” procedure.<br />

All graphical entities can be selected, moved, copied, or deleted.<br />

Drawing an Arc<br />

To draw an arc, perform the following:<br />

1. Click the symbol_draw [Add] Arc palette item, or choose the Add > Arc<br />

popup menu item. The Add Arc prompt bar is displayed with the location<br />

cursor on “Initial Point”.<br />

2. Move the mouse so the moving pointer displays in the active window.<br />

3. Click the left mouse button at the desired initial arc point. The location<br />

cursor in the prompt bar moves to “End Point”.<br />

4. Click the left mouse button at the desired end point for the arc. The location<br />

cursor moves to “Arc Point”.<br />

5. Click the left mouse button at the desired arc point location.<br />

The prompt bar disappears and the completed arc displays. The basepoint is<br />

positioned on the arc's end point. Line style and width are controlled by values<br />

specified in the Setup > Symbol Body dialog box, discussed in the “Setting<br />

Symbol Body Attributes” in this chapter.<br />

Drawing a Circle<br />

The steps in the following list outline the procedure for adding a circle:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-7


Drawing a Symbol Body Creating Symbols<br />

4-8<br />

1. Click the left mouse button on the symbol_draw [Add] Circle palette item,<br />

or choose the Add > Circle popup menu item. The Add Circle prompt bar<br />

appears with the location cursor on “Center”.<br />

2. Position the moving cursor to the desired center point of the circle. Press,<br />

but do not release, the left mouse button. The location cursor moves to<br />

“Circle Point”.<br />

3. Position the moving pointer to indicate the perimeter of the circle (the left<br />

mouse button is still depressed). A ghost image of the circle appears in the<br />

window. Release the mouse button.<br />

The prompt bar disappears, and the completed circle displays. The basepoint is<br />

positioned in the center of the circle. The line style, line width, and fill type of the<br />

circle are controlled by the values specified in the Setup > Symbol Body dialog<br />

box, discussed in the “Setting Symbol Body Attributes” of this chapter.<br />

Drawing a Dot<br />

To add a graphical dot, perform the following:<br />

1. Select the Add > Dot popup menu item. The Add Dot prompt bar appears<br />

in the active symbol window. The location cursor is on “At Location”.<br />

2. Click the left mouse button at the desired dot point. The prompt bar<br />

disappears and the dot displays in the active symbol window. The basepoint<br />

is positioned on the dot.<br />

Dot style and size are set by values specified in the Setup > Symbol Body dialog<br />

box, as discussed in the “Setting Symbol Body Attributes” section of this chapter.<br />

Drawing a Line<br />

To add a line, perform the following steps:<br />

1. Select the Add > Two Point Line popup menu item. The Add Line prompt<br />

bar displays with the location cursor on “Endpoints”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Drawing a Symbol Body<br />

2. Position the moving pointer at the desired location for the initial point of the<br />

line. Press, but do not release, the left mouse button.<br />

3. Position the moving pointer away from the initial point. You will see a line<br />

from the initial point to the current location of the moving pointer. With the<br />

left mouse button still depressed, position the moving pointer to the<br />

location of the end point. Release the left mouse button.<br />

The prompt bar disappears and the line displays. The basepoint is located on the<br />

initial point. The line style and line width are controlled by the values specified in<br />

the Setup > Symbol Body dialog box, discussed in the “Setting Symbol Body<br />

Attributes” section of this chapter.<br />

Execute this menu item when you want to draw whiskers for pins on a symbol.<br />

Place the cursor at the desired point of the border of the symbol as the initial point<br />

of the line. As you add whiskers, it is important to remember that pins always snap<br />

to the nearest grid point (as defined by the value of the arguments in the Setup ><br />

Grid dialog box) regardless of whether objects snap to grid. Therefore, terminate<br />

whiskers on a displayed grid coordinate which matches the pin spacing.<br />

Drawing a Polyline<br />

To add multiple contiguous lines, perform the following steps:<br />

1. Select the symbol_draw [Add] Polyline palette item.<br />

The Add Polyline prompt bar displays with the location cursor on “Points”.<br />

2. Click the left mouse button at the initial point of the polyline.<br />

3. Click the left mouse button at each vertex of the polyline.<br />

4. Continue with step 3, until you have created all the vertices of the polyline.<br />

5. On the last vertex, double-click the left mouse button.<br />

The prompt bar disappears and the polyline displays in the active window. DA-<strong>IC</strong><br />

locates the basepoint on the initial creation point of the polyline.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-9


Drawing a Symbol Body Creating Symbols<br />

The line style and the line width of the polyline are controlled by the values<br />

specified in the Setup > Symbol Body dialog box.<br />

Drawing a Rectangle<br />

To create a rectangle, perform the following steps:<br />

4-10<br />

1. Select the Add > Rectangle popup menu item, or the symbol_draw [Add]<br />

Rectangle palette item. The Add Rectangle prompt bar displays with the<br />

location cursor on “Rectangle”.<br />

2. Position the moving pointer at the desired location of one corner of the<br />

rectangle. Press, but do not release, the left mouse button.<br />

3. Position the moving cursor away from the initial edge with the left mouse<br />

button still depressed. A ghost image displays in the size of the rectangle.<br />

At the desired location for the diagonally opposite corner of the rectangle,<br />

release the left mouse button.<br />

The prompt bar disappears and the rectangle appears in the active symbol<br />

window. The basepoint is positioned on the lower left edge of the rectangle. The<br />

line style, line width, and fill type (clear, solid, or stipple) of the rectangle are<br />

controlled by the values specified in the Setup > Symbol Body dialog box.<br />

Drawing a Polygon<br />

To create a polygon, perform the following steps:<br />

1. Choose the symbol_draw [Add] Polygon palette item, or select the Add ><br />

Polygon popup menu item. The Add Polygon prompt bar appears with the<br />

location cursor on “Points”.<br />

2. Position the moving pointer at the initial point of the polygon. Click the left<br />

mouse button.<br />

3. Move the cursor to the next polygon vertex and click the left mouse button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Drawing a Symbol Body<br />

4. Repeat step 3 until you have created all vertices of the polygon. At the last<br />

vertex, double-click the left mouse button, indicating you have completed<br />

the polygon. A polygon is always a closed figure; the segment between the<br />

initial point and the last point is automatically drawn for you.<br />

The prompt bar disappears and the polygon appears in the active window. The<br />

basepoint of the polygon is located at the initial point. The line style, line width,<br />

and fill type (clear, solid, or stipple) of the polygon are controlled by the<br />

line_style, line_width, and polygon_fill arguments as defined in the<br />

Setup > Symbol Body dialog box, discussed in the “Setting Symbol Body<br />

Attributes” section of this chapter.<br />

Symbol bodies can be created using several polygons layered on top of each other.<br />

For example, a symbol body that looks like a motor can be created using this<br />

technique. The layered position of an object can be changed using the POP TO<br />

FRONT and PUSH TO BACK icons on the DRAW palette.<br />

Slicing Geometric Objects<br />

The $slice() function is an interactive function that allows you to cut a geometric<br />

object into two or more pieces.<br />

You slice an object using the following procedure:<br />

1. Select the object.<br />

2. Choose Edit > Comment Operations > Slice menu item, or execute the<br />

following keyboard command: $slice()<br />

The Slice prompt bar appears.<br />

3. Draw a slice line by pressing the left mouse button, dragging the mouse<br />

across the object, then releasing the mouse button.<br />

The selected object is first “exploded” into the lines that define it, then the lines<br />

are sliced by the slicing line. This does not apply to arcs and circles. An arc is<br />

sliced into 2 or 3 arcs, depending on how many times the slicing line passes<br />

through the arc. A circle is sliced into two arcs if and only if the slicing line passes<br />

into and back out of the circle. If there is only one intersection between the circle<br />

and the slicing line, no slice will occur.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-11


Drawing a Symbol Body Creating Symbols<br />

In all cases, the original object is deleted and in its place are the new objects<br />

created by the slice. The new objects do not have any relationship with the old<br />

object. You have the ability to choose whether only one of the new, sliced objects<br />

inherits the properties from the original object or whether all new sliced objects<br />

inherit the properties. In either case, all of the property values are displayed in<br />

exactly the same diagram location as the original property values. For example, if<br />

a box is split into six pieces, and there is one property on the original graphics,<br />

each of the six lines will have that property and there will be six property values at<br />

the same diagram location. If you want only one piece of sliced graphics to inherit<br />

the properties, you can choose that option, then one property value only will<br />

replace the original.<br />

You can get the original object back by selecting the pieces of the geometric<br />

object, and executing the menu item Add > Polygon or Add > Polyline.<br />

Joining Sliced Objects into Polylines and Polygons<br />

The Add Polygon function takes a selection of polylines and lines, and if the<br />

selection is all end to end with at most one cycle, the selected graphics will be<br />

made into a single polygon. The procedure is as follows:<br />

4-12<br />

1. Select a group of polylines and lines.<br />

2. Execute the closeness criteria, using the $set_closeness_criteria()<br />

command.<br />

If the line endpoints are within the closeness criteria, the lines automatically<br />

join.<br />

This Add Polygon command may add an extra line to close the polygon. If the<br />

selection is not end to end, the error “Error: Unable to connect line/polyline<br />

segments to form polygon” displays. If the polylines and lines form more than one<br />

cycle, the error “Error: Unable to create polygon, selected items form more than<br />

one cycle” displays.<br />

The selected polylines and lines can be made into a single polyline by executing<br />

the menu item: Add > Polyline.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Adding and Naming Symbol Pins<br />

Adding and Naming Symbol Pins<br />

Once you have drawn the symbol body, you must include information on where<br />

the symbol's input and output pins are on the symbol body. A pin is named by<br />

adding a Pin property to the pin.<br />

Pins are graphic entities that represent a connection point. The presence of a Pin<br />

property tells the system that an object is a pin, while the value assigned to that<br />

Pin property separates that pin from all the others on that symbol.<br />

Pin names appear as Pin properties on the symbol. A pin and its Pin property<br />

value define where and what electrical connections will be made to the<br />

component. Pin properties on a symbol pin should match Net properties on the<br />

symbol's underlying schematic sheet in order to establish cross-hierarchy<br />

connections. Pins on a component define where an electrical connection may be<br />

made to the component when it is placed on a schematic sheet.<br />

You can add pins by clicking the symbol_draw [Add] Pin palette item, or by<br />

executing the Add > Pin(s) popup menu item.<br />

Pins must be placed on the pin grid that defines the minimum spacing between<br />

pins. Select the Setup > Grid menu item (see “Setting Grid and Pin Spacing and<br />

Snap”) to define the pin grid. Setting the displayed grid points to match the pin<br />

grid makes it easy to see where pins can be placed.<br />

Adding a Single Pin<br />

To add a single pin to a symbol, perform the following steps:<br />

1. Press Shift-F4 (Add Pin). The Add Pin prompt bar displays.<br />

2. Enter a text string that represents the name of the pin.<br />

3. Press the Tab key. The location cursor moves to “Pin Location”.<br />

4. Click in the symbol for the location of the new pin.<br />

5. Press and hold the left mouse button, then move the ghost image of the pin<br />

name to the desired location. Release the left mouse button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-13


Adding and Naming Symbol Pins Creating Symbols<br />

The prompt bar disappears and the pin name appears at the specified location.<br />

Adding Multiple Pins<br />

To add multiple pins to a symbol, perform the following steps:<br />

4-14<br />

1. Select the symbol_draw [Add] Pin palette item. The Add Pin(s) dialog box<br />

appears.<br />

2. Specify a value for Name Height by clicking one of the buttons or typing a<br />

value in the text entry box. This value is the height of the pin name with<br />

respect to the pin grid.<br />

3. Click one of the Name Placement buttons:<br />

• <strong>Manual</strong>: Specify the pin location and text location.<br />

• Name (with diamond): Specify the pin location; the text is<br />

automatically placed next to the pin.<br />

• Name (with diamond and whisker): Specify the pin location; the pin<br />

and whisker are created, and the text is placed next to the pin. When<br />

you choose this option, specify pin locations one pin grid away from the<br />

symbol body to allow space for the whisker.<br />

4. Select the Pin Type property (IN, OUT, IXO) or you may omit it.<br />

5. Select the Pin Placement specifying whether the pin is placed to the left,<br />

top, bottom, or right of the symbol body.<br />

6. Enter the pin names (pin property values) in the dialog box, one per line.<br />

Use the Tab key to move to the next line. All pins specified at the same time<br />

have the same pintype and placement.<br />

7. Click OK. The Add Pin prompt bar appears in the active symbol window.<br />

The name of the first pin is displayed as the “Pin Property Value”, whereas<br />

the location cursor is on “Pin Location”.<br />

8. Click the left mouse button at the desired pin location. If you chose manual<br />

name placement, click the left mouse button at the desired pin name<br />

location. If not, the pin name is placed automatically.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Adding and Naming Symbol Pins<br />

9. The Add Pin prompt bar displays again, with the name of the next pin.<br />

Repeat step 7 for each pin you specified in the dialog box. After the last pin<br />

has been specified, the prompt bar disappears.<br />

Creating Consecutive Pins<br />

When you need to create many pins of the same type and on the same side of the<br />

symbol body, the Copy Multiple and Sequence Text commands are helpful. The<br />

following steps show you how to add, copy, and renumber the pins on the symbol<br />

for the $MGC_PLDLIB/16hd8 component.<br />

1. Choose the symbol_draw [Add] Pin palette item. This displays the Add<br />

Pin(s) dialog box.<br />

2. Enter the following information in the dialog box:<br />

a. Name Height: 0.75<br />

b. Name Placement: Name with whisker<br />

c. Pintype: IN<br />

d. Pin Placement: left side<br />

e. Pin name(s): 1<br />

Click OK using the Select (left) mouse button.<br />

3. When the Add Pin prompt bar appears, click the left mouse button at the pin<br />

location in the symbol edit window.<br />

4. Move the Pintype property text (“IN”) by placing the cursor over the text,<br />

and pressing the Select Text and Move function key. Hold the key while<br />

you move the cursor to the new text position, as shown in Figure 4-2.<br />

Figure 4-2. Pintype Property Text Location<br />

5. Press F2 (Unselect All).<br />

IN<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-15<br />

1


Adding and Naming Symbol Pins Creating Symbols<br />

4-16<br />

6. Using F1 (Select Area Any), select the pin, whisker, and property text.<br />

7. Choose the Copy > Multiple menu item from the popup menu. Enter “9” in<br />

the Count text entry box. Click the left mouse button one pin grid below the<br />

selected pin. The left panel of Figure 4-3 shows the result.<br />

8. Press F2 (Unselect All).<br />

9. Click the left mouse button on the symbol_text [Edit] Sequence Text icon.<br />

Enter the following information in the Sequence Text dialog box:<br />

a. New Prefix: P<br />

b. Beginning Index Number: 1<br />

c. Step By: 1<br />

d. Click OK<br />

10. The Select Area prompt bar displays; select the pin names (1s).<br />

a. Move the cursor to “P10”, and press the Change Text Value function<br />

key.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Adding and Naming Symbol Pins<br />

b. Enter “P11” in the New Value text entry box in the prompt bar, and<br />

click OK. The pins and text should look like the center panel of Figure<br />

4-3.<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

Figure 4-3. Copying Pins and Sequencing Text<br />

11. Change the select filter to select only pins, then select the pins.<br />

a. Click the symbol_text [Add] Property palette item.<br />

b. In the Add Property dialog box, choose “PIN_NO” from the scrolling<br />

list of property names.<br />

If it is not there, enter it in the New Property Name text entry box.<br />

Enter “1” as the property value.<br />

c. When you click OK, you are prompted for the text location. As you<br />

move the cursor in the edit window, an elastic string connects each<br />

piece of text with its pin.<br />

d. Move the cursor so the text for each pin is just above the whisker, then<br />

click the left mouse button to place the text.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-17<br />

P1<br />

P2<br />

P3<br />

P4<br />

P5<br />

P6<br />

P7<br />

P8<br />

P9<br />

P11<br />

Copy pin Sequence text<br />

Change text value<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

IN<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

11<br />

P1<br />

P2<br />

P3<br />

P4<br />

P5<br />

P6<br />

P7<br />

P8<br />

P9<br />

P11<br />

Add and sequence<br />

PIN_NO property


Adding and Naming Symbol Pins Creating Symbols<br />

4-18<br />

12. Press F2 (Unselect All).<br />

13. Using F1 (Select Area Any), select the newly created property text, then<br />

click the symbol_text [Edit] Sequence Text palette item. In the dialog box,<br />

specify the following:<br />

• New Prefix: (no prefix)<br />

• Beginning Index Number: 1<br />

• Step By: 1<br />

After you click OK, the pins and text should look like the right panel in<br />

Figure 4-3. That completes the pins on the left side of the symbol.<br />

You use nearly the same steps to create the pins, on the right side of the symbol, as<br />

you did for the pins on the left side.<br />

1. Press F2 (Unselect All).<br />

2. Click the symbol_draw [Add] Pin palette item, and enter the following<br />

information in the Add Pin dialog box:<br />

• Name Height: 0.75<br />

• Name Placement: Name with whisker<br />

• Pintype: OUT<br />

• Pin Placement: right side<br />

• Pin name(s): O<br />

Click OK using the Select (left) mouse button.<br />

3. When the Add Pin prompt bar appears, place the pin to the right of pin 2.<br />

Move the “OUT” text to just below the pin whisker.<br />

4. Press F2 (Unselect All).<br />

5. Using F1 (Select Area Any), select the new pin, whisker, and property text.<br />

Copy it directly below the original, and opposite pin 9.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Adding and Naming Symbol Pins<br />

6. Unselect, then add another pin opposite pin 3. This pin has a Pintype<br />

property value of “IXO” and pin name “P”.<br />

7. Select the pin, whisker, and property text.<br />

a. Choose Copy > Multiple from the popup menu.<br />

b. Enter “5” in the Count text entry box.<br />

c. Press the Tab key, and click the left mouse button below the selected<br />

pin and opposite pin 4.<br />

The IXO and OUT pins should now appear as shown in the left panel of<br />

Figure 4-4.<br />

d. Press the F2 (Unselect All) function key.<br />

Figure 4-4. IXO and OUT Pins on PLD Symbol<br />

8. Select the Pin property text (“O” and “P”) and click the left mouse button<br />

on the symbol_text [Edit] Sequence Text palette item. When the dialog<br />

box displays, enter the following information:<br />

a. New Prefix: P<br />

O<br />

P<br />

P<br />

P<br />

P<br />

P<br />

P<br />

O<br />

OUT<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

OUT<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-19<br />

P19<br />

P18<br />

P17<br />

P16<br />

P15<br />

P14<br />

P13<br />

P12<br />

19<br />

18<br />

17<br />

16<br />

15<br />

14<br />

13<br />

12<br />

OUT<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

IXO<br />

OUT


Adding and Naming Symbol Pins Creating Symbols<br />

4-20<br />

b. Beginning Index Number: 19<br />

c. Step By: -1<br />

d. Click OK<br />

9. Press F2 (Unselect All).<br />

10. Set the select filter to select only pins (Setup >Select Filter), then select the<br />

pins on the right side of the symbol.<br />

11. Click the symbol_text [Edit] Add Property palette item.<br />

a. In the dialog box, choose the PIN_NO property name.<br />

b. Enter a dummy property value, such as “Z” (you will change it in the<br />

next step, but it should be unique).<br />

c. Click OK, and place the text just above the whisker, as you did on the<br />

left side of the symbol.<br />

12. Press F2 (Unselect All).<br />

13. Click the symbol_text [Select] By Property palette item. Specify the<br />

following information in the dialog box, then click OK:<br />

a. Property Name: PIN_NO<br />

b. Property Value: Z (or whatever name you gave in the previous step)<br />

c. Click the Text button<br />

14. Click the left mouse button on the symbol_text [Edit] Sequence Text icon.<br />

When the dialog box displays, enter the following information:<br />

a. New Prefix: (no prefix)<br />

b. Beginning Index Number: 19<br />

c. Step By: -1<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Adding and Naming a Pin Bundle<br />

d. Click OK<br />

Now the right side of the symbol should look like the right panel in<br />

Figure 4-4.<br />

15. Finish the symbol by adding a rectangle for the symbol body, adding<br />

properties, checking, and saving. Figure 4-5 shows the finished symbol.<br />

1<br />

IN<br />

2<br />

IN<br />

3<br />

IN<br />

4<br />

IN<br />

5<br />

IN<br />

6<br />

IN<br />

7<br />

IN<br />

8<br />

IN<br />

9<br />

IN<br />

11<br />

IN<br />

Figure 4-5. $MGC_PLDLIB/16hd8 Symbol<br />

Adding and Naming a Pin Bundle<br />

P1<br />

P2<br />

P3<br />

P4<br />

P5<br />

P6<br />

P7<br />

P8<br />

P9<br />

P11<br />

16HD8<br />

A pin bundle is an ordered collection of individual pins and/or wide pins. The pins<br />

in a pin bundle must be unique. If a pin occurs in a pin bundle, it cannot occur as<br />

an individual pin on the symbol or in a different pin bundle.<br />

You can create a pin bundle by adding a Pin property to a symbol. The value of<br />

the Pin property must include a comma-separated list of pins or wide pins.<br />

Proper pin connectivity is defined by a set of checks, described in Appendix C,<br />

“<strong>Design</strong> Checks”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-21<br />

P19<br />

P18<br />

P17<br />

P16<br />

P15<br />

P14<br />

P13<br />

P12<br />

19<br />

OUT<br />

18<br />

IXO<br />

17<br />

IXO<br />

16<br />

IXO<br />

15<br />

IXO<br />

14<br />

IXO<br />

13<br />

IXO<br />

12<br />

OUT


Adding and Naming a Pin Bundle Creating Symbols<br />

A member of a pin bundle is defined as a pin or wide pin contained in the list of a<br />

pin bundle. The members of a pin bundle must be enclosed within curly braces;<br />

for example, “U2_pins{P8,P9,P(3:0)}”.<br />

When a pin bundle is defined on a symbol, a corresponding pin bundle is also<br />

created on the part interface. When the symbol is instantiated, a pin bundle can be<br />

connected to either a net bundle or a bus, as long as the widths are the same.<br />

You create a pin bundle using the following steps:<br />

4-22<br />

1. Add a pin to a symbol.<br />

2. Select the new pin.<br />

3. Execute the Add > Properties menu item to display the Add Multiple<br />

Property dialog box.<br />

4. Select the “PIN” property in the list box under “Existing Property Name.”<br />

5. Name the pin using bundle syntax beside “Property Value.”<br />

6. Choose the stability and visibility switches appropriate for your needs.<br />

7. Click OK.<br />

You can edit a pin bundle by changing the value of the Pin property. Errors caused<br />

by editing the syntax of a pin bundle are identified only when the symbol is<br />

checked. For more information on creating properties, see “Assigning Properties”<br />

in Chapter 7.<br />

Pin bundles have the following characteristics:<br />

• A pin bundle name must be unique within the scope of the symbol.<br />

Therefore, there cannot be two different pin bundles with the same name, or<br />

both a pin and a pin bundle with the same name.<br />

• A pin can only occur once in the list of pins of a pin bundle.<br />

• A pin cannot exist both on the symbol by itself and in a pin bundle, since<br />

this would cause multiple references to the pin on the symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Checking a Symbol for Errors<br />

• A pin bundle can contain other pin bundles as long as the nested bundles do<br />

not also occur on the symbol by themselves.<br />

• A pin can belong to only one pin bundle.<br />

• Connection of the items in a pin bundle to a net bundle or bus is done by<br />

position, not by name.<br />

• A pin bundle can have properties, which are propagated to the individual<br />

pins in the pin bundle when a design is evaluated.<br />

For more information on net bundles, refer to “Creating and Naming a Net<br />

Bundle” in Chapter 3.<br />

Bundles Connected to Ports<br />

When you create a pin bundle on a symbol, you can connect a model of the<br />

symbol to the pins in one of two ways:<br />

• Create a net bundle in the model using the same name and the same<br />

members in the Net property, as those contained in the Pin property that<br />

designate the pin bundle.<br />

• Create nets in the model with the same names as the members of the pin<br />

bundle.<br />

The nets do not have to be connected to portin or portout symbols, but their names<br />

do have to match the pins in the pin bundle.<br />

Checking a Symbol for Errors<br />

All symbols must pass a set of required checks before the symbol can be placed on<br />

a schematic sheet. By default, all the checks required by Mentor Graphic<br />

Applications are enabled.<br />

For a description of all the checks available, see “<strong>Design</strong> Checks” in Appendix C.<br />

Use the following option from the session scope to change the default settings:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-23


Saving and Registering a Symbol Creating Symbols<br />

Setup>Check Symbol...<br />

To execute the default checks, perform the following steps:<br />

To check the symbol, Click Check & Save on the symbol_draw palette menu.<br />

Errors and warnings are display in the Check Symbol window by default for each<br />

individual check. Figure 4-6 shows an example of a Check Symbol error log after<br />

a successful symbol check. This error log may be diverted to a file by choosing<br />

the Check > Set Defaults menu item, and specifying a filename in the dialog box<br />

that displays.<br />

4-24<br />

Check #3 alu:Symbol<br />

Check Symbol "alu/alu"<br />

Check Body -------- 0 errors 0 warnings (MGC-required)<br />

Check Interface ---------- 0 errors 0 warnings<br />

Check Pin ----------- 0 errors 0 warnings (MGC-required)<br />

Check Special --------- 0 errors 0 warnings (MGC-required)<br />

"alu/alu" passed check: 0 errors 0 warnings<br />

Figure 4-6. Check Symbol Log<br />

Saving and Registering a Symbol<br />

After the symbol is created and ready to be saved, select the File > Save<br />

Symbol > Default Registration menu item. The symbol is now saved and<br />

marked as the default symbol for the component. A component interface is<br />

created, and the default symbol is registered to the component interface. The<br />

component interface is also defined as the default component interface for the<br />

component. The component interface name is created from the component leaf<br />

name.<br />

Saving a Symbol and Deleting The Registration<br />

To save the symbol and delete the registration, execute the File > Save Symbol ><br />

Options... menu item. The Save Symbol – Change Registration dialog box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Saving and Registering a Symbol<br />

appears; click the Yes box. DA-<strong>IC</strong> saves the symbol, but does not register it to a<br />

component interface.<br />

Saving a Symbol and Changing The Registration<br />

To save the symbol and change the registration, perform the following steps:<br />

1. When the symbol is ready to be saved, execute the File > Save Symbol ><br />

Options... menu item. The Save Symbol - Change Registration dialog box<br />

displays.<br />

2. To change registration from the default component interface, click the No<br />

button on the Delete Registration? option.<br />

3. To register the symbol to another component interface, click the Yes button<br />

on the Change Interface? option, then enter the new component interface<br />

name in the Register With Interface: text entry box.<br />

To mark the component interface as the new default interface for the<br />

component, click the Yes button on the Mark This Interface As Default?<br />

option.<br />

4. Select Yes or No as appropriate for the Overwrite Interface? option.<br />

5. Select Yes or No as appropriate for the Force Save If Unchecked? option.<br />

6. After registration changes are made, click OK.<br />

Registering Multiple Symbols to One Component<br />

Interface<br />

To save and register more than one symbol to a single component interface,<br />

perform the following steps (This procedure assumes that you have already<br />

created one symbol for the component. Refer to “Saving and Registering a<br />

Symbol” procedure in this chapter if you have not already saved one symbol for<br />

the component.):<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-25


Saving and Registering a Symbol Creating Symbols<br />

4-26<br />

1. Click Open > Symbol from the session_palette. A dialog box displays to<br />

allow you to browse to find a symbol.<br />

The selected symbol displays in a Symbol Editor window.<br />

2. Choose File > Save Symbol As from the main menu bar.<br />

The Save Symbol As dialog box appears.<br />

3. Enter the pathname to the component that contains the first symbol in the<br />

Component Name field. For example, if the existing symbol is named<br />

“7496” and the pathname to the component is “$CUSTOM_PARTS/7496”<br />

enter “$CUSTOM_PARTS/7496”.<br />

4. Enter a new symbol name in the Symbol Name text box. For example, to<br />

create an alternate symbol for rotated instances of a 7496 shift register, you<br />

could enter “7496_rot” for the alternate symbol name.<br />

5. Click the OK button to close the Save Symbol As dialog box.<br />

6. Choose the “Open Symbol” item from the palette to open your newly<br />

created symbol. Use the navigator to select the newly created symbol from<br />

the menu.<br />

The new alternate symbol is displayed in a Symbol Editor window.<br />

7. Make any required changes to the alternate symbol. For example, you may<br />

want to rotate the symbol body and reposition property text.<br />

8. Choose Check > With Defaults from the main menu bar to check the<br />

alternate symbol.<br />

A report window displays with a summary of the check. Fix any problems<br />

reported, and repeat this step.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating Symbols Saving and Registering a Symbol<br />

9. Choose File > Save Symbol > Default from the main menu bar to register<br />

the alternate symbol with the default component interface.<br />

!<br />

Caution<br />

If the symbol is not valid for the component interface (for<br />

example, the number of pins on the symbol do not match the<br />

number of pins in the component interface), the File ><br />

Save Symbol > Default menu item will query you as to whether<br />

you want to save the symbol and update the component interface.<br />

If you choose to save the symbol, any other model registered to<br />

that component interface is invalidated<br />

The symbol is now saved and registered to the default component interface.<br />

The default symbol label remains on the original symbol.<br />

10. Execute steps 1 – 9 until all alternate symbols are created and registered to<br />

the same component interface.<br />

To check that the proper symbol registration occurred, activate the Symbol Editor<br />

window for one of the new symbols, and execute the Report > Property Settings<br />

menu item. This displays a report listing all component properties for the specified<br />

component.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 4-27


Saving and Registering a Symbol Creating Symbols<br />

4-28<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 5<br />

Managing/Registering Models<br />

This chapter provides a model registration overview, introduces the simulation<br />

model registration feature in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>), and provides<br />

procedures for creating and managing models. The following topics are available:<br />

Registering Models for Simulation<br />

Supported Modeling Types<br />

Invoking the Model Registrar<br />

Create Mode<br />

Manage Mode<br />

Edit Mode<br />

Choosing a Model<br />

Registering a Model to an Existing Symbol<br />

Editing an Existing Symbol for a Model<br />

Generating a Symbol for a Model<br />

Creating a Symbol for a Model<br />

Registering a Model from a Symbol<br />

Mapping a Model to a Symbol<br />

Setting a Default Model Registration<br />

Checking a Model Registration<br />

Viewing the Registered Models for a Symbol<br />

Editing a Model Registration<br />

Renaming a Model Registration<br />

Copying a Model Registration<br />

Deleting a Model Registration<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-1


Registering Models for Simulation Managing/Registering Models<br />

5-2<br />

Restoring Deleted Model Registrations<br />

Closing the Model Registrar<br />

Using the Model Registrar in Batch Mode<br />

Registering Models for Simulation<br />

Simulation models are ASCII language files such as VHDL or SP<strong>IC</strong>E that<br />

describe the physical and/or electrical characteristics of a design element. Models<br />

provide the detailed behavioral information about design elements needed for<br />

simulating a schematic design.<br />

A simulation model is considered registered when it has a netlist control file<br />

(NCF) and a symbol. EldoNet uses the model information in the NCF when<br />

netlisting a schematic design. For more information on the NCF, see the EldoNet<br />

User’s and Reference <strong>Manual</strong>. Once a model is registered, you can:<br />

• Instantiate it on a schematic design.<br />

• Use it interchangeably with other models.<br />

• Netlist and simulate a design containing it.<br />

Several registered models can be used interchangeably for a component of a<br />

design, each model having different physical and/or electrical characteristics or<br />

language types.<br />

Supported Modeling Types<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> model registration supports the following model types:<br />

• HDL —VHDL, VHDL-AMS, Verilog-A, and Verilog models compiled by<br />

ADVance MS. Before registering HDL models, you must compile model<br />

files into an adms.ini file and a design library. For more information, see<br />

“Compiling ADVance MS designs” in Chapter 4 of the ADVanceMS User’s<br />

<strong>Manual</strong>. You can set the $WORK environment variable to specify a<br />

compiled library within the adms.ini.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

• EldoSP<strong>IC</strong>E -— SP<strong>IC</strong>E files compatible with Eldo.<br />

• Schematic — schematic models cannot be registered through Model<br />

Registrar. However, they can be edited and manipulated.<br />

Invoking the Model Registrar<br />

Model registration for DA-<strong>IC</strong> is performed via the Model Registrar program. The<br />

Model Registrar is a discrete application invoked from menu options in DA-<strong>IC</strong>.<br />

Depending on the task you need to perform, the Model Registrar can be invoked<br />

in three modes as follows:<br />

• Create Mode — Displays the Create dialog box allowing you to create new<br />

model registrations. For more information, see “Create Mode” in this<br />

chapter.<br />

• Manage Mode — Displays the Model Registrar dialog box allowing you to<br />

create new model registrations or edit, copy, delete, and rename existing<br />

model registrations. For more information, see “Manage Mode” in this<br />

chapter.<br />

• Edit Mode — Displays the Model Registrar dialog box allowing you to<br />

edit the symbol to model parameter and pin mapping. To invoke this mode,<br />

an instance with a valid registered model associated with it must be<br />

selected. For more information, see “Edit Mode” in this chapter.<br />

• Batch Mode — Invokes the Model Registrar from the command line and<br />

displays the appropriate Model Registrar dialog box depending on which of<br />

the three modes is specified: create, manage, or edit. For more information<br />

on these three modes, see sections “Create Mode”, “Manage Mode”, and<br />

“Edit Mode”. For more information on batch mode, see section “Using the<br />

Model Registrar in Batch Mode.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-3


Registering Models for Simulation Managing/Registering Models<br />

Create Mode<br />

From the Session window, choose File > Model Registration > Create or from<br />

the Schematic_edit palette menu, choose Model Registration > Create. The<br />

Create dialog box shown in Figure 5-1 displays.<br />

5-4<br />

Figure 5-1. Create Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Manage Mode<br />

Select a symbol instance and choose Model Registration > Manage from<br />

the Schematic_edit palette menu. The Model Registrar dialog box shown in<br />

Figure 5-2 displays.<br />

Edit Mode<br />

Figure 5-2. Model Registrar Dialog Box<br />

Select the symbol instance and choose Model Registration > Edit from the<br />

schematic_edit palette menu. The Model Registrar dialog box shown in Figure 5-3<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-5


Registering Models for Simulation Managing/Registering Models<br />

displays. If there is an invalid model registration associated with the selected<br />

instance, the Manage Mode is invoked.<br />

5-6<br />

Note<br />

Figure 5-3. Model Registrar Dialog Box<br />

To invoke the Edit mode, an instance with a valid model<br />

registration associated with it must be selected. The<br />

VIEW== must be present on the instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Choosing a Model<br />

Use the following steps to choose a model when creating a new model<br />

registration:<br />

1. From the Session menu bar, choose File > Model Registration > Create.<br />

The Create dialog box displays.<br />

2. Select a Model Type. For more information, see “Supported Modeling<br />

Types” in this chapter. Depending on the model type specified, the dialog<br />

box changes to display list boxes specific to the model type.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-7


Registering Models for Simulation Managing/Registering Models<br />

5-8<br />

3. Enter the path to the model as follows:<br />

o HDL - You should not need to enter anything. The compiled libraries<br />

specified in the adms.ini file should display in the Library list box. The<br />

design units contained in the highlighted library should display in the<br />

<strong>Design</strong> Unit list box. If no libraries display, select the File > Model<br />

Registration > Choose adms.ini File and specify an adms.ini file. For<br />

more information, see “Supported Modeling Types” in this chapter.<br />

o ELDOSP<strong>IC</strong>E - Click Choose File next to the Model File field and<br />

select the file containing the SP<strong>IC</strong>E models. The subcircuits contained<br />

in the file display in the Sub-Circuit list box.<br />

4. Select the model to register from either the <strong>Design</strong> Unit or Subcircuit list<br />

box.<br />

Registering a Model to an Existing Symbol<br />

Use the following steps to register the model to an existing symbol:<br />

1. Select a model in the Model Registrar Create dialog box. For more<br />

information, see “Choosing a Model” in this chapter.<br />

2. Click Choose Component next to the Component field and select the<br />

component containing the symbol to register the model to. The symbols<br />

contained in the component display in the Symbol list box.<br />

3. Select a symbol in the Symbol list box.<br />

4. Enter a name for the new registration in the Registration field. If no name is<br />

entered, the model name is used.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

5. Click Register to automatically perform the registration or Edit Mapping<br />

to manually map the symbol to the model. For more information, see<br />

“Mapping a Model to a Symbol” in this chapter.<br />

i<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Register and select the NCF to save the model registration to.<br />

Editing an Existing Symbol for a Model<br />

The Model Registrar allows you to create or edit a symbol with the Symbol<br />

Editor. For information on creating a symbol, see “Creating a Symbol for a<br />

Model” in this chapter.<br />

Use the following steps to edit an existing symbol:<br />

1. Select a model in the Model Registrar Create dialog box. For more<br />

information, see “Choosing a Model” in this chapter.<br />

2. Click Choose Component next to the Component field and select the<br />

component containing the symbol to register the model to. The symbols<br />

contained in the component display in the Symbol list box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-9


Registering Models for Simulation Managing/Registering Models<br />

5-10<br />

3. Select a symbol in the list box and click Open Symbol. The Symbol Editor<br />

displays the symbol.<br />

4. Edit the Symbol. For more information on using the Symbol Editor, see<br />

Chapter 4, “Creating Symbols”.<br />

5. Click Check & Save. If the new symbol has no errors, it is saved, and the<br />

Create dialog box displays. For information on correcting errors, see<br />

“Checking a Model Registration” in this chapter.<br />

6. Enter a name for the new registration in the Registration field. If no name is<br />

entered, the model name is used.<br />

7. Click Register to automatically perform the registration or Edit Mapping<br />

to manually map the symbol to the model. For more information, see<br />

“Mapping a Model to a Symbol” in this chapter.<br />

i<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Register and select the NCF to save the model registration to.<br />

Generating a Symbol for a Model<br />

The Model Registrar allows you to define and generate a pinlist/symbol or create<br />

a symbol with the Symbol Editor. For information on using the Symbol Editor,<br />

see “Creating a Symbol for a Model” in this chapter.<br />

Use the following steps to generate a new symbol with the Model Registrar:<br />

1. Select a model in the Model Registrar Create dialog box. For more<br />

information, see “Choosing a Model” in this chapter.<br />

2. Click Choose Component next to the Component field and select a<br />

component container to save the registration to. If no component container<br />

is specified, the model registration is written to a new component container<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

with the model name in the working directory. Any existing symbols in the<br />

component container display in the Symbol list box.<br />

3. Enter the name for the symbol and click Add New. The symbol name is<br />

inserted in the Symbol list box.<br />

4. Select the new symbol in the Symbol list box and click Symbol Layout<br />

Properties. The Symbol Layout Properties dialog box displays.<br />

5. Next to the Pinlist File field, click Choose File to specify a name and<br />

location to write the pinlist file to. A pinlist is created from the symbol<br />

attributes specified in this dialog box. DA-<strong>IC</strong> generates a symbol using the<br />

pinlist. If no filename is specified, the pinlist is saved to the Component<br />

path with the “symbol name”.pinlist.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-11


Registering Models for Simulation Managing/Registering Models<br />

5-12<br />

6. Click the arrow in the Choose Shape data field and choose a symbol shape<br />

from the list.<br />

7. If necessary, modify the values in the following fields:<br />

o Pin Spacing - The minimum spacing requirements for the selected<br />

symbol shape display by default. For more information on pin spacing<br />

units and current setups, see “Setting Grid, Pin Spacing and Snap” in<br />

Chapter 3.<br />

o Shape Arguments - The minimum width and height size requirements<br />

for the selected symbol shape display by default. For more information<br />

on spacing units and current setups, see “Setting Grid, Pin Spacing and<br />

Snap” in Chapter 3.<br />

8. Select the appropriate attributes for each of the symbol pins and click OK.<br />

The Create dialog box displays. For more information on pin attributes, see<br />

“Adding and Naming Symbol Pins” in Chapter 4.<br />

i<br />

9. Enter a name for the new registration in the Registration field. If no name is<br />

entered, the model name is used.<br />

10. Click Register to automatically perform the registration or Edit Mapping<br />

to manually map the symbol to the model. For more information, see<br />

“Mapping a Model to a Symbol” in this chapter.<br />

i<br />

Click on a pin name in the Pin Name field of the Symbol Layout<br />

Properties dialog box to edit it. If you change pin names, you need to<br />

re-map symbol pins to model ports.<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Registration and select the NCF to save the model registration to.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Creating a Symbol for a Model<br />

The Model Registrar allows you to define and generate a pinlist/symbol or create<br />

a symbol with the Symbol Editor. For information on generating a pinlist/symbol<br />

in the Model Registrar, see “Generating a Symbol for a Model” in this chapter.<br />

Use the following steps to create a new symbol:<br />

1. Select a model in the Model Registrar Create dialog box. For more<br />

information, see “Choosing a Model” in this chapter.<br />

2. Click Choose Component next to the Component field and select a<br />

component container to save the registration to. If no component container<br />

is specified, the model registration is written to a new component container<br />

with the model name in the working directory. Symbols contained in the<br />

component container display in the Symbol list box.<br />

3. Enter the name for the symbol and click Add New. The symbol name is<br />

inserted in the Symbol list box.<br />

4. Select the new symbol in the Symbol list box and click Open Symbol. The<br />

Symbol Editor displays a blank page.<br />

5. Create the Symbol. For more information on using the Symbol Editor, see<br />

Chapter 4, “Creating Symbols”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-13


Registering Models for Simulation Managing/Registering Models<br />

5-14<br />

6. Click Check & Save. If the new symbol has no errors, it is saved, and the<br />

Create dialog box displays. For information on correcting errors, see<br />

“Checking a Model Registration” in this chapter.<br />

7. Enter a name for the new registration in the Registration field. If no name is<br />

entered, the model name is used.<br />

8. Click Register to automatically perform the registration or Edit Mapping<br />

to manually map the symbol to the model. For more information, see<br />

“Mapping a Model to a Symbol” in this chapter.<br />

i<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Registration and select the NCF to save the model registration to.<br />

If the model registration contains errors, the edit mapping dialog box<br />

displays. For more information, see “Mapping a Model to a Symbol” and<br />

“Checking a Model Registration” in this chapter.<br />

Registering a Model from a Symbol<br />

Use the following steps to register a model to a selected symbol in the Schematic<br />

Editor:<br />

1. Open the schematic in DA-<strong>IC</strong> and select the symbol instance you want to<br />

register a model to.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

2. Choose Model Registration > Registration > Create from the palette<br />

menu. The Model Registrar dialog box displays with the symbol name and<br />

location filled in.<br />

3. Specify a model. For more information, see “Choosing a Model” in this<br />

chapter.<br />

4. Enter a name for the new registration in the Registration field. If no name is<br />

entered, the model name is used.<br />

5. Click Register to automatically perform the registration or Edit Mapping<br />

to manually map the symbol to the model. For more information, see<br />

“Mapping a Model to a Symbol” in this chapter.<br />

i<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Registration and select the NCF to save the model registration to.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-15


Registering Models for Simulation Managing/Registering Models<br />

Mapping a Model to a Symbol<br />

The model ports and parameters are automatically mapped to the symbol pins and<br />

properties by name when the registration is executed. Use the following steps to<br />

manually map the symbol to the model:<br />

5-16<br />

1. From the create dialog box, click Edit Mapping. A dialog box displays the<br />

model ports, symbol pins, and current mapping for the model registration.<br />

Mapped pins display in green, unmapped pins display in red, and open and<br />

not mapped pins display in orange.<br />

Model ports<br />

Current mapping<br />

Symbol pins<br />

2. Map the desired Model Ports to the Symbol Pins using one of the following<br />

methods:<br />

o Click Add As Property — Adds the selected model parameter name<br />

and value as a property to the symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

o Click Map by Name — Maps the Model Ports to the Symbol Pins with<br />

matching names. The Model Registrar defaults to this mapping<br />

automatically.<br />

o Select a port under Model Ports and a corresponding pin under Symbol<br />

Pins and click Map Selected — Maps the selected port and pin together<br />

and displays them in under Mapped Pins.<br />

o Select a pin/port pair under Mapped Pins and click<br />

Unmap Selected — Deletes the selected pin/port mapping.<br />

o Click Open under Model Ports to specify that a Model Port is OPEN or<br />

unconnected - The open port is displayed in orange.<br />

o Click Unmap All — Deletes all current pin/port mapping.<br />

3. Click Next to map the model parameters to the symbol properties. A dialog<br />

box displays the model parameters, symbol properties, and current mapping<br />

for the model registration. Mapped properties display in green and<br />

unmapped properties display in red.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-17


Registering Models for Simulation Managing/Registering Models<br />

5-18<br />

Model parameters<br />

Current mappings<br />

Symbol properties<br />

4. Map the desired Model Parameters to the Symbol Properties using one of<br />

the following methods:<br />

o Click Map by Name — Maps all Model Parameters to the Symbol<br />

Properties with matching names. The Model Registrar defaults to this<br />

mapping automatically.<br />

o Select a parameter under Model Parameters and a corresponding<br />

property under Symbol Properties and click Map Selected — Maps the<br />

selected parameters and properties together and displays them under<br />

Mapped Parameters.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

o Select a parameter/property pair under Mapped Pins and click Unmap<br />

Selected — Deletes the selected parameter/property mapping.<br />

o Click Unmap All — Deletes all current parameter/property mapping.<br />

5. When you finish mapping the model to the symbol, click Register to<br />

complete the model registration.<br />

i<br />

By default, the model registration is written to the Component NCF. To<br />

specify which NCF the model is written to, click the right mouse button<br />

on Registration and select the NCF to save the model registration to.<br />

Setting a Default Model Registration<br />

The default model registration is used by the netlister when no model is specified<br />

for a symbol. When creating or editing a model registration, click the default<br />

button to set the current model as the default.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-19


Registering Models for Simulation Managing/Registering Models<br />

Viewing the Registered Models for a Symbol<br />

Use the following steps to view all models registered to a selected symbol:<br />

5-20<br />

1. Open a schematic design.<br />

Click to specify the<br />

named model<br />

registration as the<br />

default.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

2. Select the symbol and choose Model Registration > Registration ><br />

Manage from the palette menu. The Model Registrar dialog box displays.<br />

Validity status<br />

3. All models associated with the selected symbol display including:<br />

o Validity status — For more information, see “Checking a Model<br />

Registration” in this chapter.<br />

o Model Type — Language type for the model. For more information,<br />

see “Supported Modeling Types” in this chapter.<br />

o Model Name — Name of the model.<br />

o Registration Name — Name of the model registration.<br />

o Permission — Read, write, locked permissions for the model<br />

registration.<br />

o TD — Indicates the default model.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-21


Registering Models for Simulation Managing/Registering Models<br />

Checking a Model Registration<br />

New model registrations are checked for validity before they are saved. The<br />

following checks are performed:<br />

5-22<br />

• Symbol pins and model ports match the registration pin alignment.<br />

• All model parameters are mapped to symbol properties or have a default<br />

value.<br />

• Model and symbol have not been modified since the registration was<br />

created.<br />

If the checks do not pass, a descriptive error message displays in the Model<br />

Registrar transcript window.<br />

Use the following steps to check an existing model registration:<br />

1. Open the schematic design and select the symbol instance.<br />

2. Choose Model Registration > Registration > Manage from the palette<br />

menu. The Model Registrar dialog box displays.<br />

3. Select the model to check. Each model is preceded by a check status<br />

indicator as follows:<br />

Indicates the model passed all checks and is<br />

considered valid.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

4. Choose Registration > Check Registration. The selected model is<br />

checked and the status indicator is updated to reflect the current status.<br />

Note<br />

If the model still contains errors, check the symbol-to-model mapping.<br />

For more information, see “Mapping a Model to a Symbol” in this chapter.<br />

Editing a Model Registration<br />

Use the following steps to edit an existing model registration:<br />

1. Open a schematic design.<br />

Indicates the model has not been checked.<br />

Indicates the model has been checked and that it<br />

contains errors. Click on the icon to display an<br />

error description.<br />

To check all registrations listed, choose Registration > Check all<br />

Registrations.<br />

2. Select the symbol instance and choose Model Registration > Registration<br />

> Manage from the palette menu. The Model Registrar dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-23


Registering Models for Simulation Managing/Registering Models<br />

5-24<br />

3. Select the model you need to edit and choose Registration > Edit<br />

Registration from the pulldown menu. The Model Registrar dialog box<br />

displays.<br />

4. If necessary, click Open Symbol to edit the symbol for the model<br />

registration with the Symbol Editor. For more information, see “Editing an<br />

Existing Symbol for a Model” in this chapter.<br />

5. If necessary, click the button next to Default Registration to specify the<br />

model registration as the default. For more information, see “Setting a<br />

Default Model Registration” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

6. If necessary, click the Pin Alignment tab to edit the model port to symbol<br />

pin mapping. For more information, see “Mapping a Model to a Symbol”in<br />

this chapter.<br />

7. If necessary, click the Parameter Alignment tab to edit the model parameter<br />

to property mapping. For more information, see “Mapping a Model to a<br />

Symbol” in this chapter.<br />

8. Click Save to save the changes to the model registration. The Model<br />

Registrar dialog box displays.<br />

9. Check the registration. For more information, see “Checking a Model<br />

Registration” in this chapter.<br />

Renaming a Model Registration<br />

Use the following steps to rename an existing model registration:<br />

1. Open a schematic design.<br />

2. Select the symbol instance and choose Model Registration > Registration<br />

> Manage from the palette menu. The Model Registrar dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-25


Registering Models for Simulation Managing/Registering Models<br />

5-26<br />

3. Select the model you need to rename and choose Registration > Change<br />

Registration Name from the pulldown menu. The Change Registration<br />

Name dialog box displays.<br />

4. Enter the new name and click OK.<br />

Copying a Model Registration<br />

Use the following steps to copy an existing model registration to another Netlist<br />

Control File (NCF):<br />

1. Open a schematic design.<br />

2. Select the symbol instance and choose Model Registration > Registration<br />

> Manage from the palette menu. The Model Registrar dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

3. Select the model registration you need to copy and choose Registration ><br />

Copy Registration from the pulldown menu. The Copy Registration dialog<br />

box displays.<br />

4. Click the arrow in the lower data field to display a list of writable NCFs.<br />

5. Select an NCF to copy the registration to. If nothing is selected, the<br />

registration is copied to the same NCF the original resides in.<br />

6. Click OK. The model registration is copied to the selected NCF.<br />

Deleting a Model Registration<br />

Use the following steps to delete an existing model registration:<br />

1. Open a schematic design.<br />

2. Select the symbol instance and choose Model Registration > Registration<br />

> Manage from the palette menu. The Model Registrar dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-27


Registering Models for Simulation Managing/Registering Models<br />

5-28<br />

3. Select the model registration you need to delete and choose Registration ><br />

Delete Registration. The selected model registration is deleted.<br />

Note<br />

If multiple model registrations with the same name exist, only the<br />

model registration in the highest priority NCF is deleted. If<br />

another model registration with the same name is contained in<br />

another NCF, it displays.<br />

Restoring Deleted Model Registrations<br />

When you delete model registrations with the Model Registrar, they are sent to the<br />

trash bin. From the trash bin, you can delete them permanently or restore them to<br />

the Model Registrar. The trash bin contains only the model registrations deleted in<br />

the current session. Use the following steps to delete or restore model registrations<br />

from the trash bin:<br />

1. From the Model Registrar, choose Component > Trash Bin. Model<br />

registrations deleted from the current session display.<br />

2. Select a registration and click one of the following options:<br />

o Restore - Moves the selected model registration from the trash bin back<br />

to the Model Registrar.<br />

o Remove - Deletes the selected model registration permanently.<br />

3. Click Close. The Deleted Registrations window closes.<br />

If you exit the Model Registrar with registrations in the trash bin, you are<br />

prompted to delete or restore them.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Closing the Model Registrar<br />

Use the following step to exit the Model Registrar:<br />

• Click Exit. The Model Registrar closes.<br />

Using the Model Registrar in Batch Mode<br />

You can invoke the Model Registrar in batch mode from the command line. Batch<br />

mode allows you to easily register models to one or more symbols. In batch mode,<br />

the Model Registrar reads a user-created configuration file that performs the same<br />

action as the interactive Model Registrar.<br />

Note<br />

Creating a Batch File Using the Model Registrar<br />

Use one of the following methods to create a batch file:<br />

• Creating a Batch File Using Model Registrar From a Shell<br />

• Creating a Batch File Using Model Registrar From Within <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong><br />

Creating a Batch File Using Model Registrar From a Shell<br />

Note<br />

To register HDL models, the anacad environment variable must be<br />

set and anacad must be initialized as shown:<br />

set anacad <br />

. $anacad/com/init_anacad<br />

To use Model Registrar from a shell, the ADMSIM environment<br />

variable must be set to the path of the adms.ini file.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-29


Registering Models for Simulation Managing/Registering Models<br />

To register a single model and write the registration to a batch file, invoke the<br />

Model Registrar from a shell using the create option as shown:<br />

5-30<br />

$MGC_HOME/bin/mr_ic -create -tobatch batch_file -mrf <br />

-create — Invokes the Model Registrar in create mode for a single model<br />

registration.<br />

-tobatch — Captures model registration information in the batch_file file.<br />

-mrf — Creates a mapping rule file containing the pin and parameter<br />

mapping rules used for this registration. If no mapping_rule_file argument,<br />

the following default mrf file is used<br />

component_directory/_.mrf<br />

Register as many models as you want using the create option; the registration<br />

information is appended to the batch_file and the mapping rules are saved in<br />

individual mapping_rule_file files. You can also invoke the Model Registrar using<br />

the manage option from a shell and register multiple models. For complete<br />

command syntax, execute the following command from a shell:<br />

$MGC_HOME/bin/mr_ic -help<br />

Creating a Batch File Using Model Registrar From Within <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong><br />

To register multiple models and write the registration to a batch file, invoke the<br />

Model Registrar from <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> by clicking Model Registration ><br />

Manage from the session palette. This action is equivalent to invoking in manage<br />

mode from a shell as shown below:<br />

$MGC_HOME/bin/mr_ic -manage<br />

To specify the -tobatch option in this mode, choose Options > Setup from the<br />

Model Registrar to display the Setup Model Registration dialog box. Use this<br />

dialog box to create a mapping rule file, a batch file, and a log file while in<br />

manage mode.<br />

To begin registering models in this mode, choose Registration > Create<br />

Registration. You can register as many models as you want using this method,<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

and the registration information is appended to the batch_file and the mapping<br />

rules are saved in individual mapping_rule_file files.<br />

Creating a Batch File <strong>Manual</strong>ly<br />

Batch files are ASCII files containing all of the information necessary to perform<br />

a registration(s). Batch files can be manually created with a text editor following<br />

the guidelines described in this section.<br />

Batch File Syntax<br />

Each entry in a batch file contains a set of registration information organized as<br />

follows:<br />

<br />

< Registration Name><br />

<br />

Table 5-1 presents typical values for entries in the batch file. Note that soft<br />

pathnames, that are present in the location map, are supported.<br />

Model<br />

Language<br />

Model<br />

Library<br />

Model<br />

Name<br />

Component<br />

Path<br />

Symbol<br />

Name<br />

Registration<br />

Name<br />

NCF<br />

Destination<br />

Table 5-1. Example Registration Argument Values<br />

HDL EldoSpice Schematic Required/<br />

Optional<br />

WORK $DESIGN/models/<br />

Inv.cir $DESIGN/symbols<br />

/Inv Required<br />

INV(ADMS) Inv_subckt schematic Required<br />

$DESIGN/symbols/<br />

Inv $DESIGN/symbols/<br />

Inv $DESIGN/symbols/<br />

Inv Required<br />

Inv Inv Inv Required<br />

Inv_hdl Inv_spice Inv_schematic Optional<br />

1 0 3 Optional<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-31


Registering Models for Simulation Managing/Registering Models<br />

In the batch file, the NCF Destination argument is specified as follows:<br />

5-32<br />

Model<br />

Language<br />

Pinlist<br />

Path<br />

Mapping<br />

Rule File<br />

Path<br />

Table 5-1. Example Registration Argument Values<br />

0: User NCF<br />

1: Component NCF<br />

2: Library NCF<br />

3: Global NCF<br />

HDL EldoSpice Schematic Required/<br />

Optional<br />

$DESIGN/symbols/<br />

Inv/Inv.pinlist $DESIGN/symbols/<br />

Inv/Inv.pinlist $DESIGN/symbols/<br />

Inv/Inv.pinlist Optional<br />

$DESIGN/symbols/<br />

Inv/Inv_hdl.mrf $DESIGN/symbols/<br />

Inv/Inv_spice.mrf $DESIGN/symbols/<br />

Inv/Inv_schem.mrf Optional<br />

For more information about the NCF Destination, refer to the section<br />

“Determining a Location for the NCF” in Chapter 2 of the EldoNet User’s and<br />

Reference <strong>Manual</strong>.<br />

Table 5-2 lists default values for the optional arguments in a batch file entry.<br />

Table 5-2. Default Values for Optional Arguments<br />

Model Language Default Value<br />

Registration Name Model Name<br />

NCF Destination NCF Component (1)<br />

Pinlist Path in the component directory<br />

If the file does not exist in the default location, the argument is<br />

ignored.<br />

Mapping Rule File Path in the component directory<br />

If the file does not exist in the default location, the argument is<br />

ignored.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Batch File Processing<br />

Batch files are processed according to the following rules:<br />

• An entry line in the batch file is skipped if the Model Registrar cannot<br />

register or if some information is missing. An error message is added to the<br />

log.<br />

• If the symbol does not exist, or if there is no mapping rule file, the argument<br />

is replaced by "". The other optional arguments are replaced by "" to be<br />

ignored.<br />

• If the symbol is already registered, you can re-use the pinlist file generated.<br />

It resides in the component directory under the name<br />

.pinlist. If the pinlist file is not defined and the<br />

symbol does not exist, the symbol is generated with default characteristics<br />

(box shape, default pin locations).<br />

• If the is not defined, the registration name assumes<br />

the model by default. If the is not defined, the<br />

registration is saved in the NCF Component file as “1”.<br />

Mapping Rules Files<br />

Mapping rules files must respect case-sensitive syntax as described in the section<br />

“Mapping Rules Files Syntax”. They are automatically generated by the Model<br />

Registration process and have a .mrf suffix. By default, they are created in the<br />

component directory with the format: .mrf. You can<br />

specify a different location by specifying an explicit pathname for the -mrf<br />

argument during model registration.<br />

Mapping rules files contain information to map ports to pins and to map<br />

parameters to properties. The following levels of mapping are possible:<br />

• Name Mapping — Maps the ports with the pins according to their names.<br />

• Alphanumerical Mapping — Maps the ports with the pins according to their<br />

alphabetical order.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-33


Registering Models for Simulation Managing/Registering Models<br />

5-34<br />

• Specified Mapping — Maps the specified ports with the specified pins.<br />

Mapping Rules Files Syntax<br />

The .mrf file must use the following case-sensitive syntax:<br />

set pinMappingRules <br />

set propMappingRules <br />

• The pinRule and the propRule can be one of the following: name, alpha,<br />

specific.<br />

• If the rule is specific for the pinMappingRules, the following lines should<br />

be added:<br />

set portMappingRuleList { }<br />

set pinMappingRuleList { }<br />

set portOpenRuleList {}<br />

In this case, will be mapped with , will be mapped<br />

with , and so on. will be left unmapped. will be<br />

OPEN.<br />

• If the rule is specific for the propMappingRules, the following lines should<br />

be added:<br />

set paramMappingRuleList { }<br />

set propMappingRuleList { }<br />

In this case, will be mapped with , will be<br />

mapped with , and so on. will be left unmapped.<br />

If a pin or param mapping is not defined for an instance, it remains<br />

unmapped.<br />

• If a rule file is not specified, the mapping is performed by name.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing/Registering Models Registering Models for Simulation<br />

Registering Models Using a Batch File<br />

To invoke the Model Registrar and use the batch file created in either of the<br />

previous sections, invoke the Model Registrar from the shell using the batch<br />

option as shown:<br />

model_registrar -batch batch_file <br />

-batch — Invokes the Model Registrar using the batch_file argument as<br />

input for registration.<br />

-log — Generates a log file for the batch session. If the log_file file is<br />

specified, the log information is written to this file; otherwise it is written to<br />

stdout.<br />

-nogui — Specifies that the Batch Mode application is not displayed. This<br />

option is not recommended because it removes progress and result status<br />

from the screen.<br />

Before re-registering (updating) models that have already been registered in batch<br />

mode, you must delete the associated NCF files from each component.<br />

If the Model Registrar does not have enough information to register a specific<br />

entry in the batch_file file, the entry is skipped.<br />

If you do not specify a batch_file argument with the batch option, the Model<br />

Registrar invokes in the manage mode. You can register without explicitly<br />

running <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. If the file format is not correct, the Model Registrar<br />

returns an error.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 5-35


Registering Models for Simulation Managing/Registering Models<br />

5-36<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 6<br />

Using Function Blocks<br />

This chapter describes Function Block (FB) creation, manipulation, and<br />

conversion procedures. Function Block creation involves the following two-step<br />

process:<br />

1. Creating FB Definitions and FB Instances - this procedure involves<br />

assembling and manipulating FB Definitions and FB Instances.<br />

2. Creating Made FB Definitions and FB Instances - this operation<br />

converts existing unmade FB Definitions or FB Instances to Made FB<br />

Definitions or Made FB Instances.<br />

Function Block Terminology<br />

The following states, unmade and made, represent Function Blocks at specific<br />

development stages, as follows:<br />

• Made - A standard Made FB Definition or Made FB Instance symbol<br />

converted from an FB Definition or FB Instance.<br />

• Unmade - An editable and re-sizable FB Definition or FB Instance.<br />

i<br />

!<br />

Caution<br />

Do not edit Function Blocks in simulation mode or design context.<br />

Use the Schematic Editor only to create or edit Function Blocks.<br />

All Function Blocks must be “made” before you invoke simulation<br />

mode or design context.<br />

Refer to the “Terminology” section in Chapter 12 for additional Function<br />

Block Terminology.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-1


Chapter Structure Using Function Blocks<br />

Chapter Structure<br />

6-2<br />

Setting up a Function Block Set a made or unmade Function Block’s<br />

default line style and color settings.<br />

Creating Made FB Definitions<br />

and FB Instances<br />

Create FB Definitions and FB Instances.<br />

Net Construction Connect FB Definitions and FB Instances.<br />

Manipulating FB Definitions<br />

and FB Instances<br />

Creating Made FB Definitions<br />

and FB Instances<br />

Unmaking Made FB<br />

Definitions and Made FB<br />

Instances<br />

Edit and manipulate FB Definitions and FB<br />

Instance.<br />

Produce Made FB Definitions and Made FB<br />

Instances from FB Definitions and FB<br />

Instances.<br />

Return Made FB Definitions and Made FB<br />

Instances to their unmade form.<br />

Checking Function Blocks Test either made or unmade Function Blocks<br />

using the $$check() function.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Setting up a Function Block<br />

Setting up a Function Block<br />

A Function Block object’s default line style settings are set using the Schematic<br />

Setup Function Blocks dialog box, as shown in Figure 6-1 on page 6-4. Default<br />

color settings are set using the Session Set Color dialog box, represented in<br />

Figure 6-2 on page 6-5. When set, the default settings apply to Function Blocks<br />

created and made during the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> session.<br />

Note<br />

These settings affect all subsequently-created Function Block<br />

objects. Line style changes have no effect on existing Function<br />

Block objects unless the object changes state, that is made to<br />

unmade state, or unmade to made state<br />

Use the following steps to set the default line style for a Function Block:<br />

1. Invoke <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> and open the appropriate sheet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-3


Setting up a Function Block Using Function Blocks<br />

6-4<br />

2. Select Setup > Function Blocks.... The Setup Function Blocks dialog box<br />

shown in Figure 6-1 displays.<br />

Setup Function Blocks<br />

Made Function Block Defs Unmade Function Block Defs<br />

Line Style Line Style<br />

Made Function Block Insts<br />

Line Style<br />

Unmade Function Block Insts<br />

Line Style<br />

OK Reset Cancel<br />

Figure 6-1. Setup Function Blocks Dialog Box<br />

3. Select the appropriate line style(s).<br />

4. Select whether passthru nets are on or off. For more information regarding<br />

passthru nets, refer to “Constructing Passthru Nets” in this chapter. By<br />

default, passthru nets are on.<br />

5. Select whether the Make Failure Popup notification is issued if errors are<br />

detected while Creating Made FB Definitions and FB Instances.<br />

6. Select whether the Interface Change popup is issued if Interface Pin<br />

Changes are detected during the Make Operation.<br />

7. Once the Selections are made, click OK.<br />

Passthru Nets<br />

On<br />

Off<br />

Make Failure Popup<br />

On<br />

Off<br />

Popup On Interface Change<br />

On<br />

Off<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Setting up a Function Block<br />

In addition, this setting can be captured in a startup file using the<br />

$setup_function_block() function.<br />

Perform the following steps to setup the Function Block object’s default color<br />

settings:<br />

1. Invoke <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>.<br />

2. From the Session Pulldown Menu Bar, select Setup > Display... or use the<br />

$setup_color() function.<br />

The Setup Display dialog box displays, as shown in Figure 6-2.<br />

Figure 6-2. Set Color Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-5


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-6<br />

3. Click the appropriate radio button to select the object, then use the scroll list<br />

to select that object’s desired color.<br />

4. Click OK.<br />

In addition, you can capture this setting in a startup file using the $set_color()<br />

function and, subsequently, you can pre-load the startup file during invocation.<br />

Both the line styles and colors for a specific Function Block object can be set “onthe-fly”<br />

during a session. For more detailed information, refer to “Setting Colors<br />

On-the-Fly” in this chapter.<br />

Creating FB Definitions and FB<br />

Instances<br />

FB Definitions and FB Instances are created on the schematic sheet. The sections<br />

listed below contain the step-by-step procedures used in creating FB Definitions<br />

and FB Instances:<br />

• Creating FB Definitions<br />

• Creating FB Instances<br />

• Adding FB Pins<br />

At the most rudimentary level, creating FB Definitions and FB Instances consists<br />

of enclosing pre-existing circuitry within an FB Definition rectangular boundary,<br />

adding the required FB_NAME property, and, if used, the optional FB_INST<br />

property. These Function Block-specific properties are described in Table 6-1<br />

below.<br />

Table 6-1. Function Block-Specific Properties<br />

Property Definition<br />

FB_NAME Required - A string property identifying an FB Definition’s<br />

unique name.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Table 6-1. Function Block-Specific Properties<br />

Property Definition<br />

FB_INST Optional - A user-specified string property identifying the<br />

future Made FB Instance’s name.<br />

This property can be used for arrayed FB Instances, for<br />

example “RAM_INST[15:0]”.<br />

Note: When an FB Instance or FB Definition is made, this<br />

property becomes the standard symbol INST property.<br />

The Add Popup Menu, described in Figure 6-3, contains the available Function<br />

Block functions.<br />

Add Function Block Instance<br />

$add_fb_inst()<br />

Add Function Block Definition<br />

$add_fb_def()<br />

Add Function Block Pin<br />

$add_fb_pins()<br />

Figure 6-3. Add Popup Menu with Function Block Options<br />

FB Definitions and FB Instances Usage Models<br />

When do you use an FB Definition and when do you use an FB Instance?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-7


Creating FB Definitions and FB Instances Using Function Blocks<br />

An FB Definition is primarily used to initially design and manipulate the<br />

contained circuitry, as well as the FB Definition boundary, in a variety of different<br />

ways depending on the intended use.<br />

An FB Instance’s principal application is FB Definition reuse. An FB Instance can<br />

be resized and have pins, moved, or deleted. Note that an FB Instance is based on<br />

an existing FB Definition. For additional information and usage instructions, refer<br />

to the “Manipulating FB Definitions and FB Instances” section in this chapter.<br />

Creating FB Definitions<br />

6-8<br />

Follow the steps below to add FB Definitions to a schematic sheet.<br />

1. Invoke <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> and open a schematic sheet.<br />

2. Navigate to a schematic area where you want to create the FB Definition.<br />

For example, Figure 6-4 is a simple circuit to be used inside an FB<br />

Definition.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Note<br />

Figure 6-4. Example Schematic<br />

3. To define the FB Definition’s rectangular extent, right click within the<br />

schematic window to call the Add Popup menu.<br />

Note<br />

Schematic#1 source1 sheet1<br />

FB Definitions cannot contain internal ports or external<br />

connectors.<br />

After an FB Definition is created, it can be resized, moved, or<br />

copied. Refer to the “Manipulating FB Definitions and FB<br />

Instances” section in this chapter for specific instructions.<br />

Figure 6-5 shows the Function Block menu options in the Add popup menu.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-9


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-10<br />

Figure 6-5. Function Block Options in the Add Popup Menu<br />

This option is also available using the Schematic Add pulldown menu.<br />

4. From the Add popup or pulldown menu, choose Function Block Def:<br />

The Add Function Block Definition prompt bar displays.<br />

ADD FB D FB Name rect INST Name<br />

Name Placement auto<br />

OK Cancel<br />

Function Block Name<br />

Function Block Inst Name (optional)<br />

Name Placement<br />

- Auto<br />

- <strong>Manual</strong><br />

• FB Name - Contains the FB Definition’s user-specified name. This is<br />

also the FB_NAME property.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

• INST Name - Contains an optional, user-specified Instance name. This<br />

is also the FB_INST property.<br />

Note<br />

Both the FB Names and INST Names must be unique for each FB<br />

Definition. In other words, there cannot be two FB Definitions in<br />

the same schematic with identical FB Names and/or INST Names.<br />

• Name Placement - Determines how the FB Name and FB Inst Names<br />

are applied to the FB Definition. Use one of the following two options:<br />

o Auto - If selected, the FB_NAME and, if used, FB_INST properties<br />

are applied automatically to the FB Definition in the upper left- and<br />

upper right hand-corners of the rectangle, respectively.<br />

o <strong>Manual</strong> - If selected, the user manually places the FB_NAME and, if<br />

used, FB_INST property’s name, to the FB Definition.<br />

5. Within the Add Function Block Definition prompt bar, perform the<br />

following steps:<br />

a. Enter the FB Definition’s name in the prompt bar’s “FB Name” field.<br />

b. If used, enter the FB Instance’s name in the prompt bar’s “INST Name”<br />

field.<br />

c. Use the stepper button to select either Auto or <strong>Manual</strong> Name<br />

Placement. Auto is the default selection.<br />

6. Verify the settings, then click OK.<br />

The prompt bar will not close until you create the FB Definition’s bounded<br />

rectangular area on the schematic sheet. The rectangular area must be larger<br />

than a 1x1 pin grid and always snaps to the grid.<br />

7. Move the cursor over to the upper-left corner of the circuit. The cursor turns<br />

to a “+” to create the FB Definition’s rectangle.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-11


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-12<br />

8. Position the cursor and hold down the left mouse button, then drag the<br />

cursor over the circuitry elements you want included within the FB<br />

Definition. Figure 9 provides an example of this step.<br />

Schematic#1 source1 sheet1<br />

9. After positioning the rectangle, release the left mouse button.<br />

The FB Definition’s rectangle boundary, represented by dashed lines, is<br />

now instantiated and remains selected. Figure 6-6 provides an example of<br />

an instantiated FB Definition assigned the FB_NAME property of “mux”<br />

and the optional user-specified FB_INST property of “mux_1”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

FB_NAME Property<br />

Schematic#1 source1 sheet1<br />

mux<br />

Figure 6-6. FB Definition Example<br />

The FB Definition’s rectangular boundary default color is green. If required, the<br />

default colors are modified in accordance with the instructions contained in the<br />

“Setting up a Function Block” or “Setting Colors On-the-Fly” sections in this<br />

chapter.<br />

Once the FB Definition is created, you can add FB Pins to connect the object. For<br />

detailed procedures, refer to the “Adding FB Pins” section in this chapter.<br />

Creating FB Instances<br />

FB_INST Property<br />

mux_1<br />

Definition<br />

Boundary<br />

FB Instances are designed to reuse an existing FB Definition. FB Instances cannot<br />

enclose other schematic objects and the design must contain exactly one parent<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-13


Creating FB Definitions and FB Instances Using Function Blocks<br />

FB Definition with a matching FB_NAME property. The following two methods<br />

are used in creating FB Instances: 1) Using the<br />

Miscellaneous > Convert Function Block > Create Instance From Definition<br />

pulldown menu item, or 2) Using the Add Popup Menu.<br />

6-14<br />

1. Using the “Create Instance From Definition” Menu Item - This is the most<br />

efficient method for creating FB Instances. Once an FB Definition is<br />

constructed, an FB Instance is created from the existing FB Definition for<br />

reuse within the schematic. For example, you can create the FB Instance in<br />

Figure 6-10, on page 6-17, from the existing FB Definition in Figure 6-18,<br />

on page 6-25, and place the Instance on the active sheet.<br />

Perform the following steps to create an FB Instance from an existing FB<br />

Definition:<br />

a. Open the schematic that contains the FB Definition and select the FB<br />

Definition’s rectangular boundary.<br />

b. Use the right mouse button (or the F4 function key) to call the Function<br />

Block popup menu. This option is also available via the Schematic<br />

Miscellaneous > Convert Function Block pulldown menu.<br />

c. Within the Function Block popup menu, select Convert Function<br />

Block > Create Instance from Definition, as demonstrated in<br />

Figure 6-7.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Function Block<br />

Other Menus<br />

Unselect All<br />

Move [a-MMB]<br />

Copy [c-MMB]<br />

Delete<br />

Undo<br />

Redo<br />

Properties<br />

Add FB Pins<br />

Make Function Block<br />

Unmake Function Block<br />

Convert Function Block<br />

Resize<br />

Align<br />

Instance to Definition<br />

Create Instance from Definition<br />

Figure 6-7. Function Block Popup Menu<br />

d. The Create Function Block Definition from Instance prompt bar is<br />

called as shown in Figure 6-8.<br />

CRE FB I F D At Location<br />

OK Cancel<br />

Figure 6-8. Create Function Block Definition to Instance Prompt<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-15


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-16<br />

e. Upon execution, move the white-bounded FB Instance ghost image to<br />

the appropriate location on the schematic sheet, as shown in Figure 6-9.<br />

mux mux_1<br />

Schematic #1 source1 sheet1<br />

Figure 6-9. Positioning a FB Instance<br />

f. Click the left mouse button to place the FB Instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Figure 6-10 shows the FB Definition and the newly-created FB Instance.<br />

Figure 6-10. FB Instance Created from a FB Definition<br />

Note<br />

mux mux_1<br />

Schematic #1 source1 sheet1<br />

mux mux_2<br />

If the FB Definition contains the optional FB_INST property, this<br />

property must be changed to a unique name on the created FB<br />

Instance.<br />

FB Instances can be resized, moved, or copied. Refer to the chapter’s<br />

“Manipulating FB Definitions and FB Instances” section in this chapter for<br />

specific instructions.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-17


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-18<br />

2. Using the Add Popup Menu - Figure 6-11 is an example FB Definition<br />

parent that serves as the FB Instance’s basis:<br />

Schematic#1 source1 sheet1<br />

mux<br />

Figure 6-11. Example FB Definition<br />

To create an FB Instance, use the following procedure:<br />

a. On the active sheet containing the FB Definition, navigate to a<br />

schematic area where you want to create the FB Instance.<br />

b. To define the FB Instance’s rectangular extent, right click within the<br />

schematic window to call the Add Popup menu.<br />

Figure 6-12 shows the Function Block menu options in the Add popup<br />

menu that are available for use.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Figure 6-12. Add Popup Menu with Function Block Menu Options<br />

These options are also available using the Schematic<br />

Add pulldown menu.<br />

c. From the Add popup menu, select Function Block Inst:<br />

d. The Add Function Block Instance prompt bar is called.<br />

ADD FB I FB Name rect INST Name<br />

Name Placement auto<br />

OK Cancel<br />

Function Block Name<br />

Function Block Inst Name (optional)<br />

Name Placement<br />

- Auto<br />

- <strong>Manual</strong><br />

• FB Name - The field that contains the existing FB Definition’s userspecified<br />

name. This is also the FB_NAME property.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-19


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-20<br />

Note<br />

• INST Name - An optional field that contains a user-specified FB<br />

Instance name. This is also the FB_INST property.<br />

Both the FB Names and INST Names must be unique for each FB<br />

Instance. In other words, there cannot be two FB Instances on the<br />

same sheet with identical FB Names and INST Names.<br />

• Name Placement - Determines how the FB Name and FB Inst<br />

Names are applied to the FB Instance. Use one of the following two<br />

options:<br />

a. Auto - If selected, the FB_NAME and, if used, FB_INST<br />

properties are applied automatically to the FB Instance in the<br />

upper left- and upper right hand-corners of the rectangle,<br />

respectively.<br />

b. <strong>Manual</strong> - If selected, the user manually adds the FB_NAME and,<br />

if used, FB_INST property’s Names to the FB Instance.<br />

e. Within the Add Function Block Instance prompt bar, perform the<br />

following steps:<br />

i. Enter the existing FB Definition’s name in the prompt bar’s FB<br />

Name field.<br />

Figure 6-11’s FB Definition’s name is “mux”. In this example,<br />

“mux” is entered in the prompt bar’s FB Name field.<br />

ii. If used, enter the FB Instance’s name in the prompt bar’s “INST<br />

Name” field.<br />

In the example, the name “circuit_01” is entered in the field.<br />

iii. Use the stepper button to select either Auto or <strong>Manual</strong> Name<br />

Placement. Auto is the default selection.<br />

f. Verify the settings, then click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

The prompt bar will not close until you create the FB Instance’s<br />

bounded rectangular area on the schematic sheet. The rectangular area<br />

must be larger than a 1x1 pin grid and snaps to the grid.<br />

g. Move the cursor over the schematic’s extent. The cursor turns to a “+”<br />

to create the FB Instance’s rectangle.<br />

h. Position the cursor and hold down the left mouse button and, by<br />

“dragging” the cursor across the sheet, create the FB Instance.<br />

Figure 6-13 provides an example of this step.<br />

Schematic#1 source1 sheet1<br />

Figure 6-13. FB Instance Creation Example<br />

i. After positioning the rectangle, release the left mouse button.<br />

The FB Instance rectangle, represented by dashed lines, is now<br />

instantiated and remains selected. Figure 6-14 provides an example of<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-21


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-22<br />

an instantiated FB Instance based on the FB Definition “mux” and<br />

containing the optional user-specified FB_INST property of<br />

“circuit_01”.<br />

Function Block Name<br />

Schematic#1 source1 sheet1<br />

mux<br />

Function Block Instance Name<br />

circuit_01<br />

Figure 6-14. FB Instance Example<br />

Function Block<br />

Instance<br />

Boundary<br />

The FB Instance’s rectangular boundary default color is yellow. If<br />

required, the default colors can be modified in accordance with the<br />

instructions contained in the “Setting up a Function Block” and “Setting<br />

Colors On-the-Fly” sections in this chapter.<br />

Once the FB Instance is created, you can add FB Pins to connect the object. For<br />

detailed procedures, refer to the “Adding FB Pins” section in this chapter. In<br />

addition, unmade FB Instances can be resized, moved, or copied. For specific<br />

instructions, refer to the “Manipulating FB Definitions and FB Instances” section<br />

in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating FB Definitions and FB Instances<br />

Adding FB Pins<br />

Perform the following steps to add FB Pins to FB Definitions and FB Instances:<br />

Note<br />

Every FB Definition or FB Instance must have at least one pin.<br />

The pins are placed on the top, bottom, or left and right sides of an<br />

unmade FB Definition or FB Instance. However, FB Pins cannot<br />

be placed on the boundary corners. Refer to the “FB Pins” section<br />

in Chapter 12 for more information.<br />

1. Within the schematic, press the right mouse button and select<br />

Function Block Pins: from the Add popup menu, shown in Figure 6-15:<br />

Figure 6-15. Function Block Pins in the Add Popup Menu<br />

The Add Function Block Pin prompt bar is called, as shown in Figure 6-16:<br />

ADD FB P loc<br />

OK Cancel<br />

Figure 6-16. Add Function Block Pin Prompt Bar<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-23


Creating FB Definitions and FB Instances Using Function Blocks<br />

6-24<br />

2. Move the cursor to the position where the net intersects the FB Definition’s<br />

or FB Instance’s boundary, as shown in Figure 6-17, or to any other<br />

location on the FB Definition’s or FB Instance’s rectangular boundary.<br />

Add Pin Here<br />

mux<br />

Schematic#1 source1 sheet1<br />

mux_1<br />

Figure 6-17. FB Pin Placement<br />

3. Position the cursor and press the left mouse button to place the FB Pin.<br />

4. Repeat Step 2 for the remaining user-specified locations on the FB<br />

Definition or FB Instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Net Construction<br />

Figure 6-18 illustrates an FB Definition with associated FB Pins.<br />

Net Construction<br />

Note<br />

Schematic #1 source1 sheet1<br />

mux mux_1<br />

Figure 6-18. FB Definition with FB Pins<br />

Prior to creating FB Definition’s and Instance’s net connections,<br />

review the “FB Definition and FB Instance Net Constructs”<br />

section in Chapter 12.<br />

Use the following procedures to add wires, bundles, and busses to existing FB<br />

Definitions and FB Instances:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-25


Net Construction Using Function Blocks<br />

Constructing Internal Nets<br />

Internal net constructs are only applied to FB Definitions. These nets connect the<br />

FB Definition’s internal circuitry, including internal FB Pin connections, within<br />

the FB Definition’s boundary.<br />

6-26<br />

Warning<br />

To avoid incorrect or erroneous passthru net connections, passthru<br />

net construction must adhere to specific architectural constraints.<br />

For a more detailed explanation, see the “FB Definition and FB<br />

Instance Net Constructs” section in Chapter 12.<br />

To construct an FB Definition’s internal nets, follow the steps below:<br />

1. Use the standard Drawing and Routing Nets procedures to connect the<br />

underlying circuitry.<br />

2. For example, Figure 6-19 represents internally-connected circuitry within a<br />

yet-to-be-created FB Definition:<br />

Figure 6-19. Example Circuit<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Net Construction<br />

3. Next, create an FB Definition and enclose the circuitry within the FB<br />

Definition’s rectangular boundary. For detailed procedures, consult the<br />

“Creating FB Definitions” section in this chapter.<br />

Continuing with the example circuit in Figure 6-19, an FB Definition is<br />

created with the circuitry confined within the FB Definition’s boundary, as<br />

demonstrated in Figure 6-20:<br />

Figure 6-20. Example of an Enclosed Circuit within an FB Definition<br />

4. Add FB Pins to the FB Definition’s boundary following the steps in the<br />

“Adding FB Pins” section in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-27


Net Construction Using Function Blocks<br />

6-28<br />

5. Connect the internal circuit’s input and output nets to the respective FB<br />

Pins, as demonstrated in Figure 6-21.<br />

Figure 6-21. Completed FB Definition Example<br />

Constructing External Nets<br />

mux mux_1<br />

External nets are standard <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> wires, busses, and bundles<br />

constructs. Note that if no external nets are connected to an FB Definition, then<br />

the FB Definition is turned into an unconnected FB Definition comment when the<br />

FB Definition is made.<br />

To add external nets to an FB Definition or FB Instance, follow the steps below:<br />

1. Navigate to the FB Definition or FB Instance.<br />

2. Use standard Drawing and Routing Nets procedures to connect wires,<br />

bundles, and/or busses to the FB Definition’s or FB Instance’s FB Pins.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Net Construction<br />

3. Add ports and other I/O objects, as appropriate.<br />

Note<br />

An FB Definition is used in either a connected or unconnected<br />

state. See Usage Paradigm in Chapter 12 for additional<br />

information.<br />

Constructing Passthru Nets<br />

Passthru nets are used exclusively with FB Definitions. These nets connect to an<br />

FB Pin’s inner pin and are then connected to an object outside the FB Definition’s<br />

boundary.<br />

Use the following procedure to add passthru nets to an existing FB Definition:<br />

1. Navigate to the FB Definition.<br />

2. Use standard Drawing and Routing Nets procedures to connect passthru<br />

nets to the FB Definition.<br />

Constructing Flythru Nets<br />

Flythru nets are also used exclusively with FB Definitions, but are not part of the<br />

FB Definition’s contents. For flythru net methodology information, see Flythru<br />

Nets in Chapter 1.<br />

Use the following procedure to add flythru nets to an existing FB Definition:<br />

1. Navigate to the FB Definition.<br />

2. Use standard Drawing and Routing Nets procedures to add flythru nets to<br />

the FB Definition.<br />

FB Definition and FB Instance Checks<br />

After an FB Definition’s or FB Instance’s internal and external electrical<br />

connectivity is established, the schematic source sheet must be checked for<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-29


Manipulating FB Definitions and FB Instances Using Function Blocks<br />

possible errors. To do this, follow “Checking Function Blocks” procedures in this<br />

chapter.<br />

Manipulating FB Definitions and FB<br />

Instances<br />

FB Definitions and FB Instances are manipulated by:<br />

6-30<br />

• Converting FB Instances to FB Definitions<br />

• Selecting FB Definitions and FB Instances<br />

• Adding or Removing Objects from within an FB Definition<br />

• Stretching or Resizing FB Definition and FB Instance Boundaries<br />

• Setting Colors On-the-Fly<br />

Note<br />

This section only applies to FB Definitions or FB Instances: Once<br />

a Function Block is made, it must be reverted to its original<br />

unmade and “editable” FB Definition or FB Instance before it can<br />

be edited. Refer to the “Unmaking Made FB Definitions and Made<br />

FB Instances” section in this chapter for specific procedures.<br />

FB Definitions and FB Instances can also be moved, copied, or deleted.<br />

Converting FB Instances to FB Definitions<br />

An FB Instance can be converted to an FB Definition. To perform this operation,<br />

carry out the following procedure:<br />

1. Open the schematic that contains the FB Instance and select the objects’s<br />

rectangular boundary.<br />

2. Select Miscellaneous > Convert Function Block > Instance to<br />

Definition. The selected FB Instance is now an FB Definition.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Manipulating FB Definitions and FB Instances<br />

You can manipulate FB Definitions and FB Instances in the following ways:<br />

1. Add or remove objects from within an FB Definition’s rectangular<br />

boundary.<br />

2. Add, move, or remove FB Pins from the FB Definition’s boundary.<br />

3. Stretch or resize an FB Definition’s or FB Instance’s boundary rectangle.<br />

Selecting FB Definitions and FB Instances<br />

FB Definitions, FB Instances, and FB Pins are selectable items. As such, the<br />

Select Filter can be used to select Function Block-specific objects.<br />

To set the Select Filter to choose Function Blocks or Function Block Pins for a<br />

session, perform the following steps:<br />

1. Choose the Setup > Select Filter... pulldown menu item.<br />

The Setup Select Filter dialog box is called, as represented by Figure 6-22.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-31


Manipulating FB Definitions and FB Instances Using Function Blocks<br />

6-32<br />

Setup Select Filter<br />

Add/Route Text Draw<br />

Selection Filter will allow selection of:<br />

Comments<br />

Frames<br />

Instances<br />

Nets<br />

Pins<br />

Segments<br />

Symbol Pins<br />

Comment Text<br />

Vertices<br />

Figure 6-22. Setup Select Filter Dialog Box<br />

By default, the FBs (Function Blocks) filter is selected.<br />

2. Click the appropriate radio buttons, then click OK.<br />

The Select Filter now selects the specified objects.<br />

Adding or Removing Objects from within an FB<br />

Definition<br />

A given FB Definition’s internal parts can contain objects found on traditional<br />

schematic sheets. However, FB Definitions cannot contain ports or external<br />

connectors.<br />

You can add or remove any schematic objects within the FB Definition’s<br />

rectangular boundary using standard schematic edit tools. Refer to Chapter 3<br />

Creating Schematics for specific editing operating procedures.<br />

FBs<br />

Properties FB Pins<br />

Reset to MGC Defaults Set All Clear All<br />

OK Reset Cancel<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Manipulating FB Definitions and FB Instances<br />

In addition, FB Definitions can contain other FB Definitions and FB Instances,<br />

but recursion of these objects is not allowed. FB Pins can also be added and<br />

removed from the FB Definition (or FB Instance), however, special procedures<br />

must be followed if the FB Definition has been made, then unmade. For more<br />

information, see “Interface Pin Changes” in this chapter.<br />

Stretching or Resizing FB Definition and FB Instance<br />

Boundaries<br />

When an FB Definition’s or FB Instance’s rectangular boundary is resized or<br />

stretched, the boundary remains perpendicular. With one exception: any FB Pins<br />

on the FB Definition’s or FB Instance’s resized boundary remain attached to the<br />

boundary. The exception to this rule occurs when the boundary is reduced to the<br />

point that the side where the pin is located no longer exists. In this case, the FB<br />

Pin is removed from the boundary.<br />

If FB Definitions are resized, then the boundary rectangle is resized, but the FB<br />

Definition’s contents are not.<br />

Use the following procedures to resize an FB Definition or FB Instance:<br />

1. On the active sheet, unselect all objects using a stroke.<br />

2. Navigate to the FB Definition or FB Instance you want to resize.<br />

3. Place the mouse pointer on the FB Definition’s or FB Instance’s boundary<br />

and click the left mouse button to select the object.<br />

4. With the object selected, press the F4 key to open the Function Block<br />

popup menu.<br />

5. Within the Function Block popup menu, click on Resize as shown in<br />

Figure 6-23:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-33


Manipulating FB Definitions and FB Instances Using Function Blocks<br />

6-34<br />

Function Block<br />

Other Menus<br />

Unselect All<br />

Move [a-MMB]<br />

Copy [c-MMB]<br />

Delete<br />

Undo<br />

Redo<br />

Properties<br />

Add FB Pins<br />

Make Function Block<br />

Unmake Function Block<br />

Convert Function Block<br />

Resize<br />

Align<br />

Figure 6-23. Resize in the Function Block Popup Menu<br />

The Stretch prompt bar displays, as shown in Figure 6-24.<br />

Stretch Begin End<br />

OK Cancel<br />

Figure 6-24. Stretch Prompt Bar<br />

6. Place the active cursor on the FB Definition’s or FB Instance’s<br />

rectangular boundary, then press and hold the left mouse button. Refer to<br />

Figure 6-25 below.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Manipulating FB Definitions and FB Instances<br />

Figure 6-25. Stretch Operation<br />

7. With the left mouse button still pressed, move the mouse to stretch the FB<br />

Definition’s or FB Instance’s rectangular boundary.<br />

8. Release the left mouse button to complete the stretch operation.<br />

Setting Colors On-the-Fly<br />

Schematic #1 source1 sheet1<br />

mux mux_1<br />

Stretch Begin End<br />

OK Cancel<br />

Function Block color settings are set by default using the “Setting up a Function<br />

Block” procedures on page 6-3. The default color settings can be temporarily<br />

overridden using the Schematic Setup Color dialog box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-35


Manipulating FB Definitions and FB Instances Using Function Blocks<br />

Note that this method only applies to Function Block objects created after the<br />

dialog box is called and does not affect existing Function Block objects on the<br />

active schematic sheet.<br />

To temporarily alter new Function Block objects’ colors, perform the following<br />

steps:<br />

6-36<br />

1. Within the Schematic Editor, choose the Setup > Color... pulldown menu<br />

item.<br />

The Setup Color Dialog box is called as shown in Figure 6-26.<br />

Figure 6-26. Setup Color Dialog Box<br />

2. Click the appropriate radio button to select the object, then use the scroll list<br />

to select that object’s desired color.<br />

3. Click OK.<br />

Comments<br />

Frames<br />

Pin<br />

Nets<br />

Symbol Bodies<br />

Setup Color<br />

Violet<br />

VioletRed<br />

Wheat<br />

White<br />

Yellow<br />

YellowGreen<br />

Made Function Block Insts<br />

Unmade Function Block Insts<br />

Made Function Block Defs<br />

Unmade Function Block Defs<br />

OK Reset Cancel<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating Made FB Definitions and FB Instances<br />

If a Function Block is made and unmade, then the object’s color changes to the<br />

current settings.<br />

Creating Made FB Definitions and FB<br />

Instances<br />

Once FB Definitions and FB Instances are created, the Function Block objects and<br />

their respective contents are “made” into individual schematic and symbol<br />

objects.<br />

Note<br />

Prerequisites<br />

The $undo() function cannot unmake a Made FB Definition or<br />

Made FB Instance.<br />

Ensure that the following prerequisites are satisfied before creating a Made FB<br />

Definition or Made FB Instance from an FB Definition and FB Instance,<br />

respectively:<br />

• At least one FB Definition exists on the sheet.<br />

• There is a corresponding FB Definition for each FB Instance on the sheet.<br />

• Each FB Definition contains at least one symbol instance and one FB Pin.<br />

• External net connections are added to the desired FB Definitions and/or FB<br />

Instances. If an FB Definition is not connected to a net, the underlying<br />

schematic is replaced by comment graphics.<br />

• Internal net connections are added to the FB Definition.<br />

• The sheet containing the FB Definitions and/or FB Instances passes all<br />

checks. For more information, see “Checking Function Blocks” in this<br />

chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-37


Creating Made FB Definitions and FB Instances Using Function Blocks<br />

Procedures<br />

Use the following procedure to create Made FB Definitions and Made FB<br />

Instances from FB Definitions and FB Instances:<br />

6-38<br />

1. Creating Selected FB Definitions or FB Instances<br />

Use this procedure to create Made FB Definitions and Made FB Instances<br />

from selected, or a single, FB Definition(s) and FB Instance(s),<br />

respectively:<br />

a. Navigate to the appropriate FB Definitions and/or FB Instances on the<br />

active sheet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating Made FB Definitions and FB Instances<br />

i<br />

For example, Figure 6-27 below provides an example of an FB<br />

Definition.<br />

IN_1<br />

IN_2<br />

IN_3<br />

Schematic#1 source1 sheet1<br />

mux mux_1<br />

Figure 6-27. FB Definition Illustration<br />

b. Select the appropriate FB Definition and/or FB Instance.<br />

For more information on Function Block object selection procedures,<br />

refer to “Selecting FB Definitions and FB Instances” in this chapter.<br />

c. Press the F4 key (or the right mouse button) to call the Function Block<br />

Popup menu.<br />

d. Within the Function Block popup menu, choose the<br />

Make Function Block > Selected... menu option.<br />

OUT_1<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-39


Creating Made FB Definitions and FB Instances Using Function Blocks<br />

6-40<br />

The selected FB Definitions and/or FB Instances are converted to Made FB<br />

Definitions and/or Made FB Instances, and changed to a “sandy brown”<br />

color, as in Figure 6-28 below.<br />

IN_1<br />

IN_2<br />

IN_3<br />

Schematic#1 source1 sheet1<br />

mux mux_1<br />

Figure 6-28. Made FB Definition Example<br />

OUT_1<br />

At this point, the Made FB Definition or Made FB Instance can be<br />

“unmade,” if necessary. To do this, follow the procedure in the “Unmaking<br />

Made FB Definitions and Made FB Instances” section in this chapter.<br />

2. Creating All Made FB Definitions and/or Made FB Instances on a<br />

Sheet<br />

Use this procedure to create Made FB Definitions and/or Made FB<br />

Instances for all unmade FB Definitions and/or FB Instances on the active<br />

sheet:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Creating Made FB Definitions and FB Instances<br />

a. Within the active sheet, press the F4 key (or the right mouse button) to<br />

call the Function Block Popup menu.<br />

b. Within the Function Block popup menu, choose the<br />

Make Function Block > All... menu option.<br />

All FB Definitions and/or FB Instances are converted to Made FB<br />

Definitions or Made FB Instances, and changed to a sandy-brown color.<br />

Errors Encountered During the Make Function Block<br />

Operation<br />

The Make Function Block operation reports an error and stops if any of the<br />

following situations occur:<br />

• Creating a Made FB Definition from an FB Definition with the same name<br />

on the active sheet.<br />

• Making an FB Instance that does not have a corresponding FB Definition<br />

on the active sheet or any other sheet in the schematic.<br />

• Underlying sheet Check errors.<br />

• Symbol Check errors.<br />

• Content and pin Check errors.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-41


Unmaking Made FB Definitions and Made FB Instances Using Function Blocks<br />

Interface Pin Changes<br />

Under certain circumstances outlined below, the Make Function Block operation<br />

reports an interface pin change, as in Figure 6-29.<br />

6-42<br />

The following FB definitions have been re-made with interface pin changes.<br />

FB instances of these definitions should be un-made and re-made to reflect the changes<br />

MUX_1<br />

Figure 6-29. Interface Pin Change Notification Box<br />

The following events normally cause this situation to occur:<br />

1. An FB Definition has been created and FB Instances are created from the<br />

FB Definition. Then, the FB Definition is deleted from the sheet, and a new<br />

FB Definition is created with the deleted FB Definition’s name.<br />

2. A Made FB Definition is converted (unmade) back to an FB Definition, the<br />

FB Pins are modified (that is, added, moved, or deleted), and then the FB<br />

Definition is changed back into a Made FB Definition.<br />

In the event this message is received, unmake the Made FB Instance(s) identified<br />

in the notification message, for example, “MUX_1” in Figure 6-29, then remake<br />

the FB Instance(s).<br />

Unmaking Made FB Definitions and<br />

Made FB Instances<br />

Ok<br />

Made FB Definitions or Made FB Instances can be “unmade” and reverted back to<br />

their corresponding FB Definitions or FB Instances. In addition, if a Made FB<br />

Definition or Made FB Instance contains nested Made FB Definitions or Made FB<br />

Instances, then the Unmake Function Block operation can unmake the nested<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Unmaking Made FB Definitions and Made FB Instances<br />

Made FB Definitions or Made FB Instances layer-by-layer from top down, as<br />

specified by the user.<br />

Note<br />

The $undo() function cannot unmake a Made FB Definition or<br />

Made FB Instance.<br />

Use the following procedures to unmake Made FB Definitions and/or Made FB<br />

Instances:<br />

1. Unmaking Selected Made FB Definitions and/or Made FB Instances<br />

a. Navigate to the appropriate Made FB Definition or Made FB Instance,<br />

and select the object.<br />

b. Press the F4 key (or the right mouse button) to call the Function Block<br />

Popup menu.<br />

c. Within the Function Block popup menu, choose the<br />

Unmake Function Block > Selected menu option, as shown in<br />

Figure 6-30.<br />

Make Function Block<br />

Unmake Function Block<br />

Convert Function Block<br />

Resize<br />

Align<br />

Selected<br />

All<br />

1 Level<br />

ALL Levels<br />

Specify<br />

Figure 6-30. Unmake Function Block Menu Patch<br />

The Selected option’s menu provides for the following unmake options:<br />

o 1 Level - Unmakes the single, upper-most hierarchical level for a<br />

selected Made FB Definition and/or Made FB Instance containing<br />

nested Made FB Definitions and/or Made FB Instances.<br />

o All Levels - Unmakes every hierarchical level of all selected Made<br />

FB Definition and/or Made FB Instances.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-43


Unmaking Made FB Definitions and Made FB Instances Using Function Blocks<br />

6-44<br />

o Specify - Allows the user to specify the number of hierarchical<br />

levels to be unmade. If this option is chosen, then the user is<br />

presented with the Select Number of Unmake Levels dialog box, as<br />

shown in Figure 6-31.<br />

Select Number of Unmake Levels<br />

Levels:<br />

OK Reset Cancel<br />

Figure 6-31. Select Number of Unmake Levels Dialog Box<br />

d. Within the popup menu, select the appropriate option.<br />

e. The selected Made FB Definition and/or Made FB Instance is reverted<br />

to its original FB Definition and/or FB Instance.<br />

2. Unmake All Made FB Definitions and/or Made FB Instances on the<br />

Active Sheet<br />

a. Within the active sheet, press the F4 key (or the mouse’s right button)<br />

to call the Function Block Popup menu.<br />

b. Within the Function Block Popup menu, choose the Unmake Function<br />

Block > All menu option.<br />

The All option’s menu provides for the following unmake options:<br />

o 1 Level - Unmakes the single upper-most layer for all Made FB<br />

Definitions and/or Made FB Instances containing nested Made FB<br />

Definitions and/or Made FB Instances on the active sheet.<br />

o All Levels - Unmakes all layers for all Made FB Definitions and<br />

Made FB Instances on the active sheet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Function Blocks Checking Function Blocks<br />

o Specify - Allows the user to specify the number of layers to be<br />

unmade. If this option is chosen, then the user is presented with the<br />

Select Number of Unmake Levels dialog box.<br />

c. Within the popup menu, select the appropriate option.<br />

d. Depending on the option selected, all Made FB Definitions and/or<br />

Made FB Instances on the active sheet are reverted to their original FB<br />

Definitions and/or FB Instances.<br />

Checking Function Blocks<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> provides Function Block-specific schematic checks. For<br />

more information on performing a schematic check, see “Checking a Schematic<br />

for Errors”in Chapter 3.<br />

To setup, view, or modify Check Schematic settings, perform the following steps:<br />

1. Within the schematic session, choose the Setup > Check... pulldown menu<br />

item.<br />

2. The Default Schematic Check Settings dialog box displays, as illustrated in<br />

Figure 6-32:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 6-45


Checking Function Blocks Using Function Blocks<br />

6-46<br />

Figure 6-32. The Default Schematic Check Settings Dialog Box<br />

3. Next to Function Blocks, check one of the following options:<br />

• Errors/Warnings: If selected, then both errors and warnings are<br />

reported.<br />

• Errors Only: If selected, only errors are reported.<br />

• No Check: If selected, the Function Block-specific checks are not<br />

performed.<br />

4. Click OK.<br />

For a description of all the checks available, see “<strong>Design</strong> Checks” in Appendix C.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 7<br />

Using Properties<br />

At the beginning of the design process, you must know which properties are<br />

required by other Mentor Graphics applications you plan to use. If you do not<br />

assign the necessary properties, downstream applications cannot process your<br />

design.<br />

For information about specific properties, see the<br />

<strong>IC</strong> Flow Properties Reference <strong>Manual</strong>.<br />

Introduction to Properties<br />

Properties are “name/value pairs” assigned to specific graphic objects within a<br />

design. The graphic object is the property “owner.” Properties that are created<br />

without an owner are called “logical” properties. Properties contain design<br />

information that typically cannot be represented graphically.<br />

Properties have many functions. They can define device timing characteristics,<br />

establish horizontal and vertical connectivity in multi-sheet and multi-level<br />

designs, define a variety of design characteristics that cannot be conveyed by the<br />

images of components and wires that make up a schematic diagram, and much<br />

more.<br />

To show how properties provide information to a design, consider that schematic<br />

designs in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> contain two types of information:<br />

• Connectivity information, which is conveyed graphically by pin and net<br />

connection.<br />

• Property information, which describes some characteristic of a component<br />

that is not identifiable from the schematic drawing alone.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-1


Introduction to Properties Using Properties<br />

Symbols and schematics created in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> communicate<br />

connectivity information. For example, a schematic diagram shows graphically<br />

that transistor A is connected to transistor B. The diagram alone cannot tell you<br />

the dimensions of the transistors. That information comes from the values of the<br />

W and L properties attached to the instances of transistors A and B.<br />

7-2<br />

Properties have the following characteristics:<br />

• A property has an owner type (optional), a name, a type, and a<br />

corresponding value. The value can be either a number, triplet, expression,<br />

or character string.<br />

• A property can be assigned to the individual objects that compose the<br />

schematic sheet in a component library; for example, instance, net, and pin<br />

objects.<br />

• Backannotated properties are generally supplied by downstream<br />

applications such as <strong>IC</strong> Extract. Backannotations can be merged back to the<br />

original source design.<br />

• Some downstream applications require a specific set of properties in order<br />

to operate properly. For more information, see the <strong>IC</strong> Flow Properties<br />

Reference <strong>Manual</strong>.<br />

• Certain properties are assigned automatically by downstream Mentor<br />

Graphics applications when they execute.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Introduction to Properties<br />

• Some components may not have all the properties required for them to be<br />

processed by other Mentor Graphics programs. If this is the case, you can<br />

assign the necessary properties to the components in your designs by using<br />

the various property commands.<br />

• Structured Logic <strong>Design</strong> (SLD) properties are special properties that are<br />

built into <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. When the source design is evaluated, SLDs<br />

are converted to connectivity information, and are not accessible as<br />

properties in the evaluated design. Refer to<br />

“Structured Logic <strong>Design</strong> Properties” in this chapter for more information<br />

about SLD properties.<br />

Some of the fundamental properties assigned to components in various libraries<br />

are described in “Structured Logic <strong>Design</strong> Properties” in this chapter. A<br />

comprehensive description of individual properties is available in the<br />

<strong>IC</strong> Flow Properties Reference <strong>Manual</strong>.<br />

Table 7-1 lists examples of properties.<br />

Property<br />

Name<br />

Table 7-1. Property Structure<br />

Property<br />

Value<br />

Property Type Property<br />

Owner<br />

Model NAND String Instance or<br />

Symbol Body<br />

Net cl_line String Net<br />

cap_net 10, 15, 20 Triplet Net<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-3


Property Ownership Using Properties<br />

Property Ownership<br />

Ownership is a key element in understanding the use of properties. When certain<br />

kinds of objects “own” certain properties, those properties can only be attached to<br />

those objects. Selectable items can own properties, but certain classes of<br />

properties and certain classes of objects work better together, while others do not.<br />

For example, pins own the property called cap_pin. You can assign a value to the<br />

cap_pin property and attach that value to a specific pin in the design. However, it<br />

would not be correct to attach that value to a net in the design. The cap_pin<br />

property has no semantic meaning in the context of nets.<br />

Property Names Versus Property Values<br />

Another important concept is the distinction between property names and property<br />

values. Properties always have a name and a value; the name describes the<br />

property, while the value is data that describes a characteristic of the design.<br />

Property names are entered and stored as strings of ASCII text. Property values<br />

can be represented as text strings, numbers, triplets, or expressions. Property types<br />

are discussed in the “Property Types” section of this chapter.<br />

For example, in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> the cap_pin property might have a value of<br />

“5, 10, 15” on one pin, and a value of “10, 20, 30” on another. The numbers<br />

represent minimum, typical, and maximum delays, respectively, in nanoseconds<br />

on the owning pin. The property name cap_pin does not vary from pin-to-pin; the<br />

property value can vary. Property name and value restrictions are discussed after<br />

property types.<br />

Property Types<br />

A property value must have a property type assigned to it. A property type<br />

identifies the property value's data type. The legal property types are:<br />

7-4<br />

• A character string.<br />

• A number (integer, real, exponential).<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Property Name/Value Restrictions<br />

• An expression (arithmetic or string expression).<br />

• A triplet. The special property type “triplet” is a 3-valued property used to<br />

describe the best-case/typical/worst-case values used in timing analysis.<br />

The three values of a triplet may be separated by a comma or spaces. If you<br />

are entering triplet values in a command or function, enclose the values in<br />

quotes (for example, “5,7,10”). When entering triplet property values in a<br />

prompt bar or dialog box, do not enclose the values in quotes (5,7,10). The<br />

value, whether entered as a string, a number, or an expression type, will be<br />

evaluated as a number.<br />

If only one value is specified, it is used for the best-case, typical, and worstcase<br />

values. If two values are specified, then the first is used for the bestcased<br />

value, and the second is used for typical and worst-cased values.<br />

It is important for you to know what the property type is before entering a<br />

property value. For example, if the property type of property name “A” is a<br />

character string, and you enter the value of 95, this value will be interpreted as a<br />

character string “95” not the numerical value of 95.<br />

When you add the property value, the Add Property command, by default, sets the<br />

property type to the value set by the previous Set Property Type command for that<br />

property name. Use the -Type option with the Add Property command to change<br />

any of the property values listed previously.<br />

After a property value is attached to an object, its property type can only be<br />

modified through the Change Property Type command. The Change Property<br />

Type command can be used to change the property type to a string, number,<br />

expression, or triplet.<br />

Property Name/Value Restrictions<br />

Operating systems, AMPLE, and downstream applications all impose restrictions<br />

on property names and values. <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> does not check for violations<br />

of all these restrictions. The following topics summarize the known restrictions.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-5


Property Name/Value Restrictions Using Properties<br />

Property Name Restrictions<br />

Any identifiers saved in the design database, such as property names, must begin<br />

with a letter (a-z, A-Z), or a dollar sign ($).<br />

Subsequent characters can be any of the aforementioned characters, an underscore<br />

(_), or a digit (0-9).<br />

Property names are not case sensitive in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, and must have less<br />

than 512 characters. Property names and values are stored as C Language style<br />

null terminated strings and, therefore, cannot contain a null character.<br />

Property Value Restriction<br />

Property values set to “string” have no character restrictions. However,<br />

downstream applications must be able to recognize the string. For example, you<br />

should not use a hyphen (-) character as the first character of a name Property<br />

value, as some downstream tools will interpret this as a unary minus. Property<br />

values have no character length restriction. Property values are case insensitive,<br />

although, you can change the case for display purposes.<br />

Property values set to “number” can be integers, real numbers, or exponential<br />

decimal numbers. Downstream applications that use the design viewing and<br />

analysis package (for example, <strong>Design</strong> Viewpoint Editor-<strong>IC</strong>) do not handle<br />

exponential notation and non-decimal radix notation.<br />

Property values of type “expression” are evaluated as AMPLE expressions and,<br />

therefore, must follow AMPLE syntax.<br />

Property values of type “triplet” include one, two, or three values. Each of these<br />

must evaluate to a number. If any of the three values is an expression, the<br />

expression must follow AMPLE syntax.<br />

Special Case Restrictions<br />

If a property value is the name of an object that must be recognized by the design<br />

database, the same property name restrictions apply. These include values of the<br />

7-6<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Property Name/Value Restrictions<br />

Pin, Net, and Inst properties. For example, the Net property value is the name of<br />

the net, which is stored in the design database.<br />

The following list describes additional restrictions for net and pin names:<br />

• “_$”, “_B$”, “_b$”, “N$”, “n$”, “I$”, “i$”, “P$”, “p$”, “G$”, “g$”, “B$”,<br />

“b$”, “R$”, and “r$” are reserved for the leading characters for handles<br />

(such as net, instance, and pin handles) and for internal use.<br />

• Even though a net/pin name is declared to be a “string” in <strong>Design</strong> <strong>Architect</strong>-<br />

<strong>IC</strong>, if the value includes “( )”, “[ ]”, or “< >”, the system will attempt to<br />

evaluate the string within the delimiters.<br />

• Pin/Net/Inst property values cannot contain a slash (/), back slash (\), a<br />

space ( ), a period (.), a hyphen (-), an escape, or tab character.<br />

• “[ ]”, “( )”, and “< >” are reserved to delimit bus subscript notation. The bus<br />

width is indicated between the delimiters. The numerical values for the bus<br />

width can be indicated in binary (prefix with “0b”), octal (prefix<br />

with “0o”), decimal (no prefix), or hexadecimal (prefix with “0x”).<br />

• A comma (,), colon (:), and semicolon (;) should only appear as part of a<br />

bus subscript syntax.<br />

• A period (.) should only be used for separating parts of a record in VHDL.<br />

• In any name that might be evaluated (names surrounded by parentheses),<br />

the entire string within the parentheses is considered an AMPLE expression<br />

and must follow the AMPLE expression syntax.<br />

Mentor Graphics discourages the use of non-printing characters and special<br />

characters in net/pin names because of their meanings in different applications<br />

and operating systems.<br />

Properties and Color<br />

By default, properties display in the same color as the object that owns them. For<br />

example, symbol body properties display in cyan, pin properties display in<br />

magenta, and net properties display in goldenrod. Normally, if a property value is<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-7


Property Name/Value Restrictions Using Properties<br />

annotated in the context of a design viewpoint, the annotated value displays in red<br />

(by default), so you can tell which values are annotated. For more information on<br />

design viewpoints, see Chapter 11, “Editing in <strong>Design</strong> Context”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> allows you to change the color of a property to distinguish it<br />

from the owning object. When you do this, both the original value of the property<br />

and the annotated value of the property display in the new color.<br />

For example, if you view a schematic sheet in the context of a design viewpoint,<br />

annotated property values may display in red (by default) or a different color if the<br />

property color has been changed. In this case, <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> allows you to<br />

temporarily change the color of all annotations, so you can tell which property<br />

values are annotated. Choose Setup > Objects..., click <strong>Design</strong> Context and<br />

choose YES for Override Annotation Color in the form.<br />

7-8<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Symbol Properties<br />

Symbol Properties<br />

Like other properties, symbol properties provide information about the object that<br />

owns the property. Symbol properties have additional characteristics and<br />

functions other properties do not. For example, a symbol property:<br />

• Can be owned by a piece of symbol graphics or by the “logical symbol.”<br />

• Can be created either graphical or non-graphical, if owned by the logical<br />

symbol.<br />

• Has a property stability and property visibility switch.<br />

• Is brought forth to the instance when the symbol is instantiated on a<br />

schematic sheet. Refer to “Updating Properties on an Instance” in this<br />

chapter for information about how an instance of a symbol is updated.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-9


Symbol Properties Using Properties<br />

Logical Symbol Properties<br />

Regular symbol properties are attached to symbol body graphics and can be<br />

invisible, or displayed graphically on the symbol. They are created when you add<br />

a property (with the Add Property command) to a selected symbol graphic. This<br />

action attaches the property to a selected symbol object, for example, a symbol<br />

body or symbol pin.<br />

A symbol property that has no graphic owner is a logical symbol property. These<br />

are created by adding a property with nothing selected, and are not attached to<br />

symbol body graphics, but rather are owned by the “logical symbol.” The logical<br />

symbol is the symbol entity, rather than the collective symbol graphics, and<br />

represents the function of the component.<br />

Logical symbol properties can be either graphic or non-graphic. A graphic<br />

property has a location, which is displayed in gold to distinguish it from properties<br />

owned by the symbol body, and has a name, value, and property attributes.<br />

A non-graphic property is not displayed, but has a name, value, and property<br />

attributes. Non-graphic properties are intended for program generated properties<br />

that do not need to be displayed or changed.<br />

If you delete a symbol body that has properties attached, those properties become<br />

graphic logical symbol properties at their original locations.<br />

If you add the property graphically, you must select the text itself (rather than<br />

owner graphics) to change the property through a change property command, or to<br />

move or copy the property. If you add a logical symbol property that already<br />

exists on a symbol, the value of that property (wherever it occurs on the symbol)<br />

changes to the value of the property being added. To list the logical symbol<br />

properties for the symbol, enter the Report Object command. Both graphical and<br />

non-graphical logical symbol properties are included in the component interface<br />

when the symbol is saved and registered.<br />

7-10<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Symbol Properties<br />

Property Stability Switches<br />

In the Symbol Editor, when you add properties to a symbol, a property stability<br />

switch is placed on the property. These switches control the changeability of the<br />

symbol property when an instance of the symbol is placed on a schematic sheet.<br />

The following switches define four levels of stability:<br />

• -Fixed specifies that property value, type, and name cannot be altered or<br />

deleted on any instance on a schematic sheet, although property attributes<br />

can be changed.<br />

• -Protect specifies that property value, type, and name can be altered on an<br />

instance when it is instantiated on a schematic sheet. However, once<br />

instantiated, the instance-specific property value cannot be changed, only<br />

the property attributes can be changed.<br />

• -Variable specifies that property value, type, name, and text attributes can<br />

be altered on an instance when it is instantiated or any time after.<br />

• -Nonremovable specifies that property value, type, name, and text<br />

attributes can be altered on an instance at instantiation time or after, but the<br />

property cannot be deleted from the instance.<br />

The default property stability switch setting is -Variable (except for Pin<br />

properties), and can be changed with the Setup Property Text command and the<br />

$set_property_stability_switch() function. The Change Property Stability Switch<br />

command changes the property stability for selected property names without<br />

changing the default switch settings.<br />

The default property stability switch setting for Pin properties is -Fixed.<br />

Note<br />

In order to change the stability switch of a Logical Symbol Body<br />

property, no object should be selected. Therefore, it is best to enter<br />

the $unselect_all() function first, then, select the property with the<br />

$select_by_property() function and specify the property name and<br />

value. You can change the stability attribute using the<br />

$change_property_stability_switch() function.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-11


Symbol Properties Using Properties<br />

Property Visibility Switches<br />

In the Symbol Editor, when you add properties to a symbol with the Add Property<br />

command, a property visibility switch is placed on the property and is set to<br />

“Visible” or “Hidden”. The Visibility Switch controls the visibility of the symbol<br />

property when an instance of the symbol is placed on a schematic sheet. Hidden<br />

properties are not selectable. When adding graphic properties to a symbol, all<br />

properties are visible in the symbol window.<br />

The default property protection switch setting is -Visible, and can be changed with<br />

the Setup Property Text command and the $set_property_visibility_switch()<br />

function. The Change Property Visibility Switch command changes the property<br />

visibility for selected property names without changing the default switch settings.<br />

Property attributes listed in report windows may include “-Not Visible” and “-<br />

Hidden”. If both of these are listed, the property was hidden when added, and the<br />

property visibility has not been changed. If “-Hidden” is listed without “-Not<br />

Visible”, the property visibility was changed to visible on the sheet.<br />

There is also a property visibility switch attached to the properties added to the<br />

instance of the symbol. This switch controls the visibility of properties added to<br />

the instance of the symbol, and is set in the Schematic Editor.<br />

7-12<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Updating Properties on an Instance<br />

Updating Properties on an Instance<br />

The following topics describe how properties are updated automatically and<br />

manually, as well as how modified property values and attributes are flagged, and<br />

how those flags affect the update process.<br />

Attribute-Modified Properties<br />

A property on an instance becomes Attribute_Modified when the graphical<br />

attributes of the property are changed. When you change the appearance of<br />

property text, you are making attribute modifications, and the property is flagged<br />

as Attribute_Modified. Some examples of commands that change graphical<br />

attributes (assuming the operation is performed on a property, not the owner)<br />

include Move (of a property attached to the instance), Change Text Height,<br />

Change Property Justification, and Change Text Font.<br />

The Attribute_Modified flag has no meaning in the Symbol Editor. A description<br />

of how Attribute_Modified properties affect the update process begins with<br />

“Property Merge Options” in this chapter.<br />

The Attribute_Modified flag can be manually set and reset using the<br />

Miscellaneous > Property Settings > Mark Property Attributes: menu item<br />

from the Schematic scope.<br />

Value-Modified Properties<br />

When you change the value of a property, the Value_Modified flag is attached to<br />

that property. A property becomes Value_Modified when one of the following<br />

actions occur:<br />

• You change the property value with the Add Instance, Change Text Value,<br />

Change Property Value, or the Delete commands.<br />

• You mark the property using the Mark Property Value command.<br />

A Value_Modified property, by definition, is also Attribute_Modified. Properties<br />

on the symbol and the instance that are Value_Modified appear in report windows<br />

as “Value Modified”. The Value_Modified flag has no meaning in the Symbol<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-13


Updating Properties on an Instance Using Properties<br />

Editor. A description of how Value_Modified properties affect the update process<br />

begins in the “Property Merge Options” section of this chapter.<br />

Mark Property Attributes<br />

The Mark Property Attributes command operates on a property whose value is<br />

selected or on all the properties owned by selected objects. You can mark a<br />

property’s attributes as either “Modified” or “Not Modified”, depending upon<br />

how you want those properties updated.<br />

7-14<br />

!<br />

Caution<br />

You can also mark and unmark a property’s attributes by choosing the<br />

Miscellaneous > Property Settings > Mark Property Attributes: menu item; in<br />

the prompt bar, enter the property name and choose either “modified” or<br />

“notmodified” by clicking the stepper button.<br />

Mark Property Value<br />

The Mark Property Value command operates on selected property values, or on a<br />

specified property name. You can mark a property value as either “Modified” or<br />

“Not Modified”, depending upon how you want those properties updated.<br />

!<br />

Caution<br />

If a property’s attributes are modified with the Change Property<br />

Attributes or Change Text Attributes command, then clearing the<br />

Attribute Modified flag with the Mark Property Attributes -<br />

Notmodified command also causes the attributes to immediately<br />

revert back to their original values on the symbol.<br />

If a property value was modified with the Change Property Value<br />

or Change Text Value command, then clearing the<br />

Value_Modified flag with the Mark Property Value -Notmodified<br />

command also causes the value to revert back to the original value<br />

on the symbol immediately.<br />

You can also mark and unmark properties by choosing the Miscellaneous ><br />

Property Settings > Mark Property Value: menu item; in the prompt bar, enter<br />

the property name and choose either “modified” or “notmodified” by clicking the<br />

stepper button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Updating Properties on an Instance<br />

Property Merge Options<br />

The property update process is controlled by property merge options on the<br />

Update and Replace commands. The Open Schematic dialog box also has options<br />

to control how a sheet is updated when it is opened; this is discussed in the<br />

following section, “Automatic Update Process”. The update process can change<br />

some or all of the properties you have placed on an instance, depending on which<br />

property merge option you use with the Update or Replace command and how the<br />

properties were modified before the update. How the properties are merged onto<br />

the instance of the symbol is based on the following two property merge settings:<br />

• -Clear: Symbol body graphics are updated. All instance-specific properties<br />

are deleted. All other properties and property attributes are reset to the<br />

current symbol values. Any new properties on the current symbol are added<br />

to the instance. This is the default for the Replace command.<br />

• -Auto: Symbol body graphics are updated. All instance-specific and<br />

Value_Modified properties remain unchanged. All other properties are reset<br />

to the current symbol values. Any new properties on the current symbol are<br />

added to the instance. If the Attribute_Modified flag is not set on a property<br />

whose value is updated, then the attributes are also updated. This is the<br />

default for the Update command.<br />

Automatic Update Process<br />

Properties on an instance of a symbol can be updated when a schematic sheet is<br />

opened, giving instances on the sheet new, updated versions of the symbol. When<br />

you open a sheet, you can specify an update option or the default<br />

auto_update_mode for the Session. You can set the default from a startup file,<br />

especially if you use the same update option whenever you open a sheet.<br />

The Open Schematic and Open <strong>Design</strong> Configuration commands have an<br />

auto_update_mode switch. This switch has the same -Clear and -Auto settings<br />

described page “Property Merge Options” in addition to a -Noupdate setting,<br />

which means that no update should be performed when the schematic sheet is<br />

opened. The default switch setting for these commands is -Noupdate, unless you<br />

explicitly change it.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-15


Updating Properties on an Instance Using Properties<br />

If you open a schematic sheet via a menu path and dialog box, you can change the<br />

switch setting by clicking on the Options... button, then clicking Auto, None, or<br />

Clear for the Auto Update Mode. Changing the switch setting when opening a<br />

schematic sheet only applies to that sheet; it does not change the default setting for<br />

the Session.<br />

The $set_auto_update_mode() function lets you change the default setting for the<br />

auto_update_mode switch. Auto_update_mode controls only automatic updates<br />

when a sheet is read; it does not specify a default property merge for the Update<br />

and Replace commands.<br />

The $get_auto_update_mode() function returns the default. The following<br />

example retrieves, then resets the auto_update_mode default.<br />

7-16<br />

$get_auto_update_mode() // @noupdate $set_auto_update_mode(@auto)<br />

$get_auto_update_mode() // @auto<br />

The $get_auto_update_inst_handles() function returns a vector of handles for all<br />

the instances that were out of date when the sheet was read. These instances will<br />

have been updated if the auto_update_mode option was not @noupdate. This<br />

system function only returns valid results immediately after the sheet is opened.<br />

Property Update Examples<br />

Table 7-2 shows examples of how the Value_Modified and property merge<br />

switches control which properties are merged onto the instance of the symbol.<br />

The second column shows the properties on the symbol at the time of<br />

instantiation. The “Properties on Instance” show how the property values were<br />

changed at instantiation time.<br />

Assume the original symbol was edited to have the property values shown in the<br />

“Properties on Edited Symbol” column. The “Merged Properties” column shows<br />

the results of updating the instance of the symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Parameters<br />

In the “Properties on Instance” and “Merged Properties” columns, an asterisk (*)<br />

indicates the property is Value_Modified.<br />

Merge<br />

Switch<br />

Properties<br />

on Symbol<br />

-Clear Model=AND<br />

NW=1u<br />

-Symbol Model=AND<br />

NW=1u<br />

-Instance Model=AND<br />

NW=1u<br />

-Auto Model=AND<br />

NW=1u<br />

Parameters<br />

Table 7-2. Property Update Examples<br />

Properties on<br />

Instance<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

My_property=16<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

My_property=16<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

My_property=16<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

My_property=16<br />

Properties on<br />

Edited Symbol<br />

Model=NAND<br />

NW=2u<br />

Model=NAND<br />

NW=2u<br />

Model=NAND<br />

NW=2u<br />

Model=NAND<br />

NW=2u<br />

Merged<br />

Properties<br />

Model=NAND<br />

NW=2u<br />

Model=NAND<br />

cap_pin=“10 20 30”<br />

NW=2u<br />

My_property=16<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

NW=1u *<br />

My_property=16<br />

Model=OR *<br />

cap_pin=“10 20 30”<br />

NW=2u<br />

My_property=16<br />

A parameter is a variable that is resolved outside of the design through a<br />

temporary value in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> or through a parameter rule in the design<br />

viewpoint. For example, the value of a property may be an arithmetic expression<br />

that contains one or more variables. The value of that property cannot be<br />

determined until the variables are resolved. The method the system uses to resolve<br />

variables is defined by a set of rules which dictates the position in the design tree<br />

where the system looks for the variables. Parameters are one of the rules used to<br />

evaluate property value variables.<br />

Briefly stated, as each instance in a design is evaluated, the system looks at the<br />

instance properties in an attempt to resolve expressions that contain variables. For<br />

those variables which are unresolvable at the instance level, the search continues<br />

up through the design tree. The search for the variable's value continues until a<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-17


Parameters Using Properties<br />

match is found, or the root level of the design is reached. If the root level of the<br />

design is reached and the variable has not been resolved, the system looks through<br />

the parameter list in the design viewpoint. See<br />

“Rules for Resolving Property Value Variables” in this chapter for a detailed<br />

explanation of this process.<br />

Given this method of evaluation for property value variables on schematic sheets,<br />

there are two commands that help you create and evaluate designs more<br />

efficiently. These commands are Set Parameter, used in the Schematic Editor<br />

within the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Session window, and Add Parameter, used in the<br />

<strong>Design</strong> Viewpoint Editor-<strong>IC</strong> (DVE-<strong>IC</strong>). The following two paragraphs briefly<br />

describe the purpose of these two commands.<br />

The Set Parameter command supplies dummy parameter values for variables in<br />

property value expressions on a schematic sheet. Without these dummy values the<br />

Check command, when executed, reports warnings about expression variables<br />

that cannot be resolved. The ability to check syntax reduces the number of<br />

problems that otherwise would not be discovered until you create a design<br />

viewpoint. Basically, the Set Parameter command offers a method to flag<br />

forgotten variables entered on a schematic that need to be identified in DVE-<strong>IC</strong>.<br />

These parameters are not known to the design viewpoint until you execute the<br />

Add Parameter command in DVE-<strong>IC</strong>.<br />

The Add Parameter command in DVE-<strong>IC</strong> lets you specify a particular value for a<br />

variable. Issuing this command for a variable adds the definition of the parameter<br />

to the parameter list for the current design viewpoint. If the system cannot resolve<br />

the variable's value by the time the root of the design is reached, the parameter list<br />

is searched for the value, and the variable can be resolved.<br />

7-18<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Using Expressions as Property Values<br />

Using Expressions as Property Values<br />

A property value can have a property type defined as an expression. An<br />

expression is a combination of variable(s), constant value(s), and arithmetic or<br />

logical operator(s) defined by AMPLE expression syntax. For example, “x + 5” is<br />

a simple expression with a variable “x”, and the constant value “5,” added<br />

together with the arithmetic operator “+”. A full discussion of arithmetic operators<br />

and expression syntax is included in the AMPLE for <strong>IC</strong> Flow <strong>User's</strong> <strong>Manual</strong>.<br />

Expressions can be defined for any property values. Expressions are typically<br />

used to redefine property values in commonly used components, without having<br />

to redesign the component. Expressions can also be used within the range<br />

specification for a net or pin name (net and pin property values). Variables in<br />

expressions are evaluated as needed. For example, expressions are evaluated<br />

when a sheet or schematic is checked, or when a design viewpoint is created with<br />

expressions defined. All expressions must follow AMPLE expression syntax as<br />

described in the AMPLE for <strong>IC</strong> Flow <strong>User's</strong> <strong>Manual</strong>.<br />

Rules for Resolving Property Value<br />

Variables<br />

When the design is evaluated in the context of a design viewpoint and the system<br />

finds an undefined variable in an expression, it starts a search up through the<br />

design tree to find a value for that variable. Figure 7-1 illustrates the search path<br />

the system uses to find the value. As soon as a valid value is found, the search<br />

stops.<br />

The search is described as follows:<br />

1. The property owner object (net, instance pin, or instance body) is searched<br />

first.<br />

2. If the owner in the above step is an instance pin, the body properties of the<br />

attached instance are searched next. (If the owner is a net, this step is skipped.)<br />

3. The body property list of the instance’s component interface table is searched<br />

next. (If the owner is a net, this step is skipped.)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-19


Rules for Resolving Property Value Variables Using Properties<br />

4. Does the design have more levels of hierarchy? If yes, the search moves up one<br />

level to the parent instance on the upper sheet. The properties on the instance<br />

body are checked first, then the body property list of the instance’s component<br />

interface table is searched next.<br />

7-20<br />

During each step in the search up the design tree, the value of a parameter may<br />

be overridden by a backannotation specified in a connected backannotation<br />

object. If more than one backannotation object is connected, the BA objects are<br />

searched in prioritized order.<br />

No<br />

5<br />

<strong>Design</strong> Viewpoint<br />

Parameter List<br />

Does<br />

<strong>Design</strong><br />

Contain<br />

Higher<br />

Levels<br />

?<br />

Yes<br />

4<br />

Move up to next<br />

hierarchical level<br />

in the design<br />

Owner<br />

Object<br />

Comp. Interface<br />

Body Properties<br />

3<br />

Figure 7-1. Parameter Evaluation Rules<br />

5. After the parent instance on the top sheet is searched, the design viewpoint<br />

Parameters list is searched.<br />

1<br />

Start Evaluation<br />

Parent<br />

Instance<br />

D Q<br />

CLK<br />

QB<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10<br />

2<br />

Back<br />

Annotation<br />

Files


Using Properties Rules for Resolving Property Value Variables<br />

In order for the value of the variable to be used in evaluation, you must add a<br />

parameter prior to evaluation of the design.<br />

You can declare variables for the width of a parameterized bus, the number of bits<br />

in a parameterized register, and many other types of expressions. These property<br />

value variables can be declared in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> or through<br />

backannotations. When defining property value variables, remember to set the<br />

property value type to expression. Variables can also be set up in CASE, IF, and<br />

FOR frames, instance names, net names, pin names, and subscripts.<br />

For example, suppose you design a generic register and declare a variable<br />

“bank_size”. In DVE-<strong>IC</strong>, you assign the bank size of this register to be 300 bits.<br />

ADD PArameter "bank_size" 300 -Numeral<br />

Whenever a downstream application encounters an unresolved property variable<br />

named “bank_size” during evaluation, it assigns it the value 300.<br />

If an unresolved variable is anywhere in the design hierarchy or the design<br />

viewpoint, an error message is generated.<br />

Facts About Property Variable Resolution<br />

The following list presents some facts and tips about property value resolution<br />

rules and their effect on property value evaluation:<br />

• Property values assigned to primitives take precedence over property values<br />

assigned to objects which are higher up in the design tree.<br />

• A common mistake is to assign constant property values on a device's<br />

lower-most schematic sheet, expecting to be able to use a different property<br />

value when the design is evaluated. This is not a valid technique. The<br />

property values at the outer-most leaves of the design tree are the property<br />

values first found, according to the scoping rules.<br />

If you want to pass a property's value down to a schematic sheet from<br />

higher up in the design tree, the property on the lower schematic sheet must<br />

consist of an expression containing variable(s) that are resolved further up<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-21


Rules for Resolving Property Value Variables Using Properties<br />

7-22<br />

in the hierarchy. The property value is retrieved when the expression is<br />

evaluated.<br />

• Property variable values assigned as parameters with the Add Parameter<br />

command in <strong>Design</strong> Viewpoint Editor-<strong>IC</strong> specify global values for those<br />

variables. To find out more about the Add Parameter command, see the<br />

<strong>Design</strong> Viewpoint Editor-<strong>IC</strong> <strong>User's</strong> and Reference <strong>Manual</strong>.<br />

• Property variable values originating with the symbol model (kept in the<br />

component interface) specify “local” values. That is, they specify the value<br />

of the property variable that is used on all underlying sheets of that symbol.<br />

This rule is important because it allows you to specify that certain portions<br />

of a design have a different value for a property variable than is specified by<br />

the Add Parameter command in DVE-<strong>IC</strong>.<br />

Example of Property Variable Resolution<br />

As an example of property variable resolution, suppose you have created the<br />

design hierarchy shown in Figure 7-2. In this design, the top-most schematic<br />

contains an instance for device A (among other instances). The underlying<br />

schematic sheet for device A contains instances for three devices designated as B,<br />

C, and D. Instances B, C, and D also have their underlying sheets.<br />

Figure 7-2 also shows the four symbol models to the right of the design. Each<br />

graphic represents the symbol model and component interface pair to which each<br />

device is associated. Note that some properties appear to the right of each graphic.<br />

Finally, the figure also shows the viewpoint of the design and its parameter list.<br />

This parameter list is created using the Add Parameter command from <strong>Design</strong><br />

Viewpoint Editor-<strong>IC</strong>.<br />

To show how the same parameter in different legs of the design can evaluate to<br />

different values, consider the following scenario. Suppose instance B in the design<br />

has a pin with a cap_pin property whose value is the triplet “5, 10, 15”, while<br />

instances C and D have pins with “cap_pin” properties whose values are “cap”.<br />

Furthermore, these property values appear on the schematic sheet making them<br />

specific to the instance. Because the value for cap_pin on instance B is not an<br />

expression, the value will always be “5, 10, 15”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Rules for Resolving Property Value Variables<br />

The value for cap_pin on instance C, on the other hand, is unresolved. Note,<br />

however, that the symbol model for device C has a property named “cap” and its<br />

value is the triplet “10, 20, 30”. When the design is evaluated, the property value<br />

resolution rules in this case begin by looking at the instance of device C itself.<br />

Finding no definition for the parameter “cap”, the system looks to the symbol<br />

model and its properties next. At this point, “cap” becomes defined for instance C<br />

and the search stops.<br />

For instance D, notice that the value for cap_pin is identical on the schematic<br />

sheet. Here, though, the symbol model for D does not have a property that defines<br />

“cap”. Note also that no definition for “cap” exists in the next higher level of the<br />

design. That is, “cap” is not defined in instance A or as part of the symbol model<br />

for device A. The design viewpoint's parameter list, however, does define “cap”<br />

as the triplet “15, 25, 35”.<br />

When the design is evaluated, the property variable resolution rules first look at<br />

the instance of D. Because no value for “cap” is found there, the system checks<br />

the properties associated with the symbol model for device D. Again, no<br />

definition for “cap” exists. Having exhausted its search on this level of the design,<br />

the system moves up one level of hierarchy and performs the same ordered search<br />

beginning with instance A and, finally, the symbol model for device A. Like the<br />

underlying sheet, no definition for “cap” is found. Finally, the design's viewpoint<br />

is searched and “cap” is determined to be the triplet “15, 25, 35” for instance D.<br />

To summarize this example, even though both instance C and D use the same<br />

parameter for the property cap_pin because of property variable resolution rules,<br />

the system evaluates “cap” to different values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-23


Rules for Resolving Property Value Variables Using Properties<br />

7-24<br />

A<br />

Instance A's<br />

Underlying Schematic Sheet<br />

1.<br />

3.<br />

1.<br />

1.<br />

cap_pin = "5 10 15"<br />

C<br />

Top-most<br />

Schematic Sheet<br />

cap_pin = (cap)<br />

Instance B's<br />

Underlying Sheet<br />

TEST<br />

PULSE<br />

START<br />

ANALOG_OUT<br />

_CLR<br />

LATCH<br />

RES<br />

A<br />

B<br />

C U14<br />

D<br />

CLK<br />

R1<br />

ENP<br />

ENT<br />

R3<br />

R4<br />

74LS04 D Q<br />

3<br />

4<br />

CLK<br />

U10a _Q<br />

5<br />

1<br />

2<br />

B<br />

_PRE<br />

_CLR<br />

74LS74A<br />

10<br />

74LS08<br />

8<br />

9 U11c<br />

0<br />

74259<br />

Q0 8<br />

Q0 0<br />

Q1 9<br />

Q1 1<br />

U7<br />

Q2 10<br />

Q3 11<br />

U8<br />

Q2 2<br />

D Q3 3<br />

Q4 12<br />

Q4 4<br />

Q5 13<br />

Q5 5<br />

Q6 14<br />

Q6 6<br />

Q7 15<br />

Q7 7<br />

A2<br />

A1<br />

A0<br />

_E<br />

9<br />

A2<br />

A1<br />

A0<br />

_CLR<br />

_E<br />

4 74LS08 74LS04<br />

6 11 10<br />

5<br />

U10d<br />

FULL<br />

PARITY<br />

ACCESS(15:0)<br />

D<br />

cap_pin = (cap)<br />

<strong>Design</strong> Viewpoint<br />

5.<br />

Parameter List<br />

cap = 15 25 35<br />

Instance C's<br />

Underlying Sheet<br />

TEST<br />

PULSE<br />

START<br />

ANALOG_OUT<br />

_CLR<br />

LATCH<br />

RES<br />

A QA<br />

B QB<br />

C U14 QC<br />

D QD<br />

CLK<br />

R1<br />

ENP<br />

ENT RCO<br />

_LOAD<br />

_CLR<br />

R3<br />

74LS161A<br />

R2<br />

R4<br />

74LS04 D Q<br />

3<br />

4<br />

CLK<br />

U10a _Q<br />

_PRE<br />

_CLR<br />

74LS74A<br />

10<br />

74LS08<br />

8<br />

9 U11c<br />

0<br />

74259<br />

74259<br />

Q0 8<br />

Q0 0<br />

Q1 9<br />

Q1 1<br />

U7<br />

Q2 10<br />

D Q3 11<br />

U8<br />

Q2 2<br />

D Q3 3<br />

Q4 12<br />

Q4 4<br />

Q5 13<br />

Q5 5<br />

Q6 14<br />

Q6 6<br />

Q7 15<br />

Q7 7<br />

A2<br />

A1<br />

A0<br />

_CLR<br />

_E<br />

A2<br />

A1<br />

A0<br />

_CLR<br />

_E<br />

74LS04<br />

5<br />

6<br />

U10b<br />

1 74LS08 74LS04<br />

4 74LS08 74LS04<br />

3 9 U11a<br />

8 U11b 6 11 10<br />

2<br />

5<br />

U10c<br />

U10d<br />

Figure 7-2. Property Variable Resolution Example<br />

FULL<br />

PARITY<br />

ACCESS(15:0)<br />

2.<br />

4.<br />

2.<br />

A<br />

B<br />

Instance D's<br />

Underlying Sheet<br />

TEST<br />

PULSE<br />

START<br />

ANALOG_OUT<br />

_CLR<br />

LATCH<br />

RES<br />

A QA<br />

B QB<br />

C U14 QC<br />

D QD<br />

CLK<br />

ENP<br />

ENT RCO<br />

_LOAD<br />

_CLR<br />

R1<br />

R3<br />

74LS161A<br />

R2<br />

R4<br />

74LS04 D Q<br />

3<br />

4<br />

CLK<br />

U10a _Q<br />

_PRE<br />

_CLR<br />

74LS74A<br />

10<br />

74LS08<br />

8<br />

9 U11c<br />

0<br />

74259<br />

74259<br />

Q0 8<br />

Q0 0<br />

Q1 9<br />

Q1 1<br />

U7<br />

Q2 10<br />

D Q3 11<br />

U8<br />

Q2 2<br />

D Q3 3<br />

Q4 12<br />

Q4 4<br />

Q5 13<br />

Q5 5<br />

Q6 14<br />

Q6 6<br />

Q7 15<br />

Q7 7<br />

A2<br />

A1<br />

A0<br />

_CLR<br />

_E<br />

C<br />

D<br />

A2<br />

A1<br />

A0<br />

_CLR<br />

_E<br />

74LS04<br />

5<br />

6<br />

U10b<br />

1 74LS08 74LS04<br />

4 74LS08 74LS04<br />

3 9 U11a<br />

8 U11b 6 11 10<br />

2<br />

5<br />

U10c<br />

U10d<br />

FULL<br />

Symbol<br />

Models<br />

model = A<br />

model = B<br />

cap = "10 20 30"<br />

model = C<br />

PARITY<br />

ACCESS(15:0)<br />

model = D<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Structured Logic <strong>Design</strong> Properties<br />

Structured Logic <strong>Design</strong> Properties<br />

Structured Logic <strong>Design</strong> (SLD) properties are special properties built into <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong>. SLD properties pass design information to routines in <strong>Design</strong><br />

Viewpoint Editor-<strong>IC</strong> that evaluate the design and can only be added or changed on<br />

a schematic source sheet.<br />

To edit the SLD properties on a schematic sheet, open a design configuration from<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. A design configuration consists of a design viewpoint and its<br />

backannotation object. To create a design configuration:<br />

1. Create a schematic sheet.<br />

2. Check and save the schematic sheet.<br />

3. In the session scope, create a new design configuration.<br />

4. Open the new design configuration and add/edit SLD properties.<br />

While editing the design configuration, the “annotations” switch is on (default).<br />

When this switch is ON, all property edits are stored in the design configuration,<br />

except edits to SLD properties, which are made directly on the schematic source<br />

sheet.<br />

To turn the annotations switch OFF, choose Setup > Objects..., click <strong>Design</strong><br />

Context and choose NO for Show Annotations. When the annotations switch is set<br />

to OFF, all property edits are stored with the schematic sheet.<br />

When editing properties from the design configuration, you should have<br />

annotations ON to edit all properties except SLD properties. The state of the<br />

annotations switch displays in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> status line. The upper case<br />

“A” in the status line shown in Figure 7-3 indicates annotations are ON. A lower<br />

case “a” indicates annotations are OFF.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-25


Structured Logic <strong>Design</strong> Properties Using Properties<br />

.<br />

7-26<br />

Figure 7-3. Status Line Showing Annotations ON<br />

The <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> objects which have valid SLD properties are listed in<br />

Table 7-3:<br />

Table 7-3. DA-<strong>IC</strong> Objects Associated with Specific SLD Properties<br />

DA-<strong>IC</strong> Objects SLD Properties<br />

Bodies/Instance Class Rule Inst Global<br />

Pins/Vertices Class Rule Net Pin<br />

Function block Function<br />

block<br />

Frames Frexp<br />

Table 7-4, summarizes SLD properties. Note that the property values marked with<br />

an asterisk (*) can include special notation; see “Frexp Property” and<br />

“Special Notation for CASE, FOR, and IF Property Values” in this chapter. The<br />

following pages describe SLD properties in more detail.<br />

Table 7-4. Structured Logic <strong>Design</strong> Properties<br />

Property<br />

Name<br />

Property Value Description<br />

Class C Connector: Connects differently named<br />

nets together.<br />

Class G Global: Connects a net globally across<br />

the design. For example, Ground.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Structured Logic <strong>Design</strong> Properties<br />

Class I Intra-page connector: Identifies a net<br />

connected to another net by the same<br />

name on the same sheet.<br />

Class P Port: Establishes design I/O<br />

connectivity with a pin on the symbol<br />

above it in a hierarchical design.<br />

Class R Ripper: Extracts a range of nets from a<br />

bus.<br />

Class O Off-page connector: Identifies net<br />

connected to a net on another sheet of<br />

the schematic.<br />

Class N Null: Defines object as electrically<br />

inert.<br />

Class dangle Identifies a dangling instance pin or net<br />

vertex that should not cause a check<br />

warning.<br />

Frexp CASE * Identifies a CASE frame.<br />

Frexp FOR * Identifies a repeated frame.<br />

Frexp IF * Identifies a frame to be included<br />

conditionally.<br />

Frexp OTHERWISE * Otherwise case for the CASE frame.<br />

Function<br />

block<br />

Function<br />

block<br />

Function<br />

block<br />

Table 7-4. Structured Logic <strong>Design</strong> Properties [continued]<br />

Property<br />

Name<br />

Property Value Description<br />

fb_def Identifies an unconnected Made FB<br />

Definition.<br />

Represents the name of the FB instance<br />

or FB Definition.<br />

fb_inst Represents the future instance name of<br />

the FB Definition or FB Instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-27


Structured Logic <strong>Design</strong> Properties Using Properties<br />

7-28<br />

Table 7-4. Structured Logic <strong>Design</strong> Properties [continued]<br />

Property<br />

Name<br />

Class Property<br />

Property Value Description<br />

Global global_name Name of a global net (used with Class<br />

“G” property value).<br />

Inst Instance name on a schematic sheet.<br />

Net () Name of a net or bus.<br />

Pin () Name of pin on symbol.<br />

Rule Identifies bus lines to extract with<br />

ripper (“Class” R).<br />

The Class property identifies its owner object as having some special<br />

characteristic. Ports, off-page connectors, net connectors, and rippers all have<br />

Class property values that define these devices. The Class property is placed on an<br />

instance or symbol body. Instances or symbol bodies tagged with the Class<br />

property are specially treated by <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> and DVE-<strong>IC</strong>; they are not<br />

included in the evaluated design viewpoint. For more information on the special<br />

instances defined using the Class property, see Appendix E, “Special Instances”.<br />

Properties on pins propagate to the net vertices under the pins when an instance<br />

having the Class property is placed on a sheet or updated, if those properties may<br />

be owned by nets and do not already exist. If you wish to propagate properties in<br />

this manner, you must explicitly declare “net” as a legal owner of the desired<br />

properties using the $set_property_owner() function in the Symbol Editor.<br />

When an instance with a Class property attached is placed on a sheet, making a<br />

connection to an existing net, the Init and Net properties which may have been<br />

placed on the pin of the symbol are propagated to the net vertex under the instance<br />

pin, assuming the net vertex does not already have an Init or Net property. If an<br />

Init property already exists on the net vertex, it is replaced by the instance pin's<br />

Init property only if the new instance is a global instance (Class property<br />

value = G).<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Structured Logic <strong>Design</strong> Properties<br />

If the property is created on a symbol, its behavior upon symbol instantiation is<br />

determined by the values specified for the symbol_visibility_switch and<br />

symbol_stability_switch arguments in the $add_property() function. If these<br />

switches are not specified, the values of the property_visibility_switch and<br />

property_stability_switch internal state variables are used.<br />

You can also use the Class property to declare a valid dangling net vertex or<br />

instance pin. Add the Class property with a value of “dangle” to a pin or net vertex<br />

to indicate that the Check command should not issue a warning because that<br />

object is unconnected.<br />

For example, if you want to connect only one output pin of an instance of a flipflop,<br />

you can add this property to the other output pin to identify it to the Check<br />

command as an acceptable dangling pin. To add the Class property to a pin or net,<br />

you may first need to execute the Set Property Owner command to declare pins<br />

and/or nets as valid owners of this property.<br />

Global Property<br />

The Global property defines a global net such as VCC and GND. The Global<br />

property is assigned with the Class property value “G” and forms a property/value<br />

pair for the device body. If you assign the Global property to a body without also<br />

assigning the Class G property to the body, the design will pass the Check<br />

command without generating an error or warning. However, the net will not be<br />

recognized as global in that case. Global connectivity is established directly<br />

downward and at the same level in hierarchy by giving nets the same name as the<br />

Global property value.<br />

Inst Property<br />

All schematic items have unique object handles which are assigned, maintained,<br />

and used by the application. Usually, they are not visible to you. You can also<br />

assign names (with the visibility and other attributes under your control) that can<br />

be used to identify each instance. This is accomplished by assigning unique names<br />

(for example “U23-A”) to instances with the Inst property.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-29


Structured Logic <strong>Design</strong> Properties Using Properties<br />

The values used with Inst property assignments must be unique on all sheets of a<br />

schematic. The Check -Schematic command detects repeated “Inst” values for the<br />

current schematic sheet level in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>.<br />

Net Property<br />

The Net property value is used to name the net and is assigned to a net vertex.<br />

Pin Property<br />

The Pin property value placed on a symbol pin is used to name the pin. The pin<br />

property on the symbol provides the connectivity interface between levels of<br />

design hierarchy.<br />

Rule Property<br />

The Rule property is used on ripper devices with the Class property value “R” and<br />

specifies which wire or group of wires is to be ripped, or branched, from a bus.<br />

The Rule property must be assigned to objects with the Class property value “R”.<br />

The Check command generates an error message if the Class property value “R”<br />

is present without the Rule property.<br />

You must adhere to the following guidelines when assigning the Rule property to<br />

a Class “R” device:<br />

7-30<br />

• You must observe proper syntax for the Rule property value. For more<br />

information, see “Understanding Basic Pin, Bus, and Net Naming Syntax”<br />

in Chapter 3. The width of the Rule property must match the width of the<br />

ripped bus.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Structured Logic <strong>Design</strong> Properties<br />

Frexp Property<br />

This property is used to define frames. Frames provide you with the ability to<br />

repeat or conditionally include a circuit in a schematic sheet. The number of<br />

iterations, or the conditions determining inclusion or selection are controlled by<br />

parameters assigned during design creation and evaluation, and make use of the<br />

frame expression assigned as a value to the Frexp property. The frame expression<br />

uses similar constructs to those used in high level programming languages.<br />

All frames must have the Frexp property assigned to them with a valid Frexp<br />

property value. The value assigned to the Frexp property must adhere to a specific<br />

syntax which uses key words such as FOR, IF, CASE, OTHERWISE, DOWNTO,<br />

and TO with the assignment, equality, and relational (:=, ==, !=, =)<br />

characters. For example “FOR i := 1 TO 5” is correct, but “FOR i += 1 TO 5” is<br />

not. The syntax for FOR, IF, CASE, and OTHERWISE frames is discussed next.<br />

Function Block Properties<br />

There are three properties used to define Function Blocks, as follows:<br />

• FB_DEF is a string property used to identify an unconnected, Made FB<br />

Definition.<br />

• FB_NAME is a required string used to represent the name of an FB<br />

Instance or FB Definition.<br />

• FB_INST is an optional string used to represent the future instance name of<br />

the FB Definition or FB Instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-31


Structured Logic <strong>Design</strong> Properties Using Properties<br />

Special Notation for CASE, FOR, and IF Property<br />

Values<br />

The Frexp property contains specific syntax that can be used to indicate property<br />

values. The clause or range required is defined before each description. Names or<br />

values that you must supply appear in italics, and any punctuation shown is<br />

necessary. Except for the FOR example, property value syntax described in these<br />

examples is defined by the AMPLE language.<br />

These values are only applicable to the Frexp property.<br />

CASE <br />

Clause: parameter==”value” or parameter == “value”<br />

In the CASE frame clause, if the value equals the parameter, the circuitry defined<br />

within the frame is included in the schematic sheet. If not, and an OTHERWISE<br />

frame exists, the OTHERWISE frame is included. The CASE parameter name<br />

follows the rules for AMPLE identifiers, whose default value is declared with the<br />

Set Parameter command. The value is any valid AMPLE expression.<br />

OTHERWISE <br />

Clause: variable_name<br />

The OTHERWISE value is used in conjunction with the CASE value. If the<br />

evaluation of the CASE value is false, the OTHERWISE frame is included. The<br />

variable_name is a local variable which follows the rules for AMPLE identifiers.<br />

FOR <br />

Clause: variable_name := expression TO expression<br />

7-32<br />

or<br />

Clause: variable_name := expression DOWNTO expression<br />

The FOR frame expression specifies that the frame contents are to be repeated on<br />

the sheet “n” times. The variable “n” can be a variable in a frame expression on an<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Structured Logic <strong>Design</strong> Properties<br />

outer frame. The value of “i” as it iterates through the values 0 to n-1 in the<br />

following example can be used to evaluate the value within this frame.<br />

Example: FOR i := 0 TO n-1<br />

Note<br />

DOWNTO works the same way as the TO example, except it decrements the start<br />

index value by one. For example, FOR i := n-1 TO 0, would generate the “i”<br />

values of n-1, n-2, to 0, in that order.<br />

The variable_name is a local variable which follows the rules for AMPLE<br />

identifiers. Frame expressions on frames in an inner nest can involve the dummy<br />

variables assigned in outer nest, or property names valid for <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

instance items.<br />

Note<br />

When creating a net with the FOR frame expression, you must<br />

name the net if the net crosses the border of the frame. If the net<br />

does not have a name and crosses the FOR frame border, <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> will create multiple nets.<br />

In expressions of this type, the “:=” operator must be preceded and<br />

followed by a space, and the colon (:) must be followed<br />

immediately by the equal sign (=), with no intervening spaces.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-33


Structured Logic <strong>Design</strong> Properties Using Properties<br />

Positive and negative integers and integer expressions can be used as indices.<br />

Integers are treated as unsigned values, so you will receive a warning message if<br />

you use negative indices. These messages inform you that names in the design<br />

database may be different than expected (as they will be represented in two'scomplement<br />

form). For example, a net name expression such as $strcat(“OUT_”,<br />

I) used in the FOR frame expression “FOR I := -1 TO 0” produces the net names<br />

“OUT_65535” and “OUT_0”, instead of “OUT_-1” and “OUT_0”.<br />

Because the evaluated value of -1 is larger than the terminating value of 0, a<br />

warning message is issued, and the design logic within the frame is omitted from<br />

the design viewpoint.<br />

7-34<br />

Note<br />

To avoid unexpected (and possibly unpleasant) results, Mentor<br />

Graphics strongly recommends that you do not use negative<br />

indices.<br />

The relative size of indices used in a FOR frame expression affects the number of<br />

iterations generated as follows:<br />

• When the start index is less than the end index, the number of iterations is<br />

equal to (end_value - start_value +1). Ten iterations are generated with the<br />

expression “FOR I := 1 TO 10”.<br />

• Only one iteration exists if the start index equals the end index, such as<br />

“FOR I := 1 TO 1”.<br />

• When the start index is greater than the end index, no iterations are<br />

generated. An example of this is “FOR I := 10 TO 1”. A warning message is<br />

displayed if this occurs.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

Figure 7-4 illustrates a typical FOR Frame.<br />

EN<br />

I0(I)<br />

FOR I := 0 TO N-1<br />

IF <br />

Clause: expression<br />

sa0,sa1<br />

sa0,sa1<br />

0<br />

0<br />

Figure 7-4. Typical FOR Frame<br />

In the IF expression, if the expression evaluates to FALSE (or zero) at design<br />

evaluation time, the frame is not included in the design. Otherwise, the frame is<br />

included.<br />

Frame expressions can involve property names that are valid for instance items. In<br />

the following example, the contents of the IF frame are included on the sheet, if<br />

the instance property “logic” is set to the property value “TTL”.<br />

Example: IF logic == “TTL”<br />

Assigning Properties<br />

0<br />

0<br />

sa0,sa1 sa0,sa1<br />

sa0,sa1 sa0,sa1<br />

0<br />

0<br />

(TPZH)<br />

(TPHZ)<br />

sa0,sa1<br />

(TPZL)<br />

(TPLZ)<br />

sa0,sa1<br />

(TPZH) 0<br />

(TPZL)<br />

0<br />

sa0,sa1<br />

sa0,sa1<br />

(TRISE)<br />

(TFALL)<br />

OUT(I)<br />

Assigning properties to a design is important if you intend to use the design with<br />

other Mentor Graphics applications. Some properties are required for specific<br />

downstream applications, others are optional.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-35<br />

0<br />

0<br />

0<br />

0<br />

sa0,sa1<br />

0<br />

0<br />

sa0,sa1<br />

sa0,sa1<br />

sa0,sa1<br />

sa0,sa1<br />

0<br />

0<br />

sa0,sa1


Assigning Properties Using Properties<br />

Setting Up Property Text Attributes<br />

The following procedures let you set the appearance of properties on a symbol or<br />

schematic sheet.<br />

To set up property text attributes in a Schematic Editor window, perform the<br />

following steps:<br />

7-36<br />

1. Choose the Setup > Objects menu item.<br />

2. Choose Property Text.<br />

This displays the Setup Object Property Text dialog box as illustrated in<br />

Figure 7-5.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

Figure 7-5. Setup Objects Property Text Dialog Box<br />

3. Specify text font name in the Font text box. To make font selection simpler,<br />

click the Menu... button to display a list of suggested fonts.<br />

If you want to use an unregistered font, you must enter a complete<br />

pathname to the font; the pathname must begin with a slash (/).<br />

4. Specify text height by entering a number in the Height text box. The<br />

default height is .1875 user units.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-37


Assigning Properties Using Properties<br />

7-38<br />

5. Specify text orientation by entering “0” or “90” in the Orientation text<br />

box. These numbers represent the angle of orientation, measured in degrees<br />

at which the text is placed on the sheet.<br />

6. Specify the vertical text justification by clicking the left mouse button on<br />

the Vertical Justification button Top, Center, or Bottom.<br />

7. Specify the horizontal text justification by clicking the left mouse button on<br />

the Horizontal Justification button Left, Center, or Right.<br />

8. Specify whether text should be visible or invisible on the schematic sheet<br />

by clicking the left mouse button on the Set Visibility button On or Off.<br />

9. Specify text transparency (on/off) by clicking the left mouse button on the<br />

Set Transparency button On or Off.<br />

10. Under the Auto Inst Name Settings, set the following items:<br />

a. Specify whether Auto Instance Name Placement should be enabled by<br />

clicking the left mouse button on the Auto Instance Name Placement<br />

button On or Off.<br />

b. Specify the Name Offset distance by entering a value in the Name<br />

Offset text box.<br />

c. Specify Indent Offset value by entering a number in the Indent Offset<br />

text box.<br />

11. Specify the restriction of flipped or rotated text (on/off) by clicking the left<br />

mouse button on the Restrict Flipped/Rotated Text button On or Off.<br />

To set up property text attributes in a Symbol Editor window, perform the<br />

following steps:<br />

1. Follow steps 1-11 in the previous procedure. In a Symbol Editor window,<br />

the Set Property Text dialog box includes two additional attribute fields to<br />

be specified. Attributes, set with the “Setup” commands, change the<br />

internal state variable for each attribute.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

2. Specify visibility (visible, hidden) by clicking the left mouse button on the<br />

Set Visibility Switch button.<br />

3. Specify the property stability switch (Variable, Fixed, Protected, or<br />

Nonremovable) by clicking the left mouse button on the Set Stability<br />

Switch button. Refer to “Property Stability Switches” in Chapter 7 for a<br />

description of how stability switches on properties can protect a property<br />

from being changed.<br />

You can also set up property text or comment text in the Schematic Editor, and<br />

property text or symbol body text in the Symbol Editor by clicking the<br />

[Text] Setup icon. The dialog box has buttons at the top for you to specify the<br />

type of text. When you click the Property button, other items in the dialog box are<br />

the same as in the Setup Property Text dialog box for each editor.<br />

Adding a Single Property<br />

To add a property name and value to a selected object in a Schematic Editor<br />

window, perform the following steps:<br />

1. Select object(s) (for example, net, pin, and instance). For information about<br />

selecting and unselecting objects, see “Selecting and Unselecting Objects”<br />

in Chapter 2.<br />

2. Click the left mouse button on the schematic_edit [Text] Add Property<br />

palette item. The Add Property dialog box displays.<br />

3. Select a property name from the scrolling list of properties, or type the new<br />

property name in the Property Name text box.<br />

4. Type the property value in the Property Value text box. When entering<br />

property values in a dialog box, do not use quotes.<br />

5. Fill in the rest of the dialog box, as appropriate. Refer to “Setting Up<br />

Property Text Attributes” for more information about property attributes.<br />

6. When property attributes are set, click OK. The Add Property prompt bar<br />

appears.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-39


Assigning Properties Using Properties<br />

7-40<br />

7. Move the cursor to the window of the selected object(s). Notice the elastic<br />

string attached to the selected object(s) and the property value text.<br />

8. Move the text to the desired location, and click the left mouse button. The<br />

property value text is placed at that location.<br />

If the property value is to remain invisible when the symbol is instantiated on a<br />

schematic sheet, the property value will have a solid DimGray rectangle as a<br />

background. The color and background of this rectangle can be changed from the<br />

DA-<strong>IC</strong> Session menu Setup > Property Display...<br />

To add a property name and value to a selected object in a Symbol Editor window,<br />

perform the following steps:<br />

1. Select object (for example, symbol body and pin). For information about<br />

selecting and unselecting objects, refer to the see “Selecting and<br />

Unselecting Objects” in Chapter 2.<br />

Note<br />

When adding properties to a symbol body, select only one symbol<br />

body object. A symbol body can be constructed with a set of<br />

symbol body graphics (arcs, rectangles, polylines, and so forth). If<br />

you select more than one piece of the symbol body, the property<br />

will be added to each of the selected pieces. This will create an<br />

error when you check the symbol. If an object is not selected when<br />

the Add Property command is executed, the property will be added<br />

to the logical symbol.<br />

2. Click the left mouse button on the schematic_edit [Text] Add Text icon.<br />

The Add Property dialog box displays.<br />

3. Select a property name from the scrolling list of properties, or type the new<br />

property name in the New Property Name text box.<br />

4. Type the property value (no quotes) in the Property Value text box.<br />

5. Fill in the rest of the dialog box, as appropriate (graphics, property type,<br />

visibility switch, stability switch). For more information about symbol<br />

property switches, refer to “Symbol Properties” in Chapter 7.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

6. Press OK when all desired switch settings are set. The Add Property<br />

prompt bar appears.<br />

7. Move the cursor to the window of the selected object(s). Notice an elastic<br />

string is attached to the selected object(s) and the property value text. Move<br />

the property value text to the location you want to place the text, and click<br />

with the left mouse button. The property value text is placed at that<br />

location.<br />

Adding Multiple Properties to the Same Object<br />

To add multiple property name/value pairs with the same property attributes to<br />

selected objects in a Schematic or Symbol Editor window, perform these steps:<br />

1. Select object(s) (for example, net, pin, and instance). For information about<br />

selecting and unselecting objects, see “Selecting and Unselecting Objects”<br />

in Chapter 2.<br />

2. Execute the Properties > Add menu item available from the Instance, Net,<br />

and Draw Schematic Editor popup menus, and the Add and Symbol Body<br />

& Pins Symbol Editor popup menus.<br />

The Add Multiple Property dialog box displays.<br />

3. Type the property name and value for each pair of properties you want to<br />

add to the selected object(s). When you type in the Property Name text<br />

box, another text box displays, that allows you to enter as many property<br />

name/value pairs as you wish.<br />

4. Fill in the rest of the dialog box as appropriate. Refer to “Setting Up<br />

Property Text Attributes” for more information about setting up property<br />

attributes<br />

5. When property attributes are set, click OK.<br />

The Add Property prompt bar displays.<br />

6. Move the cursor to the window of the selected object(s). An elastic string is<br />

attached to the selected object(s) and the property value text. Move the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-41


Assigning Properties Using Properties<br />

7-42<br />

property value text to the desired location, and click the left mouse button.<br />

The property value text is placed at that location.<br />

7. Repeat Step 6 for each property name/value pair entered.<br />

Repeat Adding Properties to Changing Selection<br />

To add a single property to a selected object(s), select another object(s), add a<br />

single property to the newly selected object, and repeat this process as many times<br />

as required, perform the following steps:<br />

1. Select object(s) (for example, net, pin, and instance). For information<br />

about selecting and unselecting objects, see “Selecting and Unselecting<br />

Objects” in Chapter 2.<br />

2. Execute the Properties > Add popup menu item.<br />

An Add Multiple Property dialog box displays.<br />

3. Select a property name from the “Existing Property Name” box, or type the<br />

property name in the Property Name text box.<br />

4. Type the property value in the Property Value text box.<br />

5. Fill in the rest of the dialog box, if appropriate. Refer to “Setting Up<br />

Property Text Attributes” for more information about setting up property<br />

attributes<br />

6. When property attributes are set, click OK.<br />

The Add Property prompt bar appears.<br />

7. Move the cursor to the window of the selected object(s). An elastic string<br />

attaches to the selected object(s), and the property value text. Move the<br />

property text with the cursor to the location you want to place the text, and<br />

click the left mouse button. The text is placed at that location.<br />

8. After the property value text is placed, the Select Area prompt bar appears.<br />

Select another object and repeat steps 3 – 7, or press the Cancel button to<br />

exit this process.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

Deleting Property Name/Value<br />

To delete hidden or visible property name/value pairs, perform the following<br />

steps:<br />

1. Select properties to be deleted. For information about selecting and<br />

unselecting objects, refer to the see “Selecting and Unselecting Objects”in<br />

Chapter 2.<br />

2. Execute the Edit > Delete > Selected menu item, or click the right mouse<br />

button and select the Delete > Property from the popup menu.<br />

The Delete Property dialog box displays.<br />

3. Type the property name to be deleted in the Property Name text box.<br />

Multiple property names can be entered in the dialog box.<br />

4. Press OK after you enter the property name(s).<br />

Setting Property Owners<br />

To define what types of objects can own a particular property on a schematic<br />

sheet, perform the following steps:<br />

1. Type $set_property_owner() in a prompt bar. The Set Property Owner<br />

dialog box (Schematic Editor) displays.<br />

2. In the Property Name text box, type the property name for which you want<br />

to set property ownership.<br />

3. Click on the object types that can own the property (for example, the<br />

Instances or Nets buttons). You can specify more than one object type.<br />

4. Press OK when object type selection is complete.<br />

For conceptual information about property ownership, refer to “Property<br />

Ownership” in Chapter 7 of this manual.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-43


Assigning Properties Using Properties<br />

Deleting Property Owners<br />

To remove certain object types from the legal owner list of a particular property<br />

on a schematic sheet, perform the following steps:<br />

7-44<br />

1. Select an instance in your schematic.<br />

2. Choose the Delete > Property Owner popup menu item. The Delete<br />

Property Owner dialog box (Schematic Editor) displays.<br />

3. Type the property name whose owner list you want to modify in the<br />

Property Name text box.<br />

4. Press the left mouse button on the buttons associated with the object types<br />

you want to remove from the owner list of the specified property name.<br />

More than one object type can be specified.<br />

5. Press OK when object type selection is complete.<br />

To delete object types from the owner list of a particular property on a symbol,<br />

perform the following steps:<br />

1. Select an instance in your schematic.<br />

2. Choose the Delete > Property Owner popup menu item to display the<br />

Delete Property Owner dialog box (Symbol Editor).<br />

3. Type the property name whose owner list you want to modify in the<br />

Property Name text box.<br />

4. Click the left mouse button on the buttons for the object types you want to<br />

remove from the owner list of the specified property. More than one object<br />

type can be specified.<br />

5. Press OK when object type selection is complete.<br />

For conceptual information about property ownership, refer to “Property<br />

Ownership” in Chapter 7 of this manual.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

Listing Property Information<br />

To list property information for specified objects, perform the following steps:<br />

1. Select the properties, or the owners of the properties, for which you want to<br />

extract information. Instead of selecting objects, you can enter the handle<br />

names of the objects in the dialog box that displays after the next step.<br />

2. Execute the Report > Specified Object menu item. The Report Object<br />

dialog box displays.<br />

3. Click on the buttons associated with the objects for which you want<br />

property information. Select more than one object. By default, the report<br />

displays in the transcript window, and to a file named “da_report_file” in<br />

your current directory.<br />

If you selected the object that owns the property, you must ask for a report<br />

on both the object and attached properties.<br />

4. Press OK when object selection is complete.<br />

Property attributes listed in report windows may include “-Not Visible” and<br />

“-Hidden”. If both of these are listed, the property was hidden when added,<br />

and the property visibility has not been changed.<br />

If “-Hidden” is listed without “-Not Visible”, the property visibility was<br />

changed to visible on the sheet.<br />

Changing Property Values<br />

To change a single property text value, perform the following steps:<br />

1. Click on the piece of text to change, and choose Change Values: from the<br />

Property/Text popup menu<br />

2. Enter the new value in the prompt bar, then press Return, or click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-45


Assigning Properties Using Properties<br />

To change the values of selected properties on a sheet or symbol, follow these<br />

steps:<br />

7-46<br />

1. Select the properties to change, either by setting the select filter, or by<br />

choosing the Select > Area > Property menu item.<br />

2. Choose the Properties > Change Values popup menu item or<br />

schematic_text [Edit] Change Value palette item. This displays the<br />

Change Property Value By Handle prompt bar with the current value,<br />

name, type, and object handle.<br />

3. Enter the new property value in the text entry box. Click OK. Another<br />

prompt bar appears for the next property to change. Repeat this step for<br />

each selected property.<br />

To change the value of the same property attached to several objects, perform the<br />

following steps (this example changes the Pintype property value):<br />

1. Press Unselect All key [F2].<br />

2. Move the cursor close to a pin whose Pintype property you wish to change,<br />

and press F1 (Select Anything). Be sure that only the pin is selected. If the<br />

line connected to the pin is highlighted, unselect everything, and move the<br />

cursor slightly further away from the pin to select it. Repeat for each pin<br />

whose Pintype property value you want to change. The select count in the<br />

status line shows how many objects are selected.<br />

3. Choose the Properties > Modify popup menu item. This displays the<br />

Modify Properties dialog box.<br />

4. Click the left mouse button on the “PINTYPE - Multiple Occurrences”<br />

entry, then click OK.<br />

5. Click the Replace button to the right of the Property Value entry. Enter the<br />

new Pintype property value. You also can change the property type and<br />

some attributes in this dialog box. Click OK. The property values are<br />

changed for the selected pins.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

The following steps show another method of changing various pieces of<br />

unselected text:<br />

1. Choose the Property/Text > Change Values popup menu item to display<br />

the dialog box.<br />

2. Enter a new text value for one you want to replace. When you begin<br />

entering a value, another text entry box appears in the dialog box. Enter<br />

new values, one per text entry box, for all the values you want to change.<br />

3. Click OK. The first value entered in the dialog box displays in the message<br />

area. Click the left mouse button on the text you want to replace with the<br />

new value.<br />

4. The old value is replaced by the new value shown in the message area, and<br />

the next value is shown in the message area. Continue specifying the text to<br />

replace with the new value shown in the message area, until all specified<br />

values are placed.<br />

The value_modified flag can be reset to “Not Modified” by using the menu<br />

Miscellaneous > Property Settings > Mark Property Value: See “Mark<br />

Property Attributes” in Chapter 7 for details.<br />

Changing Property Attributes<br />

To change property attributes for a specified property on a schematic sheet,<br />

perform the following steps:<br />

1. Select the property owners (nets, instances) for which you want to change<br />

property attribute information. Execute the Properties > Modify popup<br />

menu item. The Modify Properties dialog box displays.<br />

2. Select the property name you want to change by clicking the left mouse<br />

button on the property name. You can select more than one property name<br />

by holding down the Ctrl key while selecting the property names.<br />

3. Click OK when the property name selection is complete. A Modify<br />

Properties dialog box opens for the first property name selected.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-47


Assigning Properties Using Properties<br />

7-48<br />

4. Make the desired property attribute changes.<br />

5. Click OK when the property attribute selection is complete. The next<br />

Modify Property dialog box displays for the second property that was<br />

selected. Repeat steps 4 and 5 for each property selected.<br />

To change property attributes for a specified property on a symbol, perform the<br />

following steps:<br />

1. Select the property owners for which to change property attributes.<br />

2. Select Edit > Property Operations > Modify menu item. A dialog box<br />

appears that includes a list of property names for a selected object.<br />

3. Click the left mouse button on the property name you want to change. You<br />

can select more than one property name by holding down the Ctrl key while<br />

selecting the property names.<br />

4. Click OK when the property name selection is complete. A Modify<br />

Properties dialog box opens for the property name(s) selected.<br />

In the Symbol Editor window, the Modify Properties dialog box has two<br />

additional property settings (stability and visibility switch) that are not<br />

available in a Schematic Editor window.<br />

5. Make the property attribute changes.<br />

6. Click OK when the property attribute selection is complete. The next<br />

Modify Property dialog box displays for the second property that was<br />

selected. For each property selected, repeat steps 5 and 6.<br />

Note<br />

In order to change the stability switch of a Logical Symbol Body<br />

property, no object should be selected. Therefore, it is best to<br />

execute an $unselect_all() function first. You then select the<br />

property with the $select_by_property() function and specify the<br />

property name and value. To change the stability attribute, use the<br />

$change_property_stability_switch() function.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

The attribute_modified flag can be reset to “Not Modified” by using the menu<br />

Miscellaneous > Property Settings > Mark Property Attributes: See “Mark<br />

Property Attributes” in Chapter 7 for details.<br />

Changing Property Text Color<br />

To change the color of all selected property text to White, for example, perform<br />

the following steps:<br />

1. Select the property text for which you want to change the color. Execute the<br />

popup menu item Properties > Change Attributes > Text Color:. The<br />

Change Color dialog box displays, as shown in Figure 7-6:<br />

Figure 7-6. Change Color dialog box<br />

2. Move the window slider button down to the bottom, then click White. Click<br />

OK.<br />

Note<br />

Change Color<br />

Violet<br />

VioletRed<br />

Wheat<br />

White<br />

Yellow<br />

YellowGreen<br />

OK Reset Cancel<br />

When you change the color of a property, the annotated value of<br />

that property text is also changed from the default color red to the<br />

new color.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-49


Assigning Properties Using Properties<br />

Changing the Background of Hidden Property Text<br />

To change the background color of all hidden property text to white, for example,<br />

perform the following steps:<br />

7-50<br />

1. Activate the DA-<strong>IC</strong> Session window, then execute the menu item<br />

Setup > Property Display...<br />

The “Hidden Property Display in Symbol Editor” portion of the Setup<br />

Property Display dialog box appears in Figure 7-7.<br />

Hidden Property Display in Symbol Editor<br />

Display background? No Yes<br />

Background Color<br />

Violet<br />

VioletRed<br />

Wheat<br />

White<br />

Yellow<br />

YellowGreen<br />

Setup Property Display<br />

Background Pattern<br />

Solid<br />

Stipple<br />

Figure 7-7. Setup Property Display dialog box<br />

2. Move the window slider button down to the bottom, then click White, and<br />

click OK to close the dialog box.<br />

Changing Multiple Properties on the Same Object<br />

To edit multiple property name/value pairs, on a single selected object in a<br />

Schematic or Symbol Editor window, perform these steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Properties Assigning Properties<br />

1. Select an object (for example, a symbol body) in the Symbol Editor<br />

window.<br />

2. Execute the popup menu Properties > Modify Multiple...<br />

• In the Schematic Editor window, available in the Instance, Net, and<br />

Draw popup menus<br />

• In the Symbol Editor window, available in the Symbol Body & Pins<br />

popup menus. The Modify Editable Properties dialog box displays, as<br />

shown in Figure 7-8:<br />

Modify Editable Properties<br />

Name<br />

Value<br />

Visibility Type<br />

BLOCK_NAME ADD_CONVERT<br />

Visible string<br />

MODEL schematic Visible string<br />

OK<br />

Reset<br />

Cancel<br />

Visible void<br />

Figure 7-8. Modify Editable Properties dialog box<br />

3. Enter the new value and/or attributes of the property names you want to edit<br />

or add to the selected object.<br />

4. When the property values and attributes are set, click OK. If you are adding<br />

a new property, the Add Property prompt bar appears.<br />

5. If you are adding a property, move the property value text to the desired<br />

location, and click the left mouse button. The property value text is placed<br />

at that location.<br />

6. Repeat Step 5 for each new property name/value pair entered.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 7-51


Assigning Properties Using Properties<br />

7-52<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 8<br />

Running <strong>Design</strong> Simulation<br />

This chapter provides information on using the simulation and waveform viewer<br />

functions in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>). The simulation and viewer functions<br />

allow you to simulate, view, and edit designs from within one environment. The<br />

following topics are available:<br />

Simulation Mode Overview<br />

Supported Language Types<br />

Requirements<br />

Using the HSP<strong>IC</strong>E Simulator<br />

Running a Simulation<br />

Setting up a Default Viewpoint<br />

Invoking Simulation Mode<br />

Setting Up the Default Simulator and Viewer<br />

Setting Ground/Node 0<br />

Setting up the Simulation Environment<br />

Creating Default Simulation Environment Setups<br />

Restoring Simulation Environment Setups<br />

Copying a Simulation Configuration<br />

Setting up Standard Simulator Options<br />

Adding Forces<br />

Adding Safe Operating Areas<br />

Specifying a Circuit Temperature<br />

Setting up Parameter Variables for Models<br />

Reordering, Enabling/Disabling, Editing, and Deleting Sweep Analyses<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-1


8-2<br />

Setting up a Sweep Analysis<br />

Setting up a Monte Carlo Analysis<br />

Setting up Simulation Analyses<br />

Setting up a DCOP Analysis<br />

Setting up a DC Analysis<br />

Setting up an AC Analysis<br />

Setting up an AC Noise Analysis<br />

Setting up a Transient Analysis<br />

Setting up a Transient Noise Analysis<br />

Setting up a Steady State Analysis<br />

Setting up a Modulated Steady State Analysis<br />

Setting up an Oscillator Steady State Analysis<br />

Setting up a Steady State Noise Analysis<br />

Setting up a Steady State AC Analysis<br />

Setting Model Libraries for Simulation<br />

Selecting/Editing Registered Models<br />

Displaying/Editing the Default Registered Model<br />

Including SP<strong>IC</strong>E Command Files<br />

Entering Additional Simulator Commands<br />

Setting Probes<br />

Plotting Simulation Results<br />

Deleting Plots and Probes<br />

Displaying the Current Simulation Setups<br />

Displaying the Simulation Command File<br />

Displaying the DCOP Values<br />

Hiding the DCOP Values<br />

Displaying Small Signal DCOP Parameters<br />

Reporting DCOP Values for a Selected Object<br />

Using Estimated Pre-layout Parasitic Extractions<br />

Running <strong>Design</strong> Simulation<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation<br />

Using Post-layout Parasitic Extractions<br />

Setting up the Netlist<br />

Understanding Analog/Digital Converters<br />

Defining Default Analog/Digital Converters for Auto-Insertion<br />

Editing Default Analog/Digital Converter Parameters<br />

Deleting Default Analog/Digital Converters<br />

Inserting Analog/Digital Converters on Instances<br />

Inserting Analog/Digital Converters on Nets<br />

Inserting Analog/Digital Converters on Pins<br />

Deleting Analog/Digital Converters<br />

Associating an SDF File with an Instance<br />

Displaying SDF File Setups<br />

Deleting SDF File Setups<br />

Changing SDF File Setups<br />

Deleting Unused References\Invalid Backannotations<br />

Checking the <strong>Design</strong> Before Simulation<br />

Generating a Netlist<br />

Running the Simulation<br />

Extracting Waveform Measurements<br />

Exiting Simulation Mode<br />

Viewing Waveforms<br />

About Xelga<br />

Invoking Xelga<br />

Crossprobing Schematics with Xelga<br />

Closing Xelga<br />

About <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View (DA-<strong>IC</strong> View)<br />

Invoking DA-<strong>IC</strong> View<br />

Crossprobing Schematics with DA-<strong>IC</strong> View<br />

Closing DA-<strong>IC</strong> View<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-3


Simulation Mode Overview Running <strong>Design</strong> Simulation<br />

8-4<br />

About EZwave<br />

Invoking EZwave<br />

Crossprobing Schematics with EZwave<br />

Closing EZwave<br />

Simulation Mode Overview<br />

From the simulation mode in DA-<strong>IC</strong>, you can set up and invoke Eldo,<br />

ADVanceMS, HSP<strong>IC</strong>E, or any SP<strong>IC</strong>E-compatible simulator. Eldo is used for<br />

analog and RF designs, and ADVanceMS is used for mixed signal designs. The<br />

palette menu in DA-<strong>IC</strong> provides the most commonly used options for setting up<br />

the simulation analysis and allows you to enter additional commands for the<br />

simulator.<br />

Simulation mode uses <strong>Design</strong> Viewing and Analysis Support (DVAS)<br />

functionality used by other Mentor Graphics applications. DVAS is a set of<br />

scopes, functions, and commands used to manipulate windows, check syntax, and<br />

select, display, highlight, analyze, report, protect, group, and name objects. For<br />

more information on DVAS, see the <strong>Design</strong> Viewing and Analysis Support for <strong>IC</strong><br />

Flow <strong>Manual</strong>.<br />

For more information on simulation concepts and commands, see the following<br />

manuals:<br />

• ADVance MS User’s <strong>Manual</strong><br />

• Eldo User’s <strong>Manual</strong><br />

• Eldo RF User’s <strong>Manual</strong><br />

Note<br />

Source schematics cannot be edited directly from simulation<br />

mode. However, you can still add, change, and delete properties<br />

using backannotations and then merge the backannotations to the<br />

source schematic.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Supported Language Types<br />

Supported Language Types<br />

The supported language types and simulator/viewer to use for each is listed in<br />

table 8-1<br />

For information on setting the simulator and viewer, see “Setting Up the Default<br />

Simulator and Viewer” in this chapter.<br />

Requirements<br />

Depending on which simulator and viewer you use, one or more of the following<br />

separately licensed applications are required for the simulation mode:<br />

• Eldo<br />

• HSP<strong>IC</strong>E<br />

• Eldo RF<br />

• Xelga<br />

Table 8-1. Supported Simulation Language Types<br />

<strong>Design</strong> Type Language Type Simulator Viewer<br />

Analog<br />

Mixed signal<br />

• ADVance-MS<br />

VHDL<br />

VHDL-AMS<br />

Verilog<br />

Analog SP<strong>IC</strong>E<br />

EldoSP<strong>IC</strong>E<br />

HSP<strong>IC</strong>E<br />

Verilog-A<br />

RF SP<strong>IC</strong>E<br />

EldoSP<strong>IC</strong>E<br />

Verilog-A<br />

ADVance MS Xelga<br />

Eldo<br />

HSP<strong>IC</strong>E<br />

EldoRF Xelga<br />

Xelga<br />

DA-<strong>IC</strong> View<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-5


Using the HSP<strong>IC</strong>E Simulator Running <strong>Design</strong> Simulation<br />

For more information, see “Configuration and Compatibility” in Chapter 1 of the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Release Notes.<br />

Using the HSP<strong>IC</strong>E Simulator<br />

You can use DA-<strong>IC</strong> to set up and run analog simulations with HSP<strong>IC</strong>E. The<br />

simulation command file created by DA-<strong>IC</strong> is formatted for HSP<strong>IC</strong>E, and the<br />

simulation palette changes to provide only simulation options available for<br />

HSP<strong>IC</strong>E.<br />

For information on setting up DA-<strong>IC</strong> to use HSP<strong>IC</strong>E, see “Setting Up the Default<br />

Simulator and Viewer” section in this chapter.<br />

8-6<br />

The following HSP<strong>IC</strong>E-specific setups are available:<br />

• HSP<strong>IC</strong>E Options<br />

• HSP<strong>IC</strong>E<br />

• Measurements<br />

• Adding an HSP<strong>IC</strong>E Voltage Source<br />

For more information on the HSP<strong>IC</strong>E-specific setups, see your HSP<strong>IC</strong>E reference<br />

manual.<br />

HSP<strong>IC</strong>E Options<br />

Open the Setup HSP<strong>IC</strong>E Options dialog box with the Options menu item on the<br />

Simulation palette menu. All the fields are labelled according to the HSP<strong>IC</strong>E<br />

option name, so you can find descriptions of these fields in your HSP<strong>IC</strong>E manual.<br />

DA-<strong>IC</strong> uses the information in this dialog box to construct HSP<strong>IC</strong>E .OPTIONS<br />

statements.<br />

The HSP<strong>IC</strong>E Options dialog box is separated into the following functionality<br />

groups:<br />

• General IO: General control options for input and output.<br />

• General Oth: Miscellaneous control options.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Using the HSP<strong>IC</strong>E Simulator<br />

• Model Analysis: Options for model analysis of MOSFETs and other<br />

devices.<br />

• DC Accuracy: Accuracy options for DC operating point and sweep<br />

analysis.<br />

• DC Converge: Convergence options for DC operating point and sweep<br />

analysis.<br />

• DC Other: Matrix, IO, and Pole Zero options for DC operating point and<br />

sweep analysis.<br />

• TR/AC Accuracy: Accuracy options for transient and AC small signal<br />

analysis.<br />

• TR/AC Timestep: Timestep options for transient and AC small signal<br />

analysis.<br />

• TR/AC Other: Algorithm, speed, and IO options for transient and AC<br />

small signal analysis.<br />

HSP<strong>IC</strong>E<br />

The Setup > HSP<strong>IC</strong>E palette menu item on the Simulation palette menu opens an<br />

additional menu with the following three menu items:<br />

• Alter: Opens the Edit .ALTER Blocks dialog box in which you construct<br />

HSP<strong>IC</strong>E .ALTER statements. You can add, edit, or remove existing<br />

.ALTER statements. Each .ALTER statement can contain one or more<br />

parameter redefinitions. You must have already declared parameters with<br />

Setup Parameters.<br />

• <strong>IC</strong>: Opens the Set <strong>IC</strong> Nodeset prompt bar in which you set transient initial<br />

conditions (node voltages) for the selected nets in the design. DA-<strong>IC</strong> uses<br />

this to build the .<strong>IC</strong> statement in the simulation command file.<br />

• Nodeset: Opens the Set <strong>IC</strong> Nodeset prompt bar in which you initialize<br />

specified node voltages for a DC operating point analysis. This helps the<br />

DCOP convergence, and is applied to selected nets. DA-<strong>IC</strong> uses this to<br />

build the .NODESET command in the simulation command file.<br />

For more information on the HSP<strong>IC</strong>E-specific setups, see your HSP<strong>IC</strong>E reference<br />

manual.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-7


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-8<br />

Measurements<br />

Open the Define Measure dialog box with Measurements > Define menu item on<br />

the Simulation palette menu. DA-<strong>IC</strong> uses the information in this dialog box to<br />

construct HSP<strong>IC</strong>E .MEASURE statements.<br />

For more information on the HSP<strong>IC</strong>E-specific setups, see your HSP<strong>IC</strong>E reference<br />

manual.<br />

Adding an HSP<strong>IC</strong>E Voltage Source<br />

Open the Add Voltage Source dialog box, shown in Figure 8-1, with the Add<br />

Source menu item from the Schematic Edit palette menu. A generic voltage<br />

source is then added in the format expected by HSP<strong>IC</strong>E. This is reflected in the<br />

netlist when you click on either the Netlist or Run buttons on the Simulation<br />

palette menu.<br />

Figure 8-1. Add Source Dialog Box<br />

Running a Simulation<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) allows you to set up and run a design simulation<br />

from the schematic_sim_palette in simulation mode. Setting up and running a<br />

simulation from DA-<strong>IC</strong> creates the following files and stores them under a<br />

viewpoint for the active design:<br />

Command file — .cir file used for input to the simulator. Created from the setups<br />

specified from the schematic_sim_palette.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

Netlist file — .spi file created by the default netlister invoked from the<br />

schematic_sim_palette. Used for input to the simulator.<br />

Output file — .chi file created by the simulator. Contains detailed log of<br />

simulation activity.<br />

Viewer input file — .wdb, .cou, .dou, or jwdb file types created by the simulator<br />

for the waveform viewer to read. The type of file created depends on the simulator<br />

and viewer selected. For more information on viewer input files, see “Viewing<br />

Waveforms” in this chapter.<br />

Changing the Default Editor for Simulation Mode<br />

The default editor for simulation mode is Notepad. You can change the default<br />

editor by setting the MGC_SIM_EDITOR environment variable.<br />

For example: setenv MGC_SIM_EDITOR ‘nedit -nowrap’ sets the editor to the<br />

Nedit editor with no wordwrap.<br />

Setting up a Default Viewpoint<br />

Simulation mode uses a viewpoint to tell the netlister and simulator how to<br />

interpret a design. For more information, see <strong>Design</strong> Viewpoint Editor-<strong>IC</strong> User’s<br />

and Reference <strong>Manual</strong>.<br />

All files associated with the simulation are stored under the specified viewpoint.<br />

You can set up a default viewpoint to use. If no viewpoint is specified, an EldoNet<br />

viewpoint is created when simulation mode is invoked. Use the following steps to<br />

specify a default viewpoint:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-9


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-10<br />

1. From the Session scope, select Setup > Simulation Configuration.... . The<br />

Setup Simulation Configuration dialog box displays:<br />

2. If necessary, enter a name for the viewpoint. Use this option to specify a<br />

name that is different from the default.<br />

3. Select a Viewpoint Type from the list box or click Avail.Viewpoints to<br />

select from existing viewpoints. The following default viewpoint types are<br />

available:<br />

• <strong>IC</strong>_Station_SDL_Flat — Viewpoint set up for doing Schematic<br />

Driven Layout (SDL) at the device level.<br />

• <strong>IC</strong>_Station_SDL_Heir — Viewpoint set up for doing SDL at the cell<br />

level.<br />

• Spice_Netlister — Viewpoint set up for doing SP<strong>IC</strong>E netlisting with<br />

EldoNet. This is the default.<br />

• Verilog_Netlister — Viewpoint set up for doing Verilog netlisting<br />

with EldoNet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

4. Click OK. The selected file is set to the default.<br />

Invoking Simulation Mode<br />

Note<br />

You must close all symbol windows and “make” all function<br />

blocks before entering simulation mode.<br />

Use the following steps to invoke simulation mode in DA-<strong>IC</strong>:<br />

1. Capture your schematic design.<br />

2. Check and save the schematic design. The design should be error free.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-11


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-12<br />

3. Click Simulation on the schematic_edit palette. The Entering Simulation<br />

Mode dialog box displays:<br />

4. If necessary, enter a name for the viewpoint in the Config Name field. By<br />

default, all open schematic sheets are saved and closed, and the active sheet<br />

is reopened in a design viewpoint for simulation. If no viewpoint for the<br />

active sheet exists, DA-<strong>IC</strong> creates a new SP<strong>IC</strong>E Netlister viewpoint named<br />

“eldonet.” For more information, see “Setting up a Default Viewpoint” in<br />

this chapter.<br />

5. If necessary, select the viewpoint Configuration Type. For information on<br />

the configuration types, see the “Setting up a Default Viewpoint” section in<br />

this chapter. SP<strong>IC</strong>E_Netlister is used by default.<br />

6. If necessary, click on a Cleanup Viewpoint option. Options include:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

• Yes — Deletes any unused design references or invalid<br />

backannotations from the active viewpoint. For example:<br />

backannotations attached to objects deleted from the design.<br />

When changes occur, the configuration is automatically saved.<br />

• No — Leaves all references and backannotaions intact.<br />

7. If necessary, click on a Save Modifications and Close Sheets option.<br />

Options include:<br />

• All Sheets — Closes all sheets before entering simulation mode.<br />

Checks and saves any sheets with unsaved edits before closing them.<br />

Notepad and Report windows are left open and unaffected. Default<br />

setting.<br />

• Sheets in <strong>Design</strong> Only — Closes only sheets related to the active<br />

design before entering simulation mode. Checks and saves sheets with<br />

unsaved edits before closing them. Unrelated open sheets and Notepad<br />

and Report windows are left open and unaffected. May take several<br />

minutes to determine which sheets are part of the design. The time<br />

varies depending on schematic size.<br />

8. If necessary, click on Re-initialize viewpoint. Options include:<br />

• Yes — Deletes all backannotations and simulation settings from the<br />

viewpoint associated with the active schematic.<br />

• No — Keeps all backannotations and simulations settings with the<br />

active viewpoint.<br />

9. If necessary, click Do not show this dialog box again. to prevent this<br />

dialog box from displaying the next time you enter simulation mode. You<br />

can re-enable the dialog box from (Session) Setup > Simulation<br />

Configuration...<br />

10. Click OK. The active schematic displays in simulation mode.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-13


Running a Simulation Running <strong>Design</strong> Simulation<br />

Setting Up the Default Simulator and Viewer<br />

DA-<strong>IC</strong> must be set up to use a specific viewer and simulator before running a<br />

simulation. You must be in simulation mode to access the following setup options:<br />

8-14<br />

1. From the schematic_sim_palette, select Session > Simulator/Viewer. The<br />

Setup Simulator/Viewer dialog box displays.<br />

2. Click the appropriate button to specify a simulator. Options include:<br />

• Eldo — Selects the Eldo simulator<br />

• ADMS — Selects the ADVance-MS simulator in command-line mode.<br />

• ADMS Interactive — Selects the ADVance-MS simulator in graphical<br />

user interface mode.<br />

• HSP<strong>IC</strong>E — Selects the HSP<strong>IC</strong>E analog simulator.<br />

• Other — Allows you specify a SP<strong>IC</strong>E-compatible simulator. Click<br />

Advanced... to specify the simulator invoke commands.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

3. Click the appropriate button to specify a viewer. For more information, see<br />

“Viewing Waveforms” in this chapter. Options include:<br />

i<br />

• DA-<strong>IC</strong> View — Selects <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View.<br />

• Xelga — Selects Xelga<br />

• EZwave — Selects EZwave.<br />

If you select the ADMS simulator with the Xelga waveform viewer, you<br />

are prompted to select JWDB or COU/DOU viewer output files. For<br />

more information, see the “About Xelga” section in this chapter.<br />

4. Click Advanced... to set up or change the location of the simulator/viewer<br />

application and its input/output commands. If the simulator/viewer<br />

applications are properly installed and setup, you should not need to change<br />

these settings. For more information, see<br />

$$sim_setup_simulator_viewer_advance() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

Reference <strong>Manual</strong>.<br />

5. If necessary, enter a different working directory and click OK. The working<br />

directory specifies the location of the simulator invoke/setup files.<br />

To use ADVanceMS, you must set the working directory to the location of<br />

the adms.ini file. For more information on the adms.ini file, see<br />

Chapter 11, “System Initialization/Project File” in the ADVanceMS User’s<br />

<strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-15


Running a Simulation Running <strong>Design</strong> Simulation<br />

Setting Ground/Node 0<br />

Use the following steps to specify which nets are ground:<br />

8-16<br />

1. From the schematic_sim_palette, select Session > Netlister. The Setup<br />

SP<strong>IC</strong>E Netlister dialog box displays.<br />

2. Enter the names of the nets to use as ground in the data field labeled Node 0<br />

and click OK. Use commas to separate multiple net names.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

Setting up the Simulation Environment<br />

Use the following steps to set up the simulation environment for the current<br />

session:<br />

1. From the schematic_sim_palette, select Session > Environment. The<br />

Setup Simulation Environment dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-17


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-18<br />

2. If necessary, enter a new working directory for the simulation under<br />

Simulation Depository. By default, the working directory is the viewpoint<br />

directory for the active design.<br />

To use ADVanceMS, you must set the working directory to the location of<br />

the adms.ini file. For more information on the adms.ini file, see Chapter 11,<br />

“System Initialization/Project File” in the ADVanceMS User’s <strong>Manual</strong>.<br />

3. If necessary, enter new filenames for the following input and output<br />

simulation files.<br />

o Command File<br />

o Netlist File<br />

o Output File<br />

By default, the file names reflect the active design name. For more<br />

information on the input and output files, see “Running a Simulation” in<br />

this chapter.<br />

4. If necessary, change the Auto-Run Simulation Setup setting. This setting<br />

determines what functions are automatically performed with the<br />

“Run simulator” option on the simulation palette. The following options<br />

are available:<br />

o Run Simulation Only — Runs a simulation only.<br />

o Run Simulation and Display Waveforms — Runs a simulation and<br />

displays the resultant waveforms.<br />

o Generate Netlist and Run Simulation — Generates a netlist and runs<br />

a simulation. Default setting.<br />

o Generate Netlist, Run Simulation, and Display Waveforms —<br />

Generates a netlist, runs a simulation, and displays waveforms.<br />

5. If necessary, toggle the Auto-close Windows setting. This setting allows<br />

you to set up the netlist/simulation terminal windows to close automatically<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

upon completion of a netlist/simulation operation. The option is enabled<br />

when the box displays black. The following settings are available:<br />

o enabled — Netlist/Simulation terminal windows close automatically<br />

upon completion of the netlisting/simulation operations.<br />

o disabled — You must press Enter to close netlist/simulation terminal<br />

windows upon completion of the netlisting/simulation operations.<br />

Default setting.<br />

6. If necessary, enable the Automatically run check design option to<br />

configure the “Run Simulator” button on the schematic_sim _palette to<br />

automatically check the design before running a simulation. For more<br />

information, see the “Checking the <strong>Design</strong> Before Simulation” section of<br />

this chapter.<br />

7. If necessary, change the Annotated Property Text settings. Allows you to<br />

specify a font and font height for backannotation text displayed on the<br />

schematic. Options include:<br />

8. Font — Click the Menu button to display a list of the available fonts to<br />

select from.<br />

9. Height — Enter a height measurement in inches.<br />

10. If necessary, change the DCOP Display to change the decimal places to<br />

display.<br />

11. Under Info Block Display Options, select which simulation settings display<br />

on the on the active schematic. For more information, see “Displaying the<br />

Current Simulation Setups” in this chapter.<br />

12. Click OK. The environment settings are written to a sim_setup file under<br />

the active viewpoint.<br />

For more information on setting up the simulation environment, see<br />

$sim_setup_sim_environ() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-19


Running a Simulation Running <strong>Design</strong> Simulation<br />

Creating Default Simulation Environment Setups<br />

Use the following step to save the simulation settings from the current session as<br />

the default environment setups. Once default setups are created, all new<br />

configurations assume the specified default settings when they are created.<br />

8-20<br />

1. From the schematic_sim_palette, select Session > Save Setup As Default.<br />

The current simulation environment settings are saved to a sim_setup file under<br />

“$HOME/mgc/”. The “mgc” directory is created if none exists. For information<br />

on the simulation environment settings, see “Setting up the Simulation<br />

Environment” in this chapter.<br />

Restoring Simulation Environment Setups<br />

Use the following steps to restore the simulation environment setups from a<br />

previously created sim_setup file:<br />

1. From the schematic_sim_palette, select Session > Restore Setup From.<br />

The Restore Setup From dialog box displays.<br />

2. Enter the path to the setup file to restore setups from and click OK. You are<br />

prompted to verify you want to overwrite the current sim_setup file.<br />

3. Click Yes to overwrite the file. The simulation environment assumes the<br />

setups in the file.<br />

For more information on the environment settings, see “Setting up the Simulation<br />

Environment” in this chapter.<br />

Copying a Simulation Configuration<br />

A Copy Configuration option that allows you to save the simulation session setups<br />

from the active design to a new file. The simulation configuration includes all the<br />

setups from the current session that are not design-specific. The new file is used to<br />

easily set up another simulation session. Use the following steps to create a copy<br />

of a simulation configuration:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

1. Open the appropriate design and invoke simulation mode.<br />

2. Select Session > Copy Configuration on the palette menu. The Copy<br />

Configuration dialog box displays.<br />

3. Enter a name for the new configuration.<br />

4. Click OK.<br />

A viewpoint is created with the specified name under the active component. The<br />

copy of the simulation configuration is saved under the new viewpoint.<br />

Backannotations from the source configuration are renamed with the new<br />

configuration name.<br />

Setting up Standard Simulator Options<br />

Use the following steps to specify the setup options for the simulator:<br />

1. From the schematic_sim_palette, select Options > Standard. The Setup<br />

Options dialog box displays.<br />

2. Click one of the categories at the top of the dialog box to display a<br />

description of the associated setups on the next line.<br />

Click Category<br />

Description<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-21


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-22<br />

The dialog box changes to display the setup options associated with each<br />

category.<br />

3. Enter the appropriate settings in data fields or click the button next to the<br />

option to enable it. The button displays black when enabled. Click on the<br />

button that names each option to display detailed information about the<br />

option.<br />

4. Click OK. The setups from all categories are inserted in the simulation<br />

command file.<br />

For more information, see “.OPTION” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Adding Forces<br />

A Forces option on the Simulation Palette allows you to use forced voltage or<br />

current sources for design simulation. To add a force to a design:<br />

1. Select the two nets you want to insert the force on.<br />

Detailed<br />

information<br />

displays<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

The first net selected is considered the Signal net. This is the name of the<br />

pin to insert the force on. The second net is considered the Reference Net.<br />

This is the name of the net or pin to apply the source to.<br />

2. From the schematic_sim_palette, select Forces > Add Force.<br />

The Add Force dialog box displays:<br />

3. Enter the Name of the force. You cannot use a force name that already<br />

exists.<br />

4. Verify the Signal and Reference Net names.<br />

5. Select whether the force type is Voltage or Current.<br />

6. Select the Source Type and enter the associated values:<br />

Source Type Values<br />

DC Magnitude<br />

AC DC offset, magnitude, phase (in degrees)<br />

EXP<br />

(Exponential)<br />

Initial value, target value, rise delay, rise<br />

time, fall delay, and fall time<br />

Pattern High value, low value, delay, rise time, fall<br />

time, pattern duration, pattern, and repeat<br />

Pulse Initial value, pulsed value, delay(s), rise<br />

time, fall, time, pulse width, and period<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-23


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-24<br />

7. Select OK. A force property is added to the signal net.<br />

Editing Forces<br />

To edit an existing force:<br />

1. Select the net attached to the force.<br />

2. From the schematic_sim_palette, select Forces > Edit/Delete Forces.<br />

The Edit/Delete Forces dialog box displays.<br />

3. Select the force you want to edit and click Edit Selected.<br />

The Add Force dialog box opens and contains the information for the<br />

selected force.<br />

4. Edit the information and click OK.<br />

Deleting Forces<br />

Source Type Values<br />

SFFM (Single<br />

Frequency FM)<br />

SIN<br />

(Sinusoidal)<br />

PWL (Piece<br />

Wise Linear)<br />

To delete one or more forces on a selected net:<br />

Offset, peak amplitude, carrier frequency,<br />

modulation index, and signal frequency<br />

Offset, peak amplitude, frequency, time<br />

delay or phase delay, and damping factor<br />

Time/value pairs<br />

1. Select the net attached to the force you want to delete.<br />

2. From the schematic_sim_palette, select Forces > Edit/Delete Forces. The<br />

Edit/Delete Forces dialog box displays.<br />

To delete one force, select the force and then click Delete Selected.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

To delete all the forces for a design, click Delete All.<br />

3. Click OK. The specified forces are deleted.<br />

Reporting Forces<br />

To review a report on the forces for the current schematic:<br />

1. From the schematic_sim_palette, select Forces > Report Force.<br />

A report window displays the name, signal, reference net, source type, force<br />

type, and parameters for all forces on the active schematic.<br />

Checking Forces<br />

To check the forces on an open schematic:<br />

1. From the schematic_sim_palette, select Forces > Check Force.<br />

The following checks are performed for all the forces on the active<br />

schematic:<br />

o Checks if any of the forces have the same names.<br />

o Checks if the signal and reference of a force exist.<br />

o Checks if any signal has more than one voltage force source associated.<br />

o Checks if all forces have both a backannotation property and a force file<br />

entry. If this check fails, the force is eliminated automatically from the<br />

database and a warning message displays.<br />

A report window displays errors or warnings if any checks fail.<br />

Adding Safe Operating Areas<br />

An option on the Simulation Palette allows you to add Safe Operating Area (SOA)<br />

limits to models, schematic-based instances, and expressions in simulation mode.<br />

These SOAs are used during simulation when enabled as Simulation Analysis<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-25


Running a Simulation Running <strong>Design</strong> Simulation<br />

options. For information on enabling SOAs for simulation, refer to sections<br />

“Specifying SOAs and Netlisting for DCOP, DC, and AC Analyses” and “SOAs<br />

and Netlisting for Transient Analysis.”<br />

To add an SOA to a design:<br />

8-26<br />

1. From the schematic_sim_palette, click Safe Operating Area > Add SOA.<br />

The Setup Safe Operating Area dialog box displays.<br />

2. Click Instance, Model, or Extract to specify the type of design to which<br />

the SOA is to be added:<br />

o Instance — Specifies to add the SOA to a specific schematics-based<br />

instance that is one of the supported device types: resistor, capacitor,<br />

inductor, diode, voltage source, current source, bjt, and mosfet. Default.<br />

Choosing this option automatically displays the Instance Name and<br />

Instance Parameter fields.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

o Model — Specifies to add the SOA to a specific model. The model<br />

must be a model of one of the supported device types. All devices with<br />

this model name are checked for meeting the SOA. Choosing this<br />

option automatically displays the Model Name and Model Parameter<br />

fields.<br />

o Extract — An extract. Choosing this option automatically displays the<br />

Extract Name field. For more information on extracts, refer to the<br />

.EXTRACT simulation command in the EldoUser’s <strong>Manual</strong>.<br />

3. Specify the Instance Name and Instance Parameter, Model Name and<br />

Model Parameter, or Extract Name fields, based on the type of design<br />

you selected in the previous step:<br />

• ... Name — Specifies the specific instance, model, or extract name to<br />

add the SOA to.<br />

• ... Parameter — Specifies the parameter name. Supported parameters<br />

vary by device type and are defined in Table 8-2.<br />

• Select Extract and Define Extract — Selects a previously entered<br />

extract command or defines a new one.<br />

Table 8-2. Parameters Supported by Type<br />

Device Type Supported<br />

Parameter<br />

Parameter Definition<br />

Resistor I current through the device<br />

Capacitor<br />

Inductor<br />

POW power dissipated by the device<br />

Diode VDIP voltage difference across the terminals<br />

Voltage Source<br />

Current Source<br />

VPOS, VNEG voltage on positive/negative pin<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-27


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-28<br />

Table 8-2. Parameters Supported by Type<br />

Device Type Supported<br />

Parameter<br />

Parameter Definition<br />

BJT IB <strong>IC</strong> IE IS current into the terminals<br />

VBE, VBC, VBS,<br />

VCE, VCS, VES<br />

voltage across the terminals<br />

VC, VS, VB, VE voltage in the terminals<br />

POW power dissipated by the device<br />

MOS/JFET IG, IS, ID, IB current into the terminals<br />

VGD, VGS, VGB,<br />

VBS, VBD, VDS<br />

voltage across the terminals<br />

VS, VD, VG, VB voltage in the terminals<br />

POW power dissipated by the device<br />

4. Enter a text string in the SOA Label field to name the SOA limit being<br />

created.<br />

5. Enter limits for the SOA into the Minimum and Maximum fields:<br />

• Minimum — Specifies the minimum value for the Safe Operating<br />

Area. A value of “*” means unspecified, and no check in this direction<br />

is performed. Default: “*”.<br />

• Maximum — Specifies the maximum value for the Safe Operating<br />

Area. A value of “*” means unspecified, and no check in this direction<br />

is performed. Default: “*”.<br />

6. Click Add SOA Definition to add the SOA definition to the sim_setup file<br />

and to the SOA list area of the dialog box.<br />

The SOA List Area contains the SOA definitions. This field is modified by<br />

the following:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

Deleting SOAs<br />

• Edit — Populates the Add SOA window. You can change the<br />

settings and add them back to the list.<br />

• Delete — Deletes the selected SOA in the list.<br />

• Delete All — Deletes all of the SOAs.<br />

To delete SOAs, do the following:<br />

1. From the schematic_sim_palette, click Safe Operating Area > Delete<br />

SOA.<br />

The Delete SOA dialog box displays listing all currently defined SOAs for<br />

the active design.<br />

2. Select the SOA you want to delete and click OK.<br />

You can also delete an SOA from within the Setup Safe Operating Area dialog<br />

box using Delete and Delete All; this dialog box is accessed by clicking Safe<br />

Operating Area > Add SOA.<br />

Reporting SOAs<br />

To report SOAs, do the following:<br />

1. From the schematic_sim_palette, click Safe Operating Area > Report<br />

SOA.<br />

A report window displays the SOA Label, Name, Type, Parameters, and<br />

Minimum and Maximum Limits. For a description of these fields, refer to<br />

section “Adding Safe Operating Areas” on page 8-25”.<br />

Showing SOA Results<br />

SOA results automatically display following simulation if violations occur. To<br />

explicitly show SOA results after netlisting and simulation, do the following:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-29


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-30<br />

1. From the schematic_sim_palette, click Safe Operating Area > Show<br />

Results.<br />

Specifying SOAs and Netlisting for DCOP, DC, and AC Analyses<br />

To enable or disable defined SOAs and specify simulator behavior for SOA<br />

violations, do the following:<br />

1. From the schematic_sim_palette, click Setup > Analyses to display the<br />

Setup Simulation Analysis dialog box.<br />

2. Click any of the DCOP, DC, or AC analysis options and click the<br />

corresponding Setup button to display the associated Setup... dialog box.<br />

3. Click the desired SOA options for the analysis option:<br />

• Safe Operating Area Check — Specifies the SOAs checked during<br />

simulation.<br />

• SOA Autostop — Specifies whether simulation stops when an SOA<br />

limitation is violated. If SOA limits are violated, a report window<br />

displays after simulation and the instances that violate the limitation are<br />

highlighted.<br />

• Add Checks — Displays the Setup Safe Operating Area dialog box<br />

allowing you to define new SOAs and delete or modify existing SOAs.<br />

SOAs and Netlisting for Transient Analysis<br />

To enable or disable defined SOAs, restrict when SOA checks occur, and specify<br />

simulator behavior for SOA violations, use the following:<br />

1. From the schematic_sim_palette, click Setup > Analyses to display the<br />

Setup Simulation Analysis dialog box.<br />

2. Click Transient and click the corresponding Setup button to display the<br />

Setup Transient Analysis dialog box.<br />

3. Click the desired SOA options for the analysis option:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

• Safe Operating Area Check — Specifies the SOAs checked during<br />

simulation.<br />

• Setup — Displays the Setup Check SOA dialog box in which you can<br />

specify the following:<br />

o SOA Autostop — Specifies whether simulation stops when an SOA<br />

limitation is violated. If SOA limits are violated, a report window<br />

displays after simulation and the instances that violate the limitation<br />

are highlighted.<br />

o Start Time* — Specifies a start time to restrict the SOA check for<br />

Transient analysis.<br />

o Stop Time* — Specifies a stop time to restrict the SOA check for<br />

Transient analysis.<br />

• Add Checks — Displays the Setup Safe Operating Area dialog box<br />

allowing you to define new SOAs and delete or modify existing SOAs.<br />

Specifying a Circuit Temperature<br />

Use the following steps to specify a circuit temperature for the simulation:<br />

1. From the schematic_sim_palette, select Lib/Temp/Inc > Temperature.<br />

The Set Temperature dialog box displays.<br />

2. Enter a temperature in Celsius and click OK. A .TEMP command is<br />

inserted in the simulation command file.<br />

To disable the .TEMP command, delete the value from the Temperature field and<br />

click OK. The .TEMP command is deleted from the simulation command file.<br />

For more information, see “.TEMP” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-31


Running a Simulation Running <strong>Design</strong> Simulation<br />

Setting up Parameter Variables for Models<br />

Use the following steps to assign values to parameter variables used in models:<br />

8-32<br />

1. From the schematic_sim_palette, select Parameters. The Setup Parameters<br />

dialog box displays.<br />

2. In the Name data field, enter the name of the parameter variable.<br />

3. In the Value data field, enter a value for the named parameter variable.<br />

4. Click OK. One .PARAM command is inserted into the simulation<br />

command file for each name/value pair specified.<br />

For more information, see “.PARAM” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Reordering, Enabling/Disabling, Editing, and Deleting<br />

Sweep Analyses<br />

A sweep analysis sets up the simulator to run several simulations varying a<br />

specified parameter or device. Use the following steps to reorder, enable/disable,<br />

edit, or delete the existing sweeps set up for a simulation:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

1. From the schematic_sim_palette, select Multiple Runs > Sweep. The Edit<br />

Sweep List dialog box displays a list of sweeps set up for simulating the<br />

current design. The sweeps are listed in the order they are performed.<br />

2. Select a sweep from the list and click the following options as necessary:<br />

o Up — Moves the selected sweep up one position in the list.<br />

o Down — Moves the selected sweep down one position in the list.<br />

o Top — Moves the selected sweep to the top position in the list.<br />

o Bottom — Moves the selected sweep to the bottom position in the list.<br />

o Delete — Deletes the selected sweep from the list.<br />

o Delete All — Deletes all the sweeps from the list.<br />

o Enable/Disable — Enables or disables the selected sweep. Depending<br />

on the current status of the sweep, this option toggles the setting.<br />

o Enable All — Enables all the sweeps in the sweep list.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-33


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-34<br />

o Disable All — Disables all the sweeps in the sweep list.<br />

o Edit Sweep — Displays the setups for the selected sweep and allows<br />

you to edit them. For more information on setting up sweeps, see<br />

“Setting up a Sweep Analysis” in this chapter.<br />

o Add Sweep — See “Setting up a Sweep Analysis” in this chapter.<br />

3. Click OK. The .STEP command(s) are changed/deleted in the simulation<br />

command .cir file as specified.<br />

For more information, see “.STEP” in Chapter 10 the Eldo User’s <strong>Manual</strong>.<br />

Setting up a Sweep Analysis<br />

A sweep analysis sets up the simulator to run several simulations varying a<br />

parameter or device. Use the following steps to set up sweeps for simulation:<br />

1. Select an instance. From the schematic_sim_palette, select Multiple Runs<br />

> Sweep. The Sweep List Editor dialog box displays. Options include:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

• Edit Sweep — Allows you to change the settings of an existing sweep.<br />

• Add Sweep — Adds a new sweep. Refer to “Add a Sweep Analysis.”<br />

• Edit Corner Table — Allows you to view a list of runs from the sweep<br />

analyses performed on the active design. From the list, you can enable<br />

or disable specified runs for the next sweep analysis. Refer to “Setup a<br />

Corner Case Sweep Analysis.”<br />

• Multi_Run Mode — Allows you to select either a Corner Case<br />

analysis or Nested Sweep analyis for the next simulation run.<br />

2. Adjust the order or enable/disable a sweep with the buttons on the right.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-35


Running a Simulation Running <strong>Design</strong> Simulation<br />

Add a Sweep Analysis<br />

8-36<br />

1. To add a sweep analysis, click Add Sweep on the Sweep List Editor Dialog<br />

box. The Setup Sweep dialog box displays.<br />

2. Next to Sweep:, click the parameter to sweep. The dialog box changes<br />

depending on which parameter you choose. Options include:<br />

o Temp — Selects temperature sweep.<br />

o MOSL — Selects MOS length sweep. Enter the name of the MOS<br />

component to sweep.<br />

o MOSW — Selects MOS width sweep. Enter the name of the MOS<br />

component to sweep.<br />

o Dipole — Selects dipole sweep. Enter the R,C, or L dipole component<br />

to sweep.<br />

o Param — Selects globally-defined parameter sweep. Enter the name of<br />

a global parameter to sweep.<br />

o Instance — Selects an instance from the current design to sweep. Enter<br />

the instance name and the parameter on the instance to sweep. The<br />

instance must be primitive. This sweep does not support sweeping<br />

parameter models from .MODEL statements.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

o Library — Selects a SP<strong>IC</strong>E library sweep. Enter a path to the library<br />

and space-separated model variants within the library to sweep. At least<br />

one variant must be entered.<br />

3. Click on a Sweep Type to enable it. Options include:<br />

o Lin./Num Pts — Appends a LIN parameter to the .STEP command to<br />

specify a linear sweep with a number of points. Enter an initial sweep<br />

value, final value, and the number of points to sweep in between.<br />

o Lin./Incr.— Appends an INCR parameter to the .STEP command to<br />

specify a linear sweep by increment. Enter an initial sweep value, final<br />

value, and a number to increment each sweep by. Select the Use<br />

adaptive increments option to automatically adapt the value of the<br />

increment based on the convergence of each sweep point. For more<br />

information, see the “Automated Sweeps” section of the Eldo RF<br />

User’s <strong>Manual</strong>.<br />

o Logarithmic — Appends a DEC parameter to the .STEP command to<br />

specify a logarithmic sweep. Enter an initial sweep value, final value,<br />

and a number of sweeps per decade.<br />

o Octave — Appends an OCT parameter to the .STEP command to<br />

specify an octive sweep. Enter an initial sweep value, final value, and a<br />

number of points per octive.<br />

o List — Appends a LIST parameter to the .STEP command to specify a<br />

list of individual values for the sweep. Enter a list of space-separated<br />

discrete values to sweep.<br />

4. Click OK. Inserts a .STEP command in the simulation command .cir file.<br />

For more information, see “.STEP” in Chapter 10 the Eldo User’s <strong>Manual</strong>.<br />

Setup a Corner Case Sweep Analysis<br />

1. To set up corner case analysis for simulation, Select Edit Corner Table on<br />

the Sweep List Editor dialog box. The Corner Case Editor displays. The<br />

Corner Case Editor contains a list of each individual sweep run in a list box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-37


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-38<br />

The nested sweep values are listed in the order in which the sweeps are<br />

defined. A sweep which has been disabled in the sweep editor, removes the<br />

individual sweep runs from the corner case editor.<br />

2. Change the Enable Status of the individual sweep runs listed as desired.<br />

Options include:<br />

o Enable All — Enables all sweep values for the next simulation run.<br />

o Disable All — Disables all sweep values for the next simulation run.<br />

o Enable Selected — Enables selected sweep values for the next<br />

simulation run. Multiple selections are allowed.<br />

o Disable Selected — Disables selected sweep values for the next<br />

simulation run. Multiple selections are allowed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

o Enable Corners — Enables all corner case values for the next<br />

simulation run. This operation does not effect the enabled/disabled<br />

status of non-corner sweeps.<br />

o Disable Corners — Disables all corner case values for the next<br />

simulation run. This operation does not effect the enabled/disabled<br />

status of non-corner sweeps.<br />

o Invert State — Inverts the current state of all listed sweep values.<br />

3. After adjusting the corner cases, select Close to execute the Corner Case<br />

Editor.<br />

Setting up a Monte Carlo Analysis<br />

The Monte Carlo (MC) analysis gathers statistical data derived from estimates of<br />

the random variability of all circuit components. MC analysis is used in<br />

conjunction with AC, DC and transient analyses. For more information, see<br />

Chapter 15, “Monte Carlo Analysis” in the Eldo User’s <strong>Manual</strong>.<br />

Use the following steps to set up a Monte Carlo analysis:<br />

1. Select a plot type and analysis type with the Probes/Plot > Plot Selected<br />

option on the schematic_sim_palette menu. For more information, see<br />

“Plotting Simulation Results” in this chapter.<br />

2. If necessary, select reference objects for standard deviation.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-39


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-40<br />

3. Select Multiple Runs > Monte Carlo from the schematic_sim_palette.<br />

The Setup Monte Carlo Analysis dialog box displays.<br />

Figure 8-2. Setup Monte Carlo Analysis Dialog Box.<br />

4. If desired, Click Enable MC to enable the Monte Carlo analysis.<br />

5. Enter the Number of Runs. The default is 10.<br />

6. If desired, enter the number for Individual Run. This field can be blank.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Running a Simulation<br />

7. Select the Results to Save. Options include:<br />

o Min, Max, Nominal — Saves the simulation runs with nominal,<br />

maximum, and minimum results to the output file.<br />

o All except Nominal — Saves the results of each simulation run except<br />

the nominal to the output file.<br />

o All — Saves the results of all simulation runs to the output file.<br />

8. Select the Variances Enabled. Options include:<br />

o Both Dev and Lot — Variances followed as specified in the Random<br />

Variable Definitions section.<br />

o Dev Only — Only Dev variances specified in the Random Variable<br />

Definitions section are used. Lot variances are ignored.<br />

o Lot Only — Only Lot variances specified in the Random Variable<br />

Definitions section are used. Dev variances are ignored.<br />

9. If desired, select to Perform sweep with every MC run.<br />

10. If desired, select Random number changes independent of previous runs.<br />

11. If desired, enter a number for the Seed for random number generator.<br />

12. Select the Reference Objects. Voltage sources and nets are automatically<br />

obtained from the currenlty selected instances and nets on the schematic<br />

each time the Setup Monte Carlo Analysis dialog box is invoked. If desired,<br />

these may be modified in the dialog box. Options include:<br />

o None — Specifies to use no reference object a reference for the worst<br />

case analysis.<br />

o Voltage Sources — Specifies to use a voltage source as the reference<br />

object. You must specify or verify the Voltage Sources and the Current<br />

Type.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-41


Running a Simulation Running <strong>Design</strong> Simulation<br />

8-42<br />

o Nets — Specifies to use a net as the reference object. You must specify<br />

or verify the Net and the Voltage Type.<br />

13. Select the Random Variable Definitions. Options include:<br />

o Add — Adds a definition to the random variable definitions. This<br />

option displays the Add Random Variable Definition dialog box.<br />

Options include:<br />

• Variable Type — Specifies Parameter or Temperature.<br />

• Parameter Name — Specifies the parameter name. Enter or verify<br />

an existing design parameter. If you are using the Parameter option,<br />

you can select a design parameter from the scrollable list.<br />

• Parameter Value — Specifies the parameter value.<br />

• Dev Variance — Specifies the individual variance value. Uniform<br />

distribution is the default. Select if you want to use the Gaussian<br />

distribution. Also, select if you want the DevX Variance to vary with<br />

each instance usage in every run.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

• Lot Variance — Specifies the lot variance value. Uniform<br />

distribution is the default. Select if you want to use the Gaussian<br />

distribution.<br />

o Edit — Allows you to edit a selected random variable definition.<br />

o Enable/Disable — Enables or disables a selected random variable<br />

definition.<br />

o Enable All — Enables all of the listed random variable definitions.<br />

o Disable All — Disables all of the listed random variable definitions.<br />

o Delete — Deletes a selected random variable definition.<br />

o Delete All — Deletes all of the listed random variable definitions.<br />

14. Click OK. A .MC command is inserted in the simulation command file.<br />

For more information, see “.MC” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Setting up Simulation Analyses<br />

From the Analyses option on the schematic_sim_palette, you can set up the<br />

following analyses:<br />

Setting up a DCOP Analysis<br />

Setting up a DC Analysis<br />

Setting up an AC Analysis<br />

Setting up an AC Noise Analysis<br />

Setting up a Transient Analysis<br />

Setting up a Transient Noise Analysis<br />

Setting up a Steady State Analysis<br />

Setting up a Modulated Steady State Analysis<br />

Setting up an Oscillator Steady State Analysis<br />

Setting up a Steady State Noise Analysis<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-43


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-44<br />

Setting up a Steady State AC Analysis<br />

Setting up a DCOP Analysis<br />

The DCOP analysis determines the operating point of a circuit with inductors<br />

shorted and capacitors open.<br />

Use the following steps to set up a DC operating point analysis:<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the button next to DCOP to enable DCOP analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

3. Click the Setup... button adjacent to DCOP. The Setup DCOP dialog box<br />

displays.<br />

4. Enter the following information:<br />

o Transient Time(s) — Specifies, in seconds, the transient times for the<br />

analysis.<br />

o Save DC File — Specifies a nodeset file to save simulation results to<br />

for use by subsequent simulations. Inserts a .SAVE command in the<br />

simulator command file. If no file is specified, the results are discarded.<br />

5. Click OK. A .OP command is inserted in the simulation command file.<br />

For more information, see “.OP” and “.SAVE” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

Setting up a DC Analysis<br />

A DC analysis determines the operating point of a circuit with all capacitors open<br />

and inductors shorted. A DC analysis determines the stable condition of an analog<br />

circuit prior to transient or AC analysis. For more information, see “.DC” in<br />

Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Use the following steps to set up a DC analysis:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-45


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-46<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the button next to DC to enable DC analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

3. Click the Setup... button adjacent to DC. The Setup DC Analysis dialog<br />

box displays.<br />

4. Next to Sweep:, click the parameter to sweep. The dialog box changes,<br />

depending on which parameter you choose. Options include:<br />

o Source — Selects a voltage source sweep. Enter the pathname of the<br />

voltage source and the start, stop, and step voltages to sweep. Inserts a<br />

SNAM argument for the .DC command.<br />

o Temp — Selects temperature sweep. Enter the start, stop, and step<br />

temperatures in Celsius. Inserts a TEMP argument for the .DC<br />

command.<br />

o MOSL — Selects MOS length sweep. Enter the pathname of the MOS<br />

component and start, stop, and step lengths for the sweep.<br />

o MOSW — Selects MOS width sweep. Enter the pathname of the MOS<br />

component and start, stop, and step widths to sweep.<br />

o None — No sweep is performed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-47


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-48<br />

5. Enter the name of the Nodeset file. The Nodeset file is generated by the<br />

DCOP analysis. For more information, see “Setting up a DCOP Analysis”<br />

in this chapter.<br />

6. Verify the Save All DCOP Voltages option is selected. Saves all DCOP<br />

voltages in the results file. When disabled, DCOP voltages are discarded<br />

after the simulation run.<br />

7. Click OK. A .DC and .OP command are inserted in the simulation<br />

command file.<br />

For more information, see “.DC” and “.OP” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

Setting up an AC Analysis<br />

The AC analysis performs a small signal analysis that computes the magnitude<br />

and phase of output variables as a function of frequency.<br />

Use the following steps to set up an AC analysis:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the button next to AC to enable AC analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-49


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-50<br />

3. Click the Setup... button adjacent to AC. The Setup AC Analysis dialog<br />

box displays.<br />

4. Enter the following information:<br />

o Start Freq: — Starting frequency in hertz.<br />

o Stop Freq: — Stopping frequency in hertz.<br />

5. If necessary, click the box next to Initial Conds (-U<strong>IC</strong>) to toggle the<br />

setting.<br />

Yes — Adds the U<strong>IC</strong> parameter to the .AC command in the simulation<br />

command file. No DC analysis is performed before the AC analysis. Instead<br />

the file specified in the Use File Name: field is used as the starting point for<br />

the analysis. For more information, see “.AC” in Chapter 10 of the Eldo<br />

User’s <strong>Manual</strong>.<br />

No — A DC analysis is performed before the AC analysis, and the results<br />

are used for the starting point for the AC analysis.<br />

6. Select a Sweep: type. Options include: Decade, Octive, and Linear.<br />

7. Depending on the Sweep: type selected, enter a number value for points per<br />

decade, points per octave, or number of points for linear.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

8. Enter a filename for the Use File Name: field if the Initial Conds (-U<strong>IC</strong>) is<br />

set to Yes. The file comes from the results of a transient simulation. For<br />

more information, see “.AC” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

9. Select <strong>IC</strong> or Nodeset for the file entered in Step 8. This setting determines<br />

how voltages in the file are interpreted as follows:<br />

o <strong>IC</strong> — voltages in the file are interpreted as .<strong>IC</strong> values. For more<br />

information, see “.<strong>IC</strong>” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

o Nodeset — voltages are interpreted as .NODESET values. For more<br />

information, see “.NODESET” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

10. Select a Pole Zero Analysis: type. Adds a .PZ statement to the simulator<br />

command file. For more information, see “.PZ” in Chapter 10 of the Eldo<br />

User’s <strong>Manual</strong>.<br />

11. Click OK. The Setup Simulation Analysis dialog box displays.<br />

12. Click OK. A .AC command is inserted in the simulation command file.<br />

For more information, see “.AC” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Setting up an AC Noise Analysis<br />

The AC Noise analysis analyzes the noise generated by specified AC components<br />

and must be used in conjunction with an AC analysis. For more information, see<br />

“.NOISE” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Use the following steps to set up an AC noise analysis:<br />

1. Set up an AC analysis. For more information, see “Setting up an AC<br />

Analysis” in this chapter.<br />

2. Select a net for the input source and a net for the output source on the active<br />

design.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-51


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-52<br />

3. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

4. Click the button next to Noise to enable AC noise analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

5. Click the Setup... button adjacent to Noise. The Setup Noise Analysis<br />

dialog box displays.<br />

6. The names of the nets selected on the active design should display in the<br />

Output Noise Net 1: and Input Noise Source: fields. If not, enter the<br />

appropriate net names.<br />

7. To specify a second net for comparison, enter a net name for Output Noise<br />

Net 2:. If no net is specified, ground is assumed.<br />

8. Enter the nth frequency points to store for print-out. The contribution of<br />

every noise generator in the circuit is printed at every nth frequency point.<br />

If no value is entered, nothing is printed.<br />

9. Select the noise to plot from the following options:<br />

o Linear Input Noise — Determines if the .PLOT statement inputs noise<br />

for the analysis. When enabled, a .PLOT statement is added to the<br />

simulator command file with the INOISE parameter.<br />

o Linear Output Noise — Specifies whether the .PLOT statement<br />

outputs noise when performing a noise analysis. When enabled, a<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-53


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-54<br />

.PLOT statement is added to the simulator command file with the<br />

ONOISE parameter.<br />

o db Input Noise — Determines if input noise in dB is printed for the<br />

analysis. When enabled, a .PLOT statement is added to the simulator<br />

command file with the NOISE and DB (INOISE) parameters.<br />

o db Output Noise — Determines if output noise in dB is printed for the<br />

analysis. When enabled, a .PLOT statement is added to the simulator<br />

command file with the NOISE and DB (ONOISE) parameters.<br />

10. Click OK. The Setup Simulation Analysis dialog box displays.<br />

11. Click OK. A .NOISE command is inserted in the simulation command file.<br />

For more information, see “.NOISE” and “.PLOT” in Chapter 10 of the Eldo<br />

User’s <strong>Manual</strong>.<br />

Setting up a Transient Analysis<br />

The Transient Analysis calculates the transient output variables for as a function<br />

of time over a user-specified interval. The output variables are those contained<br />

within the .PRINT and .PLOT commands in the simulator command file. For<br />

more information, see “.TRAN” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Use the following steps to set up a transient analysis:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the button next to the Transient option to enable transient analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-55


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-56<br />

3. Click the Setup... button adjacent to Transient. The Setup Transient<br />

Analysis dialog box displays.<br />

4. Enter values in the following fields:<br />

o Stop Time — Value in seconds for the analysis duration. Inserts a<br />

TSTOP parameter with the .TRAN command.<br />

o Max Time Step — Value in seconds for the maximum internal<br />

timestep. Inserts a HMAX parameter with the .TRAN command.<br />

o Output Start Time — Value in seconds for the time at which the<br />

simulator will begin producing data points during a transient<br />

simulation.<br />

5. If necessary, click the button next to Initial Conds (-U<strong>IC</strong>) to toggle the<br />

setting.<br />

Yes — sets the simulation to start with initial conditions. Inserts a -U<strong>IC</strong><br />

keyword with the .TRAN command in the simulation command file.<br />

No — Eldo solves for the quiescent operating point before the transient<br />

analysis is performed.<br />

6. Enter a file name in the Use File Name: field if the Initial Conds (-U<strong>IC</strong>) is<br />

set to Yes. The file provides the starting point values for the transient<br />

analysis.<br />

For more information, see “.TRAN” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

1. Select <strong>IC</strong> or Nodeset for the file entered in Step 6. Determines how<br />

voltages in the file are interpreted as follows:<br />

o <strong>IC</strong> — voltages in the file are interpreted as .<strong>IC</strong> values. For more<br />

information, see “.<strong>IC</strong>” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

o Nodeset — voltages are interpreted as .NODESET values. For more<br />

information, see “.NODESET” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

2. Click OK. A .TRAN command with the specified parameters is inserted in<br />

the simulation command file.<br />

For more information, see “.TRAN” and “.AC” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

Setting up a Transient Noise Analysis<br />

A transient analysis must be enabled in order to perform this analysis. Use the<br />

following steps to set up a transient noise analysis:<br />

1. Set up a transient analysis. For more information, see “Setting up a<br />

Transient Analysis” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-57


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-58<br />

2. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

3. Click the button next to the Noise Tran option to enable transient noise<br />

analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

4. Click the Setup... button adjacent to Noise Tran. The Setup Noise Transient<br />

Analysis dialog box displays.<br />

5. Enter values in the following fields:<br />

o Lower — Value in hertz that specifies the low end frequency used for<br />

the analysis. Adds an FMIN parameter to the simulator command file.<br />

o Upper — Value in hertz that specifies the top end frequency used for<br />

the analysis. Adds an FMAX parameter to the simulator command file.<br />

o Number of Simulations — Number of simulations to perform with the<br />

specified noise sources. Adds an NBRUN parameter to the simulator<br />

command file.<br />

o Number of Sinusoidal Sources — Number of Sinusoidal noise<br />

sources. Adds an NBF parameter to the simulator command file.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-59


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-60<br />

o Noise Source Amplification Factor — Noise source amplification<br />

factor. Only affects internal noise computations. Adds an AMP<br />

parameter to the simulator command file.<br />

o Random Number Generator Initialization — Initial value for the<br />

random number generator. Must be an integer between 0 and 2 31 -1.<br />

Adds a SEED Parameter to the simulator command file.<br />

6. Next to MOS Noise Source, select one of the following options to add a<br />

value to the NOMOD parameter in the simulator command file. Options<br />

include:<br />

o All — Use thermal and flicker noise<br />

o Only Flicker — Use flicker noise<br />

o Only Thermal — Use thermal noise<br />

7. If necessary, click Nominal Simulation to toggle the setting. When<br />

enabled, only one noisy simulation is performed. Adds a NONOM<br />

parameter to the simulator command file.<br />

8. If necessary, click Single Runs to toggle the setting. When enabled,<br />

performs one run for the root mean square (RMS) noise results. When<br />

disabled, forces the algorithm to perform several runs sequentially to<br />

compute the RMS noise results. Adds an MRUN parameter to the simulator<br />

command file.<br />

9. Click OK. Inserts a .NOISETRAN command with the specified parameters<br />

in the simulation command file.<br />

For more information, see “.NOISETRAN” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

Setting up a Steady State Analysis<br />

A Steady State analysis determines the steady state of an RF circuit submitted to<br />

periodic or quasi-periodic, large signal excitation. For more information, see<br />

“Steady-State Analysis” in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Use the following steps to set up a steady state analysis:<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the button next to the SST option to enable steady state analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-61


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-62<br />

3. Click the Setup... button adjacent to SST. The Setup Steady State Analysis<br />

dialog box displays.<br />

4. Enter any number of fundamental frequencies with corresponding<br />

harmonics to use for simulation; additional Fund Frequency and #<br />

Harmonics fields progressively display.<br />

5. If necessary, click Yes next to Save SST? to toggle the setting.<br />

o Yes — saves the simulation results and inserts a .SAVE command into<br />

the simulation command file. For more information,<br />

see “Save and Restart Capabilities” in Chapter 2 of the Eldo RF User’s<br />

<strong>Manual</strong>.<br />

o No — discards them<br />

6. If necessary, click Yes next to Restart SST? to toggle the setting.<br />

o Yes — restarts the analysis.<br />

o No — uses previously saved results as an initial estimation for analysis.<br />

7. Click OK. A .SST command is inserted into the simulation command file.<br />

For more information, see “Steady-State Analysis” in Chapter 2 of the Eldo RF<br />

User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Setting up a Modulated Steady State Analysis<br />

The Modulated Steady State (SST) analysis is used to analyze modulated RF<br />

signals. The analysis allows the combination of Steady State analysis with respect<br />

to the high-frequency carrier and Transient analysis with respect to the modulated<br />

signal. For more information, see “Modulated Steady-State Analysis Types” in<br />

Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

Use the following steps to set up a modulated steady state analysis from the<br />

palette menu in simulation mode:<br />

1. Set up a steady state analysis. See “Setting up a Steady State Analysis.”<br />

2. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-63


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-64<br />

3. Click the button next to the MODSST option to enable modulated steady<br />

state analysis.<br />

4. Click the Setup... button adjacent to MODSST. The Setup Steady State<br />

Analysis dialog box displays.<br />

5. Enter the following information:<br />

o Printer Output Increment — Enter the number in seconds to calibrate<br />

the printed/plotted simulation results.<br />

o Mod SST duration — Enter the number in seconds for the duration of<br />

the modulated steady state analysis.<br />

6. Click OK. Inserts .MODSST_TPRINT and .MODSST_TSTOP commands<br />

in the simulator command file.<br />

For more information, see “Modulated Steady-State Analysis” in Chapter 2 of the<br />

Eldo RF User’s <strong>Manual</strong>.<br />

Setting up an Oscillator Steady State Analysis<br />

The Oscillator Steady State analysis determines the spectral content and<br />

waveform of all autonomous circuit nodes at steady state. A good estimation of<br />

the oscillation frequency must be provided to guarantee rapid convergence. For<br />

more information, see Steady-State Analysis for Autonomous Circuits” in<br />

Chapter 1 of the Eldo User’s <strong>Manual</strong>.<br />

Use the following steps to set up an oscillator steady state analysis from the<br />

palette menu in simulation mode:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

1. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

2. Click the SST Oscil option to enable steady state oscillator analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-65


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-66<br />

3. Click the Setup... button adjacent to SST Oscil. The Oscillator Steady State<br />

Analysis dialog box displays.<br />

4. Enter the following information:<br />

o Initial guess — Estimated oscillation fundamental frequency in hertz.<br />

The value should be positive; otherwise, the analysis issues a warning,<br />

and takes the absolute value. When this parameter is not specified, the<br />

simulator automatically performs a Local Stability analysis and uses the<br />

estimation of the oscillation frequency if the circuit is stable; otherwise,<br />

the simulation stops.<br />

o Harmonics — Number of harmonics of the oscillation frequency.<br />

Value should be a non-negative integer or the analysis aborts with an<br />

error message.<br />

o Label — Name for the results. If a label is specified, then<br />

“LABEL”= result is used in the output file instead of<br />

=results. For more information, see “.EXTRACT” in<br />

Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

5. Click OK. Inserts .SST OSCIL and .FUND_OSC commands in the<br />

simulation command file.<br />

For more information, see “Steady-State Analysis of Autonomous Circuits” in<br />

Chapter 2 of the Eldo User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Setting up a Steady State Noise Analysis<br />

The Steady State Noise analysis determines the output noise spectrum for<br />

amplifiers and mixers and phase noise for oscillators.<br />

Use the following steps to set up a steady state noise analysis from the palette<br />

menu in simulation mode:<br />

1. Set up a steady state analysis. For more information, see “Setting up a<br />

Steady State Analysis” in this chapter.<br />

2. Select up to two nets on the active schematic to calculate noise from.<br />

3. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-67


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-68<br />

4. Click the button next to SSTNoise to enable steady state noise analysis.<br />

5. Click the Setup... button adjacent to SSTNOISE. The Setup Steady State<br />

Noise Analysis dialog box displays.<br />

6. Next to Frequency:, select a frequency. The dialog box changes,<br />

depending on which option you choose. Options include:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

o By Range — Selects frequency sweep between two frequency values.<br />

a. Enter a start and stop frequency in hertz.<br />

b. Select logarithmic, octive, or linear sweep type.<br />

c. Enter a number of points per decade/octive/linear frequency to<br />

plot/print.<br />

o By Points — Enter specific list of frequency points to sweep.<br />

7. Enter a Reference Harmonic:. Inserts a .SSTNOISE command with a<br />

HARM parameter in the simulator command file. For more information,<br />

see “Steady-State Noise Analysis” in Chapter 2 of the Eldo RF User’s<br />

<strong>Manual</strong>.<br />

8. Enter Output Net 1: — Enter the output voltage node (net name) to<br />

compute noise from. Select the net on the active schematic, before invoking<br />

the Setup Steady State Noise Analysis dialog box, to enter the name<br />

automatically.<br />

9. Enter Output Net 2: — Enter an optional second output voltage node (net<br />

name) to compute noise from. Select the net on the active schematic, before<br />

invoking the Setup Steady State Noise Analysis dialog box, to enter the<br />

name automatically.<br />

10. Select the type of noise to plot. Click the button below the option to enable<br />

it. Options include:<br />

o Linear Output Noise — plots linear noise.<br />

o db Output Noise — plots linear noise in dBc/Hz.<br />

o Linear Phase Noise — plots phase noise.<br />

o db Phase Noise — plots phase noise in dBc/Hz.<br />

o Linear Am Noise — plots amplitude noise.<br />

o db Am Noise — plots amplitude noise in dBc/Hz.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-69


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-70<br />

For more information, see “Steady State Noise Analysis Results” in the<br />

Eldo RF User’s <strong>Manual</strong>.<br />

11. Enter device names for the NOISE() parameter of the .PLOT and .PROBE<br />

commands in the following fields:<br />

o Device Noise 1: Specifies a device to contribute to the total output<br />

noise spectrum.<br />

o Device Noise 2: Specifies a second device to contribute to the total<br />

output noise spectrum.<br />

o Device Noise 3: Specifies a third device to contribute to the total output<br />

noise spectrum.<br />

For more information, see “Steady State Noise Analysis Results” in<br />

Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

12. Click OK. Depending on the specified options, .SSTNOISE, .PLOT, and<br />

.PROBE commands are inserted in the simulator command file.<br />

For more information , see “Steady State Noise Analysis” in Chapter 2 of the Eldo<br />

RF User’s <strong>Manual</strong>.<br />

Setting up a Steady State AC Analysis<br />

The Steady State AC analysis is used for circuits that exhibit frequency<br />

conversion, such as mixers. It can also be used for simplified multi-tone Steady<br />

State Analysis in cases where one signal is considered small relative to the others.<br />

For more information, see “Steady-State AC Analysis (SSTAC)” in Chapter 1 of<br />

the Eldo RF User’s <strong>Manual</strong>.<br />

Use the following steps to set up a steady state AC analysis from the palette menu<br />

in simulation mode:<br />

1. Set up a steady state analysis. For more information, see “Setting up a<br />

Steady State Analysis” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. From the schematic_sim_palette, select Analyses. The Setup Simulation<br />

Analysis dialog box displays.<br />

3. Click the SSTAC option to enable steady state AC analysis.<br />

4. Click the Setup... button adjacent to SSTAC. The Setup Steady State AC<br />

Analysis dialog box displays.<br />

5. Next to Frequency:, select a frequency option. The dialog box changes,<br />

depending on which option you choose. Options include:<br />

o By Range — Selects frequency sweep between two frequency values.<br />

a. Enter a start and stop frequency in hertz.<br />

b. Select logarithmic, octive, or linear sweep type.<br />

c. Enter a number of points per decade/octive/linear frequency to<br />

plot/print.<br />

o By Points — Enter specific list of frequency points to sweep.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-71


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-72<br />

6. Next to Harmonics:, enter an optional value to add a HARM parameter to<br />

the .SSTAC command in the simulator command file. This string specifies<br />

both the HARM parameter and the intermodulation of the corresponding<br />

harmonic.<br />

7. Next to X Axis, select the X axis parameter to plot the analysis results<br />

against. If selected, appends an XAXIS parameter to the .SSTAC<br />

command. Options include:<br />

o None — Doesn’t generate an XAXIS parameter.<br />

o FreqIn — Plots the output against the input frequency.<br />

o FreqOut — Plots the output against the output frequency.<br />

o AbsFreqIn — Plots the output against the absolute input frequency.<br />

o AbsFreqOut — Plots the output against the absolute output frequency.<br />

8. If necessary, click the box next to Save SST? to toggle the setting.<br />

o Yes — Saves the simulation results and inserts a .SAVE command into<br />

the simulation command file. For more information, see<br />

“Save and Restart Capabilities” in Chapter 2 of the Eldo RF User’s<br />

<strong>Manual</strong>.<br />

o No — Discards the results after the simulation run.<br />

9. Click the box next to Restart SST? to toggle the setting.<br />

o Yes — Restarts the analysis.<br />

o No — Uses previously saved results as an initial estimation for<br />

analysis.<br />

10. Click OK. A .SSTAC command is inserted into the simulation command<br />

file.<br />

For more information, see “Steady-State AC Analysis” and<br />

“Save and Restart Capabilities” in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Setting Model Libraries for Simulation<br />

Use the following steps to specify model libraries and associated model variants<br />

in the simulation command file. You can specify up to 12 libraries from DA-<strong>IC</strong>.<br />

1. From the schematic_sim_palette, select Lib/Temp/Inc > Libraries. The<br />

Set Library Paths dialog box displays.<br />

2. Enter a pathname for each component library used in the schematic design<br />

in the Library Path data fields. To add more than six library entries, click<br />

Entries 7-12.<br />

3. Click the Lib Variants button related to each library path and select a<br />

library variant to use with each library. The name of the library variant is<br />

required for 2002.1 release of ADVance MS and greater. For compatibility<br />

with older versions of ADVance MS that do not require the library variant,<br />

enable the schematic_sim_palette > Options > Standard > Misc ><br />

NOINCLIB option.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-73


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-74<br />

4. Click the Library Search Paths button to specify those directories in<br />

which you want the simulator to search for model libraries. The Set Library<br />

Search Paths dialog box displays.<br />

5. For each directory you want the simulator to search, enter the pathname to<br />

it in the Library Search Path field and click Set Library Path. The<br />

directory pathname you specified is displayed in the Libraries Search Paths<br />

list area; you can delete an entry by clicking the Delete Entry button.<br />

6. Click OK to close the Set Library Search Paths dialog. A .OPTION<br />

statement for each entry in this dialog box is inserted into the commands<br />

file with the following format:<br />

.OPTION SEARCH=path<br />

7. Click OK to close the Set Library Paths dialog box. A .LIB command for<br />

each entry is inserted into the simulation command file.<br />

For more information, see “.LIB” and .OPTION in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Selecting/Editing Registered Models<br />

Several models may be registered to a symbol in DA-<strong>IC</strong>. For more information on<br />

model registration, see Chapter 5, "Managing/Registering Models".<br />

The following sections provide instructions for displaying, selecting, and editing<br />

registered models from simulation mode in DA-<strong>IC</strong>:<br />

• Displaying/Selecting Registered Models<br />

• Displaying/Editing the Source for a Selected Model<br />

• Displaying/Editing the Source for Registered Models<br />

• Crossprobing the Schematic Viewpoint<br />

• Selecting a Model for All Copies of a Specified Instance<br />

• Closing the Model Selector<br />

• Model Selector Limitation<br />

Displaying/Selecting Registered Models<br />

Use the following steps to display the registered models associated with instances<br />

on the active schematic:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-75


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-76<br />

1. From simulation mode, click Model Selector on the palette menu. The<br />

Model Selector dialog box displays to prompt for what design level to<br />

initially load models for.<br />

2. Select the desired level and click OK. To save time when loading large<br />

designs, load only the top level. Regardless of how many levels you choose<br />

to load initially, you can load and display more models as you click on<br />

instances in the tree.<br />

Note<br />

If you initially load only a portion of the design into the Model<br />

Selector, a tree view of the loaded level displays, and the List tab<br />

is disabled. Loading only the top level allows the Model Selector<br />

to invoke as quickly as possible, and loading the entire design<br />

results in the longest invoke time<br />

The Model Selector displays the design instances in a hierarchical “tree”<br />

format as shown in Figure 8-3. Each instance is preceded by a colored icon<br />

that indicates the language-type of the model it currently uses as described<br />

in Table 8-3.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Language<br />

Component name<br />

Instance name<br />

Language-type icon indicator<br />

Top level of the active schematic<br />

Registration name<br />

Figure 8-3. Model Selector Tree Display<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-77


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-78<br />

Table 8-3. Model Selector Model-Type Icons<br />

This icon Represents this model type<br />

Yellow oval Schematic<br />

Gold rectangle SP<strong>IC</strong>E/EldoSP<strong>IC</strong>E<br />

Blue oval Verilog<br />

Blue rectangle VHDL<br />

Cyan rectangle VHDL-AMS<br />

Gray rectangle Nullblock<br />

Cyan oval Verilog-A<br />

Gold plus sign Mixed models<br />

Skeleton HDL-FB, HDL-A, unrecognized,<br />

or faulty model language. May not<br />

netlist and simulate.<br />

3. Select an instance. The registered models available for use with the selected<br />

instance display in the rightmost (Model Browser) window.<br />

To display common models between instances, select the desired<br />

instances. When multiple instances are selected, the Model Browser<br />

displays only those models common to the selected instances.<br />

To select multiple instances within the same hierarchy, select the parent<br />

item and then select Edit > Select in Tree. This selects all of the instances<br />

in the hierarchal tree, excluding the parent items, and displays the common<br />

registered models. Select a model from the Model Browser window. The<br />

new model is applied to all of the selected instances.<br />

To display the schematic instances in a list format, click the List tab.<br />

The leftmost window displays the unique design components in a list<br />

without showing the relationships that exist between them. Select an<br />

instance to display the associated registered models in the Model Browser.<br />

Select a model from the Model Browser window. The new model is applied<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

to all copies of the selected instance, design-wide. The instance displays<br />

updated with the selected model.<br />

Note<br />

4. If you need to undo a change, select Edit > Undo Model Change:<br />

From the tree view, this undoes each change applied to a selected instance<br />

or instances.<br />

From the list view, this undoes all changes for the affected instance.<br />

5. Repeat steps 3 and 4 until all the instances are updated with the desired<br />

models.<br />

6. Click Apply. The new model(s) are applied to the corresponding<br />

instance(s) and the View property is backannotated to the instance(s). The<br />

View property is used by EldoNet to select the correct model to output in<br />

the netlist. For more information, see the “View” property in Chapter 3,<br />

“Using <strong>Design</strong> Properties,” in the EldoNet User’s and Reference <strong>Manual</strong>.<br />

or<br />

To display updated instances after applying a schematic<br />

model, you must apply the model selection, save, and reload the<br />

design. For more information, see the “Model Selector Limitation”<br />

section in this chapter.<br />

Click Reset to cancel the model selections and revert to the last applied<br />

models.<br />

Displaying/Editing the Source for a Selected Model<br />

Depending on the selected instance, the Model Selector displays a subordinate<br />

schematic or the source code for the currently selected model as follows:<br />

1. Select an instance in the Model Selector. For more information, see the<br />

“Displaying/Selecting Registered Models” section in this chapter.<br />

2. Select Edit > Open Instance. If more than one instance is selected, this<br />

option is disabled.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-79


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-80<br />

If the selected instance is primitive, the source code for the currently<br />

selected model displays in the default text editor.<br />

If the selected instance is a nullblock, nothing displays. A nullblock-type<br />

instance has no model or schematic associated with it.<br />

If the selected instance has an underlying schematic, the underlying<br />

schematic displays in DA-<strong>IC</strong>.<br />

Note<br />

For information on setting up a text editor, see<br />

“Setting up a Language Model Editor” in Chapter 3, “Getting<br />

Started,” of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

3. Edit and save the schematic/model as necessary.<br />

Displaying/Editing the Source for Registered Models<br />

Registered models are valid models available for selection/use with a particular<br />

instance. The Model Selector allows you to edit the models registered to a selected<br />

instance as follows:<br />

1. Select an instance in the Model Selector. For more information, see the<br />

“Displaying/Selecting Registered Models” section in this chapter. The<br />

registered models associated with the instance display in the rightmost<br />

window (Model Browser).<br />

2. Double-click on a model displayed in the Model Browser.<br />

If the model is a language-type model, the source code for the currently<br />

selected model displays in the default text editor.<br />

If the model is a nullblock, nothing displays. A nullblock-type instance<br />

has no model or schematic associated with it.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

If the model is a schematic, the schematic displays in DA-<strong>IC</strong>.<br />

Note<br />

3. Edit, save, and close the schematic/model as necessary.<br />

Crossprobing the Schematic Viewpoint<br />

1. Click the Tree tab.<br />

For information on setting up a text editor, see<br />

“Setting up a Language Model Editor” in Chapter 3, “Getting<br />

Started,” of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

2. Select an instance in the tree. You can only crossprobe one instance at a<br />

time.<br />

3. Select Options > Cross Probe. The selected instance highlights on the<br />

active schematic. If the instance is on a lower-lever schematic, the lowerlevel<br />

schematic displays with the appropriate instance highlighted.<br />

Selecting a Model for All Copies of a Specified Instance<br />

Use the following steps to select a model for all copies of a specified instance in<br />

the active schematic viewpoint:<br />

1. Click the List tab in the Model Selector. Each unique instance on the active<br />

viewpoint displays in a list.<br />

2. Select the instance from the list. Models registered for the selected instance<br />

display in the Model Browser.<br />

3. Select the desired model from the Model Browser. The List window<br />

updates to display the selected model. At this point, the change is pending.<br />

4. Click Apply to change the model selection for all the copies of the selected<br />

instance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-81


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

Closing the Model Selector<br />

Select Model Selector > Quit Model Selector. Model Selector also closes if you<br />

exit DA-<strong>IC</strong>. If models are selected but not applied, you are prompted to save or<br />

discard changes. Options include:<br />

8-82<br />

• Cancel — Cancels the close model selector operation and returns you to the<br />

Model Selector.<br />

• Discard — Discards changes and closes the Model Selector.<br />

• Apply — Applies the changes and closes the Model Selector.<br />

Model Selector Limitation<br />

If you apply a schematic model to an instance, the Tree window does not<br />

automatically update associated subinstances. Use the following steps to update<br />

the Tree window after applying a schematic model:<br />

a. Once the model is selected, click Apply.<br />

b. Select File > Reload <strong>Design</strong>. A dialog box displays prompting you to<br />

save changes.<br />

c. Click Yes to save the design. The design is reloaded, and the Tree<br />

window displays the updated schematic models.<br />

Displaying/Editing the Default Registered Model<br />

Use the following steps to display/edit the default model registered to an instance:<br />

1. From simulation mode, select the instance to display/edit models for.<br />

2. Select File > Open Down. The default model displays. The VIEW property<br />

specifies the default model. For more information, see “View” in the<br />

EldoNet User’s and Reference <strong>Manual</strong>.<br />

If a symbol or schematic model is the default, the associated schematic or<br />

symbol displays in DA-<strong>IC</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

If a language model is the default, the contents of the model file displays<br />

in an editor. For information on setting up a specific text editor, see “Setting<br />

up a Language Model Editor” in Chapter 2.<br />

If no default model is specified for the instance, the schematic model<br />

displays. If no schematic model exists, you are prompted to create one.<br />

3. Edit and save as necessary.<br />

Including SP<strong>IC</strong>E Command Files<br />

Use the following steps to insert references to files containing SP<strong>IC</strong>E command<br />

statements in the simulation command file. Up to 12 references can be inserted<br />

from DA-<strong>IC</strong>.<br />

1. From the schematic_sim_palette, select Lib/Temp/Inc > Include Files.<br />

The Set Include Paths dialog box displays.<br />

2. Enter the pathname to each file needed for the simulation in the Include<br />

Path data fields. To enter more than six Include Path entries, click Entries<br />

7-12.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-83


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-84<br />

3. Click OK. Each specified Include Path is appended to .INCLUDE<br />

command and inserted into the simulation command file.<br />

For more information, see “.INCLUDE” in Chapter 10 of the Eldo User’s<br />

<strong>Manual</strong>.<br />

Entering Additional Simulator Commands<br />

Use the following steps to manually specify one or more commands to insert in<br />

the simulator command file. For a complete list of simulator commands, see<br />

“Simulator Commands” in the Eldo User’s <strong>Manual</strong>.<br />

1. From the schematic_sim_palette, select Options > Additional. The Set<br />

Additional Commands dialog box displays.<br />

2. Enter the desired commands into the text entry field.<br />

3. Click OK. The specified commands are saved to the simulation command<br />

file.<br />

Setting Probes<br />

Probes specify which signals are saved to the output file. Use the following steps<br />

to set up the probes for the simulation:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

1. From the schematic_sim_palette, select Probes/Plots > Probes. The Set<br />

Probes dialog box displays.<br />

2. Next to Probe, select the nodes to probe. Options include:<br />

o All — Probes all nodes in the active schematic.<br />

o Selected — Probes the nodes selected on the active schematic.<br />

o All Nets — Probes all nets in the active schematic.<br />

o All Insts — Probes all instances in the active schematic.<br />

3. Select a Probe type. Options include:<br />

o Current — Probes current.<br />

o Voltage — Probes voltage.<br />

4. Select an optional Analysis Type to output. One or more options can be<br />

selected. The box displays black when the option is enabled. Options<br />

include:<br />

o DC — DC analysis.<br />

o AC — AC analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-85


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-86<br />

o TRAN — Transient analysis.<br />

o TSST — Time domain steady state analysis. For more information, see<br />

“Display Commands” in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

o FSST — Frequency domain steady state analysis. For more<br />

information, see “Display Commands” in Chapter 2 of the Eldo RF<br />

User’s <strong>Manual</strong>.<br />

o SSTAC — Steady state AC analysis. For more information, see<br />

“Display Commands” in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

5. Select an AC Output type for the waveform output for noise analysis. Refer<br />

to the FOUR parameter of the “.PROBE” statement in the Eldo User’s<br />

<strong>Manual</strong>. Options include:<br />

o Default — Magnitude in dB.<br />

o Real-Imaginary — Both real part and imaginary.<br />

o DB-Phase — Phase.<br />

o All — All of the above.<br />

6. Click OK. ONE or more .PROBE statements are inserted in the simulator<br />

command file.<br />

For more information, see “.PROBE” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Plotting Simulation Results<br />

Use the following steps to specify the signals to plot for the waveform viewer:<br />

1. Select the nets, pins, and instances on the active schematic design to plot.<br />

To plot the difference between two components, select exactly two<br />

components.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. From the schematic_sim_palette, select Probes/Plot > Plot Selected. The<br />

Set Plots dialog box displays.<br />

3. Select the Plot Type:. Options include:<br />

o Current — Plots current for the selected components.<br />

o Voltage — Plots voltage for the selected components.<br />

o Power — Plots power for the selected components.<br />

o Signal — Plots the signal for the selected components.<br />

4. Next to Harmonic:, enter the harmonic to plot for the Modulated SST<br />

analysis.<br />

5. Select the Analysis Type: to plot. Options include:<br />

o DC — DC analysis.<br />

o AC — AC analysis.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-87


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-88<br />

o FOUR — Fourier analysis.<br />

o TRAN — Transient analysis.<br />

o TSST — Time domain steady state analysis. For more information, see<br />

“Display Commands” in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

o FSST — Frequency domain steady state analysis. For more<br />

information, see “Display Commands” in Chapter 2 of the Eldo RF<br />

User’s <strong>Manual</strong>.<br />

o SSTAC — Steady state AC analysis. For more information, see<br />

Display Commands in Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

o FMODSST — Time frequency domain steady state analysis. For more<br />

information, see “Modulated Steady-State Analysis Results” in Chapter<br />

2 of the Eldo RF User’s <strong>Manual</strong>.<br />

o TMODSST — Time domain steady state analysis. For more<br />

information, see “Modulated Steady-State Analysis Results” in Chapter<br />

2 of the Eldo RF User’s <strong>Manual</strong>.<br />

o FOURMODSST — Frequency domain steady state analysis. For more<br />

information, see “Modulated Steady-State Analysis Results” in<br />

Chapter 2 of the Eldo RF User’s <strong>Manual</strong>.<br />

6. Select the AC Outputs: to plot. Options include:<br />

o Default — Magnitude in dB.<br />

o Real — Real part.<br />

o Imaginary — Imaginary part.<br />

o Mag — Magnitude.<br />

o Mag-DB — Magnitude in dB.<br />

o Mag DBM — Magnitude in dB with reference to milliwatts.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

o Phase — Phase.<br />

o Real-Imaginary — Both real part and imaginary part.<br />

o DB-Phase — Phase in dB.<br />

o All — All of the above.<br />

7. Select the Display FFT Option: to plot. Options include:<br />

o Real — Real part.<br />

o Imaginary — Imaginary part.<br />

o Mag — Magnitude.<br />

o Mag-DB — Magnitude in dB.<br />

o Phase — Phase.<br />

8. Click OK. Depending on the number of components on the schematic and<br />

the options selected, one or more .PLOT statements are inserted in the<br />

simulator command file.<br />

If exactly two components are selected, the Setup Difference Plot dialog<br />

box displays allowing you to plot a waveform that represents the difference<br />

between the two components.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-89


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-90<br />

If necessary, Specify how to plot the difference between the selected<br />

objects. Options include:<br />

o Individually —Plots the signal from each object.<br />

o Object1, Object2 — Plots the voltage magnitude difference between<br />

the objects on a Smith chart.<br />

o VP(Object1) - VP(Object2) — Plots the voltage phase difference<br />

between the objects.<br />

o VDB(Object1) - VDB(Object2) — Plots the voltage magnitude<br />

difference between the objects.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Click OK. The corresponding .PLOT statement(s) are inserted into the<br />

simulation command file.<br />

For more information, see “.PLOT” in Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Deleting Plots and Probes<br />

Use the following steps to delete plot and probe commands from the simulation<br />

command file:<br />

1. From the schematic_sim_palette, select Probes/Plots > Delete Plot/Probe.<br />

The Delete Probes/Plots dialog box displays.<br />

2. Next to Delete which?, select either Probes, Plots, or Both to delete.<br />

3. Next to Delete all or only selected objects?, select one of the following<br />

options:<br />

o All — Depending on the option selected in step 2, deletes all probes<br />

and/or plots.<br />

o Selected — Depending on the option selected in step 2, deletes plot,<br />

probes, or both from the selected components on the active schematic.<br />

o From List — Depending on the option selected in step 2, displays a list<br />

of the plots and/or probes contained in the simulation command file to<br />

select from.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-91


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-92<br />

4. Click OK. The specified .PLOT and .PROBE commands are deleted from<br />

the simulation command file.<br />

For more information, see “.PLOT” and “.PROBE” in Chapter 10 of the Eldo<br />

User’s <strong>Manual</strong>.<br />

Displaying the Current Simulation Setups<br />

Use the following steps to display the simulation setups on the active schematic:<br />

1. From the schematic_sim_palette, select Session > Show Settings Block.A<br />

block displays attached to the cursor.<br />

2. Move the cursor to a location on the schematic to place the block and click<br />

the left mouse button. A block containing the simulation setups for the<br />

active schematic displays in the selected location.<br />

Simulation<br />

setups<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Note<br />

To update the simulation setups, choose Commands > Show<br />

from the schematic_sim_palette.<br />

Displaying the Simulation Command File<br />

Use the following step to display the simulation command file:<br />

From the schematic_sim_palette, select ASCII Files > View Commands. The<br />

simulation command file displays for viewing in a Notepad window.<br />

For information on using Notepad, see the Notepad for <strong>IC</strong> Flow User’s and<br />

Reference <strong>Manual</strong>.<br />

For information on setting up a specific text editor, see “Setting the Default Text<br />

Editor” in Chapter 2.<br />

Displaying the DCOP Values<br />

You must configure a DCOP analysis and perform a simulation before using this<br />

function. For more information, see “Setting up a DCOP Analysis” in this chapter.<br />

Use the following steps to display the DCOP values on the active viewpoint:<br />

1. From the schematic_sim_palette, click DCOP and select one of the<br />

following options from the submenu:<br />

o Show Voltages — Displays DCOP voltage values on respective pins in<br />

the active viewpoint.<br />

o Show Currents — Displays DCOP current values on respective pins in<br />

the active viewpoint. Includes DCOP current values for all subcircuit<br />

pins.<br />

o Show All — Displays both voltage and current DCOP values on<br />

repective pins on the active viewpoint.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-93


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-94<br />

If more than one simulation run is available, you are prompted to select a<br />

run to get DCOP results from.<br />

2. Click OK.<br />

The DCOP values display adjacent to corresponding nets/pins on the active<br />

viewpoint in red. Updated DCOP values do not display automatically, you<br />

must repeat this procedure to update DCOP values for subsequent<br />

simulations.<br />

Hiding the DCOP Values<br />

Use the following step to remove all DCOP values from the active viewpoint:<br />

Select DCOP > Hide All from the schematic_sim_palette. All DCOP values are<br />

deleted.<br />

Displaying Small Signal DCOP Parameters<br />

Small signal parameters are SP<strong>IC</strong>E model parameters generated during a DCOP<br />

analysis and backannotated onto leaf subcircuit pins. You can view the small<br />

signal parameter values for selected instances in a report window and/or the<br />

transcript window.<br />

Use the following steps to display the small signal parameters:<br />

1. Select the instances on the schematic to report associated small signal<br />

parameters for.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. Select DCOP >Report SS Params from the schematic_sim_palette menu.<br />

The Choose Small Signal Params Run dialog box displays.<br />

3. Select a small signal run from the list to get values from.<br />

4. If necessary, select one of the following options:<br />

o Report — Displays the small signal parameter values for selected<br />

instances in a report window. Default.<br />

o Transcript — Displays the small signal parameter values for selected<br />

instances in the DA-<strong>IC</strong> transcript window.<br />

o Both — Displays the small signal parameters for the selected instances<br />

in both a report window and the DA-<strong>IC</strong> transcript window.<br />

o Use values from this small signal file until next simulation run —<br />

Displays the values from the specified run for all subsequent small<br />

signal reports until another simulation is run.<br />

5. Click OK. The small signal parameters display as specified.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-95


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

Reporting DCOP Values for a Selected Object<br />

You must configure DCOP analysis and perform a simulation before you can<br />

report DCOP values. For more information, see “Setting up a DCOP Analysis”in<br />

this chapter.<br />

You can report DCOP values in the message area by moving the cursor over an<br />

object and using F9 as follows:<br />

8-96<br />

• F9 — Reports the DCOP voltage for the net nearest the cursor.<br />

• Ctrl-F9 — Reports the DCOP current for the primitive device, instance, or<br />

subcircuit nearest the cursor.<br />

• Press Shift-F9 — Reports the DCOP small signal parameters for the<br />

primitive device closest to the cursor. For more information, see the<br />

“Displaying Small Signal DCOP Parameters” section in this chapter.<br />

Using Estimated Pre-layout Parasitic Extractions<br />

In cases where parasitic values for certain nets are known or can be forecasted<br />

based on previous design experience, you can simulate your schematic-based<br />

analog design using estimated pre-layout parasitic values by using the four<br />

procedures in this section:<br />

Creating a Parasitic Element<br />

Creating a Symbol for the Parasitic Element<br />

Instantiating and Modifying Parasitic Elements<br />

Setting Up Simulation for Estimated Parasitics<br />

When you have completed them, you are ready to netlist and re-simulate your<br />

design.<br />

Creating a Parasitic Element<br />

Use the following steps to create a parasitic element schematic in DA-<strong>IC</strong>:<br />

1. Click Schematic from the palette and enter the name of the schematic sheet<br />

on which to create a parasitic element; click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. Create a parasitic element schematic, similar to the example figure shown,<br />

by doing the following:<br />

a. Click Library > Device Lib > Resistor > Ideal on the palette and place<br />

the resistor on the sheet. You can also use a resistor from the MGC<br />

<strong>Design</strong> Kit.<br />

For information on the MGC_<strong>IC</strong>_DEV<strong>IC</strong>E_LIB library, refer to the<br />

section “Libraries” in Appendix D of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s<br />

<strong>Manual</strong>. For more information on design kits, refer to your foundry's<br />

website.<br />

b. Select Edit > Modify from the menu. The Modify Properties dialog<br />

box displays. Select the resistance property, either RESISTANCE or R,<br />

and click OK. The Modify Property dialog box displays. Enter RES in<br />

the Value field, click Expression in the Type field, and click OK.<br />

Specifying expression enables these properties to inherit the values<br />

from the symbol associated with the parasitic element schematic. For<br />

information on modifying properties, refer to section “Using<br />

Properties” in Chapter 7 of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

c. Click Library > Device Lib > Capacitor > Ideal on the palette and<br />

place the capacitor on the sheet. You can also use a capacitor from the<br />

MGC <strong>Design</strong> Kit.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-97


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-98<br />

d. Select Edit > Modify from the menu. The Modify Properties dialog<br />

box displays listing all of the properties on the selected capacitor. Select<br />

the capacitance property, either CAPACITOR or C, and click OK. The<br />

Modify Property dialog box displays. Enter CAP in the Value field, click<br />

Expression in the Type field, and click OK.<br />

e. Click Back > Library > Generic Lib > Ground and place the ground<br />

on the sheet. You can also use a ground from the MGC <strong>Design</strong> Kit.<br />

f. Click Port > Portin and place the instance on the sheet. You can also<br />

use a port from the MGC <strong>Design</strong> Kit.<br />

g. Position your cursor over the NET property value on the portin and<br />

press Shift-F; enter IN into the New Value field of the Change Property<br />

Value prompt bar; click OK.<br />

h. Click Port > Portout and place the instance on the sheet.<br />

i. Position your cursor over the NET property value on the portout and<br />

press Shift-F; enter OUT into the New Value field of the Change<br />

Property Value prompt bar; click OK.<br />

j. Click Back > Edit > Wire on the palette and use the left-mouse button<br />

to add wires connecting the instances on the sheet similar to that shown<br />

in the example.<br />

k. Click Unselect All on the palette.<br />

l. Select Add > Frame from the menu to add an IF Frame. The Construct<br />

Frame prompt bar displays.<br />

i. Specify the frame area by pressing the left-mouse button and<br />

drawing a rectangle that encompasses all of the parasitic devices on<br />

the schematic except the ports; release the mouse. The Add Frame<br />

dialog box displays.<br />

ii. Click IF to specify the frame type.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

iii. Enter SIMULATION into the Variable field, enter 1 into the Value<br />

field, and click OK.<br />

m. Click Unselect All on the palette.<br />

n. Select Add > Parameter from the menu. The Set Parameter dialog box<br />

displays. Enter SIMULATION into the Name field, enter 1 into the Value<br />

field, and click OK.<br />

Adding this parameter allows the sheet to be checked without<br />

generating any errors or warnings.<br />

For information on IF frames, refer to section “Creating IF Frames” in<br />

Chapter 3 of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

3. Select File > Check Schematic. A report window displays. Correct any<br />

errors and re-check until all errors are removed.<br />

4. Select File > Save Sheet<br />

Creating a Symbol for the Parasitic Element<br />

Use the following steps to create a symbol for the parasitic element schematic<br />

from the schematic:<br />

1. Select Miscellaneous > Generate Symbol from the menu. The Generate<br />

Symbol dialog box displays. See Figure 8-4.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-99


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-100<br />

Figure 8-4. Generate Symbol Dialog Box<br />

2. Enter a name into the Component Name field and, (optionally) a symbol<br />

name in the Symbol Name field.<br />

3. Click the Edit Symbol button in the Once generated... field.<br />

4. Click OK. The newly-created symbol is opened.<br />

5. Select the symbol body and select Add > Properties from the menu. The<br />

Add Multiple Properties dialog box displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

a. Enter RES in the Property Name field; enter the default amount of<br />

resistance for the parasitic element in the corresponding Property Value<br />

field.<br />

b. Enter CAP in the Property Name field; enter the default amount of<br />

capacitance for the parasitic element in the corresponding Property<br />

value field.<br />

c. Click OK.<br />

6. Select the symbol body again and select Add > Properties from the menu.<br />

The Add Multiple Properties dialog box displays again.<br />

a. Enter CLASS in the Property Name field.<br />

b. Click Expression in the Property Type field.<br />

c. Enter the following AMPLE expression format in the Property Value<br />

field:<br />

(SIMULATION == 0) ? "C" : ""<br />

In this example, when the condition parameter evaluates to true, the<br />

CLASS property evaluates to C; otherwise it evaluates to the null<br />

string.<br />

d. Click Hidden in the Visibility field.<br />

e. Click OK.<br />

For more information on specifying expression-type properties, refer to<br />

section “Using Expressions as Property Values” in Chapter 7 of the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

7. Select File > Check Symbol to check the symbols for errors. A report<br />

window displays. Correct any errors and re-check until all errors are<br />

removed.<br />

8. Select the File > Save Symbol menu item to save and register the symbol.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-101


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-102<br />

9. Press the Close Window icon in the upper-left hand corner of the symbol<br />

sheet and select Close from the menu to close the symbol sheet.<br />

Instantiating and Modifying Parasitic Elements<br />

Use the following steps to add the parasitic element to nets on the active<br />

schematic:<br />

1. For each net that you want to add an estimated parasitic element to, select<br />

Add > Instance from the menu and place the parasitic element on top of<br />

the net. For each instantiation, the parasitic element splits the net and inserts<br />

the component.<br />

For more information on instantiating symbols, refer to section<br />

“Selecting and Placing Active Symbols” in Chapter 3 of the <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

2. For each net, select the net, select Edit > Modify from the menu, and adjust<br />

the values of the resistance and capacitance properties on that net to be<br />

specific for the net.<br />

For more information on modifying properties, refer to section “Using<br />

Properties” in Chapter 7 of the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

Setting Up Simulation for Estimated Parasitics<br />

Use the following steps in simulation mode, to set the value of the viewpoint<br />

parameter so that it turns on the parasitic elements.<br />

1. Click Edit > Add Parameters in the schematic area. The Add Parameters<br />

dialog box displays.<br />

2. Enter SIMULATION into the Name field.<br />

3. Enter 1 into the Value field to turn on all estimated parasitics. Enter 0 into<br />

the Value field to turn off all estimated parasitics.<br />

4. Click Expression in the Property Type field.<br />

5. Click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Using Post-layout Parasitic Extractions<br />

You can backannotate and resimulate parasitic signals resulting from post-layout<br />

parasitic extractions using the following three procedures included in this section.<br />

Registering and Simulating the Entire Parasitic Netlist<br />

Connecting Distributed Parasitics<br />

Connecting Lumped Parasitics<br />

DA-<strong>IC</strong> supports Detailed Standard Parasitic Formatted (DSPF) files for parasitic<br />

backannotation. A DSPF file, because of its structured format, allows DA-<strong>IC</strong> to<br />

associate a given design-wide net with its parasitic sub-network. xCalibre,<br />

<strong>IC</strong> Extract, and other third-party extraction tools can generate the DSPF file<br />

format.<br />

Usage Requirements<br />

To ensure the parasitic backannotations work properly, you must conform to the<br />

following rule:<br />

• When generating the DSPF file in <strong>IC</strong> Extract or xCalibre, you must specify<br />

the option that generates names to match the schematic, not the <strong>IC</strong> layout.<br />

Registering and Simulating the Entire Parasitic Netlist<br />

This method is effective if your design is fairly small and if you do not need to<br />

debug parasitics on individual nets. However, this method does not allow you to<br />

use the original schematic for setting up .PLOT statements for parasitic nets<br />

within the instance being simulated and does not allow crossprobing between<br />

schematic nets and their associated parasitics.<br />

Use the following steps to register and instantiate parasitics on your design:<br />

1. Register the SP<strong>IC</strong>E subcircuit, that contains the layout netlist and parasitic<br />

elements generated by an extraction tool, to the symbol whose layout was<br />

used for the extraction.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-103


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-104<br />

For information on how to register the SP<strong>IC</strong>E subcircuit, refer to the section<br />

“Registering Models for Simulation” in Chapter 5 of the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

2. Modify the model names and device types of the devices in the netlist to<br />

match the simulation device types and model names using a text editor.<br />

This is needed because extraction tools may generate new types and names.<br />

3. From simulation mode, use the Model Selector to do one of the following:<br />

• Switch the simulation model. The Model Selector will automatically<br />

annotate the VIEW property.<br />

• Modify the VIEW property value to be: ELDOSP<strong>IC</strong>E=<br />

where reg_name is the name in the Registration field at the bottom of<br />

the Model Registrar Create dialog box.<br />

For information on how to switch the simulation model, refer to the section<br />

“Displaying/Selecting Registered Models” in Chapter 8 of the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>.<br />

You are now ready to simulate and view simulation results.<br />

Connecting Distributed Parasitics<br />

This method is effective for larger layout designs and for debugging parasitics on<br />

individual nets. Distributed parasitics consist of a parasitic backannotation object<br />

that represents the individual parasitics for each net in an instance. The files are<br />

loaded into the design and can be used alternately with other sets of files.<br />

Distributed RC re-simulation is useful for timing analyses.<br />

Use the following steps to load/connect a distributed parasitic parasitic<br />

backannotation object to a net in the active design:<br />

1. From simulation mode, select the net to connect the parasitic parasitic<br />

backannotation object to.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. Select Parasitics > Connect Distributed. The Connect Distributed<br />

Parasitics dialog box displays:<br />

3. Specify to create a new or connect an existing parasitic parasitic<br />

backannotation object. A parasitic back annotation object must be<br />

connected to, or associated with, the design configuration before individual<br />

parasitic sub-networks can be associated with nets. Options include:<br />

o Create New — Creates and connects a new parasitic back annotation<br />

object to the design configuration. Default setting.<br />

o Connect Existing — Displays a list box of the distributed parasitic<br />

back annotations previously created that can be re-connected. All of the<br />

settings associated with that backannotation are restored.<br />

4. Enter a name for the parasitic backannotation object in the Parasitic BA<br />

Name field. This name uniquely identifies the backannotation object, or set<br />

of annotations, in future operations.<br />

5. Enter the pathname to the DSPF file in the DSPF Path field.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-105


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-106<br />

6. Select the application used to create the parasitic parasitic backannotation<br />

object. If this field is specified incorrectly it will result in incorrect output.<br />

Options include:<br />

o <strong>IC</strong> Extract — The DSPF was created using <strong>IC</strong> Extract. Default setting.<br />

o xCalibre — The DSPF was created using xCalibre as part of Calibre<br />

Interactive. When this option is used, a name mapping sequence must<br />

be used by the program to convert the net names specified in the DSPF<br />

to the actual names on the schematic. This is done when a selected net<br />

is turned on.<br />

7. If <strong>IC</strong> Extract is used as the extraction tool, specify an option in the<br />

“Primitive paths in SPF prepended with element prefix?” field. Options<br />

include:<br />

o Yes — Specifies that the paths for primitive devices in the DSPF file<br />

are named with a primitive prefix appended to the beginning of the<br />

name. For example: m_/I$1/I$4. DA-<strong>IC</strong> needs to know that the<br />

primitive prefix m_ is not actually part of the name, but that the actual<br />

instance is /I$1/I$4.<br />

o No — Specifies no primitive prefixes are used in the parasitic file.<br />

Default setting. Required for <strong>IC</strong>extract.<br />

8. If <strong>IC</strong> Extract is used as the extraction tool, specify an option in the<br />

“Subcircuit names in SPF need to be prepended with X” field. Options<br />

include:<br />

o Yes — Specifies that the hierarchical instance names in the DSPF file<br />

need to be prepended with an X to match the net name with the actual<br />

schematic net name. For example: /1/4/OUT becomes /X1/X4/OUT.<br />

DA-<strong>IC</strong> needs to know how to map the net name in the DSPF to the<br />

actual schematic net name. In some cases, such as when flat extraction<br />

is specified, the default output from <strong>IC</strong> Extract leaves out the 'X'<br />

character for each hierarchical instance name in the DSPF NET<br />

statement.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

o No — Specifies no X pre-pending for hierarchical instance names in the<br />

DSPF file. Default setting.<br />

9. Enter the instance path in the Instance Path field for the instance to connect<br />

the parasitics to. This is needed because in simulation context, the design<br />

layed out is represented by an instance on the test bench schematic along<br />

with stimuli to test the circuit. This instance path is the EDDM hierarchical<br />

pathname for the design instance. For example: /I$3. If an instance on the<br />

schematic is selected, this field will be pre-filled in with the corresponding<br />

instance path.<br />

10. Click OK. The DSPF file is scanned and associated with the specified<br />

instance, and a backannotation object is created. The schematic closes and<br />

then re-opens. A message displays to indicate the parasitic backannotation<br />

object has been connected and individual net parasitics can be turned on<br />

using Parasitics > Distributed > Turn Selected On.<br />

You are now ready to simulate and view simulation results.<br />

Connecting Lumped Parasitics<br />

This method also supports the ability to debug parasitics on individual nets and<br />

stores parasitic values in a backannotation object. Lumped parasitics consist of<br />

single capacitance values for each design-wide net; these are the cumulative<br />

values for all capacitors found in the parasitic sub-network for that net.<br />

The same DSPF file that is generated by extraction programs for distributed<br />

backannotation carries the lumped value for each net in the NET statement for that<br />

net (after the net name). When lumped values are backannotated, they are<br />

represented as cap_net properties on each net.<br />

Use the following steps to associate a DSPF file and to load/connect a lumped<br />

parasitic back annotation object to an instance in the active design:<br />

1. From simulation mode, select the instance, representing an instance of the<br />

extracted layout design, to connect the parasitics to.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-107


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-108<br />

2. Select Parasitics > Connect Lumped. The Connect Lumped Parasitics<br />

dialog box displays:<br />

3. Specify to create a new or connect an existing parasitic backannotation<br />

object. A parasitic back annotation object must be connected to, or<br />

associated with, the design configuration before individual parasitic subnetworks<br />

can be associated with nets. Options include:<br />

o Create New — Creates and connects a new parasitic back annotation<br />

object to the design configuration. Default setting.<br />

o Connect Existing — Displays a list box of the lumped parasitic back<br />

annotations previously created that can be re-connected. All of the<br />

settings associated with that backannotation are restored.<br />

4. Enter a name for the parasitic backannotation object in the Parasitic BA<br />

Name field. This name uniquely identifies the backannotation object, or set<br />

of annotations, in future operations.<br />

5. Enter the pathname to the DSPF file in the DSPF Path field.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

6. Select the application used to create the parasitic files. If this field is<br />

specified incorrectly it will result in incorrect output. Options include:<br />

o <strong>IC</strong> Extract — The DSPF was created using <strong>IC</strong> Extract. Default setting.<br />

o xCalibre — The DSPF was created using xCalibre as part of Calibre<br />

Interactive. When this option is used, a name mapping sequence must<br />

be used by the program to convert the net names specified in the DSPF<br />

to the actual names on the schematic. This is done when a selected net<br />

is turned on.<br />

7. If <strong>IC</strong> Extract is used as the extraction tool, specify an option in the<br />

“Primitive paths in SPF prepended with element prefix?” field. Options<br />

include:<br />

o Yes — Specifies that the paths for primitive devices in the DSPF file<br />

are named with a primitive prefix appended to the beginning of the<br />

name. For example: m_/I$1/I$4. DA-<strong>IC</strong> needs to know that the<br />

primitive prefix m_ is not actually part of the name, but that the actual<br />

instance is /I$1/I$4.<br />

o No — Specifies no primitive prefixes are used in the parasitic file.<br />

Default setting. Required for <strong>IC</strong> Extract.<br />

8. If <strong>IC</strong> Extract is used as the extraction tool, specify an option in the<br />

“Subcircuit names in SPF need to be pre-pended with X” field. Options<br />

include:<br />

o Yes — Specifies that the hierarchical instance names in the DSPF file<br />

need to be prepended with an X to match the net name with the actual<br />

schematic net name. For example: /1/4/OUT becomes /X1/X4/OUT.<br />

DA-<strong>IC</strong> needs to know how to map the net name in the DSPF to the<br />

actual schematic net name. In some cases, such as when flat extraction<br />

is specified, the default output from <strong>IC</strong> Extract leaves out the 'X'<br />

character for each hierarchical instance name in the DSPF NET<br />

statement.<br />

o No — Specifies no X pre-pending for hierarchical instance names in the<br />

DSPF file. Default setting.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-109


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-110<br />

9. Enter the instance path in the Instance Path field for the instance to connect<br />

the parasitics to. This is needed because in simulation context, the design<br />

layed out is represented by an instance on the test bench schematic along<br />

with stimuli to test the circuit. This instance path is the EDDM hierarchical<br />

pathname for the design instance. For example: /I$3. If an instance on the<br />

schematic is selected, this field will be pre-filled in with the corresponding<br />

instance path.<br />

10. Enter the names of the global nets from the design, if any, into the Global<br />

Net Names field. The net names must be separated by spaces. This is<br />

necessary for DA-<strong>IC</strong> to understand that the lumped capacitances associated<br />

with these nets in the DSPF file are associated with the global nets of the<br />

same name on the schematic.<br />

11. Click OK. The DSPF file is scanned and associated with the specified<br />

instance, and a backannotation object is created. The schematic closes and<br />

then re-opens. A message displays to indicate the parasitic backannotation<br />

object has been connected and the cap_net properties have been created.<br />

Note, the cap_net properties are invisible. You can see their values by<br />

selecting a net and using the Report > Objects > Long menu item. The<br />

cap_net value is listed in picofarads units.<br />

You are now ready to simulate and view simulation results.<br />

Turning On/Off All Distributed Parasitics<br />

DA-<strong>IC</strong> allows you to turn on/off all parasitic backannotations for the active<br />

schematic. By default, all parasitics are turned off when loaded into DA-<strong>IC</strong>.<br />

Use the following step to turn on all parasitic backannotations:<br />

• From simulation mode, select Parasitics > Distributed > Turn All On. All<br />

the parasitics are activated and display in red on the active design. You can<br />

now view the parasitics for an individual net. For information on viewing<br />

parasitics on a net, refer to section “Viewing Parasitic Elements for<br />

Individual Nets” in this chapter.<br />

Use the following step to turn off all parasitic backannotations:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

• From simulation mode, select Parasitics > Distributed > Turn All Off.<br />

All the parasitics are deactivated and hidden from view.<br />

Turning On/Off Selected Distributed Parasitics<br />

DA-<strong>IC</strong> allows you to turn on/off selected distributed parasitic backannotations.<br />

Partially turning off parasitics allows you to focus on debugging the parasitics for<br />

an isolated piece of the design. By default, all parasitics are turned off when<br />

loaded into DA-<strong>IC</strong>.<br />

Use the following steps to turn on parasitic backannotations for a selected net:<br />

1. From simulation mode, select a net.<br />

2. Select Parasitics > Distributed > Turn Selected On. The parasitic<br />

backannotation displays in red next to the selected net indicating it is turned<br />

on. You can now view the parasitic for the selected net. For information on<br />

viewing parasitics on a net, refer to section “Viewing Parasitic Elements for<br />

Individual Nets” in this chapter.<br />

Use the following steps to turn off parasitic backannotations for a selected net:<br />

1. From simulation mode, select a net.<br />

2. Select Parasitics > Distributed > Turn Selected Off. The parasitic<br />

backannotation for the selected net is deactivated and hidden from view.<br />

Viewing Parasitic Elements for Individual Nets<br />

When distributed parasitics are turned on for a net(s), you can view its associated<br />

parasitics.<br />

Use the following step to view the parasitics for a net:<br />

1. Draw the “L” stroke (down, then to the right). The “L” stroke detects the<br />

nearest net, checks whether parasitics exist, and displays them in the list<br />

area of the Show Parasitic dialog box. If no parasitics are attached to the<br />

net, that information is written to the message area. The Show Parasitics<br />

dialog box displays the following three types of net information:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-111


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-112<br />

Interface nets — Nets within the parasitic sub-network for the net that<br />

connect to the intentional devices in the layout. These are most likely the<br />

parasitic nets of interest because they represent the end points of the<br />

parasitic sub-network.<br />

Internal nets — Nets that are internal to the parasitic sub-network and<br />

connect the resistors and capacitors of the sub-network.<br />

Parasitic elements — Nets that represent the parasitic resistors and<br />

capacitors that make up the parasitic sub-network. These nets begin with<br />

either “r” or “c”. You can see the values associated with each element.<br />

2. Click OK to exit the dialog box.<br />

Setting Up Plot Statements for Parasitic Nets<br />

When distributed parasitics are turned on for a net(s), you can set up the<br />

associated parasitic nets for plotting.<br />

Use the following steps to plot the associated parasitics subnet waveforms for a<br />

selected net (s):<br />

1. Select the parasitic subnet(s) whose waveform you want to crossprobe.<br />

2. Click Probes/Plot > Plot Selected from the palette from the<br />

schematic_sim_palette palette. The Set Plots dialog box displays. For more<br />

information on these options, see “Plotting Simulation Results” in this<br />

chapter.<br />

3. Click OK. The Select Parasitic Nets dialog box displays allowing you to<br />

select the parasitic nets for plotting. The Select Parasitic Nets dialog box<br />

displays the selected net name and the parasitic sub-nets that represent that<br />

net in the DSPF file.<br />

4. Select one or more parasitic sub-nets whose waveform you want to view.<br />

You can use the Ctrl-left mouse button to select single entries or hold down<br />

and drag the left mouse button across a group of adjacent nets you want to<br />

select.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

The nets selected in this step are automatically plotted when the waveform viewer<br />

invokes.<br />

Post-processing the Extracted Netlist<br />

When you load a distributed backannotation object, the netlist found in the<br />

Instance section of the DSPF file is used as the netlist of intentional devices in the<br />

layout that are to be re-simulated along with the associated parasitics that are<br />

turned on. To provide a netlist that can be re-simulated, this netlist must be postprocessed<br />

to reinsert simulation model names and original device types that may<br />

have changed as a result of the extraction tool.<br />

To post-process the netlist to update simulation model names and device types,<br />

use the following menu item:<br />

• Parasitics > Distributed > Process Extracted Netlist<br />

This command displays the Process Extracted Netlist dialog box that allows<br />

you to specify a set of string replaces to occur on the extracted netlist. You<br />

should use caution to be sure that the string replaces you specify do not<br />

affect net names or other information within the extracted netlist.<br />

To view the extracted netlist and make manual changes to it, use the following<br />

menu item:<br />

• Parasitics > Distributed > Edit Extracted Netlist<br />

Netlisting and Running Simulations with Parasitics<br />

Netlisting and running simulations with parasitics involve running the same<br />

commands used to netlist/run the original design.<br />

Use the following palette commands to netlist and perform simulation:<br />

1. Click Netlist.<br />

2. Click Run Simulator.<br />

When you netlist with a distributed parasitic backannotation connected, a series of<br />

.CONNECT statements appear at the top of the generated netlist. These<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-113


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

.CONNECT statements connect all of the parasitic nets for a given net together,<br />

initially.<br />

When parasitics for a particular net are turned on, the statements for that net are<br />

commented out and the parasitics for that net are then included in the netlist.<br />

Crossprobing a Parasitic Net From the Schematic to the Viewer<br />

Use the following steps to crossprobe from nets on the DA-<strong>IC</strong> schematic to their<br />

associated parasitic sub-nets on the waveform:<br />

8-114<br />

1. Select the net(s) whose waveform you want to view.<br />

2. Click Cross Probe > Voltages - Default. The Select Parasitic Nets dialog<br />

box displays.<br />

3. Select from a parasitic net from the list area and click OK. The<br />

corresponding parasitic sub-net waveform is highlighted in the waveform<br />

viewer. Note, there is no reverse-cross-highlighting from the parasitic subnet<br />

waveform in the viewer back to the net in the schematic.<br />

Disconnecting Parasitics<br />

Use the following steps to disconnect a parasitic backannotation object from the<br />

active configuration:<br />

1. Select Parasitics > Disconnect. You are prompted to verify the disconnect<br />

parasitics operation.<br />

2. Click OK. The specified parasitic backannotation object is disconnected.<br />

Note, when parasitic backannotation objects are disconnected, they still<br />

remain on disk and can be re-connected later.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Deleting Parasitic Backannotation Objects<br />

Both distributed and lumped parasitic backannotation objects can be disconnected<br />

from the current configuration and then deleted.<br />

Use the following command to delete disconnected backannotation objects:<br />

• Click Parasitics > Delete. The Delete Parasitic BA dialog box displays<br />

listing the backannotation objects that have been created to-date.<br />

• Select one or more backannotation objects and click OK. Note, if the<br />

backannotation object being deleted is still connected to the current<br />

configuration, the schematic window temporarily closes and then re-opens.<br />

Setting up the Netlist<br />

Use the following steps to set up netlisting options for the current design from<br />

simulation mode:<br />

1. From the schematic_sim_palette, select Session > Netlister. The Setup<br />

SP<strong>IC</strong>E Netlister dialog box displays:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-115


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-116<br />

2. Select the Output Type. Options include:<br />

o EldoSP<strong>IC</strong>E: Outputs EldoSP<strong>IC</strong>E format. Default setting.<br />

o HSP<strong>IC</strong>E: Outputs HSP<strong>IC</strong>E format.<br />

o LVS: Outputs LVS (Layout vs. Schematic) format.<br />

3. If necessary, change the Output Names in What Case? setting. This<br />

setting determines if output names are in Upper or Lower Case.<br />

4. If necessary, change the Bus Pins Alphabetically? setting. This setting<br />

determines if bus pins are listed alphabetically or numerically<br />

o Yes — Lists bus pins alphabetically.<br />

o No — Lists bus pins in numeric order.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

5. If necessary, change the Pseudo Bus Pins Alphabetically? setting. This<br />

setting determines if pseudo bus pins are listed alphabetically or<br />

numerically.<br />

o Yes — Lists pseudo bus pins alphabetically.<br />

o No — Lists pseudo bus pins in numeric order.<br />

6. If necessary, change the Use CDL format? setting. This setting determines<br />

t if the netlist contains forward slashes according to CDL syntax.<br />

7. If necessary, change the Force Re-Netlisting? setting. This setting<br />

determines when a netlist is generated based on design changes. The<br />

following options are available:<br />

o Yes — Regardless of design changes, always generates a new netlist<br />

before simulation.<br />

o No — Generates a new netlist only if the schematic sheet,<br />

backannotations, or netlist setups have changed. Default setting.<br />

8. If necessary, change the No .include Statement? setting. This setting<br />

determines whether to remove .include statement.<br />

9. If necessary, change the Top-Level Cells First? setting. This setting<br />

determines whether to list top levels first.<br />

o Yes — Netlists top levels first.<br />

o No — Does not netlist top levels first.<br />

10. If necessary, change the Wrap Netlist in .subckt? setting. This setting<br />

determines whether the netlist is wrapped in a subcircuit.<br />

o Yes — Wraps netlist in subcircuit.<br />

o No — Does not wrap netlist in subcircuit.<br />

11. If necessary, change the Use DFI Mode? setting. This setting determines<br />

whether EldoNet uses DFI or SVC to produce netlist.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-117


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-118<br />

o Yes — Uses DFI.<br />

o No — Uses SVC format.<br />

12. If necessary, change the Generate a .subckt for the Top Cell? setting.<br />

This setting determines when to generate a .subckt for the top cell.<br />

o Yes — Generates a .subckt for the top cell.<br />

o No — Does not generate a .subckt for the top cell.<br />

o If Symbol Exists — Generates a .subckt for the top cell if a symbol<br />

exists.<br />

13. If necessary, change the Back Annotated Instances Share Same<br />

Subcircuit? setting. This setting determines whether backannotated<br />

instances share the same subcircuit.<br />

o Yes — Backannotated instances share the same subcircuit.<br />

o No — Backannotated instances do not share the same subcircuit.<br />

14. If necessary, change the Set Node 0 setting. This setting contains a<br />

comma-separated list of nets to connect to node 0. Default is GROUND.<br />

15. If necessary, change the Additional Globals setting. This setting adds a<br />

.GLOBAL to the netlist for each global specified.<br />

16. If necessary, change the Input Pin Types setting. This setting redefines the<br />

specified pin types to the input pin type.<br />

17. If necessary, change the Output Pin Types setting. This setting redefines<br />

the specified pin types to the output pin type.<br />

18. If necessary, change the Inout Pin Types setting. This setting redefines the<br />

specified pin types to the inout pin type.<br />

19. If necessary, change the Omit Pin Types setting. This setting redefines the<br />

specified pin types to the OMIT pin type.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

20. Click OK. The specified settings are saved and become the default settings<br />

for netlists generated from simulation mode.<br />

Understanding Analog/Digital Converters<br />

Analog/Digital converters are used for mixed signal design simulation with<br />

ADvance MS (ADMS).<br />

SP<strong>IC</strong>E converters are built-in Eldo converters internally represented as SP<strong>IC</strong>E<br />

subcircuits. VHDL-AMS converters are defined by the user in the VHDL-AMS<br />

language and compiled using the ADMS vacom compiler. For more information,<br />

see “Detailed/non-detailed converters insertion” in Chapter 6 of the ADVanceMS<br />

User’s <strong>Manual</strong>.<br />

You can define default converters and allow ADMS to insert them automatically,<br />

or configure and insert them one at a time.<br />

For more information on inserting Analog/Digital converters, see the following<br />

topics in this chapter:<br />

Defining Default Analog/Digital Converters for Auto-Insertion<br />

Editing Default Analog/Digital Converter Parameters<br />

Deleting Default Analog/Digital Converters<br />

Inserting Analog/Digital Converters on Instances<br />

Inserting Analog/Digital Converters on Nets<br />

Inserting Analog/Digital Converters on Pins<br />

Deleting Analog/Digital Converters<br />

Understanding Analog/Digital Converter Properties<br />

Defining Default Analog/Digital Converters for Auto-<br />

Insertion<br />

Use the following steps to define default converters in the simulation command<br />

file. ADMS chooses from these converters when automatically inserting them<br />

during simulation.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-119


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-120<br />

1. With no schematic objects selected, click Mixed Signal > Insert A2D/D2A<br />

on the schematic_sim_palette. The Converter-Automatic Insertion dialog<br />

box displays.<br />

2. Select a Converter Type:. Depending on the selection, the dialog box<br />

changes. Options include:<br />

• SP<strong>IC</strong>E — Specifies a SP<strong>IC</strong>E converter. Next to Converter 1:, select<br />

one of the following options:<br />

o A2D — Specifies an analog to digital converter.<br />

o D2A — Specifies a digital to analog converter.<br />

Under Mode:, select the type of electrical signal to transmit through the<br />

ports of the converter. Options include:<br />

o bit — Specifies two logical values: 1 and 0<br />

o x01 — Specifies three logical values: X, 0, and 1<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

o x01z — Specifies four logical values: X, 0, 1, and Z<br />

o MVL4 — Specifies four logical values: X, 0, 1, and Z for A2D<br />

converters and two logical values: 1 and 0 for D2A converters<br />

o Std Logic — Specifies up to nine logical values: U, X, 0, 1, Z, W, L,<br />

H, and -<br />

o real — Specifies real or float values<br />

o integer — Specifies integer values<br />

• VHDL-AMS — Specifies VHDL-AMS compiled converter. Select a<br />

compiled converter from the list box.<br />

3. Under Setup Parameters, enter the parameter Name and Value to associate<br />

with the converter. When you specify a VHDL-AMS converter, you must<br />

supply a working VHDL-AMS library that contains parameter values for<br />

the converter. To specify a library, select Mixed Signal > Choose ADMS<br />

Library from the schematic_sim_palette. For more information, see<br />

Chapter 3, “Using <strong>Design</strong> Libraries” in the ADVanceMS User’s <strong>Manual</strong>.<br />

Each time you enter a Parameter/Value pair in the dialog box, additional<br />

fields display allowing you to enter more parameters. For more information<br />

on parameter values, see “Converter model declaration” in the ADVance<br />

MS User’s and Reference <strong>Manual</strong>.<br />

4. To define a second converter, click Yes next to Specify Second<br />

Converter?. Options and data fields for the second converter configuration<br />

display. Repeat steps 3, 4, and 5 of this procedure.<br />

5. Click OK. A set of .MODEL and .DEFHOOK commands are written to the<br />

simulation command file that represent the default converters.<br />

6. The Converter-Automatic Insertion dialog box displays empty allowing<br />

you to continue defining more converters.<br />

7. Define another default converter or click Cancel to quit entering<br />

converters.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-121


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

For more information, see<br />

Chapter 6, “The Automatic and Explicit Insertion of Converters” in the<br />

ADVanceMS User’s <strong>Manual</strong>.<br />

Editing Default Analog/Digital Converter Parameters<br />

Use the following steps to edit the parameters defined for default converters in the<br />

simulation command file:<br />

8-122<br />

1. With no schematic objects selected, click Mixed Signal > Edit Default<br />

A2D/D2A on the schematic_sim_palette. The Edit Default Converter<br />

Parameters dialog box displays.<br />

2. Select a converter to edit and click OK. The Converter Parameters dialog<br />

box displays.<br />

3. Enter, delete, and change the parameters as needed. Each time you enter a<br />

Parameter/Value pair in the dialog box, additional fields display allowing<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

you to enter more parameters. For more information on parameter values,<br />

see “Converter model declaration” in the ADVance MS User’s and<br />

Reference <strong>Manual</strong>.<br />

4. Click OK. The new parameter values are written to the simulation<br />

command file.<br />

Deleting Default Analog/Digital Converters<br />

Use the following steps to delete specified default converters from the simulation<br />

command file:<br />

1. With no schematic objects selected, click Mixed Signal > Delete<br />

A2D/D2A on the schematic_sim_palette. The Delete Default Converter<br />

dialog box displays.<br />

2. Select a converter to delete and click OK. The selected converter is deleted<br />

from the simulation command file.<br />

Inserting Analog/Digital Converters on Instances<br />

When you insert a converter on an instance, it applies to all pins owned by the<br />

instance. Use the following steps to insert analog to digital (A2D) or digital to<br />

analog (D2A) converters on instances:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-123


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-124<br />

1. Select up to two instances to insert converters on. You must set up the<br />

converters in the order that you select them. For example, the first instance<br />

selected is the first instance setup in the Insert Converter-Instance dialog<br />

box.<br />

You can insert up to two converters at a time as long as they both use the<br />

same language type. Selected objects can only be instances.<br />

2. From the schematic_sim_palette, select Mixed Signal > Insert A2D/D2A.<br />

The Insert Converter-Instance dialog box displays.<br />

3. Select a Converter Type:. Depending on the selection, the dialog box<br />

changes. Options include:<br />

• SP<strong>IC</strong>E — Specifies a SP<strong>IC</strong>E converter. Next to Converter 1:, select<br />

one of the following options:<br />

o A2D — Specifies an analog to digital converter.<br />

o D2A — Specifies a digital to analog converter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Under Mode:, select the type of electrical signal to transmit through the<br />

ports of the converter. Options include:<br />

o bit — Specifies two logical values: 1 and 0<br />

o x01 — Specifies three logical values: X, 0, and 1<br />

o x01z — Specifies four logical values: X, 0, 1, and Z<br />

o MVL4 — Specifies four logical values: X, 0, 1, and Z for A2D<br />

converters and two logical values: 1 and 0 for D2A converters<br />

o Std Logic — Specifies up to nine logical values: U, X, 0, 1, Z, W, L,<br />

H, and -<br />

o real — Specifies real or float values<br />

o integer — Specifies integer values<br />

• VHDL-AMS — Specifies VHDL-AMS compiled converter. Select a<br />

compiled converter from the list box.<br />

4. Next to Detailed Conv?, select an option for merging/splitting the digital<br />

net at the point of insertion. For more information, see<br />

“Detailed/non-detailed converters insertion” in Chapter 6 of the<br />

ADVanceMS User’s <strong>Manual</strong>. Options include:<br />

• Yes — Splits digital nets.<br />

• No — Merges digital nets.<br />

5. Under Setup Parameters, enter the parameter Name and Value to associate<br />

with the converter. When you specify a VHDL-AMS converter, you must<br />

supply a working VHDL-AMS library that contains parameter values for<br />

the converter. To specify a library, select File > Model registration ><br />

Choose ADMS Library from the session window. For more information,<br />

see Chapter 3, “Using <strong>Design</strong> Libraries” in the ADVanceMS User’s<br />

<strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-125


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-126<br />

Each time you enter a Parameter/Value pair in the dialog box, additional<br />

fields display allowing you to enter more parameters. For more information<br />

on parameter values, see “Explicit insertion of converters” in the ADVance<br />

MS User’s and Reference <strong>Manual</strong>.<br />

6. To insert a second converter, click Yes next to Specify Second<br />

Converter?. The dialog box displays options and data fields for the second<br />

converter configuration. Repeat steps 3, 4, and 5 of this procedure.<br />

7. Click OK. The converter(s) is attached to the cursor and the selected<br />

instances.<br />

8. Click the mouse near the instance(s) to place the text indicator(s) for the<br />

converter(s). The following text indicators are used:<br />

• VHDL-AMS converters — Inst_<br />

• SP<strong>IC</strong>E converters — depending on the type: Inst_A2D or Inst_D2A<br />

For more information, see<br />

Chapter 6, “The Automatic and Explicit Insertion of Converters” in the<br />

ADVanceMS User’s <strong>Manual</strong>.<br />

Inserting Analog/Digital Converters on Nets<br />

Converters cannot be inserted on nets connected to ports, because ADVanceMS<br />

only sees the highest level nets.<br />

Use the following steps to insert analog to digital or digital to analog converters<br />

on nets:<br />

1. Select the nets to insert converters on. You can insert multiple converters<br />

on multiple selected nets, but the converters must all be the same. Selected<br />

objects can only be nets.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. From the schematic_sim_palette, select Mixed Signal > Insert A2D/D2A.<br />

The Insert Converter- Net dialog box displays.<br />

3. Select a Converter Type:. Depending on the selection, the dialog box<br />

changes. Options include:<br />

• SP<strong>IC</strong>E — Specifies a SP<strong>IC</strong>E converter. Next to Converter 1:, select<br />

one of the following options:<br />

o A2D — Specifies an analog to digital converter.<br />

o D2A — Specifies a digital to analog converter.<br />

Under Mode:, select the type of electrical signal to transmit through the<br />

ports of the converter. Options include:<br />

o bit — Specifies two logical values: 1 and 0<br />

o x01 — Specifies three logical values: X, 0, and 1<br />

o x01z — Specifies four logical values: X, 0, 1, and Z<br />

o MVL4 — Specifies four logical values: X, 0, 1, and Z for A2D<br />

converters and two logical values: 1 and 0 for D2A converters<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-127


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-128<br />

o Std Logic — Specifies up to nine logical values: U, X, 0, 1, Z, W, L,<br />

H, and -<br />

o real — Specifies real or float values<br />

o integer — Specifies integer values<br />

• VHDL-AMS — Specifies VHDL-AMS compiled model. Select a<br />

compiled model from the list box.<br />

4. Next to Detailed Conv?, select an option for merging/splitting the digital<br />

net at the point of insertion. For more information, see<br />

“Detailed/non-detailed converters insertion” in Chapter 6 of the<br />

ADVanceMS User’s <strong>Manual</strong>. Options include:<br />

o Yes — Splits digital nets.<br />

o No — Merges digital nets.<br />

5. Under Setup Parameters, enter the parameter Name and the associated<br />

parameter Value to specify the converter behavior.<br />

Each time you enter a Parameter/Value pair in the dialog box, additional<br />

fields display allowing you to enter more parameters. For more information<br />

on parameter values, see “Explicit insertion of converters” in the ADVance<br />

MS User’s and Reference <strong>Manual</strong>.<br />

6. Click OK. The converter is attached to the cursor and the selected net.<br />

7. Click the mouse near the net to place the text indicator for the converter.<br />

The following text indicators are used:<br />

• VHDL-AMS converters — Net_<br />

• SP<strong>IC</strong>E converters — depending on the type: Net_A2D or Net_D2A<br />

Repeat this step for each selected net.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

For more information, see<br />

Chapter 6, “Automatic and Explicit Insertion of Converters” in the ADVanceMS<br />

User’s <strong>Manual</strong>.<br />

Inserting Analog/Digital Converters on Pins<br />

Converters cannot be inserted on pins connected to nets connected to ports,<br />

because ADVanceMS only sees the highest level nets.<br />

Use the following steps to insert analog to digital or digital to analog converters<br />

on pins:<br />

1. Select the pins to insert converters on. You can insert multiple converters<br />

on multiple selected pins, but the converters must all be the same. Selected<br />

objects can only be pins.<br />

2. From the schematic_sim_palette, select Mixed Signal > Insert A2D/D2A.<br />

The Insert Converter-Pin dialog box displays.<br />

3. Select a Converter Type:. Depending on the selection, the dialog box<br />

changes. Options include:<br />

• SP<strong>IC</strong>E — Specifies a SP<strong>IC</strong>E converter. Next to Converter 1:, select<br />

one of the following options:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-129


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-130<br />

o A2D — Specifies an analog to digital converter.<br />

o D2A — Specifies a digital to analog converter.<br />

Under Mode:, select the type of electrical signal to transmit through the<br />

ports of the converter. Options include:<br />

o bit — Specifies two logical values: 1 and 0<br />

o x01 — Specifies three logical values: X, 0, and 1<br />

o x01z — Specifies four logical values: X, 0, 1, and Z<br />

o MVL4 — Specifies four logical values: X, 0, 1, and Z for A2D<br />

converters and two logical values: 1 and 0 for D2A converters<br />

o Std Logic — Specifies up to nine logical values: U, X, 0, 1, Z, W, L,<br />

H, and -<br />

o real — Specifies real or float values<br />

o integer — Specifies integer values<br />

• VHDL-AMS — Specifies VHDL-AMS compiled model. Select a<br />

compiled model from the list box.<br />

4. Under Setup Parameters, enter the parameter Name and Value to associate<br />

with the converter. When you specify a VHDL-AMS converter, you must<br />

supply a working VHDL-AMS library that contains parameter values for<br />

the converter. To specify a library, select File > Model registration ><br />

Choose ADMS Library from the session window. For more information,<br />

see Chapter 3, “Using <strong>Design</strong> Libraries” in the ADVanceMS User’s<br />

<strong>Manual</strong>.<br />

Each time you enter a Parameter/Value pair in the dialog box, additional<br />

fields display allowing you to enter more parameters. For more information<br />

on parameter values, see “Explicit insertion of converters” in the ADVance<br />

MS User’s and Reference <strong>Manual</strong>.<br />

5. Click OK. The converter is attached to the cursor and the selected pin.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

6. Click the mouse near the pin to insert the text indicator for the converter.<br />

The following text indicators are used:<br />

• VHDL-AMS converters — Pin_<br />

• SP<strong>IC</strong>E converters — depending on the type: Pin_A2D or Pin_D2A<br />

Repeat this step for each selected net.<br />

For more information, see<br />

Chapter 6, “Automatic and Explicit Insertion of Converters” in the<br />

ADVanceMS User’s <strong>Manual</strong>.<br />

Deleting Analog/Digital Converters<br />

Use the following steps to delete an analog/digital converter from pins, nets, and<br />

instances:<br />

1. Select the pins, nets, and instances to delete the converters from. You can<br />

select any combination of objects.<br />

2. From the schematic_sim_palette, select Mixed Signal > Delete A2D/D2A.<br />

The converters are deleted from the selected objects.<br />

Understanding Analog/Digital Converter Properties<br />

The property syntax for VHDL-AMS converter properties is described in Table<br />

8-4.<br />

Table 8-4. VHDL-AMS Converter Properties<br />

Component Property Name Property Value<br />

Instance DEFHOOK [DETAILED] HOOK<br />

Pin HOOK [param1=val1 param2=val2 ...]<br />

Net HOOK [param1=val1 param2=val2 ...]<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-131


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

The property syntax for SP<strong>IC</strong>E converter properties is described in Table 8-5.<br />

8-132<br />

Table 8-5. SP<strong>IC</strong>E Converter Properties<br />

Component Property Name Property Value<br />

Instance DEFHOOK [DETAILED] A2D Mode =x01[param1=val1<br />

param2=val2 ...] D2A<br />

Pin A2D/D2A [DETAILED] Mode =bit [param1=val1<br />

param2=val2 ...]<br />

Net A2D/D2A [DETAILED] Mode = std_logic<br />

[param1=val1 param2=val2 ...]<br />

Associating an SDF File with an Instance<br />

You can specify Standard Delay Format (SDF) files for digital blocks in mixedsignal<br />

designs. SDF files are used by ADVance MS to introduce timing delays<br />

associated with digital blocks into a simulation. For more information on SDF<br />

files, see Chapter 11, “Standard Delay Format (SDF),” in the ADVance MS User’s<br />

<strong>Manual</strong>.<br />

Once an SDF file is associated with an instance, you can change the settings that<br />

tell ADVance MS how to interpret/respond to the SDF. Settings include: delay<br />

scale, error and/or warning display, and multi-source delay.<br />

Use the following steps to associate an SDF file with a digital instance for<br />

simulation:<br />

1. From simulation mode, select a digital instance to associate an SDF file<br />

with.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. From the schematic_sim_palette, select Mixed Signal > Add SDF. The<br />

Add SDF to Instance dialog box displays:<br />

3. Enter the pathname to the SDF file in the SDF Path field.<br />

4. If necessary, choose a Delay Selection. Options include:<br />

o Min — Selects the minimum timing value from the SDF file.<br />

o Max — Selects the maximum timing value from the SDF file.<br />

o Typ — Selects the typical timing value from the SDF file. Default<br />

setting.<br />

5. Click OK. The specified SDF is associated with the selected instance. To<br />

view the SDF file and settings, see “Displaying SDF File Setups” on<br />

page 8-133.<br />

Displaying SDF File Setups<br />

SDF file associations display on the schematic with the current simulation setups.<br />

Display SDF file associations as follows:<br />

1. From simulation mode, select Session > Show Settings Block from the<br />

palette menu. The settings block displays attached to your cursor.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-133


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

Move the mouse to position the settings block, and click the left mouse button to<br />

to place it on the schematic. A text block displays the current simulation setups,<br />

including the SDF setups, on the schematic.<br />

Deleting SDF File Setups<br />

Use the following steps to delete SDF file associations from the current simulation<br />

setups:<br />

8-134<br />

1. From simulation mode, select Mixed Signal > Edit SDF from the<br />

simulation palette menu. The Edit SDF Paths dialog box displays.<br />

Instances currently associated with SDF files are listed along with the<br />

pathname to the associated SDF file.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

2. To delete an SDF association from an instance, delete the pathname to the<br />

SDF file from the instance.<br />

!<br />

Caution<br />

Deleting the first listed association, deletes all SDF associations<br />

listed.<br />

Changing SDF File Setups<br />

Use the following steps to change the settings associated with how ADVance MS<br />

interprets each SDF file:<br />

1. From the schematic_sim_palette, select Mixed Signal > Edit SDF. The<br />

Edit SDF Paths dialog box displays.<br />

2. If necessary, change the Disable SDF warnings setting. The box displays<br />

black when option is enabled. Options include:<br />

o Enabled — ADVance MS displays no SDF-related warning messages.<br />

o Disabled — ADVance MS displays all SDF-related warning messages.<br />

Default setting.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-135


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-136<br />

3. If necessary, change the Reduce SDF errors to warnings setting. The box<br />

displays black when option is enabled. Options include:<br />

o Enabled — ADVance MS displays all SDF-related errors as warnings.<br />

o Disabled— ADVance MS displays SDF-related errors. Default setting.<br />

4. If necessary, change the Multi-Source Delay setting. This setting<br />

determines how ADVance MS selects from multiple PORT and<br />

INTERCONNECT constructs terminated at the same port. Options include:<br />

o Latest — Uses the latest value. Default setting.<br />

o Min — Uses the smallest value.<br />

o Max — Uses the largest value.<br />

o Off — No multi-source delay setting is used.<br />

5. If necessary, change the Delay Selection associated with each SDF file.<br />

Options include:<br />

o Min — Selects the minimum timing value from the SDF file.<br />

o Max — Selects the maximum timing value from the SDF file.<br />

o Typ — Selects the typical timing value from the SDF file. Default<br />

setting.<br />

6. Click OK. SDF settings are changed.<br />

Deleting Unused References\Invalid Backannotations<br />

Unused references and invalid backannotations can occur in a configuration if you<br />

delete design components or symbols that were once referenced by the viewpoint<br />

or delete design objects (nets, pins, instances) that had backannotations associated<br />

with them. These unused references and invalid backannotations may cause<br />

unexpected results when the design is netlisted.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Use the following steps to delete unused references and invalid backannotations<br />

from the active design configuration:<br />

1. From simulation mode, select File > Cleanup Unused References to<br />

delete any unused design references from the active viewpoint.<br />

2. From simulation mode, select File > Delete Invalid BA Entries to delete<br />

invalid backannotations from the active viewpoint. For example:<br />

backannotations attached to objects deleted from the design.<br />

You can also execute both of these functions from the dialog box that displays as<br />

you enter simulation mode. For more information, see the “Invoking Simulation<br />

Mode” section of this chapter.<br />

When changes occur as a result of using these options, the configuration is<br />

automatically saved.<br />

Checking the <strong>Design</strong> Before Simulation<br />

Use the following step to check the syntax of the entire design hierarchy with<br />

respect to the configuration rules defined in the viewpoint including, mismatched<br />

connections, unique names, parameter values, and more. For a detailed listing of<br />

the checks, see the “<strong>Design</strong> Checking” section in the <strong>Design</strong> Viewing and Analysis<br />

Support for <strong>IC</strong> Flow <strong>Manual</strong>.<br />

Setup your design for simulation and before you generate a netlist, select one of<br />

the following options to check the design:<br />

• File > Check <strong>Design</strong> > Warning/Basic Checks to check the syntax of the<br />

complete design hierarchy and return all warnings and errors.<br />

• File > Check <strong>Design</strong> > Errors Only to check the syntax of the complete<br />

design hierarchy and return only errors.<br />

The <strong>Design</strong> Syntax Messages window displays information, warning, and error<br />

messages. You can set up DA-<strong>IC</strong> to automatically check the design before<br />

simulation. For more information, see the “Setting up the Simulation<br />

Environment” section in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-137


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

Setting up the <strong>Design</strong> Check<br />

Use the following steps to specify which set of checks are run, how the design<br />

check results are returned, and check the design as specified. The settings are only<br />

used for this design check and return to the default settings for all subsequent<br />

design checks.<br />

8-138<br />

1. From simulation mode, select File > Check <strong>Design</strong> > Check Options. The<br />

Check <strong>Design</strong> dialog box displays.<br />

2. If neccessary, select a Display in Window option. Options include:<br />

o Yes — Displays the results of the check in a new window. Default.<br />

o No — Disables the check design results window.<br />

3. If neccessary, select a Write to Transcript option. Options include:<br />

o Yes — Writes the results of the check in the transcript. Default.<br />

o No — Disables the transcript of the check results.<br />

4. If neccessary, select a Warning checks option. Options include:<br />

o All Warnings — displays all warnings returned. Default.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

o Synthesis Subset — checks a design created with synthesis tools and<br />

filters out extraneous warning messages.<br />

o No Warnings — only returns errors.<br />

5. If neccessary, select a Write to File option. Options include:<br />

o Yes — Writes design check results to a specified file.<br />

o No — Check design results are not written to a file. Default.<br />

6. Click OK. The active design is checked and returns the results as specified.<br />

For informaton, see “Checking the <strong>Design</strong> Before Simulation” in this<br />

chapter.<br />

To filter which properties are checked, use the Filter Property Check command<br />

with property names and enter the properties to filter. For more information, see<br />

$filter_property_check() in the <strong>Design</strong> Viewpoint Editor-<strong>IC</strong> User’s and Reference<br />

<strong>Manual</strong>.<br />

These checks can also be run from <strong>Design</strong> Viewpoint Editor-<strong>IC</strong>. For more<br />

information, see the “<strong>Design</strong> Checking” section in Chapter 2 of the <strong>Design</strong><br />

Viewpoint Editor-<strong>IC</strong> User’s and Reference <strong>Manual</strong>.<br />

For more information, see $design_check() in the <strong>Design</strong> Viewpoint Editor-<strong>IC</strong><br />

User’s and Reference <strong>Manual</strong>.<br />

Generating a Netlist<br />

A current netlist is needed for simulation. The active design is automatically saved<br />

before the netlist is generated. Use the following steps to generate a netlist of the<br />

active design:<br />

1. From the schematic_sim_palette, select Netlist. The schematic design is<br />

automatically saved, and EldoNet is invoked in a transcript window. A<br />

transcript window displays the status for the netlist operation.<br />

2. Note any errors reported in the transcript window and press the Return key.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-139


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-140<br />

3. Correct any errors reported in the transcript window.<br />

4. Repeat step 1, 2, and 3 until the netlist is error free.<br />

For information on setting up DA-<strong>IC</strong> to netlist only when the design changes, see<br />

“Setting up the Simulation Environment”.<br />

Running the Simulation<br />

Before simulation, you must create a netlist. For more information, see<br />

“Generating a Netlist”. By default, the “Run” option on the<br />

schematic_sim_palette generates a netlist and then runs the simulation. For more<br />

information, see “Setting up the Simulation Environment”.<br />

Use the following steps to generate a netlist and run a simulation on the active<br />

design from the schematic_sim_palette menu:<br />

1. Use the appropriate procedures in this chapter to set up the simulation and<br />

the results.<br />

2. From the schematic_sim_palette, select Run Eldo. If the design changed<br />

since the last netlist was created, EldoNet is invoked in a terminal window<br />

and generates a netlist. The terminal window displays the progress of the<br />

netlister. Then, the default simulator is invoked on the active design in a<br />

terminal window. The terminal window displays the progress of the<br />

simulation.<br />

For information on setting up the default simulator, see “Setting Up the<br />

Default Simulator and Viewer” in this chapter.<br />

3. Note any errors reported in the terminal windows and press the Return key<br />

to close each window.<br />

4. Correct any errors reported in the terminal windows.<br />

5. Repeat step 2, 3, and 4 until the simulation runs error free. For information<br />

on viewing the simulation results, see “Viewing Waveforms” in this<br />

chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

Extracting Waveform Measurements<br />

You can insert .DEFWAVE, .EXTRACT, and .DEFMAC statements in the<br />

simulation command file to extract waveform information and use it to define<br />

other waveforms. Use the following steps to create .DEFWAVE, .EXTRACT, or<br />

.DEFMAC statements in the simulation command file from the<br />

schematic_sim_palette:<br />

1. From the schematic_sim_palette, select Measurements > Edit. The Edit<br />

Measurements dialog box displays.<br />

2. Enter the waveform definitions and/or measurements to extract from the<br />

simulation and click OK. A sim.measures file is created and a .INCLUDE<br />

command is inserted in the simulation command file.<br />

For more information, see “.DEFWAVE”, “.DEFMAC”, and “.EXTRACT” in<br />

Chapter 10 of the Eldo User’s <strong>Manual</strong>.<br />

Defining an Extract Statement<br />

This option allows you to define a statement that extracts waveform information<br />

during simulation using predefined functions. These measurements are valid when<br />

using Eldo. To define a new extract definition, perform the following steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-141


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-142<br />

1. From the schematic_sim_palette, select Measurements > Define. The<br />

Define Extract dialog box displays.<br />

2. Enter the name of the function to define into the Function field. Click the<br />

Menu button in the Function area to display a list of the available functions;<br />

a short description of each listed function is available by clicking one of the<br />

Help buttons located to the right of the Menu button.<br />

3. Click one of the buttons in the Measure field to specify the characteristic<br />

that you want the extract statement to measure.<br />

4. Click one of the buttons in the Format field to specify the format of the<br />

measured output. Default means that the characteristic is output exactly as<br />

specified (this is primarily for AC analysis).<br />

5. Enter a label in the Label field. When the measurement is output to either<br />

an ASCII file or a waveform viewer, the measurement is labeled with the<br />

string entered in this field. If a value is not provided, Eldo assigns a default<br />

string.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Setting up Simulation Analyses<br />

6. Enter a simulation type into the Analysis field. This specifies the type of<br />

simulation analysis set when the measurement is taken. Click the Menu<br />

button in the Analysis field to display the list of available types; a<br />

description of each listed type is available by clicking the Help button in the<br />

Analysis field.<br />

7. Specify any additional options in the Option field. You can specify<br />

unlimited options for the extract statement.<br />

8. Click OK. A .EXTRACT statement is saved to the sim.measure file in the<br />

viewpoint directory, and a .INCLUDE statement is added to the simulation<br />

command file.<br />

For more information, see the “.EXTRACT” section in Chapter 10, “Simulator<br />

Commands,” of the Eldo <strong>User's</strong> <strong>Manual</strong>.<br />

Defining a RF Extract Statement<br />

This option allows you to define a statement that extracts RF measurements.<br />

These measurements are valid when using the RF extensions to Eldo. To define an<br />

RF extract definition, perform the following steps:<br />

1. From simulation mode, select one or more instances, nets, or pins in the<br />

schematic to define a measurement for.<br />

2. Select Measurements > Define RF from the palette. The Define RF<br />

Extract dialog box displays. The following computations may be defined:<br />

• total harmonic distortion (THD)<br />

• power efficiency (PE)<br />

• power-added efficiency (PAE)<br />

• Gain<br />

• 3rd order intermodulation (IM3, IM5, and IM7)<br />

• 3rd order intercept point (IP3)<br />

• 1 db compression point<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-143


Setting up Simulation Analyses Running <strong>Design</strong> Simulation<br />

8-144<br />

3. Specify the computation to define by clicking one of the buttons in the<br />

Extract field, and complete the associated fields that display with each<br />

option. You can click on the Help button to display a short description of<br />

the measurement returned by each available computation option.<br />

4. Click OK. A .EXTRACT statement is saved to the sim.measure file in the<br />

viewpoint directory, and a .INCLUDE statement is added to the simulation<br />

command file.<br />

For more information, see the “Extract Command” section of Chapter 2,<br />

“Command Syntax,” in the Eldo RF User’s <strong>Manual</strong>.<br />

Exiting Simulation Mode<br />

Use the following step to exit simulation mode, close the viewpoint, and open the<br />

active design in the schematic editor:<br />

Click End Sim on the schematic_sim_palette menu. The schematic_edit palette<br />

menu displays.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

Viewing Waveforms<br />

From the simulation mode in DA-<strong>IC</strong>, you can set up and invoke the following<br />

waveform viewers:<br />

• Xelga<br />

Displays waveforms from analog, digital, RF, and mixed-signal design<br />

simulations performed by Eldo, Eldo RF, HSP<strong>IC</strong>E, and ADVanceMS. For<br />

more information, see “About Xelga” in this chapter.<br />

• <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View (DA-<strong>IC</strong> View)<br />

Displays waveforms from analog, digital, RF, and mixed-signal design<br />

simulations performed by Eldo or HSP<strong>IC</strong>E. For more information, see<br />

“About <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View (DA-<strong>IC</strong> View)” in this chapter.<br />

• EZwave<br />

Displays waveforms from analog, digital, and mixed-signal design<br />

simulations performed by Eldo and ADVanceMS. For more information,<br />

see “About EZwave” in this chapter.<br />

About Xelga<br />

Xelga is an interactive waveform viewer invoked from the simulation palette in<br />

DA-<strong>IC</strong>. The viewer allows you to display the following waveform types:<br />

• .wdb, .cou, .dou, .ext. and .aex — Various waveform output formats<br />

available from Eldo and ADVanceMS.<br />

Xelga reads a simulation results database named JWDB (Java Waveform<br />

Database) which is the default output database for AdvanceMS. For more<br />

information, see “JWDB database format” section in the Xelga User’s <strong>Manual</strong>.<br />

This section describes how to set up and use Xelga from the DA-<strong>IC</strong> interface. For<br />

more information on using the Xelga viewer, see the Xelga User’s <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-145


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

Invoking Xelga<br />

To invoke Xelga, your ANACAD environment variable must point to the location<br />

of the Xelga application. To use Xelga, it must be set up as the default waveform<br />

viewer before the simulation is run.<br />

Use the following steps to invoke Xelga and display waveforms from the<br />

schematic_sim_palette:<br />

8-146<br />

1. Set up Xelga as the default waveform viewer. For more information, see<br />

“Setting Up the Default Simulator and Viewer” in this chapter.<br />

2. Set up and run the simulation for the active schematic. If you change the<br />

viewer, you must re-run the simulation to output the correct waveform<br />

format for the viewer.<br />

3. From the schematic_sim_palette, select View Waves.<br />

Xelga opens and displays the waveforms generated for the active<br />

schematic.<br />

Crossprobing Schematics with Xelga<br />

Xelga allows the bidirectional crossprobing of design components in DA-<strong>IC</strong>. For<br />

example:<br />

You can highlight a component of the active schematic in DA-<strong>IC</strong>, and the viewer<br />

displays the corresponding waveform.<br />

OR<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

You can select a waveform in the viewer and DA-<strong>IC</strong> highlights the associated<br />

component in the active schematic.<br />

Note<br />

You can only crossprobe “primary” nets. For example, a net<br />

named 'OUT' on the top level schematic is connected to an<br />

instance pin called 'INSTOUT' that maps to a net called<br />

'INSTOUT' on its underlying schematic. You can crossprobe the<br />

net 'OUT' at the top level, but you cannot crossprobe the net<br />

'INSTOUT' in the lower level schematic.<br />

After you run a simulation on a schematic, use the following steps to crossprobe<br />

the schematic:<br />

1. From the schematic_sim_palette, select View Waves.<br />

2. Select one or more pins/nets on the schematic to crossprobe.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-147


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

8-148<br />

3. From the schematic_sim_palette, select Cross Probe. The following menu<br />

displays.<br />

4. Select the type of waveform to display. For more information, see<br />

$da_ic_crossprobe() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>. The<br />

following prompt bar displays.<br />

Hold the left mouse button down and draw a rectangle around the<br />

component to crossprobe on the schematic. The corresponding waveform is<br />

highlighted in Xelga.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

If you select one of the six “Diff” options on the bottom of the submenu,<br />

two pins/nets must be selected. The Setup Difference Probe dialog box<br />

displays.<br />

Select an order for the difference to be evaluated and click OK. A negative<br />

or positive value is determined by the selection order. By default, the value<br />

of the second-selected net/pin is subtracted from the value of the firstselected<br />

net/pin.<br />

The waveform viewer displays/highlights a waveform representing the<br />

difference between the two components.<br />

5. Select a waveform in Xelga. The corresponding component is highlighted<br />

in DA-<strong>IC</strong>.<br />

Closing Xelga<br />

Use the following steps to close Xelga:<br />

Select File > Exit. Xelga closes. DA-<strong>IC</strong> and the current viewpoint are active<br />

About <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View (DA-<strong>IC</strong> View)<br />

DA-<strong>IC</strong> View is an interactive waveform viewer invoked from the<br />

schematic_sim_palette in DA-<strong>IC</strong>. The viewer allows you to display analog,<br />

digital, RF and mixed-signal waveforms from waveform database .wdb files<br />

created during simulation.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-149


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

For information on viewing and manipulating waveform data, see the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View User’s and Reference <strong>Manual</strong>.<br />

Invoking DA-<strong>IC</strong> View<br />

Use the following steps to invoke DA-<strong>IC</strong> View and display waveforms from the<br />

schematic_sim_palette:<br />

8-150<br />

1. Set up DA-<strong>IC</strong> View as the default waveform viewer. For more information,<br />

see “Setting Up the Default Simulator and Viewer” in this chapter.<br />

2. Set up and run the simulation for the active schematic.<br />

3. From the schematic_sim_palette, select View Waves.<br />

DA-<strong>IC</strong> View opens and displays the results from the latest simulation in a<br />

waveform database window and in a Chart window. The waveform<br />

database and Chart windows contain waveforms specified with the .PLOT<br />

command in the simulation command file. For more information on setting<br />

up .PLOT commands, see “Plotting Simulation Results” in this chapter.<br />

If DA-<strong>IC</strong> View does not respond, see “No Response from DA-<strong>IC</strong> View”in<br />

Chapter 10.<br />

Crossprobing Schematics with DA-<strong>IC</strong> View<br />

DA-<strong>IC</strong> View allows the bidirectional crossprobing of design components in DA-<br />

<strong>IC</strong>. For example:<br />

You can highlight a component of the active schematic in DA-<strong>IC</strong>, and the viewer<br />

displays the corresponding waveform.<br />

OR<br />

You can select a waveform in the viewer and DA-<strong>IC</strong> highlights the associated<br />

component in the active schematic.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

After you set up and run a simulation on a schematic, use the following steps to<br />

crossprobe the schematic:<br />

1. From the schematic_sim_palette, select View Waves.<br />

2. From the schematic_sim_palette, select Cross Probe and choose a signal<br />

type from the submenu to probe.<br />

For more information, see $da_ic_crossprobe() in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

Reference <strong>Manual</strong>. The crossprobe prompt bar displays.<br />

3. Hold the left mouse button down and draw a rectangle around the net to<br />

crossprobe on the schematic. The corresponding waveform displays in a<br />

Chart window of the viewer. If the corresponding waveform is already<br />

displayed in the Chart window, it is highlighted.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-151


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

8-152<br />

If you select one of the six “Diff” options on the bottom of the submenu,<br />

two pins/nets must be selected. The Setup Difference Probe dialog box<br />

displays.<br />

Select an order for the difference to be evaluated and click OK. A negative<br />

or positive value is determined by the selection order. By default, the value<br />

of the second-selected net/pin is subtracted from the value of the firstselected<br />

net/pin.<br />

The waveform viewer displays/highlights a waveform representing the<br />

difference between the two components.<br />

4. Click on a waveform in the Chart or Waveform Database window of the<br />

viewer to select it. You can select multiple waveforms.<br />

5. Select DA-<strong>IC</strong> Highlight from the Chart or Waveform Database popup<br />

menu. The nets associated with the selected waveforms are highlighted on<br />

the schematic. Highlighted nets on the schematic continue to accumulate<br />

until you deselect them in DA-<strong>IC</strong>.<br />

For more information on using DA-<strong>IC</strong> View, see the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> View User’s And Reference <strong>Manual</strong>.<br />

Closing DA-<strong>IC</strong> View<br />

Use the following steps to close DA-<strong>IC</strong> View:<br />

Select MGC > Exit. DA-<strong>IC</strong> View exits. DA-<strong>IC</strong> and the current viewpoint are<br />

active.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

About EZwave<br />

EZwave is an interactive waveform viewer invoked from the simulation palette in<br />

DA-<strong>IC</strong>. In the DA-<strong>IC</strong> environment, EZwave provides the following capabilities:<br />

• Ability to crossprobe low-level design nets and have the low-level name<br />

preserved within the viewer.<br />

• Multiple analysis simulations display the results for each analysis type in its<br />

own folder.<br />

• Multiple run simulations, which can create a large number of waveforms<br />

for each design signal, display within the viewer with a single waveform<br />

name.<br />

• Multiple run simulations generate individual waveforms for each .PLOT<br />

statement in the commands file; they display the group of all waveforms<br />

associated with a given .PLOT statement as a single unique waveform<br />

name in the viewer.<br />

Invoking EZwave<br />

Use the following steps to invoke EZwave and display waveforms from the<br />

schematic_sim_palette:<br />

1. Set up EZwave as the default waveform viewer. For more information, see<br />

“Setting Up the Default Simulator and Viewer” in this chapter.<br />

2. Set up and run the simulation for the active schematic.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-153


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

8-154<br />

3. From the schematic_sim_palette, click View Waves on the palette and<br />

select one of the submenu items or just click View Waves to execute the<br />

New Window menu item.<br />

The following viewing options are available on the submenu:<br />

• New Window — Opens a new Graph window in EZwave and plots the<br />

entire set of waveforms identified in the .cir file.<br />

• Overlay — If there is a database from a previous simulation already<br />

opened and it has at least one waveform plotted, plots the new result<br />

waveforms together with the previously existing ones on the same axes<br />

and waveform rows. Note, this option is only enabled if EZwave is<br />

already invoked and connected to DA-<strong>IC</strong>.<br />

• Select HSP<strong>IC</strong>E Results — Displays a list of the available waveform<br />

files. Select a file, and then use the New Window or Overlay menu<br />

options to plot the waveform file.<br />

Note, this option is only available on the View Waves submenu when<br />

the HSP<strong>IC</strong>E simulator is specified as your Simulator and the most<br />

recent simulation created multiple result files<br />

EZwave opens and displays the waveform results from the latest simulation<br />

in a Graph window. For more information on setting up .PLOT commands,<br />

see “Plotting Simulation Results” in this chapter.<br />

If multiple run simulation analysis options (sweeps, Monte Carlo, etc.)<br />

were specified, those waveforms are represented in the Waveform List<br />

Panel by a single waveform icon and a “+” sign. You can access individual<br />

waveforms within that wavform group by clicking the '+' sign to expand the<br />

list to show the individual waveform names. For example, V(INP) expands<br />

to show the individual waveforms V(INP)_1, V(INP)_2, ..., V(INP)_N.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

Crossprobing Schematics with EZwave<br />

After you set up and run a simulation on a schematic, use the following two<br />

sections to crossprobe between DA-<strong>IC</strong> and the EZwave viewer.<br />

Crossprobing from DA-<strong>IC</strong> to EZwave<br />

After you set up and run a simulation on a schematic, use the following steps to<br />

crossprobe from DA-<strong>IC</strong> to EZwave:<br />

1. From the schematic_sim_palette, select View Waves > New Window.<br />

The EZwave application displays in a separate window. You can reposition<br />

DA-<strong>IC</strong> and EZwave on the screen so that both can be viewed at the same<br />

time.<br />

2. Select a net on the schematic. You can select two nets if you want to<br />

generate and view a “differential” signal — that is, view a waveform of<br />

their difference.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-155


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

8-156<br />

3. From the schematic_sim_palette, click Cross Probe and choose a signal<br />

type from the submenu to probe.<br />

• If you select one of the six “Difference” options on the bottom of the<br />

submenu, two pins/nets must be selected in step 2. When the Setup<br />

Difference Probe dialog box displays, select an order for the difference<br />

to be evaluated and click OK.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Running <strong>Design</strong> Simulation Viewing Waveforms<br />

A negative or positive value is determined by the selection order. By<br />

default, the value of the second-selected net/pin is subtracted from the<br />

value of the first-selected net/pin.<br />

The waveform viewer displays/highlights a waveform in the Graph<br />

window of the viewer representing the difference between the two<br />

components.<br />

• If you choose any of the other eleven signal choices, the corresponding<br />

waveform displays in the active Graph window of the viewer without<br />

prompting for a selection order.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 8-157


Viewing Waveforms Running <strong>Design</strong> Simulation<br />

Crossprobing from EZwave to DA-<strong>IC</strong><br />

To crossprobe from EZwave to DA-<strong>IC</strong>, perform the following steps:<br />

8-158<br />

1. Click on a waveform name listed in the Waveform Name Panel of the<br />

viewer, located by default on the right side of the Graph window, to select<br />

it. You can select multiple waveform names.<br />

2. Click the Waveforms cross selection icon from the EZwave toolbar.<br />

The nets associated with the selected waveform names are highlighted on<br />

the DA-<strong>IC</strong> schematic. Highlighted nets on the schematic continue to<br />

accumulate until you deselect them in DA-<strong>IC</strong><br />

For information on using EZwave, click the Help button in the upper righthand<br />

corner of the application to display the Online Help options.<br />

Closing EZwave<br />

Use the following step to close the EZwave viewer:<br />

1. Select File > Exit from the EZwave menu.<br />

EZwave closes. DA-<strong>IC</strong> and the current viewpoint are active.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 9<br />

Managing <strong>Design</strong>s<br />

This in provides information and procedures for managing schematic designs in<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>). The following topics are available:<br />

<strong>Design</strong> Management Overview<br />

Component Window<br />

Component Hierarchy Window<br />

Viewing <strong>Design</strong> Hierarchy<br />

Renaming a Component<br />

Changing Component References<br />

Releasing <strong>Design</strong>s<br />

Version Operations<br />

<strong>Design</strong> Verification<br />

Reference and Object Checking<br />

Configuration Build<br />

Application Invocation<br />

Updating Parts on all Schematics in a <strong>Design</strong><br />

Reporting on Objects<br />

Reporting on Component Interfaces<br />

Reporting on Schematic and Symbol Objects<br />

Reporting on Object Status<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-1


<strong>Design</strong> Management Overview Managing <strong>Design</strong>s<br />

<strong>Design</strong> Management Overview<br />

You can copy, move, resize, group, delete, and release design objects with <strong>Design</strong><br />

Manager-<strong>IC</strong> or within DA-<strong>IC</strong>. For complete information about these topics, refer<br />

to the <strong>Design</strong> Manager -<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

9-2<br />

!<br />

Caution<br />

You can manage schematic designs with the <strong>Design</strong> Manager-<strong>IC</strong> or use the<br />

following design management tools provided on the MGC > <strong>Design</strong><br />

Management pulldown menu in DA-<strong>IC</strong>:<br />

• Copy Object<br />

• Move Object<br />

• Delete Object<br />

• Change References<br />

• Component Window allows you to view or edit detailed information about<br />

a component.<br />

• Component Hierarchy window allows you to view design configuration and<br />

component information without having to exit the application.<br />

Component Window<br />

Do not edit attribute files. Editing an attribute file directly can<br />

corrupt the associated design object. Use the <strong>Design</strong> Manager-<strong>IC</strong><br />

or or use the design management tools provided on the MGC ><br />

<strong>Design</strong> Management pulldown menu in DA-<strong>IC</strong> to edit ALL<br />

design references. These tools automatically update the attribute<br />

files for you.<br />

The Component Window allows you to view or edit detailed information about a<br />

component. Some of the things you can do in the Component Window are:<br />

• List the Part Interfaces for models, labels, pins, pin properties, and body<br />

properties for a given component.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s <strong>Design</strong> Management Overview<br />

• Register and unregister component models.<br />

• Add/delete or edit labels for a component.<br />

• Show all objects contained by the component, and optionally filter out<br />

objects depending on type.<br />

Click MGC > <strong>Design</strong> Management > Open Component Window pulldown<br />

menu or the session window palette. A window appears that is divided into four<br />

distinct information list areas, and each list area has a separate popup menu. The<br />

four list areas are:<br />

• Component Information<br />

Displays an indented list of the component and its contents. Icons next to<br />

items indicate the object type. Multiple components can be shown at one<br />

time. Use the setup form to filter the types you want to view.<br />

• Models<br />

Displays all registered models for each part interface selected in the<br />

component list area. Labels are shown indented underneath the model<br />

name. Models are distinguished for a given component by the gray header<br />

bar.<br />

• Pins<br />

Displays pin names and properties for each selected part interface.<br />

• Body Properties<br />

Displays the body property name and value for each selected part interface.<br />

Figure 9-1 shows the initial display of the Component window. The following<br />

restrictions apply to the Component Window in <strong>Design</strong> <strong>Architect</strong>:<br />

• If you are editing a symbol in a Symbol Editor window, you cannot make<br />

model registration or label changes to the component that contains the<br />

symbol in the Component Window.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-3


<strong>Design</strong> Management Overview Managing <strong>Design</strong>s<br />

9-4<br />

• You cannot select a symbol or schematic model listed in the Component<br />

Window to open the symbol or sheet.<br />

• You cannot change the component displayed in the Component Window<br />

from the <strong>Design</strong> <strong>Architect</strong> Active Symbol window.<br />

• If you modify a component in the Component Window, sheets in the<br />

component are not automatically updated to display the change.<br />

C<br />

Component Information<br />

$TRAINING/danwp/my_df<br />

my_dff (Default)<br />

ANSI<br />

my_dff<br />

part<br />

schematic<br />

schem_id<br />

sheet1<br />

schemaitc2<br />

schem_id<br />

sheet1<br />

my_dff<br />

Component Window<br />

[$TRAINING/danwp/card_reader/my_dff]<br />

Pins<br />

my_dff [$TRAINING/danwp/card_reader/my_dff]<br />

D<br />

CLK<br />

PRE<br />

CLR<br />

Q<br />

QB<br />

my_dff<br />

Registered Model Info<br />

Graphical Models<br />

$TRAINING/danwp/card_reader/my_dff/my_dff<br />

$TRAINING/danwp/card_reader/my_dff/ANSI<br />

default_sym<br />

Functional Models<br />

$TRAINING/danwp/card_reader/my_dff/schematic<br />

schematic<br />

$schematic<br />

default<br />

$TRAINING/danwp/card_reader/my_dff/schematic2<br />

schematic2<br />

$schematic2<br />

Body Properties<br />

[$TRAINING/danwp/card_reader/my_dff]<br />

qfall = 0<br />

qbfall = 0<br />

qrise = 0<br />

qbrise = 0<br />

model = schematic<br />

Figure 9-1. Component Window<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s <strong>Design</strong> Management Overview<br />

Component Hierarchy Window<br />

The Component Hierarchy Window allows you to view design configuration and<br />

component information without having to exit the application. It also allows you<br />

to:<br />

• Display a component hierarchy in the context of a specific viewpoint.<br />

• Display design hierarchies that are not dependent on viewpoints.<br />

• Display instance information for a given component.<br />

• Display the path to a single instance.<br />

• Display the hierarchy as an indented list or a graphical tree.<br />

• Probe other applications.<br />

• Display the value of a specified property, rather than the instance name next<br />

to component, in the hierarchy listing.<br />

Because you look at a physical or logical hierarchy listing, rather than a file<br />

system, you get information concerning the instances names, property values,<br />

object designations, and model information.<br />

Viewing <strong>Design</strong> Hierarchy<br />

You can view the hierarchy of your design by performing the following steps:<br />

1. Choose the MGC > <strong>Design</strong> Management > Open Hierarchy Window ><br />

Specify menu item.<br />

The Open Hierarchy Window dialog box displays.<br />

2. Enter the pathname of the component whose hierarchy you want displayed,<br />

or use the navigator button to bring up the dialog navigator to find the<br />

component.<br />

3. Click OK when you have completed the form. The hierarchy is displayed in<br />

an IDW Hierarchy window.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-5


<strong>Design</strong> Management Overview Managing <strong>Design</strong>s<br />

9-6<br />

4. Select a component in the IDW Hierarchy window by clicking the left<br />

mouse button on the component name.<br />

5. Press the right mouse button in the IDW Hierarchy window to display the<br />

associated popup menu.The Hierarchy Window uses the mgc_component<br />

as the standard starting point for showing design hierarchy. Figure 9-2<br />

shows the Hierarchy window.<br />

Component Hierarchy Window<br />

Current Component: $TRAINING/danwp/card_reader/add_convert<br />

add_convert (schm:schematic)<br />

rip (primitive)<br />

ground (primitive)<br />

74259 (primitive)<br />

vcc (primitive)<br />

res.alt (primitive)<br />

portin (primitive)<br />

inv (primitive)<br />

and2 (primitive)<br />

portout (primitive)<br />

74ls161a (primitive)<br />

my_dff (schm:schematic)<br />

latch (primitive)<br />

inv (primitive)<br />

buf (primitive)<br />

portin (primitive)<br />

portout (primitive)<br />

Figure 9-2. Hierarchy Window<br />

The following restrictions apply to the Hierarchy Window in DA-<strong>IC</strong>:<br />

• Cross-highlighting between open Schematic Editor Windows and the<br />

Hierarchy Window is not supported.<br />

• When instances are added or deleted in a Schematic Editor Window, the<br />

changes are not reflected in a Hierarchy window, until you reopen the<br />

design.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s <strong>Design</strong> Management Overview<br />

Renaming a Component<br />

Renaming a component renames the file set (all objects that are of the same file<br />

set) that is selected, and then changes references within the file set (container)<br />

hierarchy to reflect the change. External design object references that point to<br />

objects in the renamed container are not updated. These references will need to be<br />

updated.<br />

When you change the name of the component container, the <strong>Design</strong> Manager only<br />

changes the objects at this level in the hierarchy. Examine Figure 9-3.<br />

Changing the name here<br />

does not change the name here<br />

Figure 9-3. Renaming a Component Containing a Symbol<br />

For the typical component, the symbol name is the same as the component name.<br />

If you change the name of the component in the <strong>Design</strong> Manager, the symbol<br />

name remains the same. The <strong>Design</strong> Manager updates the component interface to<br />

reflect the new path, so that when the component is requested in an application,<br />

the references are preserved.<br />

For general information about renaming a component, refer to “Renaming a<br />

<strong>Design</strong> Object” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

Changing Component References<br />

74ls74<br />

symbol<br />

74ls74<br />

In the <strong>Design</strong> Manager, you can change or delete the references that you<br />

previously created in the <strong>Design</strong> Manager or in an application. After you move or<br />

delete a design object, or if a design object has unresolved references, use the<br />

MGC > <strong>Design</strong> Management > Change References menu item to fix broken<br />

references. This displays a dialog box in which you specify a new reference target<br />

path. You can enter multiple reference changes at one time.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-7<br />

part


<strong>Design</strong> Management Overview Managing <strong>Design</strong>s<br />

The <strong>Design</strong> Manager environment does support operating system relative<br />

pathnames, such as “.” and “..”. Although the Change Object References<br />

command allows you to change a reference to any string, you should always<br />

specify a path that begins with / or a “$” (such as $MGC_GENLIB) in order to<br />

provide soft pathname and location map compatibility. For general information<br />

about changing design or library component references, refer to “Working with<br />

References” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

Releasing <strong>Design</strong>s<br />

A released design is a protected copy of a design object, or objects defined in a<br />

configuration object. When you release a design, you are only releasing a single<br />

version. If the original design object is at version number 8, the released design<br />

object becomes version number 1.<br />

Containment relationships are preserved, and references are automatically<br />

updated to reflect the new location. Important record-keeping information is<br />

stored in the copied configuration object. The Protect property is added to these<br />

design objects, and you are not allowed to modify a released design. If you need to<br />

edit released data, use one of the following options:<br />

9-8<br />

• Edit the original design and release it again using the same configuration.<br />

Only the files that have changed since the original release will be merged. If<br />

the original design has significantly evolved, this may not be possible.<br />

• Copy the released design to a new location. This copy is not protected.<br />

Make changes to the copy, then release it.<br />

For general information about setting up a configuration object and releasing a<br />

design or library component, refer to “Managing <strong>Design</strong>s” in the <strong>Design</strong><br />

Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

For more information about releasing a design, refer to “Releasing a<br />

Configuration” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s <strong>Design</strong> Verification<br />

Version Operations<br />

Idea Station applications normally maintain two versions of a design object. For<br />

large designs, retaining two versions can consume large amounts of disk storage.<br />

Changing the version depth does not immediately remove excess versions; it only<br />

prunes versions when the next version manager operation occurs. The next <strong>Design</strong><br />

Manager or application write that occurs will update versions using the version<br />

manager.<br />

For general information about working with design or library component versions,<br />

refer to “Working with Versions” in the <strong>Design</strong> Manager-<strong>IC</strong> <strong>User's</strong> <strong>Manual</strong>.<br />

<strong>Design</strong> Verification<br />

The following topics list several methods for verifying the accuracy of a design<br />

object manipulation.<br />

When referencing a design object, if you provide a relative pathname that does not<br />

begin with the dollar sign ($) character, that relative pathname will be converted<br />

to an absolute pathname, based on the value of the environment variable<br />

MGC_WD. You must ensure that the value of MGC_WD is set to the correct<br />

value for your current working directory. If is not set properly, an incorrect<br />

pathname for the reference may be stored.<br />

Reference and Object Checking<br />

Compare references before and after a <strong>Design</strong> Manager-<strong>IC</strong> operation. The<br />

following discussion describes the process to ensure that DA-<strong>IC</strong> manipulated the<br />

references correctly:<br />

1. Activate a navigator window in the <strong>Design</strong> Manager-<strong>IC</strong>. Use the navigator<br />

buttons to move to the directory that contains the component container that<br />

you will manipulate through some <strong>Design</strong> Manager-<strong>IC</strong> operation.<br />

2. Click on the specified component container. Click the Explore Contents<br />

(down arrow) button to display the contents of the selected container. You<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-9


<strong>Design</strong> Verification Managing <strong>Design</strong>s<br />

9-10<br />

see the model icons associated with the component, in addition to the part<br />

icon.<br />

3. Select all the icons at that level by depressing the mouse button, dragging it<br />

so all icons are within the specified selection area, then release it.<br />

4. Choose Report > Show References > For Object from the pulldown<br />

menu. A report window for each selected object displays containing the<br />

current references of each object.<br />

5. Click on the schematic model icon. Click the Explore Contents button to<br />

view the sheet icons associated with the schematic.<br />

6. Select all the sheets. Choose Report > Show References > For <strong>Design</strong><br />

from the pulldown menu bar. A report window for each selected sheet<br />

displays, containing the current references of each object.<br />

7. When you have completed the <strong>Design</strong> Manager-<strong>IC</strong> operation on the<br />

specified object, check the references of the manipulated object at all levels<br />

to verify that the manipulation was successful.<br />

This method of verification is recommended when you have a relatively small<br />

design that is completely self-contained. If you have a design that references<br />

external objects, this method can quickly become time-consuming. In that case,<br />

use the configuration build method described in the “Configuration Build” section<br />

of this chapter.<br />

Configuration Build<br />

For some scenarios, such as copy and move, creating a configuration from the<br />

results and doing a build can check that all the references can be resolved. This<br />

method of verification is recommended when you have a relatively large design<br />

that is either self-contained and/or references external objects.<br />

To do a configuration build, perform the following steps:<br />

1. Activate a navigator in the <strong>Design</strong> Manager-<strong>IC</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s <strong>Design</strong> Verification<br />

2. Use the navigator buttons to move to the directory that contains the toplevel<br />

design container that you manipulated through some <strong>Design</strong><br />

Manager-<strong>IC</strong> operation.<br />

3. Open a configuration window by clicking on the CONFIG icon in the<br />

Navigator palette. A new Untitled Configuration window appears.<br />

4. Click on the design container and drag it into the new configuration<br />

window.<br />

5. Choose Configuration > Build from the Configuration window’s popup<br />

menu. The build operation begins with the primary entry, traverses its<br />

contents and its references, and adds secondary entries to the configuration.<br />

When the build is complete, the configuration window displays the<br />

pathnames of all primary and secondary entries, and the pathnames to all<br />

the references associated with the entries.<br />

Application Invocation<br />

The simplest method of verifying that a design has been manipulated correctly is<br />

to invoke the appropriate application on the manipulated design.<br />

• If you have manipulated a design that contains symbol and schematic<br />

models, invoke DA-<strong>IC</strong> on that design.<br />

• If you have manipulated a design that contains design viewpoints, invoke<br />

DVE-<strong>IC</strong> on that design.<br />

• If you have manipulated a design that contains symbol and schematic<br />

models and also contains design viewpoints, invoke both DA-<strong>IC</strong> and<br />

DVE-<strong>IC</strong> on the design.<br />

!<br />

Caution<br />

This is not a bullet-proof check. A design copy could still contain<br />

references to the original. If the original is available, the invocation<br />

on the copy appears to work. However, when the original is moved<br />

or deleted, the copy will not run. Therefore, a visual reference check<br />

is good insurance.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-11


Updating Parts on all Schematics in a <strong>Design</strong> Managing <strong>Design</strong>s<br />

Updating Parts on all Schematics in a<br />

<strong>Design</strong><br />

When you install a new parts library, you may want to update all instances of parts<br />

on all sheets in a design. Perform the following steps to update an entire design:<br />

9-12<br />

1. Choose the File > Update All Schematics item from the main menu bar.<br />

The Update All Schematics dialog box appears.<br />

2. Enter the pathname to the top-level sheet in the design in the Top Level<br />

Component Name field.<br />

3. Click one of the Update Type buttons to specify how instances should be<br />

updated when the sheet is opened. The following list describes the update<br />

action for each button:<br />

• Auto: Instance-only and Value_Modified properties are not changed;<br />

new properties on the current symbol are added to the instance.<br />

• Clear: Instance-only properties are deleted; all other properties are<br />

reset to the current symbol values.<br />

• Noupdate: Out-of-date instances are not updated when the sheet is<br />

opened.<br />

4. If desired, restrict the sheets that are updated. The following list describes<br />

the methods for restricting the update:<br />

• Enter a level at which to stop updating sheets at the hierarchy in the<br />

Stop Level field. The default value of zero updates the entire hierarchy.<br />

• Enter a series of strings in the Filter fields. If the reference pathname to<br />

a sheet in the hierarchy contains one of the strings, the sheet is not<br />

updated.<br />

• Choose the Yes button beneath Preview. This causes a second dialog<br />

box to appear after you execute the current dialog box. A list of all<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s Reporting on Objects<br />

sheets that met the criteria specified in the Stop Level and Filter fields<br />

is displayed. You then select sheets from the list to be updated.<br />

5. Click the OK button to update the sheets.<br />

Reporting on Objects<br />

The following topics include procedures for reporting on various schematic<br />

objects.<br />

Reporting on Component Interfaces<br />

To list all models, labels, and component interfaces for any design, perform the<br />

following steps:<br />

1. Activate the Session window by clicking the mouse button in the session<br />

window.<br />

2. Execute the File > Open > Component Interface menu item. The Open<br />

Component Window dialog box displays.<br />

3. Click OK. The contents of the Component Report displays as in Figure 9-4.<br />

Figure 9-4. Report Interfaces Example<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-13


Reporting on Objects Managing <strong>Design</strong>s<br />

To list all models, pins, and body properties in a design, perform the following<br />

steps:<br />

9-14<br />

1. Activate the Session window by clicking the left mouse button in the<br />

Session window.<br />

2. Execute the File > Open > Component Interface menu item. The Open<br />

Component Window dialog box displays.<br />

3. Select the Options... button. The Open Component Window Options dialog<br />

box displays.<br />

a. Enable the Model, Pin, or Properties buttons as desired.<br />

b. Click OK to close the Options menu.<br />

4. Click OK. The Component Window displays with detailed Mode, Pin, and<br />

Model Properties information displayed. See Figure 9-5.<br />

Figure 9-5. Component Window Transcript<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s Reporting on Objects<br />

Reporting on Schematic and Symbol Objects<br />

To list all schematic and symbol object information for selected objects on a<br />

symbol or schematic sheet, perform the following steps:<br />

1. Select the objects for which you want to gather information.<br />

2. Execute the Report > Selected Object menu item. This menu item reports<br />

information for all selected objects. By default, the report generated is<br />

directed to a DA-<strong>IC</strong> window; it can also be sent to a file. Refer to the<br />

“Report Object” command in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong><br />

for information reported about each object.<br />

To list information for specified object types on a symbol or schematic sheet,<br />

perform the following steps:<br />

1. Select the objects for which you want to obtain information. Instead of<br />

selecting objects, you can type the handle names of the objects in the<br />

Report Object dialog box.<br />

2. Execute the Report > Specified Object menu item. The Report Object<br />

dialog box appears.<br />

3. Click the left mouse button on the buttons corresponding to the objects for<br />

which you want information. More than one object type may be selected.<br />

By default, the Report generated is directed to a DA-<strong>IC</strong> window, and to a<br />

file named “da_report_file” in your current directory.<br />

When listing property information, if you have selected the object that<br />

owns the property, you must ask for a report about both the object and the<br />

attached properties.<br />

4. Click OK when object type selection is complete. Figure 9-6 illustrates the<br />

type of information found on a report of a schematic sheet when instance,<br />

net, pin, and property text attribute object types are specified.<br />

Property attributes listed in report windows may include “-Not Visible” and<br />

“-Hidden”. If both of these are listed, the property was hidden when added,<br />

and the property visibility has not been changed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-15


Reporting on Objects Managing <strong>Design</strong>s<br />

9-16<br />

If “-Hidden” is listed without “-Not Visible”, the property visibility was<br />

changed to visible on the sheet.<br />

Figure 9-6. Report Object Example<br />

Reporting on Object Status<br />

Report #2 dff<br />

Reporting: Instance, Net, Pin, Property<br />

Text Attribute<br />

Instance Name Location<br />

I$2 $MGC_GENLIB/latch/latch (-1.00,3.50)<br />

flipped vertically<br />

I$6 $MGC_GENLIB/inv/inv (1.50,-0.25)<br />

Net N$3 Net Name: -----<br />

Vertex Location Attached Vertices Vertex Pins: Name of<br />

V$67 (-2.75,-0.25) V$191 P$66 OUT<br />

V$17 (-1.00,-0.25) V$191 P$16 EN<br />

V$191 (-1.75,-0.25) V$67<br />

V$17<br />

V$193<br />

V$193 (-1.75,3.50) V$191<br />

V$43<br />

To report the status of all schematic or symbol object checks, perform the<br />

following steps:<br />

1. Click an object the Symbol or Schematic Editor window on which you want<br />

to generate the status report.<br />

2. Execute the Report > Selected Object menu item. This menu item reports<br />

the status of all enabled categories for the schematic sheet or symbol in the<br />

active window. By default, the report generated is directed to a DA-<strong>IC</strong><br />

window, and a file named “da_report_file” in your current directory.<br />

To report the status of specified check types on a symbol or schematic sheet,<br />

perform the following steps:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Managing <strong>Design</strong>s Reporting on Objects<br />

1. Place the cursor in the Symbol or Schematic Editor window for the type of<br />

check status you want to report on, and click the center mouse button.<br />

2. Execute the Report > Specified Object menu item. A Report Object dialog<br />

box appears.<br />

3. Click the left mouse button on the buttons corresponding to the checks for<br />

which you want a status report—More than one check can be selected. By<br />

default, the Report generated is directed to a DA-<strong>IC</strong> window, and a file<br />

named “da_report_file” in your current directory.<br />

Click OK when check types are selected.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 9-17


Reporting on Objects Managing <strong>Design</strong>s<br />

9-18<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 10<br />

Troubleshooting<br />

Use the information in this chapter to determine how to correct problems when<br />

design components or processes do not behave as expected.<br />

No Response from DA-<strong>IC</strong> View<br />

If DA-<strong>IC</strong> View invokes, but will not crossprobe with DA-<strong>IC</strong>, DA-<strong>IC</strong> may be out<br />

of IPC ports.<br />

If multiple DA-<strong>IC</strong> sessions are running on one computer, DA-<strong>IC</strong> may run out of<br />

ports. To fix the problem, set the following environment variable to 100 or higher:<br />

MGC_DA_<strong>IC</strong>_PORT_SEARCH_DEPTH<br />

For more information on the IPC server, see the -NOipc option of the da_ic shell<br />

command in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

Cannot Invoke ADVance MS, Eldo,<br />

DA-<strong>IC</strong> View, or EldoNet<br />

The standard UNIX/Linux Xterm application is used by <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> to<br />

display netlisting and simulation results and must be present in your search path to<br />

invoke ADVance MS, Eldo, DA-<strong>IC</strong> View, and EldoNet.<br />

Set your $PATH environment variable to a valid installation of the Xterm<br />

application.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 10-1


Cannot Invoke ADVance MS, Eldo, DA-<strong>IC</strong> View, or EldoNet Troubleshooting<br />

10-2<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 11<br />

Editing in <strong>Design</strong> Context<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>) allows you to edit in the context of a design using<br />

design configurations.<br />

A design configuration consists of a viewpoint and a blank backannotation object<br />

for a specified downstream tool. By default, the design viewpoint and<br />

backannotation object assume the name of the downstream application it is<br />

created for. For example, a viewpoint created for AccuSim is named accusim.<br />

<strong>Design</strong> configurations allow you to merge changes from backannotation objects<br />

onto the source schematic and edit schematics in design context.<br />

The actual design viewpoint can only be edited with a tool called the <strong>Design</strong><br />

Viewpoint Editor-<strong>IC</strong>. For more information on design viewpoints, see<br />

<strong>Design</strong> Viewpoint Editor-<strong>IC</strong> User’s and Reference <strong>Manual</strong>.<br />

You can create/open a design configuration for the active schematic from the<br />

File > <strong>Design</strong> Configuration pulldown menu or by invoking simulation mode.<br />

Click Simulation on the schematic_edit palette menu to invoke simulation mode.<br />

In Simulation Mode<br />

When the simulation mode is invoked, DA-<strong>IC</strong> automatically saves the active<br />

design and creates and opens a design configuration for it. If a design<br />

configuration already exists, DA-<strong>IC</strong> opens it. By default, the design configuration<br />

is created for EldoNet and is named eldonet. You can specify which application to<br />

create a design configuration for from the Session scope with the Setup ><br />

Simulation Configuration option.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-1


Properties in the Context of a <strong>Design</strong> Editing in <strong>Design</strong> Context<br />

In simulation mode, editing in design context facilitates the design and simulation<br />

cycle by allowing you to make changes to the source schematic. The following<br />

editing functions are currently supported from simulation mode:<br />

11-2<br />

• Move and Copy<br />

• Add/Delete Wire<br />

• Add/Delete/Change Property<br />

• Add/Delete Instance<br />

• Flip, Rotate, and Connect<br />

Editing Function Blocks from simulation mode/design context is not supported.<br />

All Function Blocks must be “made” before entering simulation mode/design<br />

context.<br />

<strong>Design</strong> context functions the same whether invoked from File > <strong>Design</strong><br />

Configuration or by entering simulation mode.<br />

Properties in the Context of a <strong>Design</strong><br />

The following sections describe how to set the visibility of new backannotations,<br />

view properties, and add new properties in the context of a design.<br />

Setting New Annotation Visibility<br />

You can customize the visibility of new backannotated objects by creating a dofile<br />

that is called automatically when opening a schematic in the context of a design.<br />

Existing backannotations are not affected. The dofile must be named<br />

setup_new_ba_properties.dofile and contains calls to the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Properties in the Context of a <strong>Design</strong><br />

$set_new_annotation_visibility() function. DA-<strong>IC</strong> searches for the dofile in the<br />

following order, and uses the first occurrence of the file that it finds:<br />

1. $HOME/mgc_custom/da_ic/setup_new_ba_properties.dofile<br />

2. $MGC_HOME/mgc_custom/da_ic/setup_new_ba_properties.dofile<br />

3. $MGC_HOME/mgc_custom/new/da_ic/setup_new_ba_properties.dofile<br />

The following code block shows a sample listing of a<br />

setup_new_ba_properties.dofile:<br />

{ local original_mode = $set_transcript_mode(@off);<br />

$set_new_annotation_visibility(@visible, 'baprop1', 'baprop2');<br />

$set_new_annotation_visibility(@hidden, 'baprop3', 'baprop4');<br />

$set_transcript_mode(original_mode);}<br />

If the DES_ARCH_HIDE_BA_ONLY_PROPS environment variable is set to any<br />

value, the dofile overrides and hides all new backannotation properties.<br />

Adding Properties<br />

In design context, there are three commands that control whether properties are<br />

added to the schematic sheet or the backannotation object. The Set Edit Mode<br />

option controls whether schematic sheet edits are “on” or “off”; the Show<br />

Annotations option turns backannotations editing “on”, and the Hide Annotations<br />

option turns backannotation editing “off”.<br />

The combination of setting backannotations on/off and schematic sheet edits<br />

on/off controls where and how properties are added. Table 11-1 describes the four<br />

possible scenarios for adding properties.<br />

Table 11-1. Where Properties are Added<br />

Annotations On Annotations Off<br />

Edits On Adds properties to<br />

backannotation object.<br />

Edits Off Adds properties to<br />

backannotation object.<br />

Adds properties to<br />

schematic sheet.<br />

Cannot add properties.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-3


Properties in the Context of a <strong>Design</strong> Editing in <strong>Design</strong> Context<br />

11-4<br />

Note<br />

Viewing Annotations vs. Evaluations<br />

You can display property values on the schematic sheet in unevaluated or<br />

evaluated form with the Setup > Objects.... > <strong>Design</strong> Context >Evaluate<br />

Expression option.<br />

DA-<strong>IC</strong> uses design configuration rules defined in the design viewpoint to resolve<br />

and evaluate properties. For more information on property resolution rules, see<br />

“Rules for Resolving Property Value Variables” in Chapter 7 of this manual.<br />

You can set the properties to display from the backannotation object or on the<br />

source schematic sheet only with the Setup > Objects.... > <strong>Design</strong> Context ><br />

Show Annotations option. From simulation mode, you can display annotations<br />

with the Toggle option on the palette menu.<br />

Table 11-2 describes the four viewing options.<br />

Annotations<br />

On<br />

Annotations<br />

Off<br />

If you edit the schematic sheet in the context of a design, save your<br />

sheet before you change the edit mode to “off”.<br />

Table 11-2. Property Values Displayed<br />

Evaluations On Evaluations Off<br />

Displays evaluated properties<br />

from backannotation object<br />

and schematic sheet.<br />

Displays evaluated properties<br />

from schematic sheet.<br />

Displays unevaluated<br />

properties from<br />

backannotation object and<br />

schematic sheet.<br />

Displays unevaluated<br />

properties from schematic<br />

sheet.<br />

If you change or add a property value as an expression, you must execute the<br />

Miscellaneous > Property Settings > Recalculate Properties menu option to<br />

display the new property expression in its evaluated state.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Merging Backannotations to Schematic<br />

Merging Backannotations to Schematic<br />

You can merge backannotations into the schematic sheet when editing in the<br />

context of a design. When a design configuration is open with backannotations<br />

and schematic edits “on”, you can merge all backannotations displayed on the<br />

current schematic sheet with the Miscellaneous > <strong>Design</strong> Context > Merge<br />

Annotations > All menu item. From simulation mode, you can merge annotations<br />

with the Merge option on the palette menu.<br />

The Merge Annotations option replaces all the schematic sheet property values<br />

with the property values from the connected backannotation objects on the<br />

currently-viewed sheet. When the schematic sheet is saved, merged property<br />

values are removed from the backannotation object.<br />

If the property has a stability switch value that does not allow changes to the<br />

schematic sheet value, property values may not successfully merge.<br />

Backannotations for a symbol's fixed properties are stored in the viewpoint.<br />

!<br />

Caution<br />

If the schematic sheet is used in more than one place in your<br />

design, and you merge backannotations to that one sheet, all other<br />

components (that use this sheet) see the changes. Since all<br />

occurrences of the component see the changes, you should not<br />

merge to reusable sheets.<br />

Viewing Backannotations<br />

In the following example, a design configuration is opened in the context of a<br />

design viewpoint with the viewing of backannotations enabled. Next, a design<br />

configuration in the same viewpoint is opened on another instance with<br />

backannotations enabled. The purpose of this example is to show how to enable<br />

and disable the viewing of backannotations in the context of a design viewpoint in<br />

DA-<strong>IC</strong>. You can also see the relationship between identical sheets used in<br />

multiple instances.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-5


Viewing Backannotations Editing in <strong>Design</strong> Context<br />

For this example, assume that you have the following:<br />

11-6<br />

• A design named “my_design” with two 74161 instances, and with instance<br />

handles I$1 and I$2; see Figure 11-1.<br />

my_design(<strong>Design</strong> Context)<br />

74161 74161<br />

I$1<br />

Instance handles<br />

Figure 11-1. “my_design” <strong>Design</strong><br />

• A design viewpoint called “default,” which is associated with my_design.<br />

• A backannotation object called “default” connected to the viewpoint called<br />

“default”. Version 1 of the backannotation object displays in the <strong>Design</strong><br />

Viewpoint Editor-<strong>IC</strong> window, as shown in Figure 11-2.<br />

I$2<br />

Back Annotation: default<br />

Instance Pathname (Property Name, Property Value)<br />

/I$1/I$3 (phy_comp, “U1")<br />

/I$2/I$3 (phy_comp, “U2")<br />

Pin Pathname (Property Name, Property Value)<br />

Net Pathname (Property Name, Property Value)<br />

Figure 11-2. “default” Backannotation Window<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Viewing Backannotations<br />

Assume that you use DA-<strong>IC</strong> to open my_design in the “context of a design<br />

viewpoint,” as follows:<br />

From the session scope of DA-<strong>IC</strong>, choose the File > <strong>Design</strong> Configuration ><br />

Open menu item. Navigate to my_design, and choose Open as Editable. Click<br />

OK.<br />

By default, both the viewing of backannotations and the evaluation of parameters<br />

are enabled, as shown in Figure 11-1. As mentioned previously, and in the next<br />

examples, the viewing of backannotations and the evaluation of parameters are<br />

initially turned off.<br />

To view the sheet under the I$1 instance, select the instance and enter the Open<br />

Down command. A new window displays the schematic sheet for 74161 with<br />

instance handle I$1 in the context of the “default” design viewpoint.<br />

For more information about design configuration rules, see the<br />

<strong>Design</strong> Viewpoint Editor-<strong>IC</strong> <strong>User's</strong> and Reference <strong>Manual</strong>. Remember that the<br />

backannotation object is connected. The “74161” window for I$1 is shown in<br />

Figure 11-3.<br />

Schematic#2 74161<br />

I$3 I$4<br />

A1 A2<br />

phy_comp properties<br />

Figure 11-3. “default: I$1” Window<br />

The schematic sheet of instance I$1 has two symbols, I$3 and I$4, both of which<br />

have a property named “phy_comp”. Because backannotations are not currently<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-7


Viewing Backannotations Editing in <strong>Design</strong> Context<br />

being viewed, the property values in the design view of the sheet are A1 and A2,<br />

which are the same values as the source schematic sheet.<br />

The first line in the “default” backannotation window shows that the instance<br />

“I$1/I$3” has a “phy_comp” property whose backannotation property value is<br />

“U1”. When you display backannotations with the Show Annotations command,<br />

the phy_comp property value for instance I$1/I$3 changes from “A1” to “U1”, as<br />

shown in Figure 11-4. Turning on backannotations does not change the phy_comp<br />

property value on the schematic sheet, which is still “A1”.<br />

11-8<br />

Schematic#2 74161<br />

I$3 I$4<br />

U1 A2<br />

phy_comp properties<br />

Figure 11-4. “default: I$1” Window with Backannotations<br />

To turn off the display of backannotation values, use the Hide Annotations<br />

command.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Viewing Backannotations<br />

If you specify instance handle I$2 of “my_design” and Open Down to component<br />

74161, a window displays the schematic sheet for the 74161, that is, I$2 in the<br />

context of the “default” design viewpoint. In the view of I$2, shown in Figure<br />

11-5, notice it is identical to I$1, and that backannotations are not displayed and<br />

evaluation is disabled.<br />

Schematic#2 74161<br />

I$3 I$4<br />

A1 A2<br />

phy_comp properties<br />

Figure 11-5. “default: I$2” Window<br />

The second line in the “my_ba” backannotation window defines that the instance<br />

“I$2/I$3” has a “phy_comp” property, whose backannotation property value is<br />

“U2”. When you turn on the display of backannotations, the “phy_comp” property<br />

value for instance I$2/I$3 changes from “A1” to “U2”; see Figure 11-6.<br />

Schematic#2 74161<br />

I$3 I$4<br />

U2 A2<br />

phy_comp properties<br />

Figure 11-6. “default: I$2” Window with Backannotations<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-9


Evaluating Properties Editing in <strong>Design</strong> Context<br />

The 74161 component instance I$3 is referenced with two unique properties in the<br />

context of “default” viewpoint for the same reusable component. Because the<br />

74161 component is reused in the design, merging the backannotations to the<br />

schematic sheet gives only the current-viewable property value to the schematic<br />

sheet.<br />

Evaluating Properties<br />

In the next example, a design configuration is opened in DA-<strong>IC</strong> with the<br />

evaluation of property values and the viewing of backannotations disabled to<br />

show the schematic sheet property values. Property evaluation is then enabled to<br />

show the property values resulting from applying the design viewpoint parameters<br />

and hierarchy to the schematic sheet properties. Next, the display of<br />

backannotations is enabled. This example illustrates the concept of the evaluation<br />

and resolution of property values with respect to backannotations.<br />

While editing in the context of a design, you can set the evaluation property values<br />

to be either “on” or “off” with the Setup > Objects... > Evaluate Expressions<br />

menu option. If “on” is specified, all property values are evaluated; if “off” is<br />

specified, property values display unevaluated.<br />

For the example shown in Figure 11-7, the “my_design” design configuration has<br />

a property named COMP whose value is 74161, and the phy_comp source<br />

property value for I$1/I$4 was changed to “$strcat(COMP, '_U2')”.<br />

11-10<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Evaluating Properties<br />

my_design(<strong>Design</strong> Context)<br />

I$1<br />

COMP properties<br />

74161 74161<br />

Figure 11-7. “my_design” <strong>Design</strong> Configuration with COMP<br />

Property<br />

From <strong>Design</strong> Viewpoint Editor-<strong>IC</strong>, the “default” backannotation object has a new<br />

phy_comp property value defined for I$1/I$4, as shown in Figure 11-8.<br />

Figure 11-8. “default” Backannotation Window with I$1/I$4<br />

If you specify instance handle I$1 in the Open <strong>Design</strong> Sheet command, a window<br />

displays the schematic view of the sheet for the 74161; that is, I$1 in the context<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-11<br />

I$2<br />

Back Annotation: default_1<br />

Instance Pathname (Property Name, Property Value)<br />

/I$1/I$3 (phy_comp, “U1")<br />

/I$2/I$3 (phy_comp, “U2")<br />

/I$1/I$4 (phy_comp, “MIL5")<br />

Pin Pathname (Property Name, Property Value)<br />

Net Pathname (Property Name, Property Value)


Evaluating Properties Editing in <strong>Design</strong> Context<br />

of the “default” design viewpoint. Notice in Figure 11-9 that backannotations do<br />

not display and evaluation is disabled.<br />

11-12<br />

Schematic#2 74161<br />

I$3 I$4<br />

A1 $strcat(COMP, '_U2')<br />

phy_comp properties<br />

Figure 11-9. “default” with Expression<br />

If evaluation is enabled using the Set Evaluations command, or from the Setup ><br />

objects... dialog box, the displayed phy_comp property value for I$1/I$4 changes<br />

to “74161_U2”, shown in Figure 11-10.<br />

Schematic#2 74161<br />

I$3 I$4<br />

A1 74161_U2<br />

phy_comp properties<br />

Figure 11-10. “default” with Expression Evaluated<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Expressions in Backannotation Objects<br />

If you enable backannotations, the displayed phy_comp property value for I$1/I$4<br />

changes to the value specified in the connected backannotation object, “MIL5”,<br />

regardless of the evaluation setting, shown in Figure 11-11.<br />

Schematic#2 74161<br />

I$3 I$4<br />

U1 MIL5<br />

phy_comp properties<br />

Figure 11-11. “default” with Backannotations Enabled<br />

Expressions in Backannotation Objects<br />

You can also place expressions in backannotation objects. In this situation, the<br />

display setting of the evaluation and backannotations is important. If you display<br />

backannotations when evaluation is disabled, the unevaluated property value in<br />

the backannotated property displays. If evaluation and backannotations are<br />

enabled, the evaluated backannotation value displays.<br />

In the next example, a design configuration is opened in DA-<strong>IC</strong> with evaluation of<br />

property values and viewing of backannotations disabled to show the schematic<br />

sheet property values. The display of backannotations is then enabled to show the<br />

unevaluated value of the backannotated property. Next, property evaluation is<br />

enabled to show the resulting property value.<br />

In the next example, the backannotation object is modified to use an expression<br />

for the I$1/I$4 phy_comp property value, as shown from <strong>Design</strong> Viewpoint<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-13


Expressions in Backannotation Objects Editing in <strong>Design</strong> Context<br />

Editor-<strong>IC</strong> in Figure 11-12. Assume that the “my_design” is the same as Figure<br />

11-7.<br />

11-14<br />

Back Annotation: default_1<br />

Instance Pathname (Property Name, Property Value)<br />

/I$1/I$3 (phy_comp, “U1")<br />

/I$2/I$3 (phy_comp, “U2")<br />

/I$1/I$4 (phy_comp,$strcat(COMP,‘_ref’)<br />

Pin Pathname (Property Name, Property Value)<br />

Net Pathname (Property Name, Property Value)<br />

Figure 11-12. “default” Backannotation Window with Expression<br />

Before backannotations display, the sheet appears as shown in Figure 11-13, with<br />

the phy_comp property values of A1 and A2.<br />

Schematic#2 74161<br />

I$3 I$4<br />

A1 A2<br />

phy_comp properties<br />

Figure 11-13. “default: I$1” Window<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Expressions in Backannotation Objects<br />

When backannotations display without evaluation, the I$1/I$3 phy_comp<br />

property value changes to “U1”, and the I$1/I$4 phy_comp property value<br />

changes to “$strcat(COMP, '_ref')”, as shown in Figure 11-14.<br />

Schematic#2 74161<br />

I$3 I$4<br />

U1 $strcat(COMP, '_ref')<br />

phy_comp properties<br />

Figure 11-14. “default” with Backannotation Expression<br />

After evaluation is enabled with the Set Evaluations command or from the Setup><br />

Objects... dialog box, the I$1/I$4 phy_comp property value changes to<br />

“74161_ref”, as shown in Figure 11-15.<br />

Schematic#2 74161<br />

I$3 I$4<br />

U1 74161_ref<br />

phy_comp properties<br />

Figure 11-15. “default” with Backannotation Expression Evaluated<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-15


Applying Edits to the “In-Memory” <strong>Design</strong> Editing in <strong>Design</strong> Context<br />

Applying Edits to the “In-Memory”<br />

<strong>Design</strong><br />

When you open a design configuration from DA-<strong>IC</strong> and turn annotations on, you<br />

can edit both the annotations and the source schematic at the same time.<br />

Assume, for example, that you graphically add a hierarchical instance to the root<br />

sheet while you are editing in the context of a design viewpoint. Before you can<br />

Open Down into this new hierarchical instance, you must apply this edit to the<br />

image of the design data that is in memory with the File > Apply Edits menu<br />

option.<br />

Apply Edits option updates the in-memory design, so you can see the effects of<br />

your edits without updating the sheets that are saved on disk.<br />

An ampersand “&” displays in the banner of the Schematic window, as shown in<br />

Figure 11-16 to indicate there are edits which have not yet been applied to the inmemory<br />

design.<br />

11-16<br />

Apply Edits needed<br />

my_design(<strong>Design</strong> Context)&<br />

COMP properties<br />

Figure 11-16. “&” In the Schematic Window<br />

After you choose the File > Apply Edits pulldown menu, the “&” disappears.<br />

When Objects are Deleted<br />

Sometimes, during the course of editing a design, an object (for example, an<br />

instance) is deleted and replaced by another instance. If the original instance owns<br />

one or more properties that are backannotated through a backannotation object,<br />

the backannotations become unattached. DA-<strong>IC</strong> allows you to check and report<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Opening Non-Existent Schematics and Components<br />

unattached annotations, and either reattach them to current objects, or delete them<br />

from the design.<br />

Opening Non-Existent Schematics and<br />

Components<br />

DA-<strong>IC</strong> can create a sheet in a new schematic inside an existing component that is<br />

opened in the context of a design viewpoint. For example, assume that you use<br />

DA-<strong>IC</strong> to open a schematic in the context of a design viewpoint, and the<br />

schematic has an instance of a component that contains only a symbol. If you open<br />

down on the instance, DA-<strong>IC</strong> creates a new (blank) schematic sheet for you. You<br />

can then edit, check, and save the sheet from the context of the design viewpoint.<br />

You can also create a sheet in a new schematic inside a new component. You can<br />

open the new sheet as a design sheet.<br />

Opening/Creating a <strong>Design</strong> Configuration<br />

Under the File > <strong>Design</strong> Configuration... menu select one of the three available<br />

options: Create, Open, and Close.<br />

• Create a <strong>Design</strong> Configuration allows you to create and set a viewpoint<br />

using the Mentor Graphic tools relevant to an <strong>IC</strong> design. Enter the<br />

Component Name in the text field or use the Navigator button to select the<br />

component, then select the design configuration from the list displayed in<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-17


Opening Non-Existent Schematics and Components Editing in <strong>Design</strong> Context<br />

11-18<br />

the dialog box. Refer to Figure 11-17.<br />

Component Name card_reader<br />

OK<br />

Create <strong>Design</strong> Configuration<br />

Setup Configuration For:<br />

Continuum_ModelSim<br />

Continuum<br />

AccuSim<br />

<strong>IC</strong>_Station_SDL_Flat<br />

<strong>IC</strong>_Station_SDL_Hier<br />

QSPro<br />

SP<strong>IC</strong>E_Netlister<br />

VHDL_Netlister<br />

Reset<br />

Cancel<br />

Navigator...<br />

Figure 11-17. Create <strong>Design</strong> Configuration Dialog Box<br />

• Open a <strong>Design</strong> Configuration [F3] allows you to select a pre-existing<br />

viewpoint where DA-<strong>IC</strong> opens the top level schematic/sheet1 in the context<br />

of the Choose from Available <strong>Design</strong> Types option viewpoint, or opens a<br />

predefined viewpoint automatically. Refer to Figure 11-18.<br />

Help<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Opening Non-Existent Schematics and Components<br />

Component Name card_reader<br />

Open <strong>Design</strong> Configuration<br />

Choose from Available <strong>Design</strong> Configurations<br />

Open as: Editable Read Only Options...<br />

Open Schematic from Hierarchy Window? Yes No<br />

OK<br />

Reset<br />

Cancel<br />

Navigator...<br />

Figure 11-18. Open <strong>Design</strong> Configuration Dialog Box<br />

Also, from the expanded Open <strong>Design</strong> Configuration dialog box, you can<br />

open the sheet as Editable or Read Only, and enter a startup filename that<br />

can execute internal state functions for setup purposes.<br />

Selecting the Options button displays the Open <strong>Design</strong> Configuration<br />

Options dialog box where you select the Available Top Layer Sheets in<br />

your design, and set the Auto Update Mode. The Auto Update Mode<br />

specifies whether instances should be updated when the sheet is opened,<br />

and if so, how the properties are merged. Click the stepper button to choose<br />

between the following:<br />

• Auto: Instance-only and Value_Modified properties are not changed;<br />

new properties on the current symbol are added to the instance.<br />

• No Auto Update: When the sheet is opened, out-of-date instances are<br />

not updated.<br />

• Clear: Instance-only properties are deleted; all other properties are<br />

reset to the current symbol values.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-19<br />

Help


Opening Non-Existent Schematics and Components Editing in <strong>Design</strong> Context<br />

11-20<br />

Control the visibility of existing properties by using a startup file when<br />

opening a schematic. Enter the file pathname in the Startup Field Path text<br />

entry field in the Open <strong>Design</strong> Configuration Options dialog box. After the<br />

argument selections are complete, press OK in the Options dialog box and<br />

in the Open <strong>Design</strong> Configuration dialog box.<br />

For more information about how properties are updated, refer to “Updating<br />

Properties on an Instance” in Chapter 7.<br />

Creating Backannotations<br />

To create backannotations, perform the following steps:<br />

1. Create a new “<strong>Design</strong> Context” using File > <strong>Design</strong> Configuration ><br />

Create menu item. The Create <strong>Design</strong> Configuration menu displays as in<br />

Figure 11-17.<br />

2. Type the name of the design in the Component Name text field, or use the<br />

Navigator tool to select the component.<br />

3. Select the simulation configuration you desire from the “Setup<br />

Configuration For:” list displayed.<br />

4. Click OK.<br />

DA-<strong>IC</strong> displays the selected component design in <strong>Design</strong> Context, and you may<br />

begin your backannotation changes as desired.<br />

Editing Backannotations<br />

To edit backannotations, perform the following steps:<br />

1. Open an existing configuration in “<strong>Design</strong> Context” using File > <strong>Design</strong><br />

Configuration > Open menu item. The Open <strong>Design</strong> Configuration menu<br />

displays as in Figure 11-18.<br />

2. Type the name of the design in the Component Name text field, or use the<br />

Navigator tool to select the component.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Opening Non-Existent Schematics and Components<br />

3. Click the “Choose from Available <strong>Design</strong> Configurations” box. The<br />

Choose <strong>Design</strong> Configuration dialog box appears displaying all available<br />

simulation configurations.<br />

a. Select the simulation configuration you desire.<br />

b. Click OK.<br />

4. Select Open as Editable or Read Only as desired.<br />

5. Enable “Open Schematic from Hierarchy Window?” choosing Yes or No as<br />

desired.<br />

6. Choose the Options button to display the Open <strong>Design</strong> Configuration<br />

Options dialog box.<br />

a. Select from the displayed “Available Top Level Sheets:” as desired, if<br />

additional sheets exist.<br />

b. Select “Open Existing Sheet” or “Create New Sheet”.<br />

c. Select Auto, None, or Clear options for the “Auto Update Mode:”<br />

d. Type a Startup File Path, accept the default path displayed, or use the<br />

Navigator to select the Startup File desired.<br />

e. Click OK to close the Open <strong>Design</strong> Configuration Options window.<br />

7. Click OK to display an existing <strong>Design</strong> Configuration.<br />

8. Edit design as required.<br />

Viewing Evaluated Properties<br />

To view evaluated properties on your design sheet, perform the following steps:<br />

1. With the cursor in the design sheet window, click the center mouse button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-21


Opening Non-Existent Schematics and Components Editing in <strong>Design</strong> Context<br />

11-22<br />

2. Type “set evaluations” in the window area. The Set Evaluations prompt bar<br />

displays. Click the up arrow until the “Mode” is set to “on”.<br />

With evaluations on, all properties display “evaluated”.<br />

Merging Backannotations<br />

When a design configuration is open, with backannotations displayed and<br />

schematic edits “on”, you can merge all backannotations shown on the current<br />

schematic sheet. To merge backannotation to the schematic sheet, perform the<br />

following steps:<br />

1. Place the cursor in design sheet window and click the center mouse button.<br />

Turn on the display of backannotations.<br />

2. Open a design in <strong>Design</strong> Context, and verify the Display of<br />

backannotations is enabled using the Setup > Objects > [<strong>Design</strong> Context]<br />

Display Backannotations On.<br />

3. In the design, select the Miscellaneous > <strong>Design</strong> Context ><br />

Merge Annotations menu item. This menu item merges all viewable<br />

backannotation properties to the schematic sheet.<br />

After this menu item is executed, and if you decide to save the sheet, the<br />

backannotation objects will no longer contain the property values that were<br />

successfully merged into the schematic sheet.<br />

!<br />

Caution<br />

If the schematic sheet is used in more than one place in your<br />

design, when you merge backannotations to that one sheet, all<br />

other components (that use the sheet) see the changes. Since all<br />

occurrences of the component see the changes, you should not<br />

merge to reusable sheets.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Editing in <strong>Design</strong> Context Opening Non-Existent Schematics and Components<br />

Locking Schematic Sheet for Edits<br />

To lock a schematic sheet for edits, perform the following steps:<br />

1. In the schematic sheet window, click the left mouse button on the parent<br />

instance for the schematic sheet you want to lock for editing.<br />

2. Add the property name “Source_edit_allowed” with the property value<br />

“false” to the instance. Changing source_edit_allowed property value to<br />

“true” unlocks the schematic sheet below the parent instance for editing.<br />

For more information, see “Adding Properties” in this chapter.<br />

Opening a Non-Existent Schematic in <strong>Design</strong> Context<br />

DA-<strong>IC</strong> has the ability to create a sheet in a new schematic inside an existing<br />

component which is opened as a design sheet. For example, assume that you use<br />

DA-<strong>IC</strong> to open a schematic in the context of a design viewpoint and that the<br />

schematic has an instance of a component that contains only a symbol. If you open<br />

down (on) the instance, DA-<strong>IC</strong> will create a new (blank) schematic sheet for you.<br />

You can then edit the sheet, then check and save the sheet - all without leaving the<br />

context of the design viewpoint.<br />

Opening a Non-Existent Component in <strong>Design</strong> Context<br />

DA-<strong>IC</strong> also has the ability to create a sheet in a new schematic inside a new<br />

component that can be opened as a design sheet. The general procedure is as<br />

follows:<br />

1. In the DA-<strong>IC</strong> session_palette click the [Open] Schematic item.<br />

2. Enter the new schematic name in the Component name text field.<br />

3. Select Editable in the Open as: box.<br />

4. Click on the Options... button. The Open Schematic Option dialog box<br />

displays.<br />

a. Choose New Sheet for the non-existent component.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 11-23


Opening Non-Existent Schematics and Components Editing in <strong>Design</strong> Context<br />

11-24<br />

b. Verify or change the Schematic Name.<br />

c. Verify or change the Sheet Name.<br />

d. Verify or change the Startup File Path.<br />

e. Click OK.<br />

5. Click OK in the Open Schematic dialog box.<br />

DA-<strong>IC</strong> creates all the new design objects from the ground up: the new component,<br />

the new component interface, the new schematic, the new sheet and the new<br />

design viewpoint. A new design context window is then opened on the new<br />

(blank) schematic sheet and ready for your edits.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 12<br />

Function Block Concepts<br />

Function Blocks allow you to create and reuse hierarchical design components<br />

from within a schematic. Function Blocks are created with the Schematic Editor<br />

and can consist of a schematic design as well as symbols. Once created, the<br />

Function Block can be instantiated on other design sheets and schematics.<br />

Function Blocks support both top-down and bottom-up design methodologies. For<br />

procedures to create Function Blocks, see Chapter 3.<br />

!<br />

Caution<br />

Do not edit Function Blocks in simulation mode or design context.<br />

Use the Schematic Editor only to create or edit Function Blocks.<br />

All Function Blocks must be “made” before you invoke simulation<br />

mode or design context.<br />

Function Block Objects<br />

Function Blocks consist of three user-created objects, as follows:<br />

• FB Definition - A defined schematic area that contains editable electrical<br />

circuitry. The FB Definition serves as the basis for the FB Instance, Made<br />

FB Definition, and Made FB Instance.<br />

• FB Instance - An existing FB Definition’s instantiated copy. An FB<br />

Instance is not a symbol instance. A sheet that contains an FB Instance must<br />

contain exactly one parent FB Definition within the design.<br />

• Made FB Definition or Made FB Instance - A hierarchical symbol object<br />

converted from an existing FB Definition or FB Instance.<br />

Figure 12-1 shows an FB Definition being reused as an FB Instance throughout a<br />

design.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-1


12-2<br />

mux<br />

Schematic #1 source1 sheet1<br />

FB Instance<br />

FB Definition<br />

Schematic#1 source1 sheet1<br />

Function Block Concepts<br />

Figure 12-1. FB Definition and FB Instance Usage Model<br />

FB Instances are instantiated and then electrical connectivity is constructed.<br />

Subsequently, the FB Instances and, in some cases, the FB Definition, are<br />

converted or “made” into hierarchical Made Function Blocks.<br />

Function Block Development States<br />

mux<br />

FB Instances are<br />

exact electrical copies<br />

of the parent FB Definition<br />

Schematic #1 source1 sheet1<br />

A Function Block object exists in one of two (possible) development states: made<br />

or unmade.<br />

mux<br />

mux<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10<br />

mux<br />

mux<br />

FB Instances


Function Block Concepts<br />

• Made - The Function Block object is a standard symbol instance converted<br />

from an FB Definition or FB Instance.<br />

• Unmade - The Function Block object is an editable and resizable FB<br />

Definition or FB Instance.<br />

A made or unmade state defines the Function Block object at a specific<br />

development phase.<br />

Terminology<br />

Table 12-1 lists the Function Block-specific term used in this document.<br />

Table 12-1. Function Block Terminology<br />

Function Block Term Definition<br />

symbol instance A standard <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> symbol<br />

instance.<br />

FB Definition An unmade Function Block Definition.<br />

FB Instance An unmade Function Block Instance.<br />

Made FB Definition a A symbol instance converted from an<br />

unmade connected FB Definition, and<br />

connected to at least one net.<br />

Comment graphics converted from an<br />

unmade unconnected FB Definition.<br />

Made FB Instance A symbol instance converted from an<br />

unmade FB Definition of an FB Instance.<br />

a. Note: The Made FB Definition can be in either form depending on whether it is connected or unconnected.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-3


Unmade Function Blocks Function Block Concepts<br />

Understanding Function Block Properties<br />

Table 12-2 lists unique Function Block properties.<br />

Unmade Function Blocks<br />

In this state, FB Definitions and FB Instances are unmade Function Block objects.<br />

The FB Definitions and FB Instances can be edited and manipulated because they<br />

are not yet symbol instances.<br />

FB Definition<br />

12-4<br />

Table 12-2. Function Block Properties<br />

Property Value Definition<br />

FB_DEF UNCONNECTED A string property that identifies an<br />

unconnected Made FB Definition.<br />

FB_INST Optional - A user-specified string property<br />

representing the future instance name of the<br />

FB Definition or FB Instance.<br />

This property can be used for arrayed FB<br />

Instances. For example: “RAM_INST[15:0]”.<br />

FB_NAME Required - A string property that represents<br />

the name of the FB Definition or FB Instance.<br />

The FB Definition is the source object for the FB Instances, Made FB Definitions,<br />

and Made FB Instances. Figure 12-2 shows objects that enclose editable electrical<br />

circuitry. FB Definitions are named, rectangularly-shaped, schematic sheet<br />

objects enclosing editable electrical circuitry.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Unmade Function Blocks<br />

FB_NAME Property<br />

Schematic#1 source1 sheet1<br />

mux<br />

FB Pins (I/O ports)<br />

mux_1<br />

Figure 12-2. FB Definition<br />

FB Definitions are composed of the following elements:<br />

FB_INST Property<br />

Boundary<br />

• FB Definition Boundary - A user-specified sheet area that envelopes<br />

electrical circuitry. With the exception of Passthru Nets and Flythru Nets,<br />

the FB Definition contains all objects within the rectangular boundary.<br />

• FB_NAME Property - A required string property that identifies an FB<br />

Definition.<br />

• FB_INST Property - An optional, user-specified string property that<br />

identifies the future instance name of the Made FB Definition. Arrayed FB<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-5


Unmade Function Blocks Function Block Concepts<br />

12-6<br />

Instances are formed this way using the FB_INST property. Example:<br />

“RAM_INST[15:0]”.<br />

• FB Pins - Unique pin objects placed on an FB Definition’s boundary. The<br />

FB Pins serve as electrical connectivity ports into and out of the FB<br />

Definition.<br />

Normally, an FB Definition is created first because the FB Instance, Made FB<br />

Definition, and Made FB Instance are based on the FB Definition. For additional<br />

information, refer to the “Usage Paradigm” section in this chapter.<br />

FB Instance<br />

Figure 12-3 shows that an FB Inst is a comment rectangle.<br />

FB_NAME Property FB_INST Property<br />

Schematic #1 source1 sheet1<br />

mux mux_2<br />

FB Pins (I/O ports)<br />

Figure 12-3. FB Instance<br />

Boundary<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Unmade Function Blocks<br />

The FB Instance is an instantiation of an FB Definition. Unlike the FB Definition,<br />

the FB Instance does not contain any visible circuitry, but is the FB Definition’s<br />

electrical equivalent.<br />

Note<br />

An FB Instance must have a corresponding FB Definition located<br />

on the same sheet or on a different sheet within the schematic. If<br />

the source FB Definition is on a different sheet, then it must be<br />

converted to a Made FB Definition prior to checking the<br />

schematic.<br />

FB Instances incorporate the following elements:<br />

• FB Instance Boundary - A comment rectangle. Passthru Nets and Flythru<br />

Nets do not apply to FB Instances.<br />

• FB_NAME Property - A required string property. The property indicates<br />

which FB Definition the FB Instance is based upon.<br />

• FB_INST Property - An optional, user-specified string property that<br />

identifies the future Made FB Instance’s name. Arrayed FB Instances are<br />

formed using this property. For example, “RAM_INST[15:0]”.<br />

o Usage: If an FB Instance is created from an FB Definition that contains<br />

a defined FB_INST property. Then the FB_INST property, on the<br />

newly-created FB Instance object, must be changed to a unique name to<br />

avoid errors when checking Function Blocks.<br />

• FB Pins - Unique pin objects that are placed on an FB Instance’s boundary<br />

and serve as input/output ports for electrical connectivity into and out of the<br />

FB Instance. After the FB Instance is created, these pins must be added.<br />

The circuit designer can parameterize and array FB Instances exactly as<br />

traditional symbol-based instances. Refer to the “Usage Paradigm” section in this<br />

chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-7


Unmade Function Blocks Function Block Concepts<br />

FB Pins<br />

FB Pins create electrical connectivity into and out of an FB Definition or FB<br />

Instance, and each FB Definition or FB Instance must have at least one FB pin.<br />

Once placed on an unmade FB Definition or FB Instance, the FB Pins can be<br />

selected, moved, deleted, or copied. However, the FB Pins are only positioned on<br />

the FB Definition’s or FB Instance’s boundary.<br />

There are two FB Pin types available: FB Definition Pins and FB Instance Pins.<br />

12-8<br />

Note<br />

FB Pins are placed on the top, bottom, or left and right sides of an<br />

FB Definition or FB Instance.<br />

• FB Definition Pins: FB Definitions use magenta-colored pins exclusively<br />

in DA-<strong>IC</strong>. The pins have two connections to accommodate nets.<br />

Figure 12-4. FB Definition Pin<br />

o Pin Names: FB Definition Pins are not named explicitly. When the FB<br />

Definition is converted to a Made FB Definition, these pins assume the<br />

inside net’s name. If the inner net is not named, then, when converted,<br />

the FB Pin is automatically named based on the inside net’s handle<br />

name.<br />

o If a wide net is connected to an inside net, using the appropriate bus or<br />

bundle syntax, then the connected FB Definition Pin is wide and<br />

matches the connected wide net’s width.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Made Function Blocks<br />

• FB Instance Pins: These pins are exclusively associated with FB Instances,<br />

and they are represented by a diamond-shaped pin instance that contains a<br />

single pin.<br />

Note<br />

Figure 12-5. FB Inst Pin<br />

When the FB Pin is added, the FB Pin type placed on an FB Definition, or FB<br />

Instance boundary, is automatically selected.<br />

Made Function Blocks<br />

A Made FB Definition or a Made FB Instance is a hierarchical symbol instance<br />

converted from an FB Definition or FB Instance, as shown in Figure 12-6.<br />

!<br />

Caution<br />

Since an FB Instance is a representation of an existing FB<br />

Definition, the FB Instance Pins on all four sides must correspond to<br />

the FB Definition’s pins.<br />

Prior to creating a Made FB Definition or Made FB Instance, an<br />

FB Definition’s or FB Instance’s external and internal electrical<br />

connectivity must be established. For more information, refer to<br />

the “FB Definition and FB Instance Net Constructs” section in this<br />

chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-9


Made Function Blocks Function Block Concepts<br />

12-10<br />

IN_1<br />

IN_2<br />

IN_3<br />

Schematic#1 source1 sheet1<br />

mux mux_1<br />

Figure 12-6. Made FB Definition<br />

OUT_1<br />

The Made FB Definition and Made FB Instance<br />

Creation Operation<br />

The Make Function Block operation creates a Made FB Definition or Made FB<br />

Instance from an FB Definition or FB Instance. The resultant object’s creation<br />

(how it is created) depends on whether the operation is performed on an FB<br />

Definition or FB Instance.<br />

1. Made FB Definition: When FB Definitions are made, the circuitry within<br />

the FB Definition’s comment rectangle moves to a new, underlying<br />

schematic. A new symbol is also generated from the circuitry that<br />

represents the underlying schematic containing the circuitry’s outline. This<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

newly-generated symbol replaces the comment rectangle and enclosed<br />

circuitry.<br />

Note<br />

If the FB Definition does not have nets connected to its pins, then<br />

its converted Made FB Definition changes to comment graphics.<br />

The resulting Made FB Definition’s pin names use the net names attached<br />

to the FB Definition’s inner pins. If these nets are unnamed, then the net’s<br />

handle is used to generate pin names. For example, if a pre-transformed FB<br />

Definition pin is connected to net “N$5” inside the FB Definition’s<br />

boundary, then the Made FB Definition’s pin name is “N_5”.<br />

2. Made FB Instance: When FB Instances are converted, the FB Instance’s<br />

comment rectangle is used to generate the Made FB Instance that represents<br />

the FB Definition's underlying schematic. During the operation, the FB<br />

Instance’s pins are checked to see if they match the FB Definition’s pins.<br />

Each FB Instance side must contain an identical number of pins on the FB<br />

Definition’s corresponding side. When this is true, the FB Instance’s pins<br />

are named to match the FB Definition’s pins. If the pins do not match, the<br />

operation issues an error message and terminates.<br />

Usage Paradigm<br />

At the most rudimentary level, a single FB Definition is created and then reused as<br />

an FB Instance throughout the schematic’s sheet, as shown in Figure 12-1. Once<br />

electrical connectivity is created within the sheet, the FB Definitions and FB<br />

Instances are converted into Made FB Definitions and Made FB Instances,<br />

respectively. The next section describes two usage models recommended for this<br />

implementation:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-11


Usage Paradigm Function Block Concepts<br />

Models<br />

12-12<br />

1. Unconnected FB Definition Usage Model - The usage model illustrated in<br />

Figure 12-7 is the most efficient.<br />

FB Definition<br />

mux<br />

I_01<br />

I_04<br />

I_07<br />

I_10<br />

I_02<br />

I_03<br />

I_05<br />

I_06<br />

I_08<br />

I_09<br />

I_11<br />

I_12<br />

FB Instances<br />

OUT_3<br />

Figure 12-7. Unconnected FB Definition Usage Model<br />

Create an FB Definition, then FB Instances (based on the FB Definition)<br />

are created with the Function Block popup menu (Figure 12-8) or the<br />

$create_fb_inst_from_def() function.<br />

mux<br />

mux<br />

mux<br />

mux<br />

OUT_1<br />

OUT_2<br />

OUT_4<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

Function Block<br />

Other Menus<br />

Unselect All<br />

Move [a-MMB]<br />

Copy [c-MMB]<br />

Delete<br />

Undo<br />

Redo<br />

Properties<br />

Add FB Pins<br />

Make Function Block<br />

Unmake Function Block<br />

Convert Function Block<br />

Resize<br />

Align<br />

Instance to Definition<br />

Create Instance from Definition<br />

Figure 12-8. The Function Block Popup Menu<br />

The FB Instances are instantiated throughout the schematic sheet or design,<br />

and establish the FB Instances’ electrical connectivity. However, the FB<br />

Definition is not wired into the schematic.<br />

When transformed into a Made FB Definition, the unconnected FB<br />

Definition is converted into a comment graphic, and does not appear in a<br />

design’s netlist.<br />

2. Connected FB Definition Usage Model - Alternatively, an FB Definition<br />

is created and wired into the schematic, as demonstrated in Figure 12-9.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-13


Usage Paradigm Function Block Concepts<br />

12-14<br />

I_01<br />

I_04<br />

I_07<br />

I_10<br />

I_02<br />

I_03<br />

I_05<br />

I_06<br />

I_08<br />

I_09<br />

I_11<br />

I_12<br />

FB Definition<br />

mux<br />

mux<br />

mux<br />

mux<br />

OUT_1<br />

OUT_2<br />

OUT_3<br />

OUT_4<br />

FB Instances<br />

Figure 12-9. Connected FB Definition Usage Model<br />

During conversion into a Made FB Definition, the FB Definition converts<br />

to a Made FB Definition “in place”. The Made FB Definition is a symbol<br />

that represents the underlying schematic. In this case, the Made FB<br />

Definition becomes an electrical part of the design, and is netlisted along<br />

with the other Made FB Instances. To edit the Made FB Definition, convert<br />

the object back to an FB Definition, apply the edits, and then “re-make” the<br />

FB Definition.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

Nested Function Blocks<br />

You can nest Function Blocks, both FB Definitions and FB Instances, within the<br />

FB Definition, as shown in Figure 12-10.<br />

I_01<br />

I_02<br />

I_03<br />

I_04<br />

I_05<br />

I_06<br />

mux<br />

mux_1<br />

mux_1<br />

Figure 12-10. Nested Function Blocks<br />

OUT_1<br />

FB Definitions<br />

FB Instance<br />

OUT_2<br />

To nest Function Blocks, you must adhere to the following design rules:<br />

• Only FB Definitions can contain nested FB Definitions and FB Instances.<br />

• An FB Definition cannot contain a nested FB Instance of itself; you cannot<br />

nest within FB Definition “A” an FB Instance created from FB Definition<br />

“A”.<br />

After you construct an FB Definition that contains nested Function Block objects,<br />

you subsequently convert the FB Definition to a Made FB Definition symbol<br />

instance. During the conversion operation, each nested FB Definition and FB<br />

Instance is converted in sequence, beginning with the inner-most Function Block<br />

object and progressively working to the outer-most Function Block Object.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-15


Usage Paradigm Function Block Concepts<br />

If you need to revert the Made FB Definition back to its unmade form, then use<br />

the Unmake Function Block operation, as with any other Made FB Definition.<br />

With nested Function Blocks, you can revert selected levels of nested hierarchy or<br />

revert all levels, as shown in Figure 12-11.<br />

12-16<br />

Function Block<br />

Other Menus<br />

Unselect All<br />

Move [a-MMB]<br />

Copy [c-MMB]<br />

Delete<br />

Undo<br />

Redo<br />

Properties<br />

Add FB Pins<br />

Make Function Block<br />

Unmake Function Block<br />

Convert Function Block<br />

Resize<br />

Align<br />

Selected<br />

All<br />

1 Level<br />

ALL Levels<br />

Specify<br />

Figure 12-11. Unmake Function Block Menu Option<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

FB Definition and FB Instance Net Constructs<br />

In general, an FB Definition’s and FB Instance’s internal and external electrical<br />

connectivity is established following the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> standard<br />

Drawing and Routing Nets procedures. However, there are specific exceptions to<br />

these procedures that are outlined in this section.<br />

Warning<br />

Nets consist of the following categories:<br />

1. Internal FB Definition Nets<br />

2. External Nets<br />

3. Passthru Nets<br />

4. Flythru Nets<br />

Internal FB Definition Nets<br />

Prior to generating a Made FB Instance, external net connections<br />

must be added to FB Instances.<br />

Internal net constructs are only applied to FB Definitions. These nets connect the<br />

FB Definition’s internal circuitry, including internal FB Pin connections, within<br />

the FB Definition’s boundary. Figure 12-12 is an example of an FB Definition’s<br />

internal nets.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-17


Usage Paradigm Function Block Concepts<br />

12-18<br />

Note<br />

Internal<br />

Nets<br />

Definition’s Boundary<br />

mux mux_1<br />

Figure 12-12. FB Definition’s Internal Net Example<br />

Internal nets are considered part of the FB Definition’s contents.<br />

FB Definition internal nets are nets fully contained within the FB Definition’s<br />

boundary, which connect to one or more instance pins.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

External Nets<br />

External nets are standard <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> wires, busses, and bundles<br />

constructs. These nets are externally connected to an FB Definition or FB Instance<br />

via the FB Definition’s or FB Instance’s FB Pins, as shown in Figure 12-13.<br />

External Nets<br />

mux mux_1<br />

Figure 12-13. External Net Example<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-19


Usage Paradigm Function Block Concepts<br />

Passthru Nets<br />

Passthru nets are constructions used exclusively with FB Definitions.<br />

Figure 12-14 shows a passthru net connected to an inner FB Pin that “passes over”<br />

the FB Definition’s rectangular boundary.<br />

12-20<br />

mux mux_1<br />

Passthru Nets<br />

Figure 12-14. Passthru Net Examples<br />

The Made FB Definition and Made FB Instance Creation Operation excludes<br />

passthru net segments from the Made FB Definition that extend outside an FB<br />

Definition’s boundary, but the rest of the net is copied into the underlying<br />

schematic. After the operation, the original passthru net remains on the top-level<br />

schematic in its entirety.<br />

Note, you must enable passthru nets, or these nets are flagged as errors when<br />

Checking Function Blocks. To enable passthru nets, refer to the “Function Block<br />

Setup” section in Chapter 3, or use the $set_fb_passthru() function.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Function Block Concepts Usage Paradigm<br />

Flythru Nets<br />

Flythru nets are not part of the FB Definition’s contents. Flythru nets intersect an<br />

FB Definition, as shown in Figure 12-15.<br />

mux mux_1<br />

Flythru Net<br />

Figure 12-15. Flythru Net Example<br />

Flythru nets are excluded from an FB Definition’s or FB Instance’s contents<br />

during The Made FB Definition and Made FB Instance Creation Operation, and<br />

remain part of the upper-level schematic sheet.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 12-21


Usage Paradigm Function Block Concepts<br />

12-22<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 13<br />

Using Hotkeys<br />

Hotkeys are tools within <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> that allow the user to perform<br />

schematic and symbol functions or operations via the keyboard. Hotkeys provide<br />

the user with a shortcut for accessing commonly-used commands. Additionally,<br />

you can customize hotkeys.<br />

Note<br />

A Hotkey is an alphanumeric keyboard key that is tied to an Advanced Multi-<br />

Purpose Language (AMPLE) function that contains any number of AMPLE<br />

commands. The command executes by pressing the keyboard key when hotkeys<br />

are enabled. The commands can be attached to any of the 62 alphanumeric keys<br />

(“a” through “z”, “A” through “Z”, and “1” through “0”).<br />

Hotkey Types<br />

Hotkey usage is limited to the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Schematic and<br />

Symbol Scopes.<br />

You can select from one of the following three Hotkey types:<br />

1. Using DA-<strong>IC</strong> Predefined Hotkeys - a predefined set of hotkeys supplied<br />

with <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. Please refer to Appendix A, “Predefined<br />

Hotkeys”, for a complete list of these hotkeys.<br />

2. Using User-Defined Hotkeys - user-modified hotkeys. When the user<br />

creates these Hotkey values, the values are stored in the<br />

$HOME/mgc/da_hotkeys directory and, if present, are loaded by default<br />

when hotkeys are enabled. To create User-Defined Hotkeys, refer to<br />

“Using User-Defined Hotkeys” in this chapter.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-1


13-2<br />

Using Hotkeys<br />

3. Using Custom Hotkeys - Hotkeys customized by the user. A predefined set<br />

of hotkeys is copied to a specified location and modified using the AMPLE<br />

editor. To customize a specific set of hotkeys, refer to the “Using Custom<br />

Hotkeys” section in this chapter.<br />

Note<br />

When enabled, you can bypass the hotkeys at any time and bring<br />

up a command window by using the F11 key, or by selecting any<br />

unmapped alphanumeric key.<br />

Hotkey User Interface Overview<br />

The user enables, customizes, and loads hotkeys by using the hotkeys menu<br />

contained within the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> user interface. As stated previously, the<br />

hotkeys menu is available only in the Schematic and Symbol Editors and is<br />

contained in the Miscellaneous pulldown menu as illustrated in Figure 13-1.<br />

Figure 13-1. Hotkeys Cascading Menu (Schematic Scope)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys<br />

Alternatively, you can invoke Hotkey functionality using the Hotkey AMPLE<br />

functions. For additional information on Hotkey AMPLE functions, refer to<br />

Chapter 15, “Hotkey Function Dictionary”.<br />

Figure 13-2 below illustrates the hotkeys menu and cross-references each menu<br />

option’s respective AMPLE function.<br />

Enable<br />

Load...<br />

Report<br />

Define...<br />

Customize...<br />

Disclose Current<br />

Hotkey Settings<br />

$report_hotkey_settings()<br />

Customize Hotkey Settings<br />

Start With:<br />

DA-<strong>IC</strong> Editing<br />

Copy To:<br />

OK Reset Cancel<br />

Enables User-Defined Hotkeys<br />

(if previously defined)<br />

$set_hotkey_mode()<br />

Load Hotkey Settings<br />

Choices<br />

DA-<strong>IC</strong> Editing<br />

User-defined<br />

Custom<br />

Enable Hotkeys<br />

OK Reset Cancel<br />

Define Hotkey<br />

Select a Command:<br />

Add Arc<br />

Add Bus<br />

Add Circle<br />

Add Dot<br />

Add Frame<br />

Add FB Defn<br />

Add FB Inst<br />

Add FB Pin<br />

Add Instance<br />

Add Line<br />

OK Reset Cancel<br />

Customize Hotkeys<br />

Figure 13-2. Hotkey Cascading Menu<br />

Load a<br />

different Hotkey<br />

set<br />

$load_hotkey_settings()<br />

Create User-Defined<br />

Hotkeys “on the fly”<br />

$define_hotkey()<br />

$copy_edit_hotkey_settings()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-3


Using DA-<strong>IC</strong> Predefined Hotkeys Using Hotkeys<br />

Using DA-<strong>IC</strong> Predefined Hotkeys<br />

This <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> release incorporates a predefined DA-<strong>IC</strong> Editing<br />

Hotkey set. A list of these keys and their respective mapped functions is available<br />

in Appendix A, “Predefined Hotkeys”. To load the DA-<strong>IC</strong> Editing Hotkeys, use<br />

the following steps.<br />

If you want to use a different set of hotkeys, refer to “Using User-Defined<br />

Hotkeys” or “Using Custom Hotkeys” in this chapter.<br />

Loading DA-<strong>IC</strong> Editing Hotkeys<br />

13-4<br />

1. From the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> menu bar, choose<br />

Miscellaneous > Hotkeys > Load as illustrated in Figure 13-3.<br />

Figure 13-3. Loading Hotkeys (Schematic Scope)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Using DA-<strong>IC</strong> Predefined Hotkeys<br />

The Load Hotkey Settings dialog box appears as shown in Figure 13-4:<br />

Load Hotkey Settings<br />

Choices<br />

DA-<strong>IC</strong> Editing<br />

OK Reset Cancel<br />

Figure 13-4. Load Hotkey Settings dialog box<br />

2. Click the DA-<strong>IC</strong> Editing button, if not already selected, in the Choices<br />

section of the dialog box. The Enable Hotkeys radio button is selected by<br />

default; in order to use the hotkeys, they must be enabled.<br />

Refer to Appendix A, “DA-<strong>IC</strong> Hotkey Set” for a list of predefined keys.<br />

3. Verify the settings, then click OK.<br />

User-defined<br />

Custom<br />

Enable Hotkeys<br />

The DA-<strong>IC</strong> Editing Hotkeys are now enabled. You can verify this within<br />

the Status bar as shown in Figure 13-5.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-5


Using User-Defined Hotkeys Using Hotkeys<br />

13-6<br />

Figure 13-5. <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Status Bar with Hotkeys Enabled<br />

(Schematic Scope)<br />

The DA-<strong>IC</strong> Editing Hotkeys are now ready to use. To invoke a command or<br />

function, type the alphanumeric key you want.<br />

Using User-Defined Hotkeys<br />

If the DA-<strong>IC</strong> Editing Hotkey set of functions do not fit your needs, modify the<br />

default DA-<strong>IC</strong> Editing Hotkeys set by redefining any of the alphanumeric keys.<br />

This process is outlined below. Note, once you create User-Defined Hotkeys, the<br />

keys will be loaded by default whenever hotkeys are enabled.<br />

Note<br />

Creating User-Defined Hotkeys<br />

Hotkeys are enabled<br />

AMPLE functions can be mapped to a hotkey. For more<br />

information, see $define_hotkey().<br />

1. From the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> menu bar, choose<br />

Miscellaneous > Hotkeys > Define as illustrated in Figure 13-6.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Using User-Defined Hotkeys<br />

Figure 13-6. Defining Hotkeys (Schematic Scope)<br />

The Define Hotkey dialog box appears as in Figure 13-7.<br />

Define Hotkey<br />

Select a Command:<br />

Add Arc<br />

Add Bus<br />

Add Circle<br />

Add Dot<br />

Add Frame<br />

Add FB Defn<br />

Add FB Inst<br />

Add FB Pin<br />

Add Instance<br />

Add Line<br />

OK Reset Cancel<br />

Figure 13-7. Define Hotkey Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-7


Using User-Defined Hotkeys Using Hotkeys<br />

13-8<br />

The Define Hotkey dialog box presents a scroll list of commonly-used<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> commands that you can map key-by-key to the desired<br />

alphanumeric key. A complete list of cross-referenced <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

commands, contained in the Define Hotkey dialog box, can be found in<br />

Appendix B, “Hotkey Commands”.<br />

2. To define a Hotkey, select the desired command from the list box, then<br />

click OK.<br />

An informational message prompts you to select an alphanumeric key.<br />

3. Press the alphanumeric key you want to map.<br />

Supply a comment: The dialog box appears, as in Figure 13-8.<br />

Supply a comment:<br />

OK Reset Cancel<br />

Figure 13-8. User-Defined Hotkey Comment Dialog Box<br />

This dialog box allows you to link a short description of the selected<br />

command to the key. You must enter a comment for each User-Defined<br />

Hotkey that you create. When you perform a Report Hotkeys command,<br />

these comments appear.<br />

4. Type a comment in the dialog box, and click OK.<br />

The selected alphanumeric key is now mapped to the chosen AMPLE<br />

command, and is defined for future <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> sessions. The<br />

resultant mapped key is automatically created and stored in the<br />

$HOME/mgc/da_hotkeys directory. Within this directory, the individual<br />

alphanumeric keys are mapped key-by-key to files with the following<br />

naming syntax:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Using User-Defined Hotkeys<br />

key_.ample<br />

For example, if you mapped the “a” key to the “Add Arc” command, then<br />

the a file named “key_a.ample” would be created in the<br />

$HOME/mgc/da_hotkeys directory. The “key_a.ample” file, in this<br />

example, would contain the following:<br />

extern da_window@@$key_label_a = “Add Arc“;<br />

function da_window@@$key_a(),INDIRECT<br />

{<br />

}<br />

$$add_arc();<br />

As stated previously, User-Defined Hotkeys load by default when hotkeys<br />

are enabled.<br />

After defining a Hotkey, a prompt appears (Figure 13-9) asking you if you<br />

want to define additional hotkeys.<br />

?<br />

Define more hotkeys?<br />

Yes No<br />

Figure 13-9. Define more hotkeys? dialog box<br />

5. Click Yes to define additional hotkeys, then repeat steps 2 – 4.<br />

6. Click No when you are finished creating User-Defined Hotkeys.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-9


Using Custom Hotkeys Using Hotkeys<br />

Loading User-Defined Hotkeys<br />

Once you have created User-Defined Hotkeys, they are available for use in the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. To load the User-Defined Hotkeys in a different <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> session, perform the following steps:<br />

13-10<br />

1. Within the Schematic or Symbol scope, select<br />

Miscellaneous > Hotkeys > Enable from the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> main<br />

menu bar.<br />

The previously assigned User-Defined Hotkeys are now available for use.<br />

Alternatively, you can use the Miscellaneous > Hotkeys > Load menu option<br />

(described below) to load the User-Defined Hotkeys. This is helpful if you want to<br />

toggle between a Custom Hotkey set and the User-Defined set within the same<br />

session.<br />

1. Within the Schematic or Symbol scope, select<br />

Miscellaneous > Hotkeys > Load from the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> main<br />

menu bar.<br />

The Load Hotkey Settings dialog box displays.<br />

2. Click the User-defined button in the Choices section of the dialog box. The<br />

Enable Hotkeys button selects by default.<br />

3. Click Yes to load the User-defined Hotkeys, and dismiss the dialog box.<br />

The User-Defined Hotkeys are now available for use.<br />

Using Custom Hotkeys<br />

You can also customize hotkeys to allow for greater latitude in defining userspecific<br />

commands and functions. When creating a Custom Hotkey set, <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> copies the existing DA-<strong>IC</strong> Editing set to a user-specified location,<br />

then invokes the AMPLE editor. The following steps outline the procedures for<br />

creating and loading Custom Hotkeys.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Using Custom Hotkeys<br />

Customizing Hotkeys<br />

1. Within the Schematic or Symbol scope, choose the<br />

Miscellaneous > Hotkeys > Customize... menu option from the <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> menu bar as shown in Figure 13-10.<br />

Figure 13-10. Hotkey Customize Menu Option (Schematic Scope)<br />

The Customize Hotkey Settings dialog box displays.<br />

Copy To:<br />

Customize Hotkey Settings<br />

Start With:<br />

DA-<strong>IC</strong> Editing<br />

OK Reset Cancel<br />

Figure 13-11. Customize Hotkey Settings dialog box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-11


Using Custom Hotkeys Using Hotkeys<br />

13-12<br />

This dialog box prompts you to provide a location and filename to copy<br />

the DA-<strong>IC</strong> Editing Hotkeys to. The DA-<strong>IC</strong> Editing Hotkey set serves as the<br />

basis for defining Custom Hotkeys.<br />

2. Enter an appropriate path, then click OK.<br />

The AMPLE Editor is invoked on the copied file. At this point, you can<br />

customize the AMPLE functions. For information regarding AMPLE and<br />

the AMPLE editor, please refer to the following manuals:<br />

• AMPLE for <strong>IC</strong> FLow <strong>User's</strong> <strong>Manual</strong> provides overview information,<br />

flow-diagram descriptions, explanations of important concepts, and<br />

task-oriented procedures for customizing the common user interface<br />

and writing AMPLE functions.<br />

• AMPLE for <strong>IC</strong> Flow Reference <strong>Manual</strong> contains information about<br />

AMPLE statements and functions that are common to all applications.<br />

3. When you have completed editing the AMPLE file, move the mouse<br />

pointer onto the window menu button in the upper-left corner of the<br />

AMPLE editor window.<br />

4. Press and hold the Select or Menu mouse button. The window becomes<br />

active, and a pulldown menu appears.<br />

5. With the Select or Menu mouse button depressed, drag the mouse pointer<br />

onto the Close menu item, shown in Figure 13-12.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Using Custom Hotkeys<br />

Figure 13-12. Close Window Pulldown Menu<br />

A Save Changes dialog box, similar to Figure 13-13, prompts you to save<br />

the edits that you have made to the AMPLE userware file.<br />

Save changes to $HOME/hotkeys?<br />

Yes No Cancel<br />

Figure 13-13. Save Changes dialog box<br />

6. Remove the dialog box and AMPLE editor window by selecting Yes using<br />

the Select mouse button.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-13


Using Custom Hotkeys Using Hotkeys<br />

Loading Custom Hotkeys<br />

To load your newly-created Custom Hotkey set, complete the following steps:<br />

13-14<br />

1. From the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> menu bar, choose the<br />

Miscellaneous > Hotkeys > Load pulldown menu item.<br />

The Load Hotkey Settings dialog box appears, as shown in Figure 13-14:<br />

Load Hotkey Settings<br />

Choices<br />

DA-<strong>IC</strong> Editing<br />

Figure 13-14. The Load Hotkey Settings dialog box<br />

2. Click Custom in the Choices section of the dialog box. The Enable<br />

Hotkeys radio button selects by default; in order to use the Hotkeys, they<br />

must be enabled.<br />

3. Verify the settings, then click OK.<br />

User-defined<br />

Custom<br />

Enable Hotkeys<br />

OK Reset Cancel<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Reporting Hotkey Status<br />

The Specify Custom Hotkey File dialog box, shown in Figure 13-15,<br />

prompts you to enter the path to and filename of the Custom Hotkey<br />

AMPLE file created in the previous steps.<br />

Figure 13-15. Specify Custom Hotkey File dialog box<br />

4. Enter the path to and filename of the Custom Hotkey file, or use the file<br />

Navigator, then click OK. The Custom Hotkey set is now loaded and the<br />

Hotkeys are enabled.<br />

Reporting Hotkey Status<br />

To determine which Hotkey set for a given <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> session is<br />

currently loaded, use one of the following menu options:<br />

• Miscellaneous > Hotkeys > Report - This option is available once an<br />

initial Hotkey set has been loaded during the session.<br />

• Report > Hotkeys<br />

Specify Custom Hotkey File<br />

Filename Navigator...<br />

OK Reset Cancel<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-15


Enabling and Disabling Hotkeys Using Hotkeys<br />

When invoked, the Report option returns a dialog box that contains a scroll list of<br />

currently-defined Hotkeys and their definitions. Figure 13-16 provides an<br />

example of this dialog box.<br />

13-16<br />

Report Hotkey Settings<br />

DA-<strong>IC</strong> Editing<br />

Hotkey Definitions:<br />

a = Add Pin<br />

b = Add Bus/Bundle<br />

c = Copy<br />

d = Delete<br />

e = Report Object<br />

f = Flip Horizontal<br />

i = Add Instance<br />

m= Move<br />

n = Name Nets<br />

o = Open Down<br />

View Source Code<br />

Print List<br />

OK Reset Cancel<br />

Figure 13-16. Report Hotkey Settings Dialog Box<br />

Enabling and Disabling Hotkeys<br />

This section assumes that you have either created a set of User-Defined or Custom<br />

Hotkeys, or you want to use the DA-<strong>IC</strong> Editing Hotkeys.<br />

Enabling Hotkeys<br />

Select to View the AMPLE<br />

Function<br />

Select to print the Hotkey AMPLE<br />

Functions<br />

By default, Hotkeys are disabled in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. Hotkeys are enabled via<br />

the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> user interface, as detailed in the following steps, or via<br />

the command line by using the $load_hotkey_settings() function. If a User-<br />

Defined Hotkey set has been created, then these key-by-key Hotkey values are<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Enabling and Disabling Hotkeys<br />

loaded by default when the Hotkeys are enabled. To load a Custom Hotkey set,<br />

refer to “Using Custom Hotkeys” in this chapter.<br />

1. From the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> menu bar, choose the Miscellaneous ><br />

Hotkeys > Enable pulldown menu item..<br />

If a User-Defined set of Hotkeys has not been created, then the following<br />

dialog box displays.<br />

2. To load an initial set of Hotkeys, click Yes.<br />

Note<br />

?<br />

No hotkeys loaded yet. Load some?<br />

Yes No<br />

If you select No, then the Hotkeys are enabled, but none are loaded.<br />

The follow message displays:<br />

Please load hotkeys before trying to use them.<br />

Prior to using the functionality, you must load a Hotkey set.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-17


Enabling and Disabling Hotkeys Using Hotkeys<br />

13-18<br />

The Load Hotkey Settings dialog box appears, as displayed in<br />

Figure 13-17.<br />

Figure 13-17. Load Hotkey Settings Dialog Box<br />

3. Within the dialog box, select one of the three Hotkey types and click on<br />

OK.<br />

The specified Hotkeys are now enabled.<br />

Disabling Hotkeys<br />

Load Hotkey Settings<br />

Choices<br />

DA-<strong>IC</strong> Editing<br />

User-defined<br />

Custom<br />

Enable Hotkeys<br />

OK Reset Cancel<br />

1. From the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> menu bar, choose the Miscellaneous ><br />

Hotkeys > Disable pulldown menu item.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Using Hotkeys Enabling and Disabling Hotkeys<br />

Figure 13-18. Disabling Hotkeys via the Miscellaneous Pulldown<br />

(Schematic Scope)<br />

The Hotkeys are now disabled.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 13-19


Enabling and Disabling Hotkeys Using Hotkeys<br />

13-20<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 14<br />

Creating DA-<strong>IC</strong> Userware<br />

This chapter contains information about customizing userware for <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong>. The information is organized as follows:<br />

• “Customization Guidelines”, beginning on page 14-2 describes<br />

maintenance levels required for a variety of customization tasks.<br />

• “<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes”, beginning on page 14-3 describes scopes,<br />

scope hierarchy, and provides information about how <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

searches userware files for a particular function. This is intended for all<br />

users who want or need to customize their userware.<br />

• “Simple Customizing”, beginning on page 14-11, describes how to find<br />

source files, and how to name and where to place customized userware files<br />

so <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> will load them at the proper time. This includes<br />

startup files and personality modules. Examples show how to customize the<br />

default title blocks, create new functions, and create new menus. This<br />

information should be sufficient for most users.<br />

• “Advanced Customizing”, beginning on page 14-23, describes how to<br />

create and display a new palette menu, and how to add items to an existing<br />

menu. This information is for system administrators, site librarians, and<br />

library developers.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-1


Customization Guidelines Creating DA-<strong>IC</strong> Userware<br />

14-2<br />

• “Recommendations”, beginning on page 14-47 lists recommended practices<br />

to follow when customizing <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>.<br />

!<br />

Caution<br />

Do not use any undocumented functions when you customize<br />

userware; undocumented functions can change or be deleted at any<br />

time. Because some undocumented functions do appear in the<br />

transcript window, be careful when creating a function with text<br />

from the transcript window.<br />

For detailed information, please refer to the<br />

Customizing the <strong>IC</strong> Flow Common User Interface manual and the AMPLE for <strong>IC</strong><br />

Flow <strong>User's</strong> <strong>Manual</strong>.<br />

Customization Guidelines<br />

When customizing a Mentor Graphics application, the type of customization<br />

performed determines the amount of rework necessary each time you upgrade to a<br />

newer version of Mentor Graphics software. The following list describes the three<br />

levels of rework used in this appendix:<br />

Light The time required to make changes at each software update is<br />

minimal; it is worth the productivity gains from customization.<br />

Moderate The time required to make these changes at each software update<br />

must be justified by productivity gains.<br />

Heavy The time necessary to perform this level of rework at each<br />

software update does not justify customization. Mentor Graphics<br />

does not provide support for customization tasks that fall into this<br />

category.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes<br />

Table 14-1 categorizes common customization tasks.<br />

Table 14-1. Customization Tasks Categorized by Re-work Level<br />

Light Moderate Heavy<br />

Creating New<br />

Functions Using<br />

Documented Userware<br />

Overloading<br />

Documented MGC<br />

Functions<br />

Both the “Simple Customizing” and “Advanced Customizing” sections contain<br />

“Userware Example” subsections. Each of the userware listings call out the level<br />

of rework necessary to support a specific type of customization.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes<br />

Creating New<br />

Functions Using<br />

Undocumented<br />

Userware<br />

Creating New Menus Adding to MGC Menus Creating Userware<br />

Dependent on Window<br />

Sizes or Shapes<br />

A scope is a portion of the environment in which userware or an AMPLE<br />

identifier has meaning. Userware scoping controls which functions and external<br />

variables are available in areas within an application. Each function has a scope<br />

associated with it. For example, some schematic editing functions such as<br />

$add_frame() and $add_net() have no meaning in the Symbol Editor, so they are<br />

placed in the schematic scope, which is not accessible to the Symbol Editor. Other<br />

functions such as $move() and $copy() have meaning in all editors within <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> and reside in the da_window scope that is available to all editors.<br />

Scope hierarchy is the arrangement of scopes into successive levels, with each<br />

level subordinate to the one above. The scope hierarchy is determined by area<br />

containment. This means that a function defined in a particular window is<br />

available within that window, and also available in all other windows opened from<br />

within that original window. For example, a function defined in the DA-<strong>IC</strong><br />

Session window is available in all windows opened within that session, such as a<br />

schematic window and a symbol window.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-3


<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes Creating DA-<strong>IC</strong> Userware<br />

Userware scopes and the arrangement of those scopes for each window in an<br />

application is determined by the application developers. You cannot change this<br />

hierarchy or add new scopes. However, you can add new functions or modify<br />

existing functions in the scope hierarchy.<br />

When you are adding functionality to an application, the scope in which you place<br />

the userware determines which windows have access to that userware. Userware<br />

placed in the schematic scope is available in all schematic windows, but not in a<br />

symbol window. When a function is called, the scope hierarchy of the active<br />

window is searched, beginning at the top, until the function is found. If the<br />

function exists in more than one scope, the first function found that matches the<br />

specified name is executed.<br />

Scope Specific Userware Directories<br />

Each scope has corresponding AMPLE files that contain all the AMPLE userware<br />

for that scope. These AMPLE files are stored in the Mentor Graphics Software<br />

Tree. The AMPLE files for scopes common to all Mentor Graphics Falcon<br />

Framework applications, including <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, can be found in the<br />

following directory:<br />

14-4<br />

${MGC_HOME}/shared/pkgs/base.[platform]/userware/${LANG}<br />

The AMPLE files for scopes specific to Falcon Framework-<strong>IC</strong> applications,<br />

including <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, can be found in the following directories:<br />

${MGC_HOME}/pkgs/base_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/core_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/ddms_do_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/ddms_mule_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/dm_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/ele_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/plot_tk_ic.[platform]/userware/${LANG}<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes<br />

${MGC_HOME}/pkgs/uims_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/vdd_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/pkgs/ftxt_ic.[platform]/userware/${LANG}<br />

The AMPLE files for scopes specific to <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> can be found in the<br />

following directories:<br />

${MGC_HOME}/pkgs/bed.[platform]/userware/${LANG}<br />

${MGC_HOME}/shared/pkgs/da_ic.[platform]/userware/${LANG}<br />

${MGC_HOME}/shared/pkgs/hdtxt.[platform]/userware/${LANG}<br />

${MGC_HOME}/shared/pkgs/vhdl_ed.[platform]/userware/${LANG}<br />

The platform pattern in the directories (above) refers to a character string that<br />

uniquely identifies your host platform. You can use the following script to return<br />

the correct platform suffix for your workstation:<br />

$MGC_HOME/bin/get_mgc_vco_ic<br />

In the following example, the pathname to the scope file for the ovl_area scope is<br />

based on the following conditions: the MGC_HOME shell environment variable<br />

is set to “/usr2/mgc_tree”, your workstation is a SUN workstation, and the LANG<br />

shell environment variable is set to “En_US” (resolves to En_na in the<br />

mgc_lang_map file):<br />

/usr2/mgc_tree/shared/pkgs/uims_ic.ss6/userware/En_na/ovl_area.ample<br />

For detailed information on the MGC_HOME and LANG shell environment<br />

variables, refer to the AMPLE for <strong>IC</strong> Flow <strong>User's</strong> <strong>Manual</strong>.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-5


<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes Creating DA-<strong>IC</strong> Userware<br />

Scope Search Order<br />

Table 14-2 shows the order that scopes are searched for functions called from<br />

each window.<br />

14-6<br />

Table 14-2. Scopes Searched in each Window<br />

Window Type Scopes Searched<br />

IDW Component idw_component_list_area<br />

list_m_of_n_area<br />

list_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

idw_component_window<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

IDW Hierarchy idw_comp_gfx_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base ample<br />

idw_dh_window<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes<br />

Table 14-2. Scopes Searched in each Window [continued]<br />

Window Type Scopes Searched<br />

Notepad notepad<br />

ptxt_area<br />

rtxt_area<br />

btxt_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

Schematic Editor fb_schematic<br />

schematic<br />

da_window<br />

bed_window<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

fb_session<br />

ovl_area<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-7


<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes Creating DA-<strong>IC</strong> Userware<br />

14-8<br />

Table 14-2. Scopes Searched in each Window [continued]<br />

Window Type Scopes Searched<br />

Session fb_session<br />

da_session<br />

session_area<br />

ovl_area<br />

framed_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

Symbol Editor symbol<br />

da_window<br />

bed_window<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes<br />

Table 14-2. Scopes Searched in each Window [continued]<br />

Window Type Scopes Searched<br />

Transcript rtxt_area<br />

btxt_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

Userware Editor input_area<br />

ptxt_area<br />

rtxt_area<br />

btxt_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-9


<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Scopes Creating DA-<strong>IC</strong> Userware<br />

14-10<br />

Table 14-2. Scopes Searched in each Window [continued]<br />

Window Type Scopes Searched<br />

VHDL Editor hdtxt_area<br />

ptxt_area<br />

rtxt_area<br />

btxt_area<br />

area<br />

dme_base_tk<br />

dme_do_tk<br />

dme_dn_tk<br />

plot_ui_tk<br />

ui_base<br />

ample<br />

framed_area<br />

da_session<br />

session_area<br />

ovl_area<br />

You can find the name of the top level scope of the active window by entering the<br />

following statement in a popup command line:<br />

$window_scope_name()<br />

The name of the scope appears in the transcript. You can find the complete scope<br />

hierarchy for the active window by entering the following statement in a popup<br />

command line:<br />

$ask_scope_frame_name()<br />

This function displays the scope hierarchy in a list dialog box. The ample scope<br />

appears at the bottom of the list as “” because you cannot add<br />

functionality to the ample scope after an application is invoked.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

Simple Customizing<br />

Plan carefully before you begin customizing. Your new and customized functions<br />

will be interacting with all other existing functions. Because other userware may<br />

be dependent upon menu items, it is usually better to add menu items using the<br />

$add_menu_item() function, rather than modifying existing menus. Library<br />

menus are discussed beginning on page 14-28. For information about customizing<br />

other menus, refer to the Customizing the <strong>IC</strong> Flow Common User Interface<br />

manual.<br />

If you want to modify userware without overwriting, refer to section<br />

“Modification of Functions” in the AMPLE for <strong>IC</strong> Flow <strong>User's</strong> <strong>Manual</strong>.<br />

DA-<strong>IC</strong> Startup Files<br />

When you are familiar with your DA-<strong>IC</strong> environment, you can use startup files to<br />

define your own menus, keys, strokes, or any functions used to initialize your<br />

working environment. Startup files are written in the AMPLE language, and have<br />

access to the full capability of DA-<strong>IC</strong> functions within a specific window scope.<br />

Before you begin writing DA-<strong>IC</strong> startup files, refer to the AMPLE for <strong>IC</strong> Flow<br />

<strong>User's</strong> <strong>Manual</strong> for information about how to write AMPLE macros and additional<br />

startup file examples. Refer to the Customizing the <strong>IC</strong> Flow Common User<br />

Interface <strong>Manual</strong> for instructions for customizing your user interface.<br />

In DA-<strong>IC</strong>, a startup file can be specified for the initial opening of a Session<br />

window, Schematic Editor window, Symbol Editor window, and VHDL Editor<br />

window.<br />

DA-<strong>IC</strong> supports four levels of startup files:<br />

• Site-specific: $MGC_HOME/shared/etc/cust/startup/name.startup<br />

• Workstation-specific: $MGC_HOME/etc/cust/startup/name.startup<br />

• User-specific: $HOME/mgc/startup/name.startup<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-11


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

14-12<br />

• Component-specific: pathname to startup file specified in the Open Sheet<br />

and Open Symbol dialog boxes.<br />

A, “name” can represent “da_session”, “schematic”, “symbol”, and “vhdl” for<br />

each respective DA-<strong>IC</strong> environment. $HOME is the value of the HOME<br />

environment variable for your shell, typically your login directory.<br />

$MGC_HOME is the value of the MGC_HOME environment variable that<br />

specifies the location of your Mentor Graphics software. $MGC_WD is the value<br />

of the MGC_WD environment variable that specifies the current working<br />

directory.<br />

All applications search for startup files and execute them in the following order:<br />

1. Site-specific startup files, if they exist.<br />

2. Workstation-specific startup files, if they exist.<br />

3. User-specific startup files, if they exist.<br />

Component-specific startup files are executed when a pathname is specified in the<br />

Startup File Path text box for the dialog box that opens a symbol, sheet, or a<br />

VHDL document. A default value for this pathname can be specified with the<br />

$set_environment_dofile_pathname() function.<br />

When debugging a startup file, be aware that function calls within the startup file<br />

are not (by default) transcribed when executed from a startup location. To<br />

transcribe the lower-level functions in the startup file, first set the transcript mode<br />

to “bottom”. For example, to test a new startup file, type in the active session<br />

window:<br />

$set_transcript_mode(@bottom)<br />

Type in an active schematic window:<br />

$dofile(your_home/mgc/startup/schematic.startup)<br />

The previous commands set the transcript mode to “bottom” and execute the<br />

startup file “schematic.startup” in an active schematic window.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

You can place the sample startup files in the following code blocks in any of the<br />

supported startup file locations. Refer to the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference<br />

<strong>Manual</strong> and the AMPLE for <strong>IC</strong> Flow Reference <strong>Manual</strong> for descriptions of the<br />

functions used in these files.<br />

// This startup file sets up the DA Session environment<br />

// and sets the selection model to individual selection<br />

// rather than additive selection. The following Session<br />

// setup options are specified:<br />

//<br />

// Mouse button click speed = average<br />

// Input device = mouse<br />

// Window layout = quadrant tiling<br />

// Visible: menu bar, window title, message area, palette,<br />

// status line, softkey area, Active Symbol window.<br />

// Not visible: Context window.<br />

$form_setup_session(125, "mouse", @quad, [@true], [@true],<br />

[@true], [@true], [@true], [@true], [@true], []);<br />

$set_selection_model(@individual);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-13


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

The next example sets up the editing environment in the Schematic Editor, then<br />

sets the default sheet checks.<br />

14-14<br />

// This startup file sets net, property text, and comment<br />

// attributes, then sets default sheet checks.<br />

//<br />

// Net attributes:<br />

// width = p1, dotted line, orthogonal mode = off,<br />

// snap angle = 44.9, snap = on, dotsize = 0.025,<br />

// dotstyle = square, junction dots at rippers,<br />

// closedots displayed, bus_width = p3, autoroute = on,<br />

// autoripper = on, ripper_symbol = "$MGC_GENLIB/rip", "1X1"<br />

//<br />

// Property Text attributes:<br />

// font = "stroke", ht=0.1875, left-bottom justification,<br />

// horizontal, transparent, visible<br />

//<br />

// Comment attributes:<br />

// style = shortdash, width = p3, fill = clear,<br />

// font = "stroke", height = 0.1875,<br />

// left-bottom justification, horizontal, transparent<br />

$setup_net(@p1, @dot, @off, 44.9, @on, 0.025, @square, @on,<br />

@on, @p3, @on, @on, "$MGC_GENLIB/rip", "1X1");<br />

$setup_property_text("stroke", 0.1875, @left, @bottom, 0,<br />

@on, @on);<br />

$setup_comment(@shortdash, @p3, @clear, "stroke", 0.1875,<br />

@left, @bottom, 0, @on);<br />

// The following list shows the default sheet checks set by<br />

// the next function:<br />

// checkfile not saved, report in window and transcript<br />

// no user-defined checks<br />

// errors and warnings reported for: instances,<br />

// special symbols, nets, frames, expressions, pins,<br />

// notdots, closedots, dangling nets and pins<br />

// errors only reported for: parameters, property owners,<br />

// overlapping instances,<br />

$setup_check_sheet("da_check_file", @nofile, @window,<br />

@transcript, "", void, @all, @all, @all, @all,<br />

@errorsonly, @all, @all, @errorsonly, @errorsonly,<br />

@all, @all, @all, @nocheck);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

While startup files should not be used to define custom userware functions, they<br />

are the simplest method for customizing <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>.<br />

For an example of a personal startup file, refer to page 14-19.<br />

Source Location<br />

Most people do not (and should not) have permission to alter source code files in<br />

the MGC_HOME directories. To customize a particular area of userware, copy<br />

the .ample file containing the functions you need to one of your directories, then<br />

alter your copy, and load it as described later in this appendix.<br />

To find the location of the file you need to copy, choose the MGC > Userware ><br />

Edit Source pulldown menu item. Enter the name of the function (do not enter the<br />

parentheses) you want to alter in the prompt bar that appears.<br />

For example, if you want to modify the $add_property() function for symbols,<br />

activate a symbol window and choose the MGC > Userware > Edit Source<br />

menu item. Enter “$add_property” in the prompt bar. The source file that contains<br />

the definition of the Symbol Editor $add_property() function is displayed in a<br />

Notepad window. The pathname of the file appears in the window title bar.<br />

This method of finding the source location can help you identify functions that<br />

have been overwritten. You can also use $list_overwritten_functions() to ensure<br />

that you haven't overwritten important userware.<br />

Most <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> userware is in one of the following directories:<br />

or<br />

${MGC_HOME}/shared/pkgs/da_ic/userware/${LANG}<br />

${MGC_HOME}/pkgs/da_ic/userware/${LANG}<br />

The first directory contains the .ample files, which are loaded at startup. The<br />

$MGC_HOME/pkgs directory contains .dofile, and .ample_c files, and other items<br />

such as the ASCII help files accessed from the Help > More Help menu.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-15


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

Personality modules and VHDL editing functions are not in the da_ic package.<br />

Each personality module has its own package name such as analog_da.<br />

How to Load Userware<br />

Userware may be loaded into <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, or loaded and immediately<br />

executed by DA-<strong>IC</strong>. Loading userware makes new functions available to the user,<br />

but does not immediately execute them. You can load userware by invoking the<br />

$load_userware() function or choosing the MGC > Userware > Load menu item<br />

in the DA-<strong>IC</strong> session. This is useful when you want to test userware as you<br />

develop it.<br />

When immediate execution of commands and functions in the userware file is<br />

required, you can use the $dofile() function. The $dofile() function executes<br />

statements outside of function declarations. If there is a function declaration in a<br />

.dofile, the function is loaded, but not executed; the function needs to be called to<br />

be executed.<br />

Users and system administrators can also create startup files that are executed at<br />

DA-<strong>IC</strong> invocation time, or the first time a new type of window is created.<br />

However, these cannot be compiled, and so are not recommended for extensive<br />

customizations, such as loading customized libraries and adding menu items to<br />

access those libraries.<br />

For more information on startup files, see, Startup Files in the AMPLE fot <strong>IC</strong> Flow<br />

<strong>User's</strong> <strong>Manual</strong>.<br />

AMPLE_PATH Environment Variable<br />

You can use the AMPLE_PATH environment variable to communicate the<br />

location of customized scope specific dofiles to <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. This<br />

variable can contain one or more partial pathnames, separated by colons (:), to<br />

your userware files, which may reside anywhere on the network. For example, the<br />

following statements (in a Bourne shell) set and export the AMPLE_PATH<br />

variable:<br />

14-16<br />

AMPLE_PATH=$HOME/mgc_custom:$HOME/mgc/userware<br />

export AMPLE_PATH<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

You can use the same statements in a Korn shell, or use a single statement:<br />

export AMPLE_PATH=$HOME/mgc_custom:$HOME/mgc/userware<br />

The search begins with the last pathname in the list, and works back to the first<br />

pathname in the list (right to left). Each new definition for a function replaces any<br />

previous definition in that scope.<br />

All Falcon Framework applications will load userware, compiled or not, supplied<br />

in a directory specified in the AMPLE_PATH environment variable. The<br />

directory name you specify must contain another directory with the same name as<br />

the application package. That application package contains the userware you want<br />

to load for that application.<br />

For example, if you placed your schematic userware customizations in<br />

$HOME/mgc_custom/da_ic/schematic.dofile, you specify $HOME/mgc_custom<br />

as one of the pathnames in the AMPLE_PATH variable. This is explained in<br />

“Scope Specific Dofiles” on page 14-18.<br />

If the AMPLE_PATH variable does not exist, the system searches for userware<br />

files in the default location, $HOME/mgc/userware/, where $HOME<br />

is an environment variable whose value is the pathname of the user's home<br />

directory.<br />

If the AMPLE_PATH variable was created, but was not set, or was explicitly set<br />

to be blank (“”), the system does not look in the default location; only application<br />

and site specific userware are loaded.<br />

In addition to the normal Falcon userware loading options, <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

makes special accommodations for the creators of libraries which should appear<br />

in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Schematic Editor Libraries menu, and for people<br />

developing <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> personality modules.<br />

These features include:<br />

• Scope specific dofiles<br />

• DES_ARCH_PKGS_TO_LOAD environment variable<br />

• Invoke-time Bourne Shell Scripts<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-17


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

14-18<br />

• DES_ARCH_AUX_PKG_LIST environment variable<br />

• Schematic menu files<br />

The last two items in the list are discussed in “Advanced Customizing” beginning<br />

on page 14-23. For complete information about the AMPLE_PATH variable and<br />

how userware is loaded, refer to the Customizing the <strong>IC</strong> Flow Common User<br />

Interface manual and the AMPLE for <strong>IC</strong> Flow <strong>User's</strong> <strong>Manual</strong>.<br />

Scope Specific Dofiles<br />

An AMPLE_PATH pathname must have a subdirectory, da_ic, to indicate to<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> to load those files. <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> will execute<br />

userware in the following files during scope initialization, if the files are located in<br />

$AMPLE_PATH/da_ic:<br />

da_session.dofile<br />

schematic.dofile<br />

da_window.dofile<br />

symbol.dofile<br />

You can also have a userware file, hdtxt_area.dofile, which is not in this list.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> looks for this file in $AMPLE_PATH/hdtxt because the<br />

application package “hdtxt” defines the scope hdtxt_area (the VHDL window).<br />

For example, assume you have the following customized userware files:<br />

$HOME/mgc_custom/new/da_ic/schematic.dofile<br />

$HOME/mgc_custom/da_ic/schematic.dofile<br />

$HOME/mgc_custom/da_ic/da_window.dofile<br />

Also assume you set your AMPLE_PATH variable as follows:<br />

$ AMPLE_PATH=$HOME/mgc_custom/new:$HOME/mgc_custom<br />

$ export AMPLE_PATH<br />

After all standard <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> userware is loaded, your files are loaded in<br />

the following order:<br />

1. $HOME/mgc_custom/da_ic/da_window.dofile<br />

2. $HOME/mgc_custom/da_ic/schematic.dofile<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

3. $HOME/mgc_custom/new/da_ic/schematic.dofile<br />

DES_ARCH_PKGS_TO_LOAD Environment Variable<br />

Personality modules are packages of userware customized for use by downstream<br />

applications. Mentor Graphics supplies the hotkeys_da personality module which<br />

loads automatically to enable hotkey functionality within DA-<strong>IC</strong>.<br />

You can use the DES_ARCH_PKGS_TO_LOAD environment variable to specify<br />

which personality modules are automatically loaded. Only the modules listed in<br />

the variable are loaded by DA-<strong>IC</strong>. The value of the variable must be a quoted<br />

string of package names with each name separated by a space. The packages are<br />

loaded in the order specified (first one listed is loaded first). Each new definition<br />

for a function replaces any previous definition in that scope.<br />

If DES_ARCH_PKGS_TO_LOAD is not defined prior to invoking DA-<strong>IC</strong>, none<br />

of the personality modules in the $MGC_HOME/pkgs directory are loaded.<br />

Use one of the following methods to set DES_ARCH_PKGS_TO_LOAD:<br />

• Set the variable in $HOME/.profile.<br />

• Write a script to set and export the variable, then invoke <strong>Design</strong> <strong>Architect</strong>-<br />

<strong>IC</strong>. For example, if you always want specific modules loaded, you could<br />

create a Bourne shell script with the following commands:<br />

DES_ARCH_PKGS_TO_LOAD='module names'<br />

export DES_ARCH_PKGS_TO_LOAD<br />

$MGC_HOME/bin/da_ic<br />

Personal Startup Example<br />

An AS<strong>IC</strong> Vendor wants to set up a toolkit where only their component libraries<br />

are available. Because all of their files are outside of the $MGC_HOME tree, they<br />

use AMPLE_PATH. They don't want any other libraries or personality modules to<br />

be loaded, but they do want to preserve the users' power to make userware<br />

changes in their $HOME/mgc/userware directory.<br />

!/bin/sh<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-19


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

14-20<br />

#<br />

# AS<strong>IC</strong>_VENDOR Driver for <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

# This file is in a directory in the user's shell's $PATH,<br />

# and will be executed when the user types:<br />

#<br />

# asic_vendor_da<br />

#<br />

library_pathname="$MGC_HOME/user/asic_vendor/libraries"<br />

echo "AS<strong>IC</strong>_VENDOR Driver for <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>,"<br />

echo " version 1.1, 6/6/1992 ${library_pathname}"<br />

if [ "${AMPLE_PATH}" = "" ]<br />

then<br />

# set default search path and add new path<br />

AMPLE_PATH=${HOME}/mgc/userware:${library_pathname}<br />

else<br />

AMPLE_PATH=${AMPLE_PATH}:${library_pathname}<br />

if<br />

export AMPLE_PATH<br />

# unset to turn off loading of other packages<br />

unset DES_ARCH_AUX_PKG_LIST<br />

export DES_ARCH_AUX_PKG_LIST<br />

$MGC_HOME/bin/da_ic $@<br />

Userware Examples<br />

The following text shows sample customization tasks that require light<br />

maintenance for subsequent releases of Mentor Graphics software.<br />

Creating New Functions Using Documented Userware<br />

Rework Level: Light -- Userware functions created using calls to documented<br />

Mentor Graphics functions require little or no maintenance from one release to the<br />

next. All user visible changes to documented functions are listed in release notes.<br />

To make sure that userware functions do not overload Mentor Graphics functions,<br />

use a unique prefix at the beginning of all custom functions. In addition to<br />

preventing overloaded functions, the prefix alerts users to the origin of the<br />

function.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Simple Customizing<br />

The following code block contains a sample userware function and command<br />

registration of the function. The prefix, 'vndr_', is used in the function name and<br />

during command registration. The prefix is not used with the 'c_int' external<br />

variable because the variable is removed after command registration<br />

1 function vndr_part_copy( part :string,<br />

2 props : switch name [on, off],<br />

3 depth : label integer [0, 4]<br />

4 ), SEALED<br />

5 {<br />

6 $writes_file($stdout,<br />

7 $strcat( "The part string is : ", part,<br />

8 "\nThe props switch is : ", props,<br />

9 "\nThe depth label is : ", depth, "\n"));<br />

10 }<br />

11 extern c_int = $register_command("par.t co.py", "vndr_");<br />

12 $register_args("of.f", @off, c_int);<br />

13 $register_args("d.epth", "depth", c_int);<br />

14 $register_alias("pcopy", cint);<br />

15 $undefine_id(@c_int);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-21


Simple Customizing Creating DA-<strong>IC</strong> Userware<br />

Creating New Menus<br />

Rework Level: Light -- New menus created in userware that call documented<br />

functions or custom userware functions require light maintenance.<br />

New menus must be created for all custom menus, to delete a menu item from an<br />

existing menu, or to reorder the items on an existing menu. All menu types<br />

available in the Common User Interface are created with the $create_menu()<br />

function. The following lines show the syntax for the $create_menu() function:<br />

14-22<br />

$create_menu(`scope_name', menu_type, 'menu_name', columns,<br />

'bgd_color', items)<br />

The following code block creates a pulldown menu for the VNDR menu bar item<br />

in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>; Figure N-1 shows the resulting menu.<br />

1 function vndr_pulldown_menu(),INVISIBLE<br />

2 {<br />

3 $create_menu(“schematic”, @pulldown,”vndr_pulldown”,1,,<br />

4 $menu_text_item(“Display Library _Palette”,<br />

5 '$replace_part_palette(“VNDR_Root_Palette”)')<br />

6 );<br />

7 }<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

Setup Miscellaneous Libraries Check Report View Help VNDR<br />

dae ) ( my_des | schematic | sheet1 ) (inv | inv) ( )<br />

Display (4.0189, Library -0.7736) Palette<br />

Figure N-1. Sample Menu Item<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

Advanced Customizing<br />

!<br />

Caution<br />

The following text is for component library developers and others<br />

who do major customization. These methods alter the MGC<br />

Tree, and are not intended for most users.<br />

DES_ARCH_AUX_PKG_LIST Environment Variable<br />

The DES_ARCH_AUX_PKG_LIST environment variable specifies a list of<br />

package names in the $MGC_HOME/pkgs directory that contain userware to be<br />

loaded into <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> scopes. When this variable is set, the specified<br />

packages are loaded, in addition to any automatically loaded userware packages.<br />

When DES_ARCH_PKGS_TO_LOAD is set, the packages specified by both of<br />

these variables are loaded.<br />

You can place customized userware in .ample and .dofile files in<br />

$MGC_HOME/pkgs/dir_name/userware/${LANG} and instruct <strong>Design</strong> <strong>Architect</strong>-<br />

<strong>IC</strong> to load it by setting the DES_ARCH_AUX_PKG_LIST variable to dir_name.<br />

If you assign multiple values to the variable, separate the values with colons (:).<br />

For example, suppose you have three projects. Project A needs customized<br />

userware for the Symbol Editor, whereas Project B needs customized userware for<br />

the Schematic Editor. Project C needs the customized userware from both the<br />

other projects. You will create the following two subdirectories in which to place<br />

your userware files:<br />

$MGC_HOME/pkgs/project_a/userware/${LANG}<br />

$MGC_HOME/pkgs/project_b/userware/${LANG}<br />

Project A users need to set this variable:<br />

$ DES_ARCH_AUX_PKG_LIST=project_a<br />

$ export DES_ARCH_AUX_PKG_LIST<br />

Users in Project B need to set this variable:<br />

$ DES_ARCH_AUX_PKG_LIST=project_b<br />

$ export DES_ARCH_AUX_PKG_LIST<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-23


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

Users in Project C need to set this variable to get both of the customizations:<br />

14-24<br />

$ DES_ARCH_AUX_PKG_LIST=project_a:project_b<br />

$ export DES_ARCH_AUX_PKG_LIST<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> will load any of the following files with .ample extensions,<br />

provided there is no *.ample_c file, and will execute any of the following files<br />

with .dofile extensions in the ...userware/${LANG} directory:<br />

da_session.ample<br />

da_window.ample<br />

schematic.ample<br />

symbol.ample<br />

hdtxt_area.ample<br />

da_session.dofile<br />

da_window.dofile<br />

schematic.dofile<br />

symbol.dofile<br />

hdtxt_area.dofile<br />

For better performance, you can compile .ample files into a single file, and place<br />

the compiled file in the ...userware/${LANG} subdirectory. The name of the<br />

compiled file must be the same as the package name.<br />

For example, the pathname of the compiled file used by Project A in the previous<br />

example must be:<br />

$MGC_HOME/pkgs/project_a/userware/${LANG}/project_a.ample_c<br />

If there is no compiled userware in the directory, or the compiled file does not<br />

include userware for one or more scopes, DA-<strong>IC</strong> loads uncompiled .ample files<br />

such as:<br />

$MGC_HOME/pkgs/minico_da/userware/${LANG}/schematic.ample<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

DES_ARCH_AUX_PKGS_LIST Example<br />

In this example, a group has received permission to place their userware inside the<br />

$MGC_HOME tree, so they can use DES_ARCH_AUX_PKGS_LIST to inform<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> of the location of userware to load. User settings of<br />

environment variables will be supplemented, not replaced.<br />

#!/bin/sh<br />

#<br />

# This script adds a pkg name to the DES_ARCH_AUX_PKG_LIST<br />

# environment variable which DA-<strong>IC</strong> will check for in the<br />

# $MGC_HOME tree to load userware and libraries.<br />

library_package_name="minico_da"<br />

echo "Using ${library_package_name} version 0.1"<br />

if [ "${DES_ARCH_AUX_PKG_LIST}" = "" ]<br />

then DES_ARCH_AUX_PKG_LIST=${library_package_name}<br />

else DES_ARCH_AUX_PKG_LIST=<br />

${DES_ARCH_AUX_PKG_LIST}:${library_package_name}<br />

fi<br />

export DES_ARCH_AUX_PKG_LIST<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-25


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

Environment Variable Summary<br />

Table 14-3 shows how to set environment variables to load the desired userware.<br />

In the AMPLE_PATH column, “default” is $HOME/mgc/userware.<br />

14-26<br />

Table 14-3. Environment Variable Summary<br />

Userware Loaded DES_ARCH_<br />

AUX_PKG_LIST<br />

DES_ARCH_<br />

PKGS_TO_LOAD<br />

AMPLE_PATH<br />

Only standard DA-<strong>IC</strong> unset unset “ “(blank)<br />

Default userware:<br />

Custom<br />

in<br />

$HOME/mgc/userware<br />

Default userware<br />

Userware not in default<br />

location<br />

Default userware<br />

Specific personality<br />

modules<br />

and/or other pkgs in<br />

MGC tree<br />

Specific personality<br />

mods<br />

Other packages in MGC<br />

tree<br />

Specific personality<br />

mods<br />

Userware not in default<br />

location<br />

Specific personality<br />

mods<br />

Other packages in MGC<br />

tree<br />

Userware not in default<br />

location<br />

unset unset unset<br />

unset unset set to default +<br />

desired directories<br />

unset set to desired<br />

packages<br />

set to desired<br />

packages<br />

set to desired<br />

packages<br />

unset set to desired<br />

packages<br />

set to desired<br />

packages<br />

set to desired<br />

packages<br />

unset<br />

“ “<br />

set to desired<br />

directories<br />

set to desired<br />

directories<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

Table 14-3. Environment Variable Summary [continued]<br />

Userware Loaded DES_ARCH_<br />

AUX_PKG_LIST<br />

Specific personality<br />

modules<br />

and/or other pkgs in<br />

MGC tree<br />

Specific personality<br />

modules<br />

Userware not in default<br />

location<br />

Userware not in default<br />

location<br />

DES_ARCH_<br />

PKGS_TO_LOAD<br />

unset set to desired<br />

packages<br />

unset set to desired<br />

packages<br />

AMPLE_PATH<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-27<br />

“ “<br />

set to desired<br />

directories<br />

unset unset set to desired<br />

directories


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

Schematic Menus<br />

The schematic.dofile File<br />

A common use for the schematic.dofile is to call AMPLE functions that create<br />

library menu definitions.<br />

When you want to access other component libraries, such as those from thirdparty<br />

vendors, the userware that defines the menus and adds them to the Libraries<br />

pulldown menu needs to be loaded. The following must be true:<br />

14-28<br />

• If the libraries are placed in the $MGC_HOME tree, then one or both of the<br />

following files must exist:<br />

or<br />

$MGC_HOME/pkgs/lib_pkg_name/userware/${LANG}/<br />

schematic.ample<br />

$MGC_HOME/pkgs/lib_pkg_name/userware/${LANG}/<br />

lib_pkg_name.ample_c<br />

• You also must have:<br />

$MGC_HOME/pkgs/lib_pkg_name/userware/${LANG}/<br />

schematic.dofile<br />

• You must add the lib_pkg_name to the list of package names for the<br />

DES_ARCH_AUX_PKG_LIST environment variable, and export the<br />

variable.<br />

Note<br />

The Libraries pulldown menu exists only when the analog_da<br />

personality module is successfully loaded.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

The schematic.menu and schematic.ample Files<br />

The following text contains an example of a schematic.menu file and a<br />

schematic.ample file, and suggestions on how to use them.<br />

HINTS:<br />

Note<br />

Some of the command lines in the following text have been<br />

adjusted so that they fit properly on the page.<br />

1. Check that your HOME environment variable is set to<br />

// by typing “env” in a unix shell. If you do not have this<br />

variable, have your system administrator create it.<br />

2. Create a directory called mgc/userware/da_ic in your home directory:<br />

mkdir $HOME/mgc<br />

mkdir $HOME/mgc/userware<br />

mkdir $HOME/mgc/userware/da_ic<br />

3. If you desire to create a userware directory elsewhere than at<br />

$HOME/mgc/userware, set the AMPLE_PATH environment variable to include<br />

that directory; otherwise, this step is not necessary. (See the discussion starting on<br />

page 14-16.) The AMPLE_PATH should be added to your startup/login file so<br />

you will not have to set it each time you log in.<br />

4. Copy the schematic.ample file to your userware directory:<br />

cp $MGC_HOME/shared/pkgs/mgc_digital_uw/userware/default\<br />

/schematic.ample<br />

$HOME/mgc/userware/da_ic/schematic.ample<br />

5. Copy the schematic.menu file to your userware directory:<br />

cp $MGC_HOME/pkgs/mgc_digital_uw/userware/default\<br />

/schematic.menu<br />

$HOME/mgc/userware/da_ic/schematic.menu<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-29


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

Use the schematic.ample and the schematic.menu files below as examples of how<br />

to modify your copy of the two files. In all the places that need changing, there are<br />

//comments indicating a CHANGE from the existing function to the new function.<br />

Included also are the line numbers of where the function changes are located in<br />

the files.<br />

6. Once you have completed your schematic.ample and schematic.menu files,<br />

test them by invoking <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>, open a sheet, and pull down the<br />

libraries menu. Your top library name should now be in this menu. Check out the<br />

remainder of your library palette to ensure it works as desired.<br />

7. Compile your schematic.ample file to speed up the invocation of <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong>. This creates a file called da_ic.ample_c. This compiles ALL<br />

userware in your directory, so if you have subsequent changes to the source<br />

(.ample) files, you will need to delete the da_ic.ample_c file, make your changes<br />

and re-compile.<br />

14-30<br />

For Example:<br />

compile_userware -i $HOME/mgc/userware -o $HOME/mgc/userware<br />

-p da_ic<br />

Examples of SCHEMAT<strong>IC</strong>.MENU and SCHEMAT<strong>IC</strong>.AMPLE:<br />

Start of schematic.menu<br />

//----------------------------------------------------------//<br />

//This schematic.menu file is meant for customizing MGC released<br />

// libraries/parts to <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

// Date created: Thu Mar 5 14:06:38 SIN 1995 //<br />

//-------------------------------------------------------------<br />

// Start a block so that local variables can be defined<br />

{<br />

// Turn transcripting off<br />

local old_mode = $set_transcript_mode(@off);<br />

// Call the function to build the toplevel menu<br />

//--------------------------------------------------------<br />

//------Line 16<br />

//------CHANGE $MGC_Digital_Libraries_menu<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

//------TO $custom_menu<br />

//------------------------------------------------------------<br />

$custom_menu();<br />

// Add the toplevel menu to the DA-<strong>IC</strong> library menu<br />

//-------------------------------------------------------------<br />

//----Line 18<br />

//CHANGE $add_library_menu_item('MGC _Digital Libraries'<br />

,"$replace_part_palette('MGC Digital Libraries')"<br />

, "mgc_libraries_pulldown");<br />

//------TO $add_library_menu_item('University _Libraries'<br />

,"$replace_part_palette('UniversityLibraries')");<br />

//-------------------------------------------------------------<br />

$add_library_menu_item('University_Libraries'<br />

, "$replace_part_palette('University Libraries')");<br />

// Return transcripting to its original level<br />

$set_transcript_mode(old_mode);<br />

// End the block<br />

}<br />

End of schematic.menu.<br />

Start of schematic.ample<br />

//-----------------------------------------------------------<br />

//<br />

// This schematic.ample file is meant for customizing<br />

// MGC released libraries/parts to <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

//<br />

// Date created : Mon Feb 10 10:23:53 SIN 1992<br />

//<br />

// Change History:<br />

// o added character mnemonics to the pulldown menus for<br />

// keyboard manipulation in addition to mouse activation<br />

...<br />

// feature<br />

// - Kuek Fong ( Sep 1995 ) //<br />

//-------------------------------------------------------------<br />

---<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-31


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

//------------------------------------------------------------<br />

//------Line 42<br />

//------CHANGE function $MGC_Digital_Libraries_menu(), INVISIBLE<br />

//------TO function $custom_menu(), INVISIBLE<br />

//THIS MUST MATCH THE NAME IN THE SCHEMAT<strong>IC</strong>.MENU FILE WHERE THE<br />

//CALL TOFUNCTION TO BUILD TOP LEVEL MENU IS DEFINED<br />

//-------------------------------------------------------------<br />

function $custom_menu(), INVISIBLE<br />

{<br />

extern rom_logic = " "; // logic selection for rom_lib only<br />

extern logic = " "; // logic selection for libraries<br />

//other than rom_lib<br />

extern casetype = " "; // for symbol type selection<br />

//-------------------------------------------------------------<br />

//------Line 49<br />

//------CHANGE $create_library_menu(@available<br />

, @palette, "MGC Digital Libraries",,<br />

//------TO $create_library_menu(@available<br />

, @palette, "University Libraries",,<br />

//THIS MUST MATCH THE LIBRARY NAME DEFINED IN SCHEMAT<strong>IC</strong>.MENU<br />

//WHERE YOU ADD THE TOP LEVEL MENU TO THE DA-<strong>IC</strong> LIBRARY NAME!!<br />

//-------------------------------------------------------------<br />

$create_library_menu("schematic", @palette, "University<br />

Libraries",,<br />

//-------------------------------------------------------------<br />

//------Line 50 (see the NOTE below!)<br />

//------ADD MENU TEXT ITEM TO BE INCLUDED IN MAIN PALETTE<br />

// FOR EXAMPLE: ,$menu_text_item("dev_lib"<br />

, '$show_sub_palette("dev_lib")', , @off)<br />

//-------------------------------------------------------------<br />

,$menu_text_item("dev_lib",'$show_sub_palette("dev_lib"0',<br />

,@off)<br />

//------There are currently 32 text items in the above function.<br />

//Change the library names to your own, and delete the extra<br />

//entries as necessary.<br />

//<br />

//NOTE: Line numbers below are based on an unedited<br />

//schematic.palette! Use those numbers as a guide to find the<br />

//functions listed.<br />

14-32<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

//------DELETE lines 85 through 309. (See NOTE above!)<br />

//------------------------------------------------------------<br />

//------Line 310 (See NOTE above!)<br />

//-----CHANGE function $mgc_libraries_pulldown_menu(), INVISIBLE<br />

//------TO function $university_libraries_pulldown(), INVISIBLE<br />

//-------------------------------------------------------------<br />

function $university_libraries_pulldown_menu(), INVISIBLE {<br />

$create_menu("schematic"<br />

,@popup<br />

//-----------------------------------------------------------<br />

//------Line 314 (See NOTE above!)<br />

//------CHANGE ,"mgc_libraries_pulldown"<br />

//------TO ,"university_libraries_pulldown"<br />

//-------------------------------------------------------------<br />

,"university_libraries_pulldown"<br />

,$menu_default_columns<br />

,$menu_default_color<br />

,$menu_context_item( "($is_diagram_in_edit_mode() )"<br />

//-------------------------------------------------------------<br />

//------Line 319 (See NOTE above!)<br />

//------CHANGE ,"Display _Libraries Palette"<br />

, "$replace_part_palette('MGC Digital Libraries')" )<br />

//------TO ,"Display _Libraries Palette"<br />

, "$replace_part_palette('UNIVERSITY Libraries')" )<br />

//THIS NAME MUST MATCH THE MENU NAME IN $CREATE_MENU IN THE TOP<br />

//MENU FUNCTION CUSTOM_MENU REDEFINED AT THE BEGINNING OF THE<br />

//FILE.<br />

//-------------------------------------------------------------<br />

}<br />

);<br />

,"Display _Libraries Palette" , "$replace_part_palette<br />

('UNIVERSITY Libraries')" )<br />

,$menu_context_item( "($in_edit_mode )"<br />

,"Set _Interfaces Defaults" , "$init_global_types()<br />

" ,,, "parts_interface_pulldown" )<br />

//-------------------------------------------------------------<br />

// Library Palettes Created On Demand<br />

//<br />

//-------------------------------------------------------------<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-33


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

-----------------<br />

// DEFINE YOUR DEVELOPMENT LIBRARY MENU BEGINNING ON LINE 331<br />

// FOR EXAMPLE:<br />

//------CHANGE<br />

//function $ac_lib_menu(), INVISIBLE<br />

//{<br />

// $create_library_menu( @available //<br />

, @palette<br />

// ,"ac_lib"<br />

// , 1,<br />

// ,$menu_text_item("ground"<br />

//,"$add_or_replace_instance('gen_lib','$MGC_GENLIB/ground')")<br />

// ,$menu_text_item("portin"<br />

//,"$add_or_replace_instance('gen_lib','$MGC_GENLIB/portin')")<br />

// ...<br />

// ,$menu_text_item("74ac824"<br />

//,"$add_or_replace_instance('ac_lib','$MGC_ACLIB/74ac824')")<br />

// );<br />

//}<br />

//------TO<br />

//function dev_lib_menu(), INVISIBLE<br />

//{<br />

// $create_menu("schematic"<br />

// , @palette<br />

// ,"dev_lib"<br />

// , 1,<br />

//,$menu_text_item("ground"<br />

//,"$add_or_replace_instance('dev_lib','$MGC_GENLIB/ground')")<br />

// ,$menu_text_item("portin"<br />

//,"$add_or_replace_instance('dev_lib','$MGC_GENLIB/portin')")<br />

// ,$menu_text_item("portout"<br />

//,"$add_or_replace_instance('dev_lib','$MGC_GENLIB/portout')"<br />

// ,$menu_text_item("vcc"<br />

//,"$add_or_replace_instance('dev_lib','$MGC_GENLIB/vcc')")<br />

// );<br />

//}<br />

//-------------------------------------------------------------<br />

End of schematic.ample.<br />

14-34<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Menu Customization Functions<br />

The following text describes the $create_library_menu() and<br />

$add_library_menu_item() functions and provide examples for adding menus and<br />

menu items in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>. The function<br />

$prompt_for_diagram_location() describes which returns the interactive cursor<br />

input location in user units instead of pixels.<br />

$create_library_menu()<br />

This function is defined in the ui_base scope. The pathname is:<br />

$MGC_HOME/shared/pkgs/da_ic/userware/${LANG}/ui_base.ample.<br />

Usage<br />

$create_library_menu(instance_replace_mode, menu_type, “menu_name”,<br />

columns, bgd_color, “item1”, “item2”, ... “itemN”)<br />

Description<br />

Place the $create_library_menu() function in your schematic.ample file.<br />

This function allows library developers to inform <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> about their<br />

support for calling $replace() on components listed in their menu. Library<br />

developers should use this function instead of $create_menu(). If they use<br />

$create_menu(), their menus will work in $$add_instance mode at all times.<br />

The defaults for menu_name, columns, and bgd_color are values of internal<br />

variables set by the Session.<br />

Arguments<br />

• instance_replace_mode<br />

This argument determines whether instance replacement functionality is<br />

available in the palette popup menu. If it is available, “Replace Instance”<br />

appears in the palette popup menu when an instance is selected. After an<br />

instance has been replaced, the menu item toggles to “Add Instance”. The<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-35


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

14-36<br />

two possible values of instance_replace_mode are @available and<br />

⇒ @unavailable.<br />

• menu_type<br />

This is the name of the type of menu you are creating. Choose one of the<br />

following: ⇒ @popup, @pulldown, or @palette.<br />

• menu_name<br />

This string specifies the name of the menu. The default is the value of the<br />

$menu_default_popup_name variable.<br />

• items<br />

This repeating argument defines items in your menu. Each menu item must<br />

be quoted.<br />

• columns<br />

This optional integer specifies the number of columns you want in your<br />

menu. It defaults to the value of the $menu_default_columns variable.<br />

• bgd_color<br />

This optional string defines the background color for the menu. The default<br />

is the value of the $menu_default_color variable.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

$add_library_menu_item()<br />

This function is available in the schematic scope. The pathname is:<br />

$MGC_HOME/shared/pkgs/da_ic/userware/${LANG}/schematic.ample.<br />

Usage<br />

$add_library_menu_item(“display_text”, “action”, “submenu_name”)<br />

Description<br />

The $add_library_menu_item() function is to be used in the schematic.dofile file<br />

by library developers who want their menu access added to the Libraries pulldown<br />

menu. The developer calls this with his choice of display_text which is what will<br />

actually display in the pulldown.<br />

Arguments<br />

• display_text<br />

This string specifies the text that actually appears in the menu.<br />

• action<br />

This will ordinarily be a call to make your palette menu appear in the<br />

palette area. This is the call “$replace_part_palette()” in the example at the<br />

end of this function definition. The action call should be placed inside of<br />

quotes, because it is a string.<br />

• submenu_name<br />

This string is the name of the submenu, and is only needed if there is going<br />

to be a cascade menu off of this newly added menu item.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-37


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

Example(s)<br />

Here is an example of how the mgc_digital_uw package makes its call:<br />

14-38<br />

$add_library_menu_item("MGC _Digital Libraries",<br />

"$replace_part_palette('MGC Digital Libraries')",<br />

"mgc_libraries_pulldown");<br />

“MGC Digital Libraries” is the display_text;<br />

“$replace_part_palette('MGC Digital Libraries')” is the action;<br />

“mgc_libraries_pulldown” is the submenu_name.<br />

When this function is called, <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> creates the specified menu item<br />

and adds it onto the Libraries pulldown menu.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

$add_or_replace_instance()<br />

As a library developer, you should write a function that does exactly what you<br />

want it to do. The $add_or_replace_instance() function can serve as a guide if it<br />

does some or most of what you want. Once you have written your function, call it<br />

from your own menus. The pathname to the file in which the<br />

$add_or_replace_instance() function is defined is:<br />

$MGC_HOME/shared/pkgs/da_ic/userware/$LANG/schematic.ample<br />

Copy the function to your own schematic.ample file, and edit the function to<br />

match your needs. Be sure to give the edited function a unique name; DO NOT<br />

name it “$add_or_replace_instance()”. Also, user-defined functions should not<br />

begin with “$”. If you do not rename the function, your function will overwrite the<br />

one supplied by Mentor Graphics, and the Mentor Graphics menu will not work<br />

correctly.<br />

The following is a short version of the $add_or_replace_instance() function.<br />

function sample_add_or_replace_instance( comp : string,<br />

smbl : optional string { default = "" }<br />

), INDIRECT<br />

{<br />

if ($does_component_exist(comp) != "") {<br />

$set_active_symbol(comp,smbl);<br />

if (session_area@@$instance_replacement_mode == @off)<br />

$place_active_symbol();<br />

else<br />

$$replace(comp,smbl,@clear);<br />

$set_instance_replacement_mode(@off);<br />

else<br />

$message($format("Cannot find component %s. Please<br />

ensure logical name is defined or have the component<br />

installed.",comp),@warning);<br />

}<br />

Keep in mind that the $add_or_replace_instance() function is only a guide; it is<br />

not meant to be used “as is” by library developers. It was written specifically to be<br />

called by the Mentor Graphics gen_lib menus. Notice that the function exists only<br />

in the file in which it is used as a call from the menus defined by the same group.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-39


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

If you want your menus to allow “replace” as well as “add” functionality, it is<br />

necessary to put the following line after the add or replace action is complete:<br />

14-40<br />

$set_instance_replacement_mode(@off);<br />

This is the only way that the palette menu knows to change the popup menu item<br />

from “Replace Instance” back to “Add Instance”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

$prompt_for_diagram_location()<br />

Scope: bed<br />

Usage<br />

$prompt_for_diagram_location(@multi_window, @multi_window_paint,<br />

@ignore_grid)<br />

Description<br />

The $prompt_for_diagram_location() function is used as an argument in the<br />

$prompt_dynamic() function to retrieve the cursor location in user units. Another<br />

function $prompt_for_location() can be used, but is less useful because the<br />

location is returned in pixels.<br />

Arguments<br />

The arguments for this function can be specified in any order and include the<br />

following:<br />

• @multi_window<br />

Enables inter-window dynamics. If omitted, the dynamic suspends<br />

whenever the mouse cursor is outside the active window. If specified, the<br />

dynamic resumes when the mouse cursor is over any Bed_window showing<br />

the same Bed_diagram as the active window. Dynamic graphics are only<br />

rendered in the window that contains the mouse cursor. Note that a builtin<br />

command only “knows” that inter-window dynamics occurred by checking<br />

the area names returned in the Bed_diagram_location ...<br />

• @multi_window_paint<br />

This argument enables multi-window rendering of dynamic graphics. If<br />

omitted, the dynamic only displays in the window that contains the mouse<br />

cursor. If specified, the dynamic displays in all windows into the same<br />

diagram as the window that contains the mouse cursor.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-41


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

14-42<br />

• @ignore_grid<br />

Example<br />

Does not return the nearest grid location.<br />

The following code shows how the $prompt_for_diagram_location() is used in the<br />

$$slice() function.<br />

function $$slice(<br />

pt1 : diagram_location,<br />

pt2 : diagram_location,<br />

all_props : Boolean {default = FALSE}) {<br />

$invis_clear_saved_prompt();<br />

$slice(pt1, pt2, all_props);<br />

}<br />

function $$slice_prompt(),INVISIBLE<br />

{<br />

$create_prompt("da_window", @$$slice, "Slice",<br />

$prompt_arg(@pt1, "First Point"),<br />

$prompt_dynamic(@pt1,<br />

"($prompt_for_diagram_location(@multi_window, @multi_window<br />

_paint))"),<br />

$prompt_arg(@pt2, "Second Point"),<br />

$prompt_dynamic(@pt2, "($prompt_for_diagram_line(pt1,<br />

@wait_for_lmb_up, @multi_wi<br />

ndow, @multi_window_paint))"),<br />

$prompt_arg(@all_props, "Copy Properties to all Comments")<br />

);<br />

}<br />

Related Functions<br />

$prompt_for_location()<br />

$prompt_dynamic()<br />

$create_prompt()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

Userware Examples<br />

The following text shows sample userware customizations that vary in<br />

maintenance levels from light to heavy.<br />

Adding a Palette Library Menu<br />

Rework Level: Light -- New menus created in userware that call documented<br />

functions or custom userware functions require light maintenance.<br />

The my_lib_menu() function in this example also belongs in the<br />

schematic.ample file. It shows how to add a palette library menu. This<br />

function should also be written with a unique name, so that it does not interfere<br />

with existing Mentor Graphics component library functions. The function<br />

should be written to include functionality necessary for the successful use of<br />

your customized library parts.<br />

Note<br />

Every custom library palette menu function you create must have a<br />

name the ends with “_menu()” in order for the palette menu to<br />

work correctly.<br />

// This function defines the palette menu for your customized<br />

// parts. These are sample parts.<br />

function my_lib_menu(), INVISIBLE<br />

{<br />

$create_library_menu( @available<br />

, @palette<br />

,"my_lib"<br />

, 1, ,$menu_text_item("ground",<br />

"$sample_add_or_replace_instance('$MGC_GENLIB/ground')")<br />

,$menu_text_item("portin",<br />

"$sample_add_or_replace_instance('$MGC_GENLIB/portin')")<br />

,$menu_text_item("portout",<br />

"$sample_add_or_replace_instance($MGC_GENLIB/portout')")<br />

,$menu_text_item("vcc",<br />

"$sample_add_or_replace_instance('$MGC_GENLIB/vcc')")<br />

,$menu_text_item("74act00",<br />

"$sample_add_or_replace_instance('$MGC_ACTLIB/74act00')")<br />

,$menu_text_item("74act11000",<br />

"$sample_add_or_replace_instance($MGC_ACTLIB/74act11000')")<br />

);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-43


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

}<br />

The items below go into a schematic.dofile file. The function calls in this file add<br />

the menu(s) and menu item(s) that you defined in the schematic.ample file.<br />

14-44<br />

// Start a block so that local variables can be defined<br />

{<br />

// Turn transcripting off<br />

local old_mode = $set_transcript_mode(@off);<br />

// Call the function to build the toplevel menu<br />

my_lib_menu();<br />

// Add the toplevel menu to the DA-<strong>IC</strong> library menu<br />

$add_library_menu_item('My _Library',<br />

"$replace_part_palette('my_lib')");<br />

// Return transcripting to its original level<br />

$set_transcript_mode(old_mode);<br />

// End the block<br />

Adding to MGC Menus<br />

Rework Level: Moderate -- Adding to existing menu items requires little<br />

maintenance, unless the name of a menu changes from one release to the next.<br />

Also, when adding items to context-sensitive menus (for example, the popup<br />

menus in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> schematic window), check the names of the<br />

menus at each release.<br />

Items are added to an existing menu with the $add_menu_item() function. The<br />

syntax for the function is as follows:<br />

$add_menu_item(menu, item, menu_name);<br />

When calling the $add_menu_item() function, use either the menu argument or<br />

the menu_name argument, not both of the optional arguments. The menu and<br />

menu_name arguments are described in the following list:<br />

menu The menu id. This is the value returned when the<br />

$create_menu() function is called. If this value is not<br />

stored in an external variable, then the value is lost.<br />

menu_name The text string that is the menu name.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Advanced Customizing<br />

The names of the default popup, palette, and menu bars for a scope are stored in<br />

reserved AMPLE variables: $menu_default_popup_name,<br />

$menu_default_palette_name, and $menu_default_menu_bar_name respectively.<br />

The simplest way to determine the name of the menu is to activate the window<br />

associated with the menu, and then call the $writeln() function with the<br />

appropriate reserved AMPLE variable name as an argument. If this method fails,<br />

examine the source userware to determine the menu name.<br />

The following code block shows an example call to $add_menu_item(). Notice<br />

the use of the reserved AMPLE variable in the function call to minimize the<br />

potential for rework in a future software release.<br />

1 $add_menu_item(,$menu_bar_item(“V_NDR”,“vndr_pulldown”),<br />

2 $menu_default_menu_bar_name);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-45


Advanced Customizing Creating DA-<strong>IC</strong> Userware<br />

The code block that follows could be placed in the schematic.dofile file to<br />

customize the menus in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong>; the list explains the code block:<br />

14-46<br />

Line(s) Action(s)<br />

2 and 8 Stores the existing transcript mode in the “trans_mode” local<br />

variable, and then restores transcripting to original mode.<br />

3-4 Adds the “VNDR” item to the menu bar.<br />

5-6 Adds the “VNDR Library” item to the Libraries pulldown menu.<br />

7 Stores the name of the default palette menu for later use.<br />

1 {<br />

2 local trans_mode = $set_transcript_mode(@off);<br />

3 $add_menu_item(, $menu_bar_item("V_NDR",<br />

4 "vndr_pulldown"), $menu_default_menu_bar_name);<br />

5 $add_library_menu_item('V_NDR Library',<br />

6 '$replace_part_palette("VNDR_Root_Palette")');<br />

7 extern vndr_dpal = $menu_default_palette_name;<br />

8 $set_transcript_mode(trans_mode);<br />

9 }<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Creating DA-<strong>IC</strong> Userware Recommendations<br />

Recommendations<br />

Here are a few recommendations to make your customization easier:<br />

• Look at existing Mentor Graphics userware for examples of how to use<br />

AMPLE. Look in:<br />

$MGC_HOME/shared/pkgs/da_ic/userware/En_na<br />

• Create a separate file that adds to Mentor Graphics userware, instead of<br />

modifying the Mentor Graphics userware. This will make maintenance<br />

much easier as you receive new releases.<br />

• Create separate palettes and menus, rather than changing or adding directly<br />

to Mentor Graphics palettes and menus. This also makes maintenance<br />

easier.<br />

• Do not create userware that is dependent upon screen locations. Creating<br />

any userware that is dependent on the size or position of any portion of an<br />

application window is not only going to require a large amount of<br />

maintenance from one software release to another, but may require changes<br />

for each platform that Mentor Graphics supports.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 14-47


Recommendations Creating DA-<strong>IC</strong> Userware<br />

14-48<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Chapter 15<br />

Hotkey Function Dictionary<br />

Function Summary<br />

Table 15-1 alphabetically lists the Hotkey functions included in this chapter and<br />

gives a brief description of each function.<br />

Table 15-1. Function Summary<br />

Function Description<br />

$copy_edit_hotkey_settings() Copies one of the predefined Hotkey<br />

settings to a specified work area and<br />

invokes the AMPLE editor on the new<br />

file.<br />

$define_hotkey() Assigns a <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

command to an alphanumeric key.<br />

$get_hotkey_mode() Returns the enable status of Hotkeys.<br />

$get_hotkey_settings() Returns a vector of vectors that contains<br />

Hotkey names and their comments.<br />

$load_hotkey_settings() Loads either predefined, user-defined,<br />

or custom Hotkey settings.<br />

$report_hotkey_settings() Displays a list of all loaded Hotkeys<br />

and their comments.<br />

$set_hotkey_mode() Specifies whether Hotkeys are enabled<br />

or disabled.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-1


Function Description Legend Hotkey Function Dictionary<br />

Function Description Legend<br />

This section contains descriptions of Hotkey functions. Many of these functions<br />

are linked to a command and a menu item. This flexibility lets you use the method<br />

you like best for performing any particular task. The function descriptions in this<br />

section are in alphabetical order, and follow a standard format. Each function<br />

description begins at the top of a page, followed by sections listed here:<br />

Function Title<br />

This section contains the function's name, applicable scope, and window. The<br />

Scope and Window subsections are defined as follows:<br />

Usage<br />

15-2<br />

Scope: A scope is a portion of the environment in which userware or an<br />

AMPLE identifier has meaning. The Hotkey functions have meaning in the<br />

da_window scope.<br />

Window: The Hotkey functions are only available in the <strong>Design</strong> <strong>Architect</strong>-<br />

<strong>IC</strong> Schematic and Symbol Editor windows.<br />

This subsection shows how to use the function by listing the following:<br />

Function usage line (always presented)<br />

Command usage line (only if registered as a command)<br />

Menu path (only if available through a menu item)<br />

1. Function usage line - shows exact and literal AMPLE syntax along with<br />

the argument order.<br />

Required Arguments Optional Argument<br />

$function_name(arg1, “arg2”, arg3)<br />

Figure 15-1. Function Usage Line Legend<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary Function Description Legend<br />

A function call usually begins with a dollar sign, with the arguments<br />

enclosed in parentheses (shown in Figure 15-1). The arguments are<br />

separated by commas and are structured as follows:<br />

• Required arguments are in standard font.<br />

• Optional arguments are in italic font.<br />

Any argument that has more than one listed value has a place-holder in the<br />

usage line. The “Arguments” subsection lists values for that function list,<br />

and explains the exact names.<br />

The usage line shows all vector arguments in this subsection, as they appear<br />

on the prompt bar, or in the dialog box. The description of each argument<br />

shows all sub-arguments used directly within a program or on a command<br />

line. For example, the description expands the vector argument<br />

[to_location] to [x, y, “window”]. Then, it expands the vector argument<br />

[“name”] to [“name1”, “name2”, ..., “nameN”]. In this example, the values<br />

“name1” and “name2” are required values and additional values are<br />

optional.<br />

The usage line presents rest arguments in a manner similar to vectors, but<br />

without brackets. For example, when a rest argument such as “name”<br />

appears in italics on the usage line, you can enter zero or more values.<br />

Similarly, when a rest argument such as “string” appears in standard font on<br />

the usage line, the description of that argument expands to “string1”, ...,<br />

“stringN”.<br />

2. Command usage - If the function is linked to an equivalent command, this<br />

subsection also shows the command usage.<br />

FUNction NAme arg1 “arg2” arg3 Command Syntax<br />

FUN NA arg1 “arg2” arg3<br />

What is entered<br />

Figure 15-2. Example of Function Command Usage<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-3


Function Description Legend Hotkey Function Dictionary<br />

15-4<br />

The command usage line shows exact and literal AMPLE syntax, and the<br />

order of required arguments. Figure 15-2 shows the uppercase characters<br />

that indicate the minimum set of characters that you must type. If you omit<br />

all spaces from the minimal typing, you can execute the “expert command”.<br />

Required arguments are in standard font; optional arguments are in italic<br />

font.<br />

The command usage line shows a placeholder for arguments that can have<br />

more than one listed value, or that can have multiple values entered. It<br />

shows vectors and rest arguments as they appear in “Function Usage”.<br />

3. Menu path - If the function can be called from a menu item, this subsection<br />

shows the complete menu path.<br />

For example, Figure 15-3 shows the $copy_edit_hotkey_settings() called<br />

from the menu path (Schematic and Symbol Editor)<br />

Miscellaneous > Hotkeys > Customize...:<br />

Figure 15-3. Menu Path Example<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary Function Descriptions<br />

Description<br />

This subsection contains a detailed description of the function's behavior and any<br />

of its undo capabilities.<br />

Arguments<br />

This subsection displays a bulleted list of required and optional arguments, and<br />

also provides descriptions. Required arguments are listed in bold, standard text;<br />

optional arguments are listed in bold, italic text.<br />

Examples<br />

This subsection contains examples of function usage and (where applicable)<br />

command and menu usage.<br />

Function Descriptions<br />

The following pages contain an alphabetical listing of Hotkey functions.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-5


$copy_edit_hotkey_settings() Hotkey Function Dictionary<br />

$copy_edit_hotkey_settings()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$copy_edit_hotkey_settings(style, “destination”)<br />

COPy EDit Hotkey Settings style, “destination”<br />

Miscellaneous > Hotkeys > Customize...<br />

Description<br />

Copies one of the predefined hotkey settings to a specified work area, and invokes<br />

the AMPLE editor on the new file. After compiling and saving the file, the user<br />

can load the file in subsequent sessions as a “custom” hotkey file.<br />

Arguments<br />

• style<br />

A name that specifies which Hotkey settings to copy from the<br />

$MGC_HOME/shared/pkgs/da_ic/userware directory. It must use the<br />

following argument:<br />

⇒ @da_editing: <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> editing key mappings.<br />

• destination<br />

A string that specifies where to copy the Hotkey settings.<br />

Example<br />

This example copies the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> editing Hotkey settings into the file<br />

“my_hotkey_settings” in the $HOME directory and invokes the AMPLE editor on<br />

this new file.<br />

15-6<br />

$copy_edit_hotkey_settings(@da_editing,"$HOME/my_hotkey_settings")<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary $define_hotkey()<br />

$define_hotkey()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$define_hotkey(“key_name”, “function_name”, “comment”)<br />

DEFine HOtkey “key_name” “function_name” “comment”<br />

Miscellaneous > Hotkeys > Define...<br />

Description<br />

Assigns a <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> command to an alphanumeric key.<br />

Figure 15-4 shows that the $define_hotkey() function calls a dialog box that<br />

contains a scroll list of <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> commands.<br />

Define Hotkey<br />

Select a Command:<br />

Add Arc<br />

Add Bus<br />

Add Circle<br />

Add Dot<br />

Add Frame<br />

Add FB Defn<br />

Add FB Inst<br />

Add FB Pin<br />

Add Instance<br />

Add Line<br />

OK Reset Cancel<br />

Figure 15-4. $define_hotkey() Dialog Box<br />

The user selects one of the commands, then selects an alphanumeric key to map<br />

the command to. After the key is selected, the user is prompted to enter a<br />

descriptive comment that is saved along with the key mapping.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-7


$define_hotkey() Hotkey Function Dictionary<br />

A complete list of cross-referenced <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> commands contained in<br />

the $define_hotkey() dialog box can be found in Appendix B, “Hotkey<br />

Commands”.<br />

The $define_hotkey() function saves the assignment to an individual hotkey file in<br />

the $HOME/mgc/da_hotkeys directory. The name of the alphanumeric key is used<br />

in the Hotkey file name. For example, if the “a” key is mapped, then the function<br />

creates a resultant file named “key_a.ample” for that key.<br />

To load all hotkey files, you can use $load_hotkey_settings(@user).<br />

If used with the arguments, the function maps an AMPLE function to a userspecified<br />

alphanumeric key. If no arguments are specified, then the function calls<br />

the $define_hotkey() dialog box illustrated in Figure 15-4.<br />

Arguments<br />

• key_name (key_name)<br />

An optional string that contains the alphanumeric key to assign.<br />

• function_name (function_name)<br />

An optional string that contains the AMPLE function’s name.<br />

• comment (comment)<br />

An optional string that contains a comment describing the AMPLE function.<br />

Examples<br />

This example assigns the AMPLE $add_arc() function to the “a” key, and the<br />

comment “Add Arc”.<br />

$define_hotkey("a","$add_arc()","Add Arc")<br />

15-8<br />

$define_hotkey()<br />

Related Functions<br />

$load_hotkey_settings()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary $get_hotkey_mode()<br />

$get_hotkey_mode()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$get_hotkey_mode()<br />

GET HOtkey Mode<br />

Description<br />

Returns (in the Session transcript) the status of the current Hotkey setting. The<br />

return values are as follows:<br />

@off - Disables hotkeys.<br />

@on - Enables hotkeys.<br />

Examples<br />

The following is an example of the $get_hotkey_mode() function, invoked from<br />

the command line, when the Hotkeys are enabled:<br />

$get_hotkey_mode()<br />

In the transcript, the following value is returned:<br />

// @on<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-9


$get_hotkey_settings() Hotkey Function Dictionary<br />

$get_hotkey_settings()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$get_hotkey_settings()<br />

GET HOtkey Settings<br />

Description<br />

Returns a vector of vectors that contains Hotkey names and their respective<br />

comments.<br />

Examples<br />

The following is an example of the $get_hotkey_settings() function from the<br />

command line:<br />

15-10<br />

Note<br />

If it does not have a comment, a Hotkey is not included in the<br />

vector. If none of the Hotkeys have comments, or if the Hotkeys are<br />

not loaded, then the function returns [void].<br />

$get_hotkey_settings()<br />

In the transcript, a list of settings similar to the following is returned:<br />

// [[“a”, “Add Pin”], [“b”, “Add Bus/Bundle”], [“c”, \<br />

“Copy”], [“d”, “Delete”], [“e”, “Report Object”], \<br />

[“f”, “Flip Horizontal”], [“i”, “Add Instance”], \<br />

[“m”,“Move”], [“n”, “Name Nets”], [“o”, “Open Down”],\<br />

[“p”,“Pivot”], [“q”, “Check Sheet/Symbol”], [“r”, \<br />

“Rotate 90”], [“t”, “Add Text”], [“u”, “undo”], \<br />

[“v”, “Select Vertex”], [“w”, “Add Wire”], [“x”, \<br />

“Select Text and Move”], [“z”, “Zoom In”], [“bs”, \<br />

“Set Basepoint”], [“cs”, “Choose Symbol”], [“fs”, \<br />

“Flip Vertical”], [“ms”, “Modify Properties”], [“os”,\<br />

“Open Up”], [“ps”, “add Property”], [“rs”, “Rotate -90”], \<br />

[“ts”, “Change Text Value”], [“us”, “Unselect All”], \<br />

[“vs”,“View All”], [“zs”, “Zoom Out”]]<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary $load_hotkey_settings()<br />

$load_hotkey_settings()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$load_hotkey_settings(style, enable)<br />

LOAd HOtkey Settings style enable<br />

Miscellaneous > Hotkeys > Load<br />

Description<br />

Loads either predefined, user-defined, or custom Hotkey settings, and enables the<br />

Hotkeys.<br />

If no arguments are specified, then the Load Hotkey Settings dialog box is called,<br />

as in Figure 15-5 below:<br />

Load Hotkey Settings<br />

Choices<br />

DA-<strong>IC</strong> Editing<br />

User-defined<br />

Custom<br />

Enable Hotkeys<br />

OK Reset Cancel<br />

Figure 15-5. $load_hotkey_settings() Dialog Box<br />

The predefined Hotkeys are located in the following directory:<br />

$MGC_HOME/shared/pkgs/ic_da/userware/En_na<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-11


$load_hotkey_settings() Hotkey Function Dictionary<br />

The $HOME/mgc/da_hotkeys directory contains user-defined Hotkey settings.<br />

The custom Hotkey settings are located in a directory chosen by the user.<br />

Arguments<br />

• Style<br />

A name that specifies which Hotkey settings to load. One of the following<br />

three choices must be specified:<br />

@user - user-defined key mappings<br />

@da_editing - <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> editing key mappings<br />

@custom - custom key mappings<br />

• Enable<br />

A value that specifies whether Hotkey mode is enabled. Possible values are:<br />

⇒ @yes - enable hotkey mode<br />

@no - do not enable hotkey mode<br />

Examples<br />

This example loads the default <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> key mappings and enables<br />

hotkeys.<br />

15-12<br />

Note<br />

If the Hotkeys are already enabled, the @no argument will not<br />

disable the Hotkeys.<br />

$load_hotkey_settings(@da_editing,@yes);<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary $report_hotkey_settings()<br />

$report_hotkey_settings()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$report_hotkey_settings()<br />

REPort HOtkey Settings<br />

Miscellaneous > Hotkeys > Report<br />

Report > Hotkeys<br />

Description<br />

Displays a list of all loaded Hotkeys and their comments. Figure 15-6 shows the<br />

dialog box that is called when you issue this function:<br />

Report Hotkey Settings<br />

DA-<strong>IC</strong> Editing<br />

Hotkey Definitions:<br />

a = Add Pin<br />

b = Add Bus/Bundle<br />

c = Copy<br />

d = Delete<br />

e = Report Object<br />

f = Flip Horizontal<br />

i = Add Instance<br />

m= Move<br />

n = Name Nets<br />

o = Open Down<br />

View Source Code<br />

Print List<br />

OK Reset Cancel<br />

Figure 15-6. $report_hotkey_settings() Dialog Box<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-13


$report_hotkey_settings() Hotkey Function Dictionary<br />

The dialog box contains a scroll list of Hotkey definitions. From this dialog box,<br />

the user has the option to view the AMPLE source code for a Hotkey definition, or<br />

print the list of Hotkey definitions.<br />

Examples<br />

This example calls the Report Hotkey Settings dialog box, and displays all the<br />

currently loaded Hotkey definitions.<br />

15-14<br />

Note<br />

A Hotkey is not included in the list, if it does not have a comment. If<br />

no commented Hotkeys are currently loaded in the system, a<br />

warning message displays.<br />

$report_hotkey_settings()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Function Dictionary $set_hotkey_mode()<br />

$set_hotkey_mode()<br />

Scope: da_window<br />

Window: Schematic Editor and Symbol Editor<br />

Usage<br />

$set_hotkey_mode(mode)<br />

SET HOtkey Mode mode<br />

Miscellaneous > Hotkeys > Enable<br />

Miscellaneous > Hotkeys > Disable<br />

Description<br />

Specifies whether Hotkeys are enabled or disabled.<br />

If no argument is provided, then the $set_hotkey_mode() prompt bar is called<br />

(Figure 15-7).<br />

Arguments<br />

• mode<br />

@off - disable Hotkeys<br />

@on - enable Hotkeys<br />

Figure 15-7. $set_hotkey_mode() Prompt Bar<br />

Examples<br />

The following example enables Hotkeys.<br />

$set_hotkey_mode(@on)<br />

SET HO M Mode off<br />

OK Cancel<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 15-15


$set_hotkey_mode() Hotkey Function Dictionary<br />

15-16<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Appendix A<br />

Predefined Hotkeys<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> provides a predefined hotkeys for commonly used<br />

commands as described in the following table.<br />

Table A-1. DA-<strong>IC</strong> Hotkey Set<br />

Key Action<br />

a add pin<br />

b add bus/bundle<br />

c copy<br />

d delete<br />

e report object<br />

f flip horizontal<br />

g<br />

h<br />

i add instance<br />

j<br />

k<br />

l<br />

m move<br />

n name nets<br />

o open down<br />

p pivot<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 A-1


A-2<br />

Table A-1. DA-<strong>IC</strong> Hotkey Set<br />

Key Action<br />

q<br />

r rotate 90 degrees<br />

s<br />

t add text<br />

u undo<br />

v select vertex<br />

w add wire<br />

x select text and move<br />

y<br />

z zoom in 2.0<br />

A<br />

B set basepoint<br />

C check sheet/symbol<br />

D<br />

E<br />

F flip vertical<br />

G<br />

H<br />

I<br />

J<br />

K<br />

L<br />

M modify properties<br />

Predefined Hotkeys<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Predefined Hotkeys<br />

Table A-1. DA-<strong>IC</strong> Hotkey Set<br />

Key Action<br />

N<br />

O open up<br />

P add property<br />

Q<br />

R rotate -90 degrees<br />

S save sheet/symbol<br />

T change text value<br />

U unselect all<br />

V view all<br />

W<br />

X<br />

Y<br />

Z zoom out 2.0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

0<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 A-3


A-4<br />

Predefined Hotkeys<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Appendix B<br />

Hotkey Commands<br />

The following table contains the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> commands included within<br />

the Define Hotkey dialog box.<br />

Table B-1. Hotkey Commands<br />

Menu Selection AMPLE Function<br />

Add Arc $$add_arc()<br />

Add Bus $add_bus()<br />

Add Circle $add_circle()<br />

Add Dot $add_dot()<br />

Add Frame $add_frame()<br />

Add Function Block Def $add_fb_def()<br />

Add Function Block Inst $add_fb_inst()<br />

Add Function Block Pin $add_fb_pins()<br />

Add Instance $add_instance()<br />

Add Line $add_line()<br />

Add Net $add_net()<br />

Add Pin $add_pin()<br />

Add Polygon $add_polygon()<br />

Add Polyline $add_polyline()<br />

Add Property $add_property()<br />

Add Rectangle $add_rectangle()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 B-1


B-2<br />

Table B-1. Hotkey Commands<br />

Menu Selection AMPLE Function<br />

Add Text $add_text()<br />

Add Wire $add_wire()<br />

Align Left $align(@left)<br />

Align Right $align(@right)<br />

Align Top $align(@top)<br />

Align Bottom $align(@bottom)<br />

Apply Edits $apply_edits()<br />

Change Color $change_color()<br />

Change Property Value $change_property_value()<br />

Check Sheet/Symbol $$check()<br />

Connect $connect()<br />

Convert FB Inst to Def $convert_fb_inst_to_def()<br />

Convert To Comment $convert_to_comment()<br />

Copy $copy()<br />

Create FB Inst From Def $create_fb_inst_from_def()<br />

Delete $delete()<br />

Disconnect $disconnect()<br />

Flip Horizontal $flip(@horizontally)<br />

Flip Vertical $flip(@vertically)<br />

Group $group()<br />

Make FB/All $make_fb(@all)<br />

Make FB/Selected $make_fb(@selected)<br />

Merge Annotations $merge_annotations()<br />

Hotkey Commands<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Commands<br />

Table B-1. Hotkey Commands<br />

Menu Selection AMPLE Function<br />

Modify Frame $modify_frame()<br />

Move $move()<br />

Open Down $choose_model()<br />

Open Top $open_top()<br />

Open Up $open_up()<br />

Pivot $pivot()<br />

Place Active Symbol $place_active_symbol()<br />

Pop To Front $pop_to_front()<br />

Push To Back $push_to_back()<br />

Reconnect Annotations $reconnect_annotations()<br />

Redo $redo()<br />

Resize FB $resize_fb()<br />

Rotate $rotate(90)<br />

Scroll Down By Unit $scroll_down_by_unit()<br />

Scroll Down By Window $scroll_down_by_window()<br />

Scroll Horizontally $scroll_hz()<br />

Scroll Left By Unit $scroll_left_by_unit()<br />

Scroll Left By Window $scroll_left_by_window()<br />

Scroll Right By Unit $scroll_right_by_unit()<br />

Scroll Right By Window $scroll_right_by_window()<br />

Scroll Up By Unit $scroll_up_by_unit()<br />

Scroll Up By Window $scroll_up_by_window()<br />

Scroll Vertically $scroll_vt()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 B-3


B-4<br />

Table B-1. Hotkey Commands<br />

Menu Selection AMPLE Function<br />

Select All $select_all()<br />

Select Area $select_area()<br />

Select Area/FB $select_area(..., @fb, ...)<br />

Select Area/FB Pins $select_area(..., @fbpin)<br />

Select Branches $select_braches()<br />

Select FB w/contents $select_fb()<br />

Select Instances $select_instances()<br />

Select Nets $select_nets()<br />

Select Pins $select_pins()<br />

Select Property Owner $select_property_owner()<br />

Select Text $select_text()<br />

Select Vertices $select_vertices()<br />

Slice $slice()<br />

Stretch $stretch()<br />

Undo $undo()<br />

Ungroup $ungroup()<br />

Unmake FB/All $unmake_fb(@all)<br />

Unmake FB/Selected $unmake_fb(@selected)<br />

Unmake FB/1 level $unmake_fb(@selected, 1)<br />

Unmake FB/2 levels $unmake_fb(@selected, 2)<br />

Unmake FB/3 levels $unmake_fb(@selected, 3)<br />

Unselect All $unselect_all()<br />

Unselect FB w/contents $unselect_fb()<br />

Hotkey Commands<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Hotkey Commands<br />

Table B-1. Hotkey Commands<br />

Menu Selection AMPLE Function<br />

Unselect Prop Owner $unselect_property_owner()<br />

Update $update()<br />

View All $view_all()<br />

View Area $view_area()<br />

View Selected $view_selected()<br />

Zoom In $zoom_in(2)<br />

Zoom Out $zoom_out(2)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 B-5


B-6<br />

Hotkey Commands<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Appendix C<br />

<strong>Design</strong> Checks<br />

This appendix describes the design checks available in <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<br />

<strong>IC</strong>). An asterisk indicates the checks required by Mentor Graphics applications.<br />

All required checks are enabled by default.<br />

In addition to validating a design, checks provide the following functions:<br />

• Verifies syntax on a symbol or schematic is correct and can be used by<br />

other Mentor Graphics applications.<br />

• Issues warning to identify possible user error.<br />

• Provides informational messages.<br />

• Automatically names instances and nets by their handles. DA-<strong>IC</strong> also<br />

provides optional checks, including common electrical rules, that allow you<br />

to customize your design check.<br />

The checks are organized into the following groups:<br />

• Symbol Checks<br />

• Schematic Sheet Checks<br />

• Schematic Checks<br />

Symbol Checks<br />

This section lists the symbol checks available in DA-<strong>IC</strong>. To change which checks<br />

are performed, from the Symbol Editor, choose Setup>Check... and select the<br />

desired checks in the Default Symbol Check Settings dialog box.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-1


Symbol Checks <strong>Design</strong> Checks<br />

For more information, see “Checking a Symbol for Errors” in Chapter 4.<br />

A symbol must pass the required checks before it can be instantiated.<br />

Special Symbols*<br />

The following checks are required for special symbols. Error messages are<br />

generated if these checks are not passed.<br />

Pin*<br />

C-2<br />

• Does a port connector (symbol with Class “P” property value) have only<br />

one pin?<br />

• Does an off-page connector (symbol with Class “O” property value) have at<br />

least one pin?<br />

• Does a net connector (symbol with Class “C” property value) have at least<br />

two pins?<br />

• Does a global (symbol with Class “G” property value) have one and only<br />

one pin?<br />

• Does a bus ripper (symbol with Class “R” property value) have one pin<br />

with Pin property value “Bundle”?<br />

• Does a bus ripper (symbol with Class “R” property value) have at least two<br />

pins?<br />

• Does a null instance (symbol with Class “N” property value) have no pins?<br />

The following checks are required for symbol pins; error messages are generated<br />

if they are not passed.<br />

• Does each symbol pin have a Pin property?<br />

• Do pin properties on a symbol have valid pin name syntax?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Sheet Checks<br />

Body*<br />

• Does a symbol have at least one pin (unless the symbol has a Class “N”<br />

property value)?<br />

• Does a property value on a pin have an invalid expression syntax?<br />

The following checks are required for symbol bodies; error messages are<br />

generated if they are not passed.<br />

• Does a symbol body have a graphical representation?<br />

• Is the same property value assigned different values on different pieces of<br />

the symbol body?<br />

• Do property values on the symbol body have valid expression syntax?<br />

Interface<br />

The following checks are performed on pin and port interfaces for the symbol.<br />

Error messages are generated if they are not passed.<br />

• Does a pin on the symbol match a net on the schematic?<br />

• Does a port on the schematic have a matching pin on the symbol?<br />

• Does a pin on a symbol have a matching port on the schematic?<br />

Schematic Sheet Checks<br />

This section lists the schematic sheet checks available in DA-<strong>IC</strong>. To change which<br />

checks are performed, from the Schematic Editor, choose Setup>Check... and<br />

select the desired checks in the Default Schematic Check Settings dialog box.<br />

These checks are performed on the active schematic sheet.<br />

For more information, see “Checking a Schematic for Errors” in Chapter 3.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-3


Schematic Sheet Checks <strong>Design</strong> Checks<br />

All schematic sheets must pass the required checks before being used by<br />

downstream applications.<br />

Instance*<br />

The following checks are required for instances. Error messages are generated if<br />

the schematic sheet fails any of the following checks:<br />

C-4<br />

• Does an Inst property value (instance name) have valid syntax?<br />

• Is an Inst property value (instance name) unique within the sheet, except for<br />

within unmade FB definitions?<br />

• Are instances with duplicate Inst property values (instance name) in the<br />

same FB definition?<br />

• Does an instance reference a version of a part which exists and is current?<br />

• Do the instance pins match pins of a referenced symbol?<br />

• Does a symbol model exist for the instance?<br />

• Do instance property values have valid syntax?<br />

• Does a Pin property value have valid pin name syntax?<br />

The following checks generate warning messages if they are not passed:<br />

• Can an instance name (Inst property value) be evaluated?<br />

• Can a pin name (Pin property value) be evaluated?<br />

• Can a property value on an instance or pin be evaluated?<br />

Special Instances*<br />

The following checks are required for special instances, such as ports, connectors,<br />

globals, and bus rippers. Error messages are generated if the schematic sheet fails<br />

any of the following checks.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Sheet Checks<br />

• Does a port connector (Class “P” property value) have only one pin?<br />

• Does an off-page connector (Class “O” property value) have at least one<br />

pin?<br />

• Does a net connector (Class “C” property value) have at least two pins?<br />

• Does a global (Class “G” property value) have one pin?<br />

• Does a bus ripper (Class “R” property value) have one pin with pin property<br />

“Bundle”?<br />

• Does a bus ripper (Class “R” property value) have at least two pins?<br />

• Does a null instance (Class “N” property value) have no pins.<br />

• Does a pin of a port connector (Class “P” property value) connect to a<br />

named net?<br />

• Do all nets attached to the pins of a net connector (Class “C” property<br />

value) have the same width?<br />

• Does a global (Class “G” property value) have a Global property value with<br />

valid net name syntax?<br />

• Does a bus ripper (Class “R” property value) have a Rule property attached<br />

to an instance or an output pin?<br />

• Does a Rule property value of a bus ripper (Class “R” property value) have<br />

valid subscript syntax?<br />

• Is the output pin of a bus ripper (Class “R” property value) attached to a<br />

named net whose width matches the width specified by the “Rule” property<br />

value?<br />

• Is an input pin of a bus ripper (Class “R” property value) attached to a bus?<br />

• Is a pin of an off-page connector (Class “O” property value) connected to a<br />

named net?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-5


Schematic Sheet Checks <strong>Design</strong> Checks<br />

C-6<br />

• Does the signal name of an implicit ripper exactly match the name of a<br />

corresponding signal in the net or net bundle?<br />

The following checks generate warning messages if they are not passed:<br />

Net*<br />

• Does a net connector (Class “C” property value) connect two nets with the<br />

same name?<br />

• Do pins of a net connector (Class “C” property value) connect to a named<br />

net?<br />

• Does a Global property value (Class “G” property value) contain a<br />

subscript?<br />

• Can a Global property value (Class “G” property value) be evaluated?<br />

The following checks are required for nets. Error messages are generated if the<br />

schematic sheet fails any of the following checks.<br />

• Does a property value assigned to a segment of a net conflict with values on<br />

different segments of the same net?<br />

• Does a Net property value have valid net name syntax?<br />

• Does a range specified in the net name (Net property value) conflict with<br />

the range of a connected pin?<br />

• Does a pin connected to an unnamed net have conflicting range<br />

specifications?<br />

• Does a property value have valid expression syntax?<br />

• Does a single net have the same name as a bus or bundle?<br />

• Are the members of a net bundle listed in at least one occurrence of the net<br />

bundle in a schematic?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Sheet Checks<br />

• Do all occurrences of a named net bundle in a schematic contain the same<br />

signal names in the same order?<br />

• Does the combined width of the nets and bus bits in a net bundle match the<br />

width of a connecting pin bundle or wide pin?<br />

• Does a net that is ripped by name from a net bundle actually exist in the net<br />

bundle?<br />

• Does a net bundle name contain a parameterized expression?<br />

• Does a net bundle have the same name as an individual net or bus?<br />

The following checks generate warning messages if they are not passed:<br />

• Can the net name (Net property value) be evaluated?<br />

• Can the pin name (Pin property value) be evaluated?<br />

• Can all property values be evaluated?<br />

• Are two globals shorted together?<br />

Frame*<br />

The following checks are required for frames. Error messages are generated if the<br />

schematic sheet fails any of the following checks.<br />

• Does an instance or its pins overlap a frame border?<br />

• Does a frame border overlap the border of another frame?<br />

• Does a frame have a frame expression?<br />

• Does a frame expression have valid syntax?<br />

Warning messages are generated if the schematic sheet fails any of the following<br />

checks:<br />

• Can the frame expression (Frexrep property value) be evaluated?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-7


Schematic Sheet Checks <strong>Design</strong> Checks<br />

C-8<br />

• Does a frame contain an instance?<br />

• Can all property values on a frame be evaluated?<br />

Symbol Pins*<br />

The following symbol pin check is performed on schematic sheets. Error<br />

messages are generated if the schematic sheet fails any of the following checks.<br />

• Are there symbol pins left on schematic sheets?<br />

• Do all pins occur only once within a pin bundle?<br />

• Is there an individual pin by itself on the symbol that is also contained in a<br />

pin bundle?<br />

• Is a pin contained in more than one pin bundle?<br />

Parameter<br />

The following informational check is performed on parameters, and causes a<br />

parameter listing to be generated.<br />

• Identify parameters which are required to evaluate property values and<br />

object names in the sheet.<br />

Expressions<br />

The following informational check is performed on expressions, and causes an<br />

expression listing to be generated.<br />

• Identify expressions in the sheet that require evaluation and the parameters<br />

they require.<br />

Owner<br />

The following checks are performed on properties. Error messages are generated<br />

if the schematic sheet fails any of the following checks:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Sheet Checks<br />

• Is the Pin property attached to a pin?<br />

• Is the Inst property attached to an instance?<br />

• Is the Net property attached to a net?<br />

• Is the Global property attached to an instance, not of type Class “G” or<br />

Class “N”?<br />

• Is the Rule property attached to an instance not of type Class “R” or Class<br />

“N”, or attached to a pin of a ripper instance?<br />

• Is the Frexrep property attached to a frame?<br />

Overlap<br />

The following informational check is performed on instances, and causes an<br />

instance listing and an error to be generated if not passed.<br />

• Identify the position of two instances where the bounding box of one<br />

instance overlaps the bounding box of the other.<br />

• Class instances are positioned such that their bounding boxes may overlap<br />

those of other class or non-class instances. Each instance type is grouped<br />

separately within the warning message<br />

Notdots<br />

The following informational check is performed on not-dots, and causes a not-dot<br />

listing to be generated.<br />

• Identify all points where not-dots exist on a schematic sheet.<br />

Closedots<br />

The following informational check is performed on close dots, and causes a close<br />

dot listing to be generated.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-9


Schematic Sheet Checks <strong>Design</strong> Checks<br />

C-10<br />

• Identify all points where different vertices are visually difficult to<br />

distinguish (where the close dot symbol is displayed on the sheet).<br />

Dangles<br />

The following informational checks are performed on dangling nets and pins and<br />

cause a net and pin listing to be generated.<br />

• Identify all dangling nets. A dangling net is a net vertex without an attached<br />

pin and not marked as a legal dangling net by the user (net with Class<br />

“dangle” property value).<br />

• Identify all dangling vertices.<br />

• Identify all dangling pins. A dangling pin is a pin not attached to a net and<br />

not marked as a legal dangling pin by the user (pin with Class “dangle”<br />

property value).<br />

• Valid dangles can be marked as such by adding a Class property with value<br />

of “dangle” to any vertex on the net or pin.<br />

Init Props<br />

The following Init property checks are performed; error messages are generated if<br />

they are not passed.<br />

• A net has two different global components attached to it; for example, both<br />

Vcc and Ground attached to the same net.<br />

• A net has a forcing Init property value “xxF”, but has no global attached to<br />

it. This can result from adding a global such as Vcc to a net, then deleting<br />

the global.<br />

• A net has an Init property value that does not match the Init property value<br />

on the pin of the attached global instance.<br />

This can result from adding a global Vcc to a net (causing the Init property<br />

on the net to have a value of 1SF), then adding a global Ground to the same<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Sheet Checks<br />

net (causing the Init property value to change to 0SF), then deleting the<br />

Ground global. The result would be a net with Init = 0SF, but with a Global<br />

Vcc which specified Init = 1SF.<br />

Annotations<br />

The following informational checks are performed on back annotations when<br />

DA-<strong>IC</strong> is invoked on a design in the context of a design viewpoint.<br />

• Identify all annotations to fixed or protected properties.<br />

• Identify all annotations that are unattached. When an unattached annotation<br />

is found, the design pathname to the object which no longer exists in the<br />

design is reported along with a list of annotated properties on the object.<br />

These unattached annotations can be reattached to another design object<br />

using the pulldown menu item Miscellaneous >Reconnect Annotations.<br />

Note<br />

Bus Shorts<br />

The following checks are performed on nets; warning messages are generated if<br />

they are not passed.<br />

• Does any net and a global have the same name?<br />

• Are global nets shorted?<br />

Function Blocks<br />

The annotation checks are only performed when DA-<strong>IC</strong> is invoked<br />

on a design viewpoint. Otherwise, this option is ignored.<br />

Unless otherwise noted, the following checks are only performed on unmade<br />

Function Blocks (FB); error messages are generated if they are not passed.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-11


Schematic Sheet Checks <strong>Design</strong> Checks<br />

C-12<br />

• Does each FB instance have a corresponding FB definition with the same<br />

FB_NAME property?<br />

• Does each FB instance have at least one pin?<br />

• Does each FB definition have at least one pin?<br />

• Do the pins on the FB instance match the pins on the corresponding FB<br />

definition?<br />

• Do the boundaries of any FB intersect the boundaries of any symbols,<br />

instances, or other FBs?<br />

• Do all external nets connected to an FB definition go through pins on the<br />

FB definition?<br />

• Does any FB Definition contain an FB Definition with the same<br />

FB_NAME property?<br />

• Do any FB definitions contain ports?<br />

• Do any FB pins connect to the same net physically or by name?<br />

• Does each FB definition contain at least one instance?<br />

• Do all FB definitions in a schematic have a unique FB_NAME property?<br />

Analog/Digital Converters<br />

The following checks are performed on converters; warning messages are<br />

generated if they are not passed.<br />

• Is a Conv_Display property present on the associated component?<br />

• Is the Conv_Display property value equal to A2D, D2A, HOOK, or<br />

DEFHOOK?<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Checks<br />

Schematic Checks<br />

This section lists optional schematic checks available in DA-<strong>IC</strong>. To change which<br />

checks are performed, from the Schematic Editor, choose Setup>Check... and<br />

select the desired checks in the Default Schematic Check Settings dialog box.<br />

Schematic checks are performed on the entire schematic; they are not required by<br />

Mentor Graphics applications, however, if selected, they can produce errors that<br />

will keep the schematic from being validated.<br />

For more information, see “Checking a Schematic for Errors” in Chapter 3.<br />

Schematic Interface<br />

The following checks are performed on pin and port interfaces for the schematic.<br />

Error messages are generated if the schematic sheet fails any of the following<br />

checks.<br />

• Does a pin on the symbol match a net on the schematic?<br />

• Does a port on the schematic have a matching pin on the symbol?<br />

• Does a pin on a symbol have a matching port on the schematic?<br />

Errors are produced for each interface pin that does not have a net on the<br />

schematic with a matching name. The name of the pin (PIN property) is compared<br />

to the name of the net (NET property).<br />

If there is a corresponding net for each pin, then the net is checked for an attached<br />

input port, output port, or bidirectional port instance. This check is only performed<br />

for interface pins that meet the following three criteria:<br />

• There is a net on the schematic with the same name as the interface pin<br />

• The net with the same name has a port instance attached to it<br />

• The interface pin has a PINTYPE property with a case-insensitive value of<br />

“IN”, “OUT”, “IO”, or “IXO”.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-13


Schematic Checks <strong>Design</strong> Checks<br />

Schematic Special<br />

The following special checks are performed on instances. Warning messages are<br />

generated if they are not passed.<br />

C-14<br />

• Does an on/off-page connector have a matching on/off-page connector on<br />

the schematic?<br />

• Are two nets with the same name on different sheets of the schematic<br />

connected through on/off-page connectors?<br />

Schematic Instance<br />

The following check is performed on instances, and an error message is generated<br />

if the schematic sheet fails.<br />

• Is the Inst property value (instance name) unique within the schematic<br />

except for within unmade FB definitions?<br />

Schematic Bus Shorts<br />

The following checks are performed on nets for the schematic; warning messages<br />

are generated if they are not passed.<br />

• Does any net and global have the same name in a schematic?<br />

• Are any global nets shorted?<br />

Schematic Net I/O<br />

The following series of schematic checks examine every electrical net in the<br />

schematic. For a schematic check, all PINTYPE property names and values,<br />

regardless of case, are examined. For each net, a warning is produced if the<br />

following two conditions exist:<br />

• The net is connected to at least one pin with a PINTYPE property of “IN”,<br />

an Output Point, or a Global<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


<strong>Design</strong> Checks Schematic Checks<br />

• More than one Source is attached to the net.<br />

Note<br />

To avoid this check, assign the net a property with the name<br />

“MULTI_SOURCE” and any value.<br />

The following definitions apply to this check:<br />

• Port - an instance of a symbol with a CLASS property of “P” or “E”. Ports<br />

have exactly one pin of indeterminate width. Class “P” ports are not written<br />

to the EDDM connectivity database as instances, while class “E” ports are<br />

written.<br />

• Global - an instance of a symbol with a CLASS property of “G”.<br />

• Input Port - either a Port with a pin having a PINTYPE property of “OUT”<br />

or a Port with the symbol name of “portin”, regardless of case.<br />

• Output Port - either a Port with a pin having a PINTYPE property of “IN”<br />

or a Port with the symbol name of “portout”, regardless of case.<br />

• Bidirectional Port - either a Port with a pin having a PINTYPE property of<br />

“IXO” or “IO”, or a Port with the symbol name of “portbi”, regardless of<br />

case.<br />

• Source - either a pin on a net with a PINTYPE property of “IXO”, “IO”, or<br />

“OUT”, or an Input Port, Bidirectional Port, or a Global.<br />

• Sink - either a pin on a net with a PINTYPE property of “IXO”, “IO”, or<br />

“IN”, or an Output Port or a Bidirectional Port.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 C-15


Schematic Checks <strong>Design</strong> Checks<br />

C-16<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Appendix D<br />

Migrating Userware to DA-<strong>IC</strong><br />

This appendix summarizes the changes between <strong>Design</strong> <strong>Architect</strong> (DA) and<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>). The information in this chapter is intended to help<br />

developers of custom userware transition from DA to DA-<strong>IC</strong>. For more<br />

information, see:<br />

• Scope Specific Userware Directories and Source Location in<br />

Chapter 15.<br />

• <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong><br />

• Customizing the <strong>IC</strong> Flow Common User Interface manual<br />

• AMPLE for <strong>IC</strong> Flow User’s <strong>Manual</strong><br />

The changes are organized into the following sections:<br />

• Scopes<br />

• User Interface<br />

• User Functions<br />

• Files<br />

• Libraries<br />

Scopes<br />

All DA scopes remain the same in DA-<strong>IC</strong> except for the addition of two new<br />

scopes as follows:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-1


User Interface Migrating Userware to DA-<strong>IC</strong><br />

D-2<br />

• fb_schematic - Added on top of the schematic scope, this new scope<br />

provides schematic level functions for Function Blocks.<br />

• fb_session - Added on top of the session scope, this new scope provides<br />

session level functions for Function Blocks.<br />

As a result of adding these two scopes, calls to the $window_scope_name()<br />

function results differently in DA-<strong>IC</strong> as shown in Table 5-1. Any custom userware<br />

using the $window_scope_name() function requires changes.<br />

User Interface<br />

Significant changes have been made to the DA-<strong>IC</strong> user interface as follows:<br />

• PCB specific menu items removed<br />

• <strong>IC</strong> netlister integrated<br />

• Icon-based palette menus are now text-based<br />

• Pulldown, popup, and palette menus reorganized and streamlined<br />

• Dialog boxes restructured<br />

• Hotkey functionality added<br />

• Default behavior changed<br />

Table D-1. Window Name Changes<br />

Scope Results in DA Results in DA-<strong>IC</strong><br />

Session da_session fb_session<br />

Schematic schematic fb_schematic<br />

Custom userware that modifies elements in the user interface may require changes<br />

to work with DA-<strong>IC</strong>. For example, if userware adds a menu item to a menu in DA<br />

that doesn’t exist in DA-<strong>IC</strong>, the userware must be modified.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Migrating Userware to DA-<strong>IC</strong> User Interface<br />

Menu Changes<br />

This section summarizes the menu changes in DA-<strong>IC</strong>.<br />

The following table describes the Session scope menus that changed in DA-<strong>IC</strong>.<br />

Table D-2. Session Scope Menu Changes<br />

Menu Description of Change<br />

File pulldown Restructured<br />

Setup pulldown<br />

Session popup<br />

Session Palette Restructured and converted icons to text<br />

The following table describes the Schematic scope menus that changed in DA-<strong>IC</strong>.<br />

Table D-3. Schematic Scope Menu Changes<br />

Menu Description of Change<br />

File pulldown Restructured<br />

Edit pulldown<br />

Setup pulldown<br />

Miscellaneous pulldown<br />

Report pulldown<br />

View pulldown<br />

Library pulldown Removed<br />

Check pulldown<br />

Add pulldown Added<br />

Select pulldown<br />

Add popup Restructured<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-3


User Interface Migrating Userware to DA-<strong>IC</strong><br />

D-4<br />

Table D-3. Schematic Scope Menu Changes [continued]<br />

Menu Description of Change<br />

Instance popup Restructured<br />

Function Block popup<br />

Net popup<br />

Property/Text popup<br />

Draw popup<br />

Mixed Selection popup<br />

Selection Free popup Removed<br />

Schematic_edit palette Restructured and converted icons to text<br />

Schematic_text palette<br />

Schematic_draw palette<br />

The following table describes the Symbol scope menus that changed in DA-<strong>IC</strong>.<br />

Table D-4. Symbol Scope Menu Changes<br />

Menu Description of Change<br />

File pulldown Restructured<br />

Edit pulldown<br />

Setup pulldown<br />

Miscellaneous pulldown<br />

Report pulldown<br />

View pulldown<br />

Check pulldown Removed<br />

Add pulldown Added<br />

Select pulldown<br />

Add popup Restructured<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Migrating Userware to DA-<strong>IC</strong> User Interface<br />

Table D-4. Symbol Scope Menu Changes [continued]<br />

Menu Description of Change<br />

Symbol Body & Pins popup Restructured<br />

Property/Text popup<br />

Mixed Selection popup<br />

Selection Free popup Removed<br />

Symbol_draw palette Restructured and converted icons to text<br />

Symbol_text palette<br />

Softkey Changes<br />

The softkeys are hidden by default in DA-<strong>IC</strong>.<br />

Some softkeys are remapped to reflect the changes in the user interface as follows:<br />

Table D-5. Remapped Softkeys<br />

This scope... This softkey... Is mapped to...<br />

Session F1 Open Schematic<br />

Session F3 Open <strong>Design</strong> Configuration<br />

Session F6 Open Language<br />

Session F7 Removed<br />

Schematic F5 (Shift) Place Symbol<br />

(Ctrl) Add Property<br />

(Alt) Check Schematic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-5


User Functions Migrating Userware to DA-<strong>IC</strong><br />

Default Behavior Changes<br />

The following default behavior is changed in DA-<strong>IC</strong>:<br />

D-6<br />

• Auto net and instance name placement is enabled in the Schematic<br />

scope. For more information, see the“$name_instances()” function in the<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

• Resizable instances are enabled in the Schematic scope. For more<br />

information, see the “$allow_resizable_instances()” function in the <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

• Property name display is enabled for the following properties in the <strong>IC</strong><br />

Starter Library: L, W, M, PW, NW, WP, WN, PL, NL, and LN. For more<br />

information, see the “$show_name_and_value()” function in the <strong>Design</strong><br />

<strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

• Border updated during Check. The File > Check Schematic pulldown<br />

menu and the Check and Save palette menu options update the schematic<br />

border during the check. For more information, see the “$update_border()”<br />

and “$$check()” functions in the <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> Reference <strong>Manual</strong>.<br />

User Functions<br />

The arguments and/or return values for the following user functions are changed<br />

in DA-<strong>IC</strong>:<br />

• $copy()<br />

• $print_all_schematics()<br />

• $update_all_schematics()<br />

• $setup_net()<br />

• $$check()<br />

• $report_object()<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Migrating Userware to DA-<strong>IC</strong> Files<br />

• $select_all()<br />

• $select_area()<br />

• $set_color()<br />

• $$setup_check_sheet()<br />

• $setup_color()<br />

• $setup_select_filter()<br />

• $setup_unselect_filter()<br />

• $unselect_all()<br />

• $unselect_area()<br />

Custom userware that uses any of these functions may need to be modified to<br />

work with DA-<strong>IC</strong>.<br />

Files<br />

In the v8.9_1 release, the names of files are renamed for DA-<strong>IC</strong>. The following<br />

sections describe the changes.<br />

Executables<br />

All Falcon and DA executables, driver scripts, and link scripts located in<br />

$MGC_HOME/bin are renamed. The filenames are renamed to include an “_ic”<br />

to the end of the name for DA-<strong>IC</strong>. For example, da is renamed da_ic. The<br />

following table lists the files renamed in DA-<strong>IC</strong>.<br />

Table D-6. Executable Filename Changes<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

X11term X11term_ic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-7


Files Migrating Userware to DA-<strong>IC</strong><br />

D-8<br />

Table D-6. Executable Filename Changes [continued]<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

ample ample_ic<br />

cdpMode12View cdpMode12View_ic<br />

cdpOccPropSet2BAMgr cdpOccPropSet2BAMgr_ic<br />

cdpView2Model cdpView2Model_ic<br />

cdp_miflist cdp_miflist_ic<br />

cdp_mifsort cdp_mifsort_ic<br />

cdp_sample cdp_sample_ic<br />

cdplink cdplink_ic<br />

change_references change_references_ic<br />

check_rgy check_rgy_ic<br />

checkref checkref_ic<br />

chref chref_ic<br />

cib cib_ic<br />

compile_userware compile_userware_ic<br />

config_erc config_erc_ic<br />

config_nc config_nc_ic<br />

copy_object copy_object_ic<br />

copy_version copy_version_ic<br />

da da_ic<br />

ddms_dump_stream ddms_dump_stream_ic<br />

ddms_gen_type_rep ddms_gen_type_rep_ic<br />

ddms_gen_type_rgy_index ddms_gen_type_rgy_index_ic<br />

ddms_locenv ddms_locenv_ic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Migrating Userware to DA-<strong>IC</strong> Files<br />

Table D-6. Executable Filename Changes [continued]<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

ddms_type_rgy_tool ddms_type_rgy_tool_ic<br />

ddms_which_map ddms_which_map_ic<br />

ddplink ddplink_ic<br />

delete_object delete_object_ic<br />

dfilink dfilink_ic<br />

dmgr dmgr_ic<br />

dve_chk_component dve_chk_component_ic<br />

dve_chk_design dve_chk_design_ic<br />

dve_chk_symbol dve_chk_symbol_ic<br />

dve dve_ic<br />

freeze_version freeze_version_ic<br />

get_hard_name get_hard_name_ic<br />

get_mgc_vco get_mgc_vco_ic<br />

get_soft_name get_soft_name_ic<br />

list_contents list_contents_ic<br />

list_references list_references_ic<br />

listref listref_ic<br />

mdb_test mdb_test_ic<br />

mgc_font_collect mgc_font_collect_ic<br />

mgc_font_convert mgc_font_convert_ic<br />

mgc_xinfo mgc_xinfo_ic<br />

miflist miflist_ic<br />

move_object move_object_ic<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-9


Files Migrating Userware to DA-<strong>IC</strong><br />

Header Files<br />

D-10<br />

Table D-6. Executable Filename Changes [continued]<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

resolve_mgc_path resolve_mgc_path_ic<br />

revert_version revert_version_ic<br />

salvage_object salvage_object_ic<br />

set_mgc_env set_mgc_env_ic<br />

set_version_depth set_version_depth_ic<br />

show_object_info show_object_info_ic<br />

unfreeze_version unfreeze_version_ic<br />

Some of the header files in $MGC_HOME/shared/include are renamed for DA-<strong>IC</strong><br />

as listed in the following table. Source files using these header files need to be<br />

renamed also.<br />

Table D-7. Header Filename Changes<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

ampl_dll_attr.h ampl_dll_attr_ic.h<br />

ample_interface.h ample_interface_ic.h<br />

cdpdr.h cdpdr_ic.h<br />

cdpdw.h cdpdw_ic.h<br />

ddp.h ddp_ic.h<br />

ddp_dll_attr.h ddp_dll_attr_ic.h<br />

ddp_eval.h ddp_eval_ic.h<br />

dfip.h dfip_ic.h<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Migrating Userware to DA-<strong>IC</strong> Libraries<br />

Libraries<br />

Libraries are renamed, added, and removed for DA-<strong>IC</strong>. This section describes the<br />

changes.<br />

The $MGC_GENLIB library palette is removed from DA_<strong>IC</strong>.<br />

Three new <strong>IC</strong>-specific libraries are added to DA-<strong>IC</strong> as described in the following<br />

table:<br />

Table D-8. New <strong>IC</strong> Libraries<br />

Library Description<br />

$MGC_<strong>IC</strong>_GENER<strong>IC</strong>_LIB Sub library that contains symbols used for<br />

generic parts, such as ports.<br />

$MGC_<strong>IC</strong>_SOURCES_LIB Sub library that contains symbols for<br />

different voltage and current sources.<br />

$MGC_<strong>IC</strong>_DEV<strong>IC</strong>E_LIB Sub library that contains symbols used for<br />

the main components in full custom <strong>IC</strong><br />

design.<br />

Your location map variables must be modified to reflect the new library<br />

configurations.<br />

All Falcon and DA libraries in $MGC_HOME/lib are renamed for DA-<strong>IC</strong> as<br />

listed in the following table.<br />

Table D-9. Library Filename Changes<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

libmgc_ample.so<br />

libmgc_ample.sl<br />

libmgc_bed.so<br />

libmgc_bed.sl<br />

libmgc_core.so<br />

libmgc_core.sl<br />

libmgc_ample_ic.so<br />

libmgc_ample_ic.sl<br />

libmgc_bed_ic.so<br />

libmgc_bed_ic.sl<br />

libmgc_core_ic.so<br />

libmgc_core_ic.sl<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 D-11


Libraries Migrating Userware to DA-<strong>IC</strong><br />

D-12<br />

libmgc_ddms.so<br />

libmgc_ddms.sl<br />

libmgc_ftxt.so<br />

libmgc_ftxt.sl<br />

libmgc_stubs.so<br />

libmgc_stubs.sl<br />

libmgc_uims.so<br />

libmgc_uims.sl<br />

libmgc_vdd.so<br />

libmgc_vdd.sl<br />

Table D-9. Library Filename Changes<br />

Name in DA... Name in DA-<strong>IC</strong>...<br />

libmgc_ddms_ic.so<br />

libmgc_ddms_ic.sl<br />

libmgc_ftxt_ic.so<br />

libmgc_ftxt_ic.sl<br />

libmgc_stubs_ic.so<br />

libmgc_stubs_ic.sl<br />

libmgc_uims_ic.so<br />

libmgc_uims_ic.sl<br />

libmgc_vdd_ic.so<br />

libmgc_vdd_ic.sl<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Appendix E<br />

Special Instances<br />

This appendix describes the special instances contained in the generic_lib<br />

provided with <strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> (DA-<strong>IC</strong>).<br />

Special instance connectors are not part of the final evaluated design, and are not<br />

translated into physical components. They are used to pass connectivity<br />

information to the <strong>Design</strong> Viewpoint Editor-<strong>IC</strong> (DVE-<strong>IC</strong>) and other downstream<br />

applications that define or use an evaluated design. They are created by adding<br />

specific Class property values to an instance. Refer to “Class Property” in Chapter<br />

7 for more information about Class properties.<br />

You may create special instance symbols or use the components provided with<br />

DA-<strong>IC</strong>. The following special instances are provided with DA-<strong>IC</strong>:<br />

• Net Connector. The net connector is used to connect two nets that have<br />

different net names. The net name is assigned by adding the Net property to<br />

a net vertex. It is not possible to attach more than one name to a net because<br />

conflicting property values are not allowed. Two nets with different net<br />

names can be connected by attaching the first net to the pin on one side of<br />

the net connector, and the second net to the pin on the other side of the net<br />

connector. If two nets with the same name are attached to a net connector,<br />

or if a net attached to a net connector is unnamed, when the sheet is<br />

checked, the Check command issues a warning.<br />

A net connector has a Class property value “C” and at least two pins. The<br />

netcon component is a Mentor Graphics-supplied net connector. For more<br />

information, see “Using the netcon Component” in Chapter 3.<br />

• External Port. An external port establishes any signals connected to that<br />

instance as externals, regardless of the level of hierarchy. The simulator<br />

ignores the instance behaviorally in the same way that it would a port<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 E-1


E-2<br />

Special Instances<br />

instance at the top level of a design. The instance is included in the<br />

evaluated design, and can be seen and annotated by downstream<br />

applications.<br />

An external port has a Class property value of “E” that identifies a port as<br />

an external port, regardless of its position in the design hierarchy.<br />

• Off-Page Connector. The off-page connector is used to connect nets with<br />

the same name across different sheets in a schematic. Nets with the same<br />

name, that are not graphically connected in the schematic, are automatically<br />

connected. To identify a net as connected, by name across sheet boundaries<br />

of the schematic, attach each net to a pin of an off-page connector.<br />

An off-page connector has a Class property value “O”, and at least one pin.<br />

The offpag.out and offpag.in components are Mentor Graphics-supplied<br />

off-page connectors, and are located in the gen_lib library.<br />

• Port. The port component is used to indicate a net making a connection<br />

external to the schematic. The number and net names of the ports on a<br />

schematic should match the pins on the interface of the symbol representing<br />

that schematic. Refer to “Component Interface” in the Component Interface<br />

Brower-<strong>IC</strong> User’s and Reference <strong>Manual</strong> for a definition of a component<br />

interface, and section “Managing/Registering Models” in this manual for a<br />

discussion about symbol registration. If the net name attached to a port in<br />

the schematic does not match the name of a pin on its representative symbol<br />

when the schematic is checked, the Check command issues an error.<br />

A port has a Class property value “P”, and must have exactly one pin. The<br />

portin and portout components are Mentor Graphics-supplied port<br />

components, located in the gen_lib library.<br />

• Bus Ripper. A bus ripper is similar to a net connector. It connects two nets<br />

of possibly different names, and provides a way to rip off a single-bit or<br />

sub-bus of a bus for connection to a different net. For example, it permits<br />

connecting net N(1) to B(1) of bus B(0:7).<br />

The bus must be attached to the ripper pin named “Bundle”. The ripped nets<br />

must be attached to the corresponding ripper pins. In addition, the value of<br />

the Rule property attached to the ripper must have a valid bus range syntax<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Special Instances<br />

to identify the bits to be ripped from the main bus; for example, a value bit<br />

“1” of range “0:3”. The net must be named so that its width matches the<br />

width specified by the Rule property.<br />

When ripping bits from a two-dimensional bus, the value of the Rule<br />

property must be set to rip one bit from the bus or to rip a range of bits from<br />

a row or column of the bus. The following list shows the syntax and a<br />

sample Rule property value for each possible type of rip. The sample values<br />

assume that the bus is named “data(0:2;0:2)” and that the width of the nets<br />

attached to the rip component match the width specified in the Rule<br />

property:<br />

x;y Rip one value from the matrix. For example:<br />

Rule = 0;0<br />

x;y 1:y 2Rip a range of values from a row in the matrix. For example:<br />

Rule = 1;0:2<br />

x 1:x 2;y Rip a range of values from a column in the matrix. For example:<br />

Rule = 0:2;1<br />

A bus ripper instance has a Class property value “R”. It must have at least<br />

two pins. One pin must have a Pin property with value “Bundle”. A Rule<br />

property must be associated with the instance body or with each nonbundled<br />

pin. The value of the Rule property must have a valid bus range<br />

syntax.<br />

The rip component is a Mentor Graphics-supplied component, located in<br />

the gen_lib library. The rip component provides a wide variety of ripper<br />

symbols capable of ripping varying numbers of bits from a bus. Refer to<br />

“Creating a Bus Ripper Component” in Chapter 3 for an example of how to<br />

create a bus ripper.<br />

• Implicit Ripper. An implicit ripper separates a named bit from a bus or a<br />

member from a net bundle. It differs from a standard ripper symbol in that:<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 E-3


E-4<br />

o The implicit ripper is not an actual symbol in any library.<br />

Special Instances<br />

o Since connection is established by name, implicit rippers do not have a<br />

Rule property attached to them.<br />

You can visually differentiate an implicit ripper from a standard ripper in<br />

that the implicit ripper instance is the same color as a net. The name of the<br />

net connected to the implicit ripper must exactly match the name of a bus<br />

bit or member of a net bundle. You can configure implicit rippers to<br />

connect at a 45-degree angle, much like standard rippers, or in a straight<br />

line.<br />

Figure E-4 illustrates some examples of implicit rippers.<br />

ADDR(7:0)<br />

Straight rippers<br />

ADDR(0)<br />

ADDR(4)<br />

BUND1{s1, x, y, ADDR(7:0), s2}<br />

x<br />

Angled rippers<br />

Figure 15-8. Implicit Ripper Examples<br />

Implicit rippers are the default when you invoke <strong>Design</strong> <strong>Architect</strong>. Implicit<br />

rippers do not define any explicit connectivity; rather, electrical<br />

connectivity is established only by name.<br />

ADDR(3)<br />

ADDR(7)<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Special Instances<br />

You can set the ripper mode to “auto” using the $setup_ripper() function,<br />

which you can access through the Setup > Ripper pulldown menu. Auto<br />

rippers must be used if you need to pull off a bit in a bus and connect it to a<br />

wire with a different name, or if you want to pull off part of a bus, and<br />

connect it to a smaller bus.<br />

• Globals. A global instance is a component that has a Global property and a<br />

Class property assigned to the symbol body. The value of the Global<br />

property is the name of the net (for example, Ground and Vcc). The value<br />

of the Class property is “G”. The global symbol must have at least one pin<br />

and a Global property. Examples from the Mentor Graphics-supplied<br />

gen_lib component library are Vcc and Ground.<br />

A global instance can exist at any level of the design. Nets that connect to<br />

the global instance, without creating a physical net route, must have a Net<br />

property value that is the same as the Global property value on the global<br />

instance to establish electrical connectivity.<br />

• Null Instance. A null instance is a component that carries the component's<br />

properties, but represents the component as electrically inert. In many<br />

cases, the null function of a component can be provided using comments<br />

instead. A null instance has a Class property value “N” and no pins.<br />

• Intra-page Connector - An intra-page connector is a class instance that<br />

allows you to specify connections by name within a sheet but does not<br />

produce warnings during check sheet. The class property value attached to<br />

the intra-page connector is "I". You must attach the class property "I" to the<br />

net in order to have no check sheet warnings occur regarding connection by<br />

name. The user must also attach the class property "I" to dangling vertices.<br />

If any net by the same name has one or more dangling vertices, DA-<strong>IC</strong><br />

produces a check sheet warning that lists the handles of all nets with the<br />

same name.<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 E-5


E-6<br />

Special Instances<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

.chi, 8-9<br />

.cir, 8-8<br />

.COU, 8-9<br />

.DOU, 8-9<br />

.JWDB, 8-9<br />

.spi, 8-9<br />

.WDB, 8-9<br />

A<br />

Adding FB Pins, 6-23<br />

Adding forces, 8-22<br />

Adding Panels, 2-51<br />

Adding properties in <strong>Design</strong> Context, 11-3<br />

ADVance MS<br />

adms.ini file, 5-2, 8-15, 8-18<br />

design library, 5-2<br />

AMPLE_PATH, 14-16, 14-19<br />

setting, 14-16<br />

angled ripper, 3-14<br />

Annotations<br />

reconnecting, 11-16<br />

setting the color, 2-8<br />

Applying Edits, 11-16<br />

Assigning Properties, 7-35<br />

Assigning Property Owners, 7-35<br />

Auto ripper, 3-14<br />

Auto Sequence Text, 3-44<br />

Auto_ripper_mode, 3-14<br />

Automatic Net Routing, 3-26<br />

Automatic Placement<br />

Net Name, 3-13<br />

B<br />

Back annotation<br />

changing the color, 2-8, 7-7<br />

creating, 11-20<br />

editing, 11-20<br />

expressions in, 11-13<br />

merging, 11-5, 11-22<br />

Index<br />

viewing, 11-4, 11-5<br />

Bits<br />

extracting from bus, E-3<br />

Boundaries<br />

resizing, 6-33<br />

Branches<br />

selection, 2-17<br />

Bundles<br />

connected to ports, 4-23<br />

net, 3-3, 3-24<br />

Bus ripper, E-2<br />

connecting, 3-42<br />

creating implicit rippers, 3-47, 3-48<br />

extracting lines, 3-42<br />

installing, 3-40<br />

instantiation, 3-46<br />

using the automatic 1x1, 3-46<br />

Buses, 3-24<br />

bus_net_name, 3-32<br />

connected sub-bus, 3-41<br />

connections, 3-31<br />

creating, 3-31, 3-32<br />

indicating width, 3-28, 7-7<br />

least significant bit (lsb), 3-32<br />

most significant bit (msb), 3-32<br />

multi-dimentional, 3-35<br />

representing graphically, 3-35<br />

C<br />

Check command<br />

setting up, 3-77, 4-23<br />

Checking a model registration, 5-22<br />

Checking forces, 8-25<br />

Checks<br />

close dot, C-9<br />

dangling net and pin, C-10<br />

expression analysis, C-8<br />

instance, C-14<br />

instance overlap, C-9<br />

notdots, C-9<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-1


parameter analysis, C-8<br />

pin and port interface, C-13<br />

required frame, C-7<br />

required instance, C-4<br />

required net, C-6<br />

required property ownership, C-8<br />

required special instance, C-4<br />

required special symbol, C-2<br />

required symbol body, C-3<br />

required symbol pin, C-2, C-8<br />

special instance, C-14<br />

Class property, 7-28, E-2<br />

Color<br />

changing for properties, 7-49<br />

setting for design objects, 2-7<br />

setting the annotation color, 2-8<br />

setting the color configuration, 2-8<br />

Colors<br />

setting on the fly, 6-35<br />

Comment objects<br />

adding, 3-64<br />

attributes, 3-66<br />

convert objects to comments, 3-65<br />

schematic sheets, 3-67<br />

types, 3-65<br />

uses, 3-65<br />

Commlib, 1-4<br />

Compiling models for ADVance MS, 5-2<br />

Component<br />

change references, 9-7<br />

delete, 2-30<br />

hierarchy window, 9-5<br />

rename, 9-7<br />

Component interface<br />

registration, multiple symbols, 4-25<br />

reporting, 9-13<br />

Component library<br />

choosing from, 3-19<br />

Connecting a Bus Ripper, 3-42<br />

Index-2<br />

Index (cont.)<br />

Index<br />

Converting Electrical Objects to Comments, 3-<br />

69<br />

Copy<br />

objects, 2-23<br />

objects between windows, 2-27<br />

repeat, 2-24<br />

to a line, 2-25<br />

to an array, 2-26<br />

Create a symbol pin list, 3-62<br />

Create mode, 5-4<br />

Creating a Bus, 3-32<br />

Creating a Bus Ripper, 3-36<br />

Creating Function Blocks<br />

adding Function Blocks Pins, 6-23, 12-8<br />

Function Block Definition Prompt Bar, 6-<br />

10, 6-19<br />

Function Block Definitions, 6-8<br />

Function Block Pin placement, 6-24<br />

Creating Panels in Read-Only Mode, 2-53<br />

Crossprobing schematics<br />

with DA-<strong>IC</strong> View, 8-150<br />

with Xelga, 8-146<br />

Custom Hotkeys<br />

customizing, 13-11<br />

defined, 13-2<br />

loading, 13-14<br />

usage, 13-10<br />

Custom userware<br />

$add_library_menu_item(), 14-37<br />

$add_or_replace_instance(), 14-39<br />

$create_library_menu(), 14-35<br />

$prompt_for_diagram_location(), 14-41<br />

.ample files, 14-24<br />

.dofile, 14-24<br />

adding a palette menu, 14-43<br />

AMPLE_PATH, 14-16, 14-19<br />

DES_ARCH_AUX_PKGS_LIST, 14-23,<br />

14-25<br />

DES_ARCH_PKGS_TO_LOAD, 14-19<br />

dofiles, 14-18<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

finding source, 14-15<br />

loading, 14-16<br />

personality modules, 14-19<br />

schematic menu files, 14-28<br />

scope specific dofiles, 14-18<br />

D<br />

DA-<strong>IC</strong> Editing Hotkeys<br />

defined, 13-1<br />

loading, 13-4<br />

usage, 13-4<br />

DA-<strong>IC</strong> Startup Files, 14-11<br />

Dangling net, 7-29<br />

Default text editor<br />

MGC_SIM_EDITOR, 8-9<br />

Delete, 2-31<br />

Deleting a component, 2-30<br />

Deleting a model registration, 5-27<br />

Deleting forces, 8-24<br />

Deleting Panels, 2-51<br />

DES_ARCH_AUX_PKGS_LIST, 14-23, 14-<br />

25<br />

DES_ARCH_PKGS_TO_LOAD, 14-19<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong><br />

exiting, 2-4<br />

printing, 2-38<br />

<strong>Design</strong> checking, C-1<br />

close dot checks, C-9<br />

dangling net and pin checks, C-10<br />

expression analysis checks, C-8<br />

frame checks, C-7<br />

init property checks, C-10<br />

instance checks, C-3, C-4, C-13<br />

instance overlap checks, C-9<br />

net checks, C-6, C-14<br />

parameter analysis checks, C-8<br />

property ownership checks, C-8<br />

required special symbol checks, C-3<br />

required symbol body checks, C-3<br />

special instance checks, C-4, C-14<br />

Index (cont.)<br />

<strong>Design</strong> Context<br />

add properties, 11-3<br />

locking sheet for edits, 11-23<br />

merge back annotations, 11-5<br />

opening a non-existant component, 11-23<br />

opening a non-existant schematic, 11-23<br />

view properties, 11-4<br />

<strong>Design</strong> Management<br />

change component references, 9-7<br />

configuration build, 9-10<br />

delete design object, 2-30<br />

object checking, 9-9<br />

reference checking, 9-9<br />

release a design, 9-8<br />

rename design object, 9-7<br />

verification, 9-11<br />

versions, 9-9<br />

viewing hierarchy, 9-5<br />

<strong>Design</strong> Navigation, 3-83<br />

closing a multiple sheet schematic, 3-85<br />

left arrow button, 3-83<br />

multiple page icon button, 3-83, 3-84<br />

navigating multi-sheet schematics, 3-84<br />

right arrow button, 3-83<br />

<strong>Design</strong> Viewpoints<br />

applying edits, 11-16<br />

evaluating properties, 11-10<br />

Device Lib, 1-4<br />

Drawing<br />

Arc, 4-7<br />

circle, 4-7<br />

dot, 4-8<br />

line, 4-8<br />

polygon, 4-10<br />

polyline, 4-9<br />

rectangle, 4-10<br />

Dynamic Cursor<br />

setting the shape, 2-9<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-3


E<br />

Edit mode, 5-5<br />

Editing forces, 8-24<br />

Environment variable<br />

$WORK, 5-2<br />

Environment variables<br />

AMPLE_PATH, 14-16<br />

ANACAD, 8-146<br />

Component Libraries, 1-4<br />

DES_ARCH_AUX_PKGS_LIST, 14-23,<br />

14-25<br />

DES_ARCH_HIDE_BA_ONLY_PROPS,<br />

11-3<br />

DES_ARCH_PKGS_TO_LOAD, 14-19<br />

HOME, 11-3, 14-12<br />

MGC_HOME, 14-12<br />

MGC_SIM_EDITOR, 8-9<br />

MGC_WD, 2-4, 14-12<br />

userware, 14-26<br />

Error checking<br />

annotations, C-11<br />

close dot checks, C-9<br />

dangling net and pin checks, C-10<br />

expression analysis checks, C-8<br />

frame checks, C-7<br />

init property checks, C-10<br />

instance checks, C-3, C-4, C-13<br />

instance overlap checks, C-9<br />

net checks, C-6, C-14<br />

parameter analysis checks, C-8<br />

property ownership checks, C-8<br />

reports, 9-16<br />

required special symbol checks, C-3<br />

required symbol body checks, C-3<br />

special instance checks, C-4, C-14<br />

Expressions, 7-19<br />

Expressions in back annotation objects, 11-13<br />

External Port, E-1<br />

Index-4<br />

Index (cont.)<br />

Index<br />

F<br />

FB Definition<br />

adding or removing internal objects, 6-32<br />

as source object, 12-4<br />

boundary, 12-5<br />

checking, 6-45<br />

converting from FB Instance, 6-30<br />

defined, 12-1<br />

example of, 12-5<br />

FB Pins, 12-6<br />

FB_INST property, 12-5<br />

FB_NAME property, 12-5<br />

resizing, 6-33<br />

usage, 12-2<br />

FB Definition Creation, 6-6<br />

FB Definitions<br />

creating, 6-8<br />

manipulating, 6-30<br />

selecting, 6-31<br />

FB Instance<br />

boundary, 12-7<br />

checking, 6-45<br />

defined, 12-1<br />

example of, 12-6<br />

FB_INST property, 12-7<br />

FB_INST property usage, 12-7<br />

FB_NAME property, 12-7<br />

resizing, 6-33<br />

usage, 12-2<br />

FB Instances<br />

converting to FB Definition, 6-30<br />

creation, 6-13<br />

manipulating, 6-30<br />

selecting, 6-31<br />

FB Objects<br />

selecting, 6-31<br />

FB Pins<br />

adding, 6-23<br />

FB Definition pin naming, 12-8<br />

FB Definition Pins usage, 12-8<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

FB Instance Pins usage, 12-9<br />

selecting, 6-31<br />

Wide Nets connected to, 12-8<br />

Flip objects, 2-33<br />

Forces, 8-22<br />

Frames, 3-70, 3-74, 3-75<br />

setting parameters, 3-75<br />

Frexp property, 7-31<br />

CASE value, 7-32<br />

FOR value, 7-32<br />

IF value, 7-35<br />

OTHERWISE value, 7-32<br />

Function Block Definition Prompt Bar<br />

FB Name, 6-10, 6-19<br />

INST Name, 6-11, 6-20<br />

Name Placement, 6-11, 6-20<br />

Function Block Objects<br />

changing colors, 6-35<br />

checking, 6-45<br />

defined, 12-1<br />

development states, 12-2<br />

FB Definition, 12-1<br />

FB Instance, 12-1<br />

made, 12-3<br />

Made FB Definition, 12-1<br />

Made FB Instance, 12-1<br />

resizing, 6-33<br />

symbol instance, 12-3<br />

unmade, 12-3<br />

Function Block Properties<br />

defined, 12-4<br />

FB_DEF, 12-4<br />

FB_INST, 12-4<br />

FB_NAME, 12-4<br />

Function Block Property, 7-31<br />

Function Block Setup, 6-3<br />

Function Block Usage<br />

connected model, 12-13<br />

defined, 12-11<br />

net constructs, 12-17<br />

Index (cont.)<br />

two-step process, 6-1<br />

unconnected model, 12-12<br />

Function Blocks<br />

Add Popup Menu, 6-7<br />

adding Function Blocks Pins, 6-23, 12-8<br />

Definitions, 6-8<br />

Function Block Definition Prompt Bar, 6-<br />

10, 6-19<br />

Function Block Pin placement, 6-24<br />

INST Name, 6-11, 6-20<br />

terminology, 12-4<br />

Functional blocks, 3-53<br />

Functions<br />

$add_library_menu_item(), 14-37<br />

$add_or_replace_instance(), 14-39<br />

$ask_scope_frame_name(), 14-10<br />

$copy_edit_hotkey_settings(), 15-6<br />

$create_library_menu(), 14-35<br />

$define_hotkey(), 15-7<br />

$dofile(), 14-16<br />

$get_hotkey_mode(), 15-9<br />

$get_hotkey_settings(), 15-10<br />

$load_hotkey_settings(), 15-11<br />

$load_userware(), 14-16<br />

$mgc_add_or_replace_instance(), 14-39<br />

$prompt_for_diagram_location(), 14-41<br />

$report_hotkey_settings(), 15-13<br />

$set_hotkey_mode(), 15-15<br />

$window_scope_name(), 14-10<br />

G<br />

Generic Lib, 1-4<br />

Global property, 7-29<br />

Globals, E-5<br />

H<br />

Handles, 2-35<br />

Hidden Symbol Property Text, 2-11<br />

Hotkeys<br />

bypassing, 13-2<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-5


default set, 13-6<br />

defined, 13-1<br />

disabling, 13-16<br />

enabling, 13-16<br />

function summary, 15-1<br />

Menu, 13-2<br />

reporting status, 13-15<br />

scopes, 13-1<br />

types, 13-1<br />

I<br />

<strong>IC</strong> Station, 3-95<br />

<strong>IC</strong>print, 2-43, 2-47<br />

Implicit ripper examples, E-4<br />

Implict ripper, 3-14<br />

INST Name, 6-11, 6-20<br />

Inst property, 7-29<br />

character restrictions, 7-7<br />

Instance, 3-2<br />

instantiation, 3-2<br />

placing, 3-19<br />

repeating, 3-23, 3-71<br />

replace, 3-20, 3-22<br />

resizing, 2-29<br />

selection, 2-18<br />

special, 3-3<br />

updating, 3-20<br />

Instantiation, 3-2<br />

1x1 bus ripper, 3-46<br />

Invocation<br />

from DA-<strong>IC</strong>, 2-2<br />

from operating shell, 2-3<br />

<strong>IC</strong> Station, 3-95<br />

J<br />

Joining sliced objects, 4-12<br />

L<br />

Language File<br />

Opening, 3-8<br />

Index-6<br />

Index (cont.)<br />

opening, 3-8<br />

Loading personality modules, 14-19<br />

M<br />

made<br />

defined, 12-3<br />

Made FB Definition<br />

checking, 6-45<br />

defined, 12-1<br />

Made FB Definitions<br />

creating, 6-37<br />

unmaking, 6-41<br />

Made FB Instance<br />

checking, 6-45<br />

defined, 12-1<br />

Made FB Instances<br />

unmaking, 6-42<br />

Made FB Intances<br />

creating, 6-37<br />

Made Function Blocks<br />

creation of, 12-10<br />

explanation, 12-9<br />

hierarchy, 12-9<br />

made FB Definition, 12-10<br />

Made FB Instance, 12-11<br />

Manage mode, 5-5<br />

Manipulate graphical objects<br />

copy to an array, 2-26<br />

copy to line, 2-25<br />

select, 2-16<br />

Manipulating Graphical Objects<br />

repeat moving, 2-23<br />

Manipulating graphical objects<br />

basepoint change during move, 2-22<br />

Menus<br />

$add_library_menu_item(), 14-37<br />

$add_or_replace_instance(), 14-39<br />

$create_library_menu(), 14-35<br />

adding a palette, 14-43<br />

library, 14-28<br />

Index<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

Name Nets, 3-50<br />

Palette Popup, 3-22<br />

Window, 2-4<br />

Merging annotations, 11-5<br />

MGC_SIM_EDITOR, 2-9, 8-9<br />

Model editor<br />

specifying, 2-9<br />

Model Registrar<br />

exiting, 5-29<br />

overview, 5-3<br />

Model Registration<br />

Displaying/Editing Registered Models in<br />

Simulation Mode, 8-82<br />

Model registration, 5-1<br />

add as property, 5-16<br />

checking, 5-22<br />

choosing a model, 5-7<br />

component field, 5-13<br />

copying, 5-26<br />

creating, 5-4<br />

default, 5-19<br />

deleting, 5-27<br />

Edit Mapping, 5-12<br />

editing, 5-5, 5-23<br />

editing an existing symbol, 5-9<br />

exiting, 5-29<br />

from a symbol, 5-14<br />

generating a symbol for a model, 5-10<br />

invoking, 5-3<br />

managing, 5-5<br />

map by name, 5-17<br />

map selected, 5-17<br />

mapping a model to a symbol, 5-16<br />

naming a model, 5-12<br />

Open Symbol, 5-13<br />

pins and properties, 5-16<br />

ports and parameters, 5-16<br />

registering a model to an existing symbol,<br />

5-8<br />

renaming, 5-25<br />

Index (cont.)<br />

restoring, 5-28<br />

supported models, 5-2<br />

symbol layout properties, 5-11<br />

Symbol list box, 5-13<br />

unmap all, 5-17<br />

unmap selected, 5-17<br />

viewing registered models, 5-19<br />

Model selection, 8-75<br />

Move<br />

basepoint change during, 2-22<br />

objects, 2-22<br />

objects between windows, 2-23<br />

repeat, 2-23<br />

Multi-Dimentional Buses, 3-35<br />

N<br />

Naming Nets<br />

Automatic Placement, 3-13<br />

Net, 3-24<br />

dangling, 3-30, 7-29<br />

Net Bundles, 3-3, 3-24<br />

creating, 3-49<br />

naming, 3-49<br />

rip members, 3-52<br />

Net connector, E-1<br />

Net naming syntax, 3-27<br />

Net property, 7-30<br />

character restrictions, 7-7<br />

Net router, 3-26<br />

Net vertices<br />

connecting, 3-26<br />

disconnecting, 3-26<br />

netcon, E-1<br />

Netlist file (.spi), 8-9<br />

Netlisting<br />

EldoNet, 3-88<br />

Netlisting a Schematic, 3-88<br />

Nets<br />

attributes, 3-11<br />

auto_ripper_mode, 3-14<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-7


auto_route_mode, 3-26<br />

connecting, 3-26<br />

construction of, 6-25<br />

creating external nets, 6-28<br />

creating flythru nets, 6-29<br />

creating internal nets, 6-26<br />

creating passthru nets, 6-29<br />

disconnecting, 3-26<br />

drawing, 3-25<br />

External Nets, 12-19<br />

Flythru Nets, 12-21<br />

Internal FB Definition Nets, 12-17<br />

moving net names, 3-30<br />

naming, 3-28<br />

Passthru Nets, 12-20<br />

renaming, 3-29<br />

renaming all segments, 3-29<br />

routing, 3-25, 3-26<br />

selecting attached, 2-18<br />

terminating dangling net, 3-30<br />

valid dangles, 3-30<br />

No default ripper, 3-14<br />

Null instance, E-5<br />

O<br />

Object handles, 2-35<br />

Off-page connector, 3-58, E-2<br />

Opening a Language File, 3-8<br />

Opening a Non-Existant Component in <strong>Design</strong><br />

Context, 11-23<br />

Opening a Non-Existant Schematic in <strong>Design</strong><br />

Context, 11-23<br />

Opening multiple sheets, 3-7<br />

Operating Procedures<br />

CASE frames, 3-70<br />

FOR frames, 3-70<br />

IF frames, 3-70<br />

P<br />

Palette<br />

Index-8<br />

Index (cont.)<br />

adding a palette menu, 14-43<br />

Library, 14-43<br />

Palettes<br />

popup menu, 3-22<br />

Panels<br />

adding, 2-51<br />

creating in Read-only mode, 2-53<br />

deleting, 2-51<br />

printing in Read-only mode, 2-53<br />

viewing, 2-51<br />

Parameter<br />

definition of, 7-17<br />

setting, 3-75<br />

Personality modules, 14-19<br />

loading, 14-19<br />

Pin<br />

grid, 4-4<br />

spacing, 4-4<br />

Pin Bundle<br />

adding, 4-21<br />

naming, 4-21<br />

Pin list, 3-62<br />

Pin naming syntax, 3-27<br />

Pin property, 7-30<br />

character restrictions, 7-7<br />

Pins<br />

selecting attached, 2-19<br />

Pivot objects, 2-32<br />

Plotting Simulation Results, 8-86<br />

difference, 8-86, 8-89<br />

Polygons<br />

making from polylines, 4-12<br />

Port, E-2<br />

Printing<br />

all sheets in a hierarchy, 2-42<br />

configuration, 2-51<br />

From Schematic Editor window, 2-46<br />

From Symbol Editor window, 2-46<br />

<strong>IC</strong>print, 2-47<br />

Print/Plot, 2-50<br />

Index<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

Schematic sheet, 2-46<br />

Schematics with protected objects, 2-50<br />

Printing in <strong>Design</strong> <strong>Architect</strong>, 2-38<br />

Printing Panels in Read-Only Mode, 2-53<br />

Properties<br />

adding multiple, 7-41, 7-50<br />

adding single, 7-39<br />

AMPLE, 7-19<br />

attribute_modified, 7-13<br />

auto_update_mode, 3-21<br />

automatic update, 7-15<br />

changing attributes, 7-47<br />

changing hidden symbol property text, 2-<br />

11, 7-50<br />

changing the color, 7-49<br />

changing values, 7-45<br />

character restrictions, 7-7<br />

dangling nets, 3-30<br />

deleting, 7-43<br />

deleting owners, 7-44<br />

evaluating, 11-10<br />

in context of a design, 11-2<br />

introduction, 7-1<br />

listing information, 7-45<br />

logical symbol, 7-10<br />

mark property attributes, 7-14<br />

mark property value, 7-14<br />

merge options, 7-15<br />

name restrictions, 7-6<br />

names versus values, 7-4<br />

net, 3-28<br />

parameters, 7-17<br />

propagation, 7-28<br />

repeat adding, 7-42<br />

setting attributes, 7-36<br />

setting owners, 7-43<br />

stability switches, 7-11<br />

structure, 7-3<br />

symbol, 7-9<br />

types, 7-4<br />

Index (cont.)<br />

update switches, 7-15<br />

updating, 3-20, 7-13<br />

value restrictions, 7-6<br />

value_modified, 7-13<br />

viewing evaluated, 11-21<br />

visibility switches, 7-12<br />

Properties variable resolution<br />

examples, 7-22<br />

facts, 7-21<br />

Property<br />

attributes, 7-36<br />

Property concepts, 7-1<br />

introduction to, 7-1<br />

structure, 7-3<br />

Property ownership, 7-4<br />

R<br />

Reconnecting Annotations, 11-16<br />

Removing Comment Status, 3-69<br />

Reopening a selection set, 2-21<br />

Repeating instances, 3-23, 3-71<br />

Replacing properties, 3-20<br />

Report Groups, 2-30<br />

Reporting forces, 8-25<br />

Reporting on<br />

check status, 9-16<br />

objects, 9-15<br />

Reselecting a selection set, 2-21<br />

Resizing Instances, 2-29<br />

Ripper<br />

angled, 3-14<br />

auto, 3-14<br />

auto_ripper_mode, 3-14<br />

creating a bus ripper, 3-36<br />

implicit, 3-14<br />

no default, 3-14<br />

straight, 3-14<br />

Ripping<br />

bits from bus, E-2<br />

bits from two-dimensional bus, E-3<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-9


Ripping Members from Net Bundles, 3-52<br />

Rotate objects, 2-32<br />

Routing<br />

automatic net, 3-26<br />

Rule property, 7-30<br />

S<br />

Schematic<br />

adding comment objects, 3-64<br />

auto_ripper_mode, 3-14<br />

auto_update_mode, 3-8<br />

convert comment objects to symbol, 3-68<br />

creating a bus, 3-31<br />

creating a sheet for a symbol, 3-56<br />

creating a symbol for, 3-60<br />

creating additional sheets, 3-57<br />

creating CASE frames, 3-75<br />

creating FOR frames, 3-70<br />

creating IF frames, 3-74<br />

functional blocks, 3-53<br />

grid snap, 3-9<br />

grid spacing, 3-9<br />

net attributes, 3-11<br />

new sheet, 3-7<br />

open down, 3-60<br />

opening a sheet, 3-6<br />

placing symbol, 3-19<br />

registering, 3-80<br />

reporting on objects, 9-15<br />

saving, 3-80<br />

setting edit environment, 3-9<br />

Schematic Editor<br />

library menus, 14-28<br />

Schematic Sheets<br />

creating comment objects, 3-67<br />

Scopes<br />

finding name, 14-10<br />

hierarchy, 14-3<br />

Selecting Multiple Objects, 2-16<br />

Selection<br />

Index-10<br />

Index (cont.)<br />

attached branches, 2-17<br />

attached instances, 2-18<br />

attached nets, 2-18<br />

attached pins, 2-19<br />

Nets with the same name, 2-18<br />

object name, 2-19<br />

Setting the mouse behavior, 2-10<br />

Selection filters<br />

setting, 2-22<br />

Selection Set<br />

reopening, 2-21<br />

reselecting, 2-21<br />

Sequence Text, 3-44<br />

Setup<br />

Mouse Selection Behavior, 2-10<br />

Sheets<br />

error checking, 3-77<br />

opening multiple, 3-7<br />

viewing capabilities, 2-37<br />

viewing entire, 2-36<br />

viewing portions, 2-36<br />

viewing the contents, 2-36<br />

Simulation<br />

output file (.chi), 8-9<br />

overview, 8-1<br />

plotting difference, 8-86, 8-89<br />

plotting results, 8-86<br />

requirements, 8-5<br />

results file (.wdb, .cou, .dou), 8-9<br />

running, 8-8<br />

Simulation command file (.cir), 8-8<br />

Simulation setup<br />

auto-close windows, 8-18<br />

procedure, 8-17<br />

single-click, 8-18<br />

SLD properties<br />

Class, 7-28<br />

Frexp, 7-31<br />

Global, 7-29<br />

Inst, 7-29<br />

Index<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Index<br />

Net, 7-30<br />

Pin, 7-30<br />

Rule, 7-30<br />

Slicing graphic objects, 4-11<br />

Sources Lib, 1-4<br />

Special instances, 3-3<br />

bus ripper, 3-37<br />

net connector, 3-49<br />

using off-page connectors, 3-58<br />

using port symbols, 3-59<br />

Startup files, 14-11<br />

straight ripper, 3-14<br />

Symbol<br />

add pins, 4-13<br />

adding multiple pins, 4-14<br />

adding single pin, 4-13<br />

bus ripper, 3-39<br />

consecutive pins, 4-15<br />

convert comment objects to symbol, 3-68<br />

create from schematic, 3-56<br />

draw symbol body, 4-6<br />

edit sheet of, 3-60<br />

joining sliced parts, 4-12<br />

opening, 4-3<br />

pin names, 4-13<br />

pin spacing, 4-4<br />

placing, 3-19<br />

registering, 4-24<br />

registering multiple symbols, 4-25<br />

reporting on objects, 9-15<br />

saving, 4-24<br />

setting edit environment, 4-4<br />

slicing, 4-11<br />

symbol body attributes, 4-4<br />

Symbol layout properties, 5-11<br />

Symbol properties<br />

logical symbol, 7-9<br />

stability switches, 7-11<br />

update switches, 7-15<br />

visibility switches, 7-12<br />

Index (cont.)<br />

Symbol registration, 4-25<br />

Symbol window pulldown menu bar, 4-2<br />

T<br />

Text<br />

auto sequence, 3-44<br />

U<br />

Ungroup Objects, 2-30<br />

unmade<br />

defined, 12-3<br />

Unmade Function Blocks<br />

defined, 12-4<br />

FB Definition, 12-4, 12-5<br />

Unselection<br />

everything, 2-21<br />

multiple objects, 2-20<br />

single object, 2-20<br />

Updating properties, 3-20<br />

attribute_modified, 7-13<br />

auto option, 7-15<br />

auto_update_mode, 3-21, 7-15<br />

automatic, 7-15<br />

clear option, 7-15<br />

default, 7-15<br />

during open sheet, 7-15<br />

examples, 7-16<br />

instance of symbol, 7-13<br />

instance option, 7-15<br />

mark property value, 7-14<br />

merge options, 7-15<br />

symbol option, 7-15<br />

value_modified, 7-13<br />

User-Defined Hotkeys<br />

Define Hotkey Dialog Box, 13-8<br />

defined, 13-1<br />

defining, 13-6<br />

loading, 13-10<br />

location, 13-8<br />

naming syntax, 13-8<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10 Index-11


usage, 13-6<br />

Userware<br />

finding source, 14-15<br />

loading, 14-16<br />

Using the Dialog Navigator, 2-14<br />

V<br />

Valid dangling nets, 3-30<br />

Value_Modified flag, 7-13<br />

Versions, 9-9<br />

View design<br />

centered, 2-37<br />

selected, 2-37<br />

zoom in, 2-37<br />

zoom out, 2-37<br />

View properties in design context, 11-4<br />

Viewing Panels, 2-51<br />

Viewing registered models, 5-20<br />

W<br />

Waveforms<br />

viewing, 8-1<br />

Windows<br />

copying objects between, 2-27<br />

moving objects between, 2-23<br />

Index-12<br />

Index (cont.)<br />

Index<br />

<strong>Design</strong> <strong>Architect</strong>-<strong>IC</strong> User’s <strong>Manual</strong>, v8.9_10


Trademark Information<br />

Updated: 11/20/02


End-User License Agreement<br />

IMPORTANT - USE OF THIS SOFTWARE IS SUBJECT TO L<strong>IC</strong>ENSE RESTR<strong>IC</strong>TIONS.<br />

CAREFULLY READ THIS L<strong>IC</strong>ENSE AGREEMENT BEFORE USING THE SOFTWARE.<br />

This license is a legal “Agreement” concerning the use of Software between you, the end user, either<br />

individually or as an authorized representative of the company acquiring the license, and Mentor<br />

Graphics Corporation and Mentor Graphics (Ireland) Limited, acting directly or through their<br />

subsidiaries or authorized distributors (collectively “Mentor Graphics”). USE OF SOFTWARE<br />

IND<strong>IC</strong>ATES YOUR COMPLETE AND UNCONDITIONAL ACCEPTANCE OF THE TERMS AND<br />

CONDITIONS SET FORTH IN THIS AGREEMENT. If you do not agree to these terms and conditions,<br />

promptly return, or, if received electronically, certify destruction of, Software and all accompanying items<br />

within five days after receipt of Software and receive a full refund of any license fee paid.<br />

END-USER L<strong>IC</strong>ENSE AGREEMENT<br />

1. GRANT OF L<strong>IC</strong>ENSE. The software programs you are installing, downloading, or have acquired with this<br />

Agreement, including any updates, modifications, revisions, copies, documentation and design data (“Software”)<br />

are copyrighted, trade secret and confidential information of Mentor Graphics or its licensors who maintain<br />

exclusive title to all Software and retain all rights not expressly granted by this Agreement. Mentor Graphics<br />

grants to you, subject to payment of appropriate license fees, a nontransferable, nonexclusive license to use<br />

Software solely: (a) in machine-readable, object-code form; (b) for your internal business purposes; and (c) on<br />

the computer hardware or at the site for which an applicable license fee is paid, or as authorized by Mentor<br />

Graphics. A site is restricted to a one-half mile (800 meter) radius. Mentor Graphics' standard policies and<br />

programs, which vary depending on Software, license fees paid or service plan purchased, apply to the following<br />

and are subject to change: (a) relocation of Software; (b) use of Software, which may be limited, for example, to<br />

execution of a single session by a single user on the authorized hardware or for a restricted period of time (such<br />

limitations may be communicated and technically implemented through the use of authorization codes or similar<br />

devices); (c) support services provided, including eligibility to receive telephone support, updates, modifications<br />

and revisions. Current standard policies and programs are available upon request.<br />

2. ESD SOFTWARE. If you purchased a license to use embedded software development (“ESD”) Software,<br />

Mentor Graphics grants to you a nontransferable, nonexclusive license to reproduce and distribute executable<br />

files created using ESD compilers, including the ESD run-time libraries distributed with ESD C and C++<br />

compiler Software that are linked into a composite program as an integral part of your compiled computer<br />

program, provided that you distribute these files only in conjunction with your compiled computer program.<br />

Mentor Graphics does NOT grant you any right to duplicate or incorporate copies of Mentor Graphics' real-time<br />

operating systems or other ESD Software, except those explicitly granted in this section, into your products<br />

without first signing a separate agreement with Mentor Graphics for such purpose.<br />

3. BETA CODE. Portions or all of certain Software may contain code for experimental testing and evaluation<br />

(“Beta Code”), which may not be used without Mentor Graphics' explicit authorization. Upon Mentor Graphics'<br />

authorization, Mentor Graphics grants to you a temporary, nontransferable, nonexclusive license for<br />

experimental use to test and evaluate the Beta Code without charge for a limited period of time specified by<br />

Mentor Graphics. This grant and your use of the Beta Code shall not be construed as marketing or offering to sell<br />

a license to the Beta Code, which Mentor Graphics may choose not to release commercially in any form. If<br />

Mentor Graphics authorizes you to use the Beta Code, you agree to evaluate and test the Beta Code under normal<br />

conditions as directed by Mentor Graphics. You will contact Mentor Graphics periodically during your use of the<br />

Beta Code to discuss any malfunctions or suggested improvements. Upon completion of your evaluation and<br />

testing, you will send to Mentor Graphics a written evaluation of the Beta Code, including its strengths,<br />

weaknesses and recommended improvements. You agree that any written evaluations and all inventions, product<br />

improvements, modifications or developments that Mentor Graphics conceives or made during or subsequent to<br />

this Agreement, including those based partly or wholly on your feedback, will be the exclusive property of


Mentor Graphics. Mentor Graphics will have exclusive rights, title and interest in all such property. The<br />

provisions of this subsection shall survive termination or expiration of this Agreement.<br />

4. RESTR<strong>IC</strong>TIONS ON USE. You may copy Software only as reasonably necessary to support the authorized<br />

use. Each copy must include all notices and legends embedded in Software and affixed to its medium and<br />

container as received from Mentor Graphics. All copies shall remain the property of Mentor Graphics or its<br />

licensors. You shall maintain a record of the number and primary location of all copies of Software, including<br />

copies merged with other software, and shall make those records available to Mentor Graphics upon request.<br />

You shall not make Software available in any form to any person other than employees and contractors,<br />

excluding Mentor Graphics' competitors, whose job performance requires access. You shall take appropriate<br />

action to protect the confidentiality of Software and ensure that any person permitted access to Software does not<br />

disclose it or use it except as permitted by this Agreement. Except as otherwise permitted for purposes of<br />

interoperability as specified by applicable and mandatory local law, you shall not reverse-assemble, reversecompile,<br />

reverse-engineer or in any way derive from Software any source code. You may not sublicense, assign<br />

or otherwise transfer Software, this Agreement or the rights under it, whether by operation of law or otherwise<br />

(“attempted transfer”) without Mentor Graphics' prior written consent and payment of Mentor Graphics thencurrent<br />

applicable transfer charges. Any attempted transfer without Mentor Graphics’ prior written consent shall<br />

be a material breach of this Agreement and may, at Mentor Graphics’ option, result in the immediate termination<br />

of the Agreement and licenses granted under this Agreement. The provisions of this section 4 shall survive the<br />

termination or expiration of this Agreement.<br />

5. LIMITED WARRANTY.<br />

5.1. Mentor Graphics warrants that during the warranty period, Software, when properly installed, will<br />

substantially conform to the functional specifications set forth in the applicable user manual. Mentor<br />

Graphics does not warrant that Software will meet your requirements or that operation of Software will be<br />

uninterrupted or error free. The warranty period is 90 days starting on the 15th day after delivery or upon<br />

installation, whichever first occurs. You must notify Mentor Graphics in writing of any nonconformity<br />

within the warranty period. This warranty shall not be valid if Software has been subject to misuse,<br />

unauthorized modification or installation. MENTOR GRAPH<strong>IC</strong>S' ENTIRE LIABILITY AND YOUR<br />

EXCLUSIVE REMEDY SHALL BE, AT MENTOR GRAPH<strong>IC</strong>S' OPTION, EITHER (A) REFUND OF<br />

THE PR<strong>IC</strong>E PAID UPON RETURN OF SOFTWARE TO MENTOR GRAPH<strong>IC</strong>S OR (B)<br />

MODIF<strong>IC</strong>ATION OR REPLACEMENT OF SOFTWARE THAT DOES NOT MEET THIS LIMITED<br />

WARRANTY, PROVIDED YOU HAVE OTHERWISE COMPLIED WITH THIS AGREEMENT.<br />

MENTOR GRAPH<strong>IC</strong>S MAKES NO WARRANTIES WITH RESPECT TO: (A) SERV<strong>IC</strong>ES; (B)<br />

SOFTWARE WH<strong>IC</strong>H IS L<strong>IC</strong>ENSED TO YOU FOR A LIMITED TERM OR L<strong>IC</strong>ENSED AT NO COST;<br />

OR (C) EXPERIMENTAL BETA CODE; ALL OF WH<strong>IC</strong>H ARE PROVIDED “AS IS.”<br />

5.2. THE WARRANTIES SET FORTH IN THIS SECTION 5 ARE EXCLUSIVE. NEITHER MENTOR<br />

GRAPH<strong>IC</strong>S NOR ITS L<strong>IC</strong>ENSORS MAKE ANY OTHER WARRANTIES, EXPRESS, IMPLIED, OR<br />

STATUTORY, WITH RESPECT TO SOFTWARE OR OTHER MATERIAL PROVIDED UNDER THIS<br />

AGREEMENT. MENTOR GRAPH<strong>IC</strong>S AND ITS L<strong>IC</strong>ENSORS SPECIF<strong>IC</strong>ALLY DISCLAIM ALL<br />

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PART<strong>IC</strong>ULAR PURPOSE<br />

AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.<br />

6. LIMITATION OF LIABILITY. EXCEPT WHERE THIS EXCLUSION OR RESTR<strong>IC</strong>TION OF LIABILITY<br />

WOULD BE VOID OR INEFFECTIVE UNDER APPL<strong>IC</strong>ABLE LAW, IN NO EVENT SHALL MENTOR<br />

GRAPH<strong>IC</strong>S OR ITS L<strong>IC</strong>ENSORS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, OR<br />

CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS) WHETHER BASED ON<br />

CONTRACT, TORT OR ANY OTHER LEGAL THEORY, EVEN IF MENTOR GRAPH<strong>IC</strong>S OR ITS<br />

L<strong>IC</strong>ENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT<br />

SHALL MENTOR GRAPH<strong>IC</strong>S' OR ITS L<strong>IC</strong>ENSORS' LIABILITY UNDER THIS AGREEMENT EXCEED<br />

THE AMOUNT PAID BY YOU FOR THE SOFTWARE OR SERV<strong>IC</strong>E GIVING RISE TO THE CLAIM. IN<br />

THE CASE WHERE NO AMOUNT WAS PAID, MENTOR GRAPH<strong>IC</strong>S AND ITS L<strong>IC</strong>ENSORS SHALL<br />

HAVE NO LIABILITY FOR ANY DAMAGES WHATSOEVER.


7. LIFE ENDANGERING ACTIVITIES. NEITHER MENTOR GRAPH<strong>IC</strong>S NOR ITS L<strong>IC</strong>ENSORS SHALL<br />

BE LIABLE FOR ANY DAMAGES RESULTING FROM OR IN CONNECTION WITH THE USE OF<br />

SOFTWARE IN ANY APPL<strong>IC</strong>ATION WHERE THE FAILURE OR INACCURACY OF THE SOFTWARE<br />

MIGHT RESULT IN DEATH OR PERSONAL INJURY.<br />

8. INDEMNIF<strong>IC</strong>ATION. YOU AGREE TO INDEMNIFY AND HOLD HARMLESS MENTOR GRAPH<strong>IC</strong>S<br />

AND ITS L<strong>IC</strong>ENSORS FROM ANY CLAIMS, LOSS, COST, DAMAGE, EXPENSE, OR LIABILITY,<br />

INCLUDING ATTORNEYS' FEES, ARISING OUT OF OR IN CONNECTION WITH YOUR USE OF<br />

SOFTWARE AS DESCRIBED IN SECTION 7.<br />

9. INFRINGEMENT.<br />

9.1. Mentor Graphics will defend or settle, at its option and expense, any action brought against you alleging that<br />

Software infringes a patent or copyright or misappropriates a trade secret in the United States, Canada,<br />

Japan, or member state of the European Patent Office. Mentor Graphics will pay any costs and damages<br />

finally awarded against you that are attributable to the infringement action. You understand and agree that as<br />

conditions to Mentor Graphics’ obligations under this section you must: (a) notify Mentor Graphics<br />

promptly in writing of the action; (b) provide Mentor Graphics all reasonable information and assistance to<br />

defend or settle the action; and (c) grant Mentor Graphics sole authority and control of the defense or<br />

settlement of the action.<br />

9.2. If an infringement claim is made, Mentor Graphics may, at its option and expense: (a) replace or modify<br />

Software so that it becomes noninfringing; (b) procure for you the right to continue using Software; or (c)<br />

require the return of Software and refund to you any license fee paid, less a reasonable allowance for use.<br />

9.3. Mentor Graphics has no liability to you if infringement is based upon: (a) the combination of Software with<br />

any product not furnished by Mentor Graphics; (b) the modification of Software other than by Mentor<br />

Graphics; (c) the use of other than a current unaltered release of Software; (d) the use of Software as part of<br />

an infringing process; (e) a product that you make, use or sell; (f) any Beta Code contained in Software; (g)<br />

any Software provided by Mentor Graphics' licensors who do not provide such indemnification to Mentor<br />

Graphics' customers; or (h) infringement by you that is deemed willful. In the case of (h) you shall reimburse<br />

Mentor Graphics for its attorney fees and other costs related to the action upon a final judgment.<br />

9.4. THIS SECTION 9 STATES THE ENTIRE LIABILITY OF MENTOR GRAPH<strong>IC</strong>S AND ITS<br />

L<strong>IC</strong>ENSORS AND YOUR SOLE AND EXCLUSIVE REMEDY WITH RESPECT TO ANY ALLEGED<br />

PATENT OR COPYRIGHT INFRINGEMENT OR TRADE SECRET MISAPPROPRIATION BY ANY<br />

SOFTWARE L<strong>IC</strong>ENSED UNDER THIS AGREEMENT.<br />

10. TERM. This Agreement remains effective until expiration or termination. This Agreement will automatically<br />

terminate if you fail to comply with any term or condition of this Agreement or if you fail to pay for the license<br />

when due and such failure to pay continues for a period of 30 days after written notice from Mentor Graphics. If<br />

Software was provided for limited term use, this Agreement will automatically expire at the end of the<br />

authorized term. Upon any termination or expiration, you agree to cease all use of Software and return it to<br />

Mentor Graphics or certify deletion and destruction of Software, including all copies, to Mentor Graphics'<br />

reasonable satisfaction.<br />

11. EXPORT. Software is subject to regulation by local laws and United States government agencies, which<br />

prohibit export or diversion of certain products, information about the products, and direct products of the<br />

products to certain countries and certain persons. You agree that you will not export any Software or direct<br />

product of Software in any manner without first obtaining all necessary approval from appropriate local and<br />

United States government agencies.<br />

12. RESTR<strong>IC</strong>TED RIGHTS NOT<strong>IC</strong>E. Software was developed entirely at private expense and is commercial<br />

computer software provided with RESTR<strong>IC</strong>TED RIGHTS. Use, duplication or disclosure by the U.S.<br />

Government or a U.S. Government subcontractor is subject to the restrictions set forth in the license agreement<br />

under which Software was obtained pursuant to DFARS 227.7202-3(a) or as set forth in subparagraphs (c)(1)


and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as applicable.<br />

Contractor/manufacturer is Mentor Graphics Corporation, 8005 SW Boeckman Road, Wilsonville, Oregon<br />

97070-7777 USA.<br />

13. THIRD PARTY BENEF<strong>IC</strong>IARY. For any Software under this Agreement licensed by Mentor Graphics from<br />

Microsoft or other licensors, Microsoft or the applicable licensor is a third party beneficiary of this Agreement<br />

with the right to enforce the obligations set forth in this Agreement.<br />

14. AUDIT RIGHTS. With reasonable prior notice, Mentor Graphics shall have the right to audit during your<br />

normal business hours all records and accounts as may contain information regarding your compliance with the<br />

terms of this Agreement. Mentor Graphics shall keep in confidence all information gained as a result of any<br />

audit. Mentor Graphics shall only use or disclose such information as necessary to enforce its rights under this<br />

Agreement.<br />

15. CONTROLLING LAW AND JURISD<strong>IC</strong>TION. THIS AGREEMENT SHALL BE GOVERNED BY AND<br />

CONSTRUED UNDER THE LAWS OF OREGON, USA, IF YOU ARE LOCATED IN NORTH OR SOUTH<br />

AMER<strong>IC</strong>A, AND THE LAWS OF IRELAND IF YOU ARE LOCATED OUTSIDE OF NORTH AND SOUTH<br />

AMER<strong>IC</strong>A. All disputes arising out of or in relation to this Agreement shall be submitted to the exclusive<br />

jurisdiction of Dublin, Ireland when the laws of Ireland apply, or Wilsonville, Oregon when the laws of Oregon<br />

apply. This section shall not restrict Mentor Graphics’ right to bring an action against you in the jurisdiction<br />

where your place of business is located.<br />

16. SEVERABILITY. If any provision of this Agreement is held by a court of competent jurisdiction to be void,<br />

invalid, unenforceable or illegal, such provision shall be severed from this Agreement and the remaining<br />

provisions will remain in full force and effect.<br />

17. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter<br />

and supersedes all prior or contemporaneous agreements, including but not limited to any purchase order terms<br />

and conditions, except valid license agreements related to the subject matter of this Agreement (which are<br />

physically signed by you and an authorized agent of Mentor Graphics) either referenced in the purchase order or<br />

otherwise governing this subject matter. This Agreement may only be modified in writing by authorized<br />

representatives of the parties. Waiver of terms or excuse of breach must be in writing and shall not constitute<br />

subsequent consent, waiver or excuse. The prevailing party in any legal action regarding the subject matter of<br />

this Agreement shall be entitled to recover, in addition to other relief, reasonable attorneys' fees and expenses.<br />

Rev. 020826, Part Number 214231

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!