Sedit Tutorial
Sedit Tutorial
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Standard Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Draw Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Segment Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Electrical Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPICE Simulation Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Locator Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mouse Buttons Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding and Displaying Keyboard Shortcuts . . . . . . . . . . . . . . . . . . Menu and Toolbar Display Options . . . . . . . . . . . . . . . . . . . . . . . . Customizing Toolbar Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 10 10 10 10 11 11 12 13 14 15
Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Design Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Navigation Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 Libraries Navigator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Hierarchy Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Properties Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Find Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Command Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Command Window Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Setting Command Window Text Styles . . . . . . . . . . . . . . . . . . . . . 21 Controlling Warnings and Information in the Log File . . . . . . . . . . . 22
Arranging Interface Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Setup Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Changing Setup Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Saving and Loading Setup Options . . . . . . . . . . . . . . . . . . . . . . . . .24 The Project Setup and User Preferences Folders . . . . . . . . . . . . . .25
User Preferences Folder Location . . . . . . . . . . . . . . . . . . . . . . . . . 26 Alternate Locations for Setup Scripts . . . . . . . . . . . . . . . . . . . . . . . 26 Persistent Setup Values by Library . . . . . . . . . . . . . . . . . . . . . . . . . 26
SPICE Simulation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 S-Edit Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 S-Edit Product Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
Support Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Creating a Project
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scenario 1 Scenario 2 Scenario 3 Scenario 4 Scenario 5 ........................................... ........................................... ........................................... ........................................... ...........................................
41
41 41 41 41 41 42 43 43 43 44 44
Creating a Schematic Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Creating a New Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 Project File Structure in S-Edit. . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Creating a New Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Creating a New View (Cell > New View or N) . . . . . . . . . . . . . . . .52 Opening a View (Cell > Open View or O). . . . . . . . . . . . . . . . . . . .52 Copying a Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Copying a View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Instancing a Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54 Renaming a Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Renaming a View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Deleting a View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Printing a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Print Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
58
Changing Windows and Views . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 Splitting a Cell into Multiple Pages. . . . . . . . . . . . . . . . . . . . . . . . . .60 Showing and Hiding Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 Panning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Panning to a Specific Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Zooming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Zooming with the Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zooming with the Mouse Wheel . . . . . . . . . . . . . . . . . . . . . . . . . . . Zooming with the Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zooming to Selected Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zooming to Show the Entire Contents of a Cell . . . . . . . . . . . . . . . 62 62 62 62 62
The Libraries Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 The Hierarchy Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 The Find Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
70
70 71 71 71
Using the Mouse to Draw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 Drawing Tools for Annotation Graphics. . . . . . . . . . . . . . . . . . . . . . . .72
Boxes (Draw > Box or B) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Polygons (Draw > Polygon or P) . . . . . . . . . . . . . . . . . . . . . . . . . Paths (Draw > Path) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Circles (Draw > Circle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Labels (Draw > Label) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 73 73 74
Copying and Duplicating Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Creating Arrays Using the Duplicate Command . . . . . . . . . . . . . . .82 Pasting Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83 Pasting Objects to Other Applications . . . . . . . . . . . . . . . . . . . . . . .84 Using Undo & Redo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Edit > Undo (Ctrl + Z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Edit > Redo (Ctrl + Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating a Schematic
Instances of Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annotation Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
85 85 85 85 85
Creating a Schematic View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Creating a New View (Cell > New View or N) . . . . . . . . . . . . . . . .86 Creating Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Instancing a Cell (Cell > Instance or I) . . . . . . . . . . . . . . . . . . . . .86
Locking and Hiding Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Creating an Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 Global Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Global Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Global Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
Naming Global Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Effective Design with Global Nets . . . . . . . . . . . . . . . . . . . . . . . . .103 Capping Global Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Naming Net Caps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Creating a Symbol
Symbol Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
109 109 109 109
Symbol Property Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 System Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 User Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
Default Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Service Sub-Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Evaluated Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Evaluated Properties
120
Expressions as Property Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Displaying Evaluated Properties . . . . . . . . . . . . . . . . . . . . . . . . . .120 Supported Operators, Functions and References . . . . . . . . . . . . .121 TCL Commands in Expressions . . . . . . . . . . . . . . . . . . . . . . . . . .122
Built in TCL functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
125
Importing a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Importing SPICE Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Importing EDIF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
EDIF Translations for Virtuoso . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 EDIF Translations for ViewDraw . . . . . . . . . . . . . . . . . . . . . . . . . . 129
146
10
149
SPICE Simulation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 Saving and Copying SPICE Simulation Settings . . . . . . . . . . . . . .150 General SPICE Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150 Netlisting Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 SPICE Parameters, Options and Additional Commands . . . . . . . .153 DC Operating Point Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Transient/Fourier Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 DC Sweep Analysis (or DC Transfer) . . . . . . . . . . . . . . . . . . . . . .155 AC Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 Noise Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 Transfer Function Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Temperature Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Parameter Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 Running Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
11
Command Reference
164
File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Edit Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 Draw Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 Cell Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 Setup Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Window Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
Index Credits
169 177
S-Edit is a fully hierarchical computer-aided schematic capture application for the logical design of integrated circuits. S-Edit contains integrated SPICE simulation and probing of simulation results, including voltages, currents, and noise parameters.
Launching S-Edit
To launch S-Edit, double-click on the S-Edit icon.
The user interface consists of the elements shown below. Unless you explicitly retrieve a setup file, the position, docking status and other display characteristics are saved with a design and will be restored when the design is loaded.
Title Bar Menu Bar Toolbars
Menu Bar
The menu bar contains the S-Edit menu titles. The menu displayed may vary depending on the view type that is active. See Shortcuts for Cell and View Commands on page 51 for the various methods S-Edit provides for executing commands.
File: creating, opening, saving and printing files Edit: copying, deleting and selecting design elements View: panning and zooming in work area, showing and hiding interface elements Draw: selecting drawing tools, predefined movements Cell: cell operations like opening, copying, renaming, and deleting Setup: establishing application level options Tools: SPICE simulation and probing Window: arranging interface windows Help: documentation, tutorials and support
Toolbars
You can display or hide individual toolbars using the View > Toolbars command, or by right-clicking in the toolbar region. Toolbars can be relocated and docked as you like. For added convenience, S-Edit displays a tool tip when the cursor hovers over an icon. You can also cutomize your toolbars; see Customizing Toolbars on page 11.
Standard Toolbar
The Standard toolbar provides buttons for commonly used file and editing commands, as well as operations specific to S-Edit such as View Symbol or Save Design and Its Libraries.
Draw Toolbar
The Draw toolbar provides tools used to create non-electrical objects, such as rectangles, circles, and lines, for illustrating and documenting a design.
Segment Toolbar
The Segment toolbar provides tools with which you limit the degree of angular freedom allowed when you are drawing wires. (See Drawing Tools for Electrical Objects on page 75.)
Electrical Toolbar
The Electrical toolbar provides the tools used to create wires, nets, and ports, and to add properties.
Locator Toolbar
The Locator toolbar displays the coordinates of the mouse cursor and allows you to quickly change the units of measurement application-wide.
10
Mouse buttons vary in function according to the tool that is active. The Shift, Ctrl and Alt keys can further change the function. For two-button mice, the middle-button function is accessed by clicking the left and right buttons at the same time, or by pressing Alt while clicking the left mouse button.
Customizing Toolbars
This context-sensitive menu lets you completely customize the S-Edit toolbars. Right-click on any of the toolbars and click on Customize to open the Customize dialogs.
Adding Toolbars
Use Customize > Toolbars to add, remove and rename your own custom toolbars. Note that the checkmarks contol only whether or not a toolbar is displayed. The Reset function applies only to the toolbar that is highlighted, and it will be applied even when the toolbar is not currently displayed. Reset returns a toolbar to the default Tanner settings (See also Reset menu and toolbar usage data on page 14.).
11
Adding Commands
Use Customize > Commands to add an existing command or menu to any toolbar, or to create new commands and toolbars.
To add an exisiting command, highlight a menu in the Categories pane then click and drag the desired command from the Commands pane to the toolbar of your choice. To add a new command, choose Custom from the Categories pane and drag Execute button text as Tcl to the toolbar of your choice. In either case, S-Edit will insert a button with the command text, or the icon if one is already defined. For custom buttons you must replace Execute button text as Tcl with the name of the TCL function you want to use. Note that the TCL function must be loaded in S-Edit during the current session for the button to execute the operation. If you save the TCL files that contain button functions to the C:\Documents and Settings\<username>\Application Data\Tanner EDA\scripts\startup directory, they will be available everytime S-Edit is launched. Buttons can be further customized as described in Customizing Toolbar Buttons on page 15.
12
Category Commands
Select the menu to which the command belongs. Select the command for which you want to add or change a keyboard shortcut. Displays existing key assignments. If blank, no shortcut is assigned. It is possible to have more than one shortcut for a command. Highlight a command and click on Remove to remove a shortcut. To restore the default settings click on Reset All.
Key assignments
Highlight a command in the Commands pane, then use this field to enter the key(s) that will be the shortcut. You can use any combination of the Alt, Shift and Ctrl keys with any of the character keys. S-Edit will warn you if your entry is already in use. (Since this field interprets any key you press literally, you cannot delete a value in this fieldsimply enter a different value.) Click on Assign to save your shortcut.
Description
13
Menus and toolbars will automatically adjust based on how often you use commands so that only the commands you use most often are displayed. If you prefer, you can choose the Always show full menus option so that all commands are displayed on the menu. (Not operational.) Deletes the record of all the commands used in S-Edit (for short menu display) and restores the default set of visible commands to the menus and toolbars. However, explicit changes you have made in the current or earlier sessions will remain. Check this box to display large toolbar buttons. Check this box to display screentips (also called tooltips) for the toolbar buttons. (A tooltip is a brief reminder of the related command that is displayed when your mouse hovers over a toolbar button.)
Show full menus after a short delay Reset menu and toolbar usage data
Check this box to add shortcut keys to the tooltip display. You can choose from the list to add animation to the open menu operation.
14
(Not operational.) Deletes the selected button. Use this field to edit the button name when it is displayed as text. The tooltip will not be affected. Copies the selected button image. Pastes the selected button image. Resets all changes to the button image and text. Opens the Button Editor where you can perform basic graphic functions.
Copy Button Image Paste Button Image Reset Button Image Edit button Image
15
Opens a small palette of clip art from which you can choose an icon.
Displays the default (image only) for the selected toolbar button. Displays just the contents of the Name field for the selected toolbar button. Displays both the icon and the text from the Name field for the selected toolbar button. Inserts a fine line denoting a toolbar group to the left of the selected button.
Begin a Group
Status Bar
The Status Bar display varies with the type and number of objects selected and the tool in use. You can use View > Status Bar to toggle display on and off.
Item Selected
single instance simple geometry
Status Bar displays: The instance name and source cell Width, height, area, pathlength, the number of vertices it contains and for ports, the X,Y coordinates and name of the object. The number of instances selected. The type and number of each object. The status of waveform probing operations. The drawing mode and any constraints (on the right side).
multiple instances multiple objects during design probing during drawing operations
Design Area
The region in Tanner tools where you create, view and edit objects is called the Design Area. The portion of the design area currently visible is called the Work Area. You can move or resize design
16
Navigation Tools
windows as you would in any other application window. Refer to The Work Area on page 58 for further information.
Navigation Tools
S-Edit provides several different tools for displaying and searching design libraries, cells, and cell properties. Default positioning is with the Libraries and Hierarchy navigators tabbed together on the left and the Properties and Find navigators on the right. However, each of these navigators is a dockable toolbar. They can be completely separated, grouped all together in a tabbed window (which can include design windows as well); they can be placed in any of the standard Windows docking locations of docked positioned anywhere in the S-Edit interface as a floating window.
Libraries
17
Navigation Tools
Libraries Navigator
The Libraries navigator allows you to add and remove cell libraries and also dispalys a list of the cells in the libraries that are highlighted. You can use this list to open, duplicate, or instance a cell, or to create a new view of a cell. See The Libraries Navigator on page 62 for more information.
Hierarchy Navigator
The Hierarchy navigator displays hierarchical information for the active cell, including the parent and child cells, the total count of each, and the number of times they are instanced. See The Hierarchy Navigator on page 64.
18
Navigation Tools
Properties Navigator
The Properties navigator provides an editable display of the characteristics of a selected object, which may be a cell, drawn geometry, port, etc. See Editing Properties on page 113 and Editing Instance Properties on page 88.
Find Navigator
The Find navigator provides advanced find options for any object type, with fields for TCL scripting that can be used to further define a search. See The Find Navigator on page 66.
19
Navigation Tools
Command Window
All events that occur in the S-Edit design area are recorded to a log displayed in the Command window, in tool command language (TCL) format. TCL files are macro-like scripts that allow you to perform or repeat operations. The Command window serves as both a recording and a playback device for TCL files. As such, any action or operation performed by S-Edit can be copied or replayed. Text can be typed in, copied from executed operations and then pasted back into the Command window, or written in from a saved TCL file to instantly perform the desired operations. This is especially useful for automating and simplifying difficult or repetitive tasks. You can use View > Activate Command Window (shortcut backquote ) to open the Command window if it is not open. If it is open, backquote will shift focus to it.
If no path is set in this dialog, then logs are stored in the location set by the TANNERLOGPATH environment variable.
20
Navigation Tools
If there is no TANNERLOGPATH environment variable, logs are stored in a folder Tanner Logs under the temp folder, which can be %TMP% or %TEMP% or even the WINDOWS folder on your hard drive, depending on the configuration of your Windows environment.
Use this field to pick a font or set it to the default. Use this field to pick a background color or set it to the default. Use this field to set the behavior of the backspace and tab keys.
Delete acts as backspace When this checkbox is enabled, the Delete key functions like the Backspace key by removing text to the left of the cursor. When this checkbox is not checked, the Delete key
When you select a text type in the upper pane, you can check the boxes to make it Bold and Italic, and also Pick a text color or set it to the Default.
21
Navigation Tools
Events to log
Check the boxes to include events categorized as Warnings and Information in the log file and Command window display. (Actions and Errors are always written to the log file.) The higher the Verbosity value, the higher the detail included in event messages written to the log file.
Modules
Each program module in S-Edit generates a set of messages, identified by a preceding # module_name, where module_name is a three character abbreviation such as LIC for license related messages. Enter these abbreviations, separated by commas, to exclude or include a type of message from the log file and Command window. When Exclude messages from module is checked, messages from any module abbreviations listed in the corresponding entry field will not be written to the log file. When Include messages from module is checked, messages from any module abbreviations listed in the corresponding entry field will be written to the log file.
Log viewer
Note: These options effect the Command window display only, not
what is written to the log file. Check the Display Timestamps box to display the timestamp when one is included in a message. Enter an integer between 100 and 100,000 to set the Number of lines at the end of the log file to display.
22
Navigation Tools
Edge Arrows When you release a window over a docking arrow at the edge of the screen, it will dock at that edge, in between the other docked windows.
Center Arrows When you release a window over a docking arrow at the center of the screen, it will dock at the corresponding edge, filling the entire application area.
23
Setup Options
Setup Options
The Setup menu contains configuration controls as follows:
Colors Controls the color of objects in the design window. Grids Controls the size and style of the display grids. Units Controls the unit type and scaling factor for display units. Page Controls page size, margins and borders. Validation Controls the allowable entry type (e.g. alpha vs. numeric) in naming fields. Protection Allows you to protect an entire design file to prevent editing. General Controls design window and language display. Selection Controls mouse selection behavior. Text Editor and Styles Controls text file update and display characteristics. SPICE Simulation Controls simulation parameters and options (see Running Simulations on
page 160).
Note:
Changes to setup pages are saved only if 1) the page is checked in the list in the left pane of the setup window and 2) the Save button has been pressed before the dialog is closed.
24
Setup Options
If you want to save the changes locally so they will be loaded when the design is launched again, click on the Save button before closing the dialog. S-Edit will create and populate a setup folder in the directory you specify.
Save
You must click on the Save button to save a setup configuration to a TCL file. Note: Make sure there is a check in the checkbox for the attributes you want to save! Only dialog pages that are checked will be saved. Use this button to load a saved setup file. Note: Make sure there is a check in the checkbox for the attributes you want to load! Only checked dialog pages will be loaded. Use this drop-down list to select the folder to which a setup file will be saved, or from which a setup file will be retrieved.
{project setup folder} is the setup folder in the design folder of the selected design or library shown in the title of the Setup dialog. {user preferences folder} is a setup folder in the Tanner directory
Load
To/from folder
on a local computer from which S-Edit will automatically read user-defined setup values that overwrite the default settings for a design. You can also browse to the directory of your choice to save or load a setup file that S-Edit does not search for automatically.
25
Setup Options
Schematic Colors
Use these fields to set the color for the associated drawn element (wire, port, background, grid, etc.) by clicking on the drop-down arrow to open the standard windows color dialog.
26
Setup Options
Check this box to also show the six-digit hexadecimal representation of colors in the form RRGGBB, corresponding to the red, green, and blue values of the color.
Snap Grid
The snapping grid, which can be a different size than the display grid, causes all drawing and editing coordinates entered with the mouse to be placed on grid points. To achieve adequate resolution, you may wish to adjust the spacing of the mouse snap grid based on your minimum feature size.
Internal Units
For its own computation, S-Edit uses internal units. Before beginning your design, you must define the relation between internal units and physical units. This ratio will determine the maximum dimensions of the design area and the smallest object that can be drawn. This relation is also critical when you replace your design setup or export a design, since it sets the scale of the design file. The S-Edit design area extends from -536,870,912 to +536,870,912 internal units in the x- (horizontal) and y- (vertical) directions. Thus, if 1 internal unit = 0.001 millimeters, the largest possible design would be 1,073,741 internal units (roughly 42.3 inches) on a side. Similarly, the smallest dimension S-Edit can define is 1 internal unit. If 1 internal unit = 0.001 millimeters, the smallest possible feature size would be 0.001 millimeters. To set internal units see Unit Display Options on page 29.
27
Setup Options
Major Grid (in display units) Minor Grid (in display units) Snap Grid
The absolute spacing of the major grid display. The value entered in this field is the distance, in display units, between major grid points. The absolute spacing of the minor grid display. The value entered in this field is the distance, in display units, between minor grid points. The absolute spacing of the cursor snap grid, entered in display units as the length of one side of a grid square. The value entered in this field is the minimum resolution, in display units, allowed during drawing and editing operations. All drawing and editing coordinates are snapped to this grid size when it is not zero.
Autocalculate
Pressing this button calculates the largest possible minor grid size for the selected design based on all port positions in the design and updates the other values in the dialog. If a common grid value cannot be found S-Edit will return one (1) internal unit. Use this field to set the hot spot size for ports, in display units. (See Hot Spots on page 91.) The default value is eight internal units when a new design is created. Zero is an allowed value.
Port Instances
28
Setup Options
Choose a physical unit for your design. Enter the scale of physical units to internal units as a decimal value. To enter the ratio as a fraction, click Change to enter a numerator and denominator.
design. S-Edit calculates the frame size with respect to the unit settings defined in
Setup > Technology > Schematic Units so that when you print using the Do not scale setting the
design window will print to fit the page size you have chosen.
29
Setup Options
Standard
Choose from the predefined page sizes, or select Custom to define your own. Enter the Width and Height here when using a Custom page size. Controls the margins between the frame and paper edges, separately for Top, Bottom, Left and Right. Choose from the options box, grid or none. Grids increment as an alpha array in the x direction from A and numerically in the -y direction from 1. All frames are placed with the lower left corner at the origin.
Frame style
View Setup
Opens a dialog that allows you to enter page setup values for the currently active view that differ from those defined for the entire design. Enable Overwrite design settings to apply the values in this dialog to the active view. Click on Load from design to reset values to those defined for the entire design.
Naming Constraints
The fields in Setup > Technology > Validation allow you to enter constraints on how cells, views, instances, port and nets can be named. For example, you might want to prevent the use of spaces in cell names so that your design will adhere to GDSII naming conventions. You would write a TCL function, add it to the C:\Documents and Settings\<username>\Application Data\Tanner EDA\scripts\startup directory that S-Edit checks when its launched, and enter the name of that function in the Cell Name field of the Validation setup page.
30
Setup Options
When you enter a cell name in, for example, Cell > New View, S-Edit excutes the TCL function referenced in the setup page, and displays any violations in the Command window, highlighted in red. For example, Name validation violation: <description>. Create anyway? where description is the string returned by the validation function.
Note:
Note that existing cell names, and names that are entered using the Properties navigator, are not validated until a file undergoes a design check. After a design check, violation warnings are displayed in the Command window. Similarly, no validation checking is performed when a TCL command is entered directly in the Command window.
While it is possible to overwrite the TCL functions in tannerinit.tcl Tanner EDA strongly recommended that you do not modify the tannerinit.tcl file, as it is overwritten with each product upgrade.
31
Setup Options
Note that validation is controlled in two waysby object type from the dialogs where you can enter a name (using the Disable name validation checkbox), and globally from the Setup Validation page (using the Enable Validation checkbox).
Cell name
Enter the name of the TCL procedure with the set of naming constraints you want to apply to cells. Enter the name of the TCL procedure with the set of naming constraints you want to apply to views. Enter the name of the TCL procedure with the set of naming constraints you want to apply to instances. Enter the name of the TCL procedure with the set of naming constraints you want to apply to ports. Enter the name of the TCL procedure with the set of naming constraints you want to apply to nets. Check this box to enable all TCL name validation functions; leave it empty to disable them all.
View name
Instance name
Port text
Net label
Enable Validation
32
Setup Options
Cell View and Language Options Setup > Preferences > General
Use this dialog to set display behavior in the design area and the language display in menus and dialogs.
Reuse the active window sets S-Edit to replace the contents of the
active design window when opening a new cell. If you do not select a view type, the new cell will clone the current view type.
Open a new window sets S-Edit to open a new design window
Use this option to set whether you will open a unique instance or the primitive cell symbolwhen you double-click on an object in the design window. Use open corresponding schematic view in context to push down to a specific instance when you double-click on a symbol. Use open corresponding schematic view out of context to show the primitive symbol when you double-click on a symbol.
Note: Holding the Shift key down while double-clicking performs
The default setting, where a new window opens each time a view is opened. Select a language for menu and dialog text from the drop-down list. Options are American English, Japanese, Russian and Simplified Chinese.
Language
33
Setup Options
Scroll wheel
Zoom inzooms into the active view to magnify the view by a factor of 3.0. Zoom outzooms out the active view by a factor of 3.0. Pan up (shift for right)pans the design up with an upwards
spin of the mouse wheel and down with a downwards spin. If you hold the Shift key the view will pan right with an upwards spin and left with a downwards spin.
34
Setup Options
Selection Range
A positive integer x such that when a mouse button is clicked less than x pixels from an object, though not touching it, the object will still be selected. A positive integer e such that if the pointer is within e pixels of an edge or vertex of a selected object, the default operation of the MOVE-EDIT button is an edit. Outside this range it is a move. Controls the display behavior in the design area when you click on a hyperlink in the Command window.
Nonesimply selects objects. Pan to center of object(s)pans to the selected objects but
Edit Range
objects.
Trace nets on push and pop context
When checked, net highlighting is maintained when you push into and pop out of views. Disabling this feature speeds push/pop performance on larger designs.
35
Setup Options
Text File Update Options Setup > Preferences > Text Editor and Styles > Text Editor
This dialog governs if and how the text files that are open in S-Edit are updated when they are saved outside the application. The S-Edit text editor checks the stored version of a file for modifications when files are saved, first changed, and when the text window or application becomes active or is closed. If a file has not been modified outside S-Edit, nothing will happen. If a file has been modified outside S-Edit, the selected action will be triggered.
Auto-Load
Load allwith this option enabled, S-Edit automatically updates text files that have been modified outside of the text editor. Prompt to Load(default) this option opens a dialog indicating which files have been modified and gives you the option to save them. Ignore allwith this option enabled, externally modified files are not
updated to S-Edit.
36
Setup Options
Text File Display Options Setup > Preferences > Text Editor and Styles > Styles
You can set individual display characteristics in the S-Edit text editor for each of these file formats using the Style and Keywords pages.
Text File Font Options Setup > Preferences > Text Editor and Styles > Styles > {filetype} > Style
Use this dialog to set the font, tab stops and file extensions recognized for each of the file formats included in the S-Edit setups.
Font Tabulation
Select or enter a font from the Face Name drop-down menu and a point size in the Size field. Enter a positive integer value to set the increment, in spaces, of the tab spacing the text editor uses. Enter the extensions of the files that S-Edit should include in the active category, separated by commas with no spaces.
File extensions
37
Setup Options
Text File Keyword Options Setup > Preferences > Text Editor and Styles > Styles > {filetype} > Keywords
Use this dialog to define the types of text, called keyword groups in S-Edit, that will be highlighted in the text editor, and their appearance. Each file type has a set of predefined keyword groups that cannot be edited or deleted.
Displays the keyword groups defined for a given file type. Use Add to enter the name of a new keyword group. Use Edit to enter the terms belonging to a keyword group. Use Remove to delete a keyword group. Use Foreground and Background to set the respective colors for a keyword group.
Colors
S-Edit Documentation
In addition to this manual in PDF format, S-Edit is shipped with application notes, release notes and a tutorial that highlights basic schematic entry and editing operations.
38
Setup Options
39
Setup Options
Support Diagnostics
You can view comprehensive design, system and hardware information from
Help > Support > Support Diagnostics.
40
Creating a Project
The highest level entity in the S-Edit schematic database hierarchy is the design. A design contains many cells, some of which may be referenced from a library. Most often a cell will contain a single interface, which contains a single symbol view and a single schematic view. However, a cell can contain any number of interfaces, and each interface can contain any number of symbol views and schematic views.
Design
A design is the container for all elements of the design database.
Library
A Library is also a design, one whose cells are externally referenced by other designs. A design can reference multiple libraries, and any given library can be referenced by multiple designs.
Cell
A cell is the fundamental unit of design. A design contains multiple cells. Cells in turn contain multiple views, of different types. Cells can be instanced by other cells (an instance is a generic reference to a representation of cellB found within cellA.)
Properties
A property is an attribute of an object (cell, instance, shape). S-Edit differentiates between built-in properties (e.g., cell name, shape type) which are always defined, and user-defined properties (e.g. L= on a transistor cell) which are optional and not interpreted directly by the engine. Each type of object has its own set of parameters, which are displayed and can be edited in the Properties navigator. Please refer to Symbol Property Types on page 110 for a complete discussion.
View
A view is simply a component of a cell definition. It is a depiction of the cell, a different way of depicting it. There are defined view typesyou can view a cell as a symbol, a schematic, or an interface. Cells can instance each other, but cyclical cell references are not allowed.
41
View Types
Symbol View
A graphical description of a cell, for use in schematic views of other cells. A symbol view contains the ports of a cell and non-electrical geometry that is representational only. Usually the most basic design components will have only a symbol view.
Schematic View
A more detailed view of a cell, showing ports, instances, references to ports in the parent cell of instanced cells, connecting wires and graphic objects (e.g. boxes, polygons, paths, text labels) that have no electrical meaning.
In this example, NAND2 is a two input NAND gate. A, B and Y are ports. There are seven instanced symbols (including M1, three other transistors, and three power/ground symbols), and six red shapes implementing three nets. There is a fourth net between the two NMOS devices, and a fifth (power) and sixth (ground) net as well.
Interface View
The definition of the electrical interface of a cell, containing ports, optional permutability information for those ports, and a set of user-defined parameters. Each schematic view and symbol view in a cell must be associated with a specific interface. When you create an instance of a cell you must specify the interface it belongs with. Cells may be associated with multiple interfaces. For example: the NAND2 cell shown below could have two interfaces:. Interface 1, without power, there are three ports: A = in, B = in, Y = out. A and B are permutable. Interface 2, with power, there are five ports: A = in, B = in, Y = out, Vdd = inout (virtual) Gnd = inout (virtual). A and B are permutable.
42
In scenario 2, two separate symbols are created, for a single schematic with 400 ports. One symbol has all the 400 ports and the other symbol has only 100 ports. This is useful if you want to instance the symbol with 100 ports and not have any dangling nodes errors when you run a design check, as the100 port symbol in this case is still referring to the 400 pin schematic. As such, scenario 2 can have two separate interfaces.
Scenario 1
In this example, you want to create a symbols for a 3-terminal MOSFET and a 4-terminal MOSFET, for inclusion in a library. To do so, you would create two different representations, a 3-pin and a 4-pin interface, each having its own symbol, of a single primitive MOSFET which has no schematic. Library users can then instance either symbol in their designs.
Cell name Interface name 1 Symbol name 1 Interface name 2 Symbol name 2
Scenario 2
In this case, the goal is two different representations (400-pin and 100-pin) from a single schematic view. Suppose you have a component called CORE with 400 terminals. You want one symbol that exposes all the terminals, and another that exposes a subset of just 100 of the terminals. You would create a single cell with one interface, one schematicand two symbols. One symbol has all the ports, the other symbol has the subset of 100 ports.
Cell name Interface name Symbol name 1 Symbol name 2 Schematic name
Scenario 3
A library designer has a standard cell library with a single implementation of each cell, and wishes to provide two different pictorial representations of each cell for use as symbols, to adhere to the pictorial representations from two different standards organizations. He should create a single interface, a single schematic, and two symbols for each standard cell, both symbols having the same ports.
Cell name Interface name Symbol name 1
43
IEEE_symbol Schematic
Scenario 4
You have a primitive component, an NMOS transistor, that you wish to establish with two sets of default properties on the symbol. You would create a cell with multiple symbols, each symbol having a different interface for a different set of properties.
Cell name Symbol name 1 Symbol name 2 Schematic name
NMOS N1 N2 Schematic
Scenario 5
You want to have a single symbol of an amplifier with a basic and a high precision implementation of the schematic so you can switch between the two to trade off accuracy and run time in different simulations. (The high precision schematic could contain, for example, additional parasitic information back annotated from layout.) You would create a cell with a single interface, a single symbol, and two schematics. In a case where there are two schematics and a single symbol, there is an ambiguity in which schematic to use. S-Edit will use the schematic whose name matches the symbol name. To switch from using one schematic to another, use Cell > Rename View to change the symbol name to match that of the desired schematic. In this example, to switch from using the basic schematic to using the precision schematic, you would change the symbol name from Amplifier_basic to Amplifier_precision.
Cell name Interface name Symbol name 1
Amplifier Interface Amplifier_basic (or Amplifier_precision, depending on the schematic you want to use.) Amplifier_basic Amplifier_precision
44
no functional difference between a library and a design, so in the Libraries navigator, the design name is shown in black and library names in blue.
In either case, S-Edit creates a folder with the design name plus other files that comprise the complete design.
The setup folder stores any changes that have been saved from the Setup dialog (see Changing Setup Options on page 24).
45
Adding a Library
When you load an existing design, any libraries referenced by that design are also loaded and will appear in the Libraries navigator. When you create a new design, or if you want to reference cells in a library that is not currently open, you will need to explicitly load that library. Use either File > Open > Add Library or the Add button in the Libraries navigator to open the dialog shown below.
When you add a library, S-Edit will also load the other libraries it references. For portability, library locations are saved to the libraries.list file with a relative path if the library is in either a subfolder of the design or a descendant folder of the design. However, when the folder branches above the level of the design, we write an absolute path.
... button to
46
Two instances are missing from this schematic, as indicated by the placeholders. The Devices_Unresolved library indicates that the instances are missing from the Devices library.
47
Select the Design in which the cell reference will be redirected. Use this field to specify the cell that you want to replace. Select the Design and Cell Name that is currently in placeholder form. Use this field to specify the cell that you want to use. Select the Design and Cell Name that should be used in the active design.
Redirect to
48
In the design RingVCO shown below, the library Devices_Unresolved contains placeholders for the missing cell PMOS (highlighted in yellow). The library Devices is missing these two cells..
When you use Cell > Redirect Instances, you are redirecting the reference in design RingVCO so that the proper cell, in this case cell PMOS_new, which should be in the library Devices, will replace the previously referenced cell PMOS, which S-Edit has moved, in placeholder form, to the temporary library Devices_Unresolved.
49
Closing a Design
When you close an S-Edit design file, the document is removed from memory. To close a design, use the File > Close > Close Design [filename] command.
Save Copy Of
You must use the Save Copy of Design/Libraries command to be able to rename a design.
Note:
Simply renaming the directory does not change the name of a design or library!
Note that File > Save > Save Copy of ... is different than the save as commandaffter the Save Copy of ... operation, S-Edit returns to editing the original design, NOT the newly saved copy.
Saves the specified design only, and does not save changes to libraries. Saves the specified design and all its libraries. Saves only those designs or libraries selected in the Libraries navigator. For confirmation, the number of files selected is dynamically updated in the save menu. Saves a copy of the selected designs or libraries to the specified new location.
Note: Once the files are copied, S-Edit returns to the file that was
Save Design [filename] and Its Libraries Save [number] Selected Design/Libraries
50
Operation
Open a cell
Behavior Highlight a cell in the list and double-click to open it. The view type opened will be the same as what was last opened. Highlight a cell in the list and press the Open button to open it in schematic view.
Open a cell
Open a cell
Select a cell in the design area and double-click to open it in schematic view. Highlight a cell in the list, clickand drag it into the design area to instance a cell. Double-click to place it once you have chosen a location. Highlight a cell in the list and use the drop-down arrow next to the Open button to select one of its views to open. Highlight a cell in the list, right-click to open the context-sensitive menu, and click on the desired operation.
Symbol Preview shows or hides the preview window in the Libraries navigator.
Instance a cell
Open a view
Find All Open View New View Copy View Copy Cell Delete View Instance Highlight in View Navigator Show in Hierarchy Navigator Symbol Preview
51
Design
From the drop-down list of those open, select a file to which the cell will be saved. Enter or select a cell name. Specify a view type for the cell. Specify a view name for the cell. Specify the interface view to which it belongs. Check this box to prevent S-Edit from checking for naming violations.
Cell View type View name Interface name Disable name validation
Design
Select a design file or library file from the menu of those open in S-Edit. Select the cell to open from the drop-down menu. Select the type of view to open. Select a specific view to open.
52
Copying a Cell
Use the Cell > Copy Cell command to duplicate a cell and all its views. Cells can be copied within the current design or from one design to another.
Copy from
Design: select a source design or library file from the menu of those
open.
Cell name: select a source cell from the drop-down menu. Copy to Design: select a destination design file from the list of those open. Cell name: enter a name for the new cell. S-Edit will preprend CopyOf to the cell name by default if you do not enter a name. Copy dependencies None: only the select cell is copied. Needed only: only the instanced cells that do not exist in the destination file are copied. All: all instanced cells within the cell are also copied, down through
the hierarchy. Note that S-Edit only checks for cell name during this operation, not cell contents or save date.
Overwrite existing cells
When checked, the copy will overwrite the existing cell(s) of the same name. Check this box to prevent S-Edit from checking for naming violations.
Copying a View
Use the Cell > Copy View command to copy a single view of a cell to the same or a different target cell. A view can only be copied within the same library of a design. See the How to Use Multiple Views on page 42 for some of the ways it can be useful to define multiple views of a given cell.
53
You can use this dialog as a shortcut to creating a new cell by entering a new name in the target Cell name field. Note that if you enter the name of an existing cell with the overwrite option active, if all other view names are the same as in the existing cell, the existing view will be replaced.
Select a source design or library file from the menu of those open. Select a Cell name, View Type, View name, and Interface to copy. S-Edit will preprend CopyOf to the cell name by default if you do not enter a name.
Select a Cell name, View Type, View name, and Interface for the new view from the pulldown menu, or enter new names. When checked, the copy will overwrite the existing view of the same name. Check this box to prevent S-Edit from checking for naming violations.
Instancing a Cell
Instances in a cell are references to other cells. These cells might be common library cells (such as basic circuit elements) or larger, custom-designed cells. Instances are dynamically linked to their source cell so that any change you make to a source cell is reflected in each higher-level instance of that cell. (See Creating Instances on page 86.)
54
Renaming a Cell
The Cell > Rename Cell command will rename a cell but not its views. This operation keeps the renamed cell open.
Renaming a View
Use the Cell > Rename View command to rename a view.
Deleting a View
The command Cell > Delete View deletes a specified view, or all views of a cell. When you issue this command, S-Edit displays the Delete View dialog box, which prompts for the name of the cell to be deleted. A symbol view or its interface command cannot be deleted if the symbol is instanced. When the last view of a cell is deleted the cell itself is also deleted.
55
Printing a Design
Printing a Design
File > Print prints the active work area. Use File > Page Setup to specify the layout of printed pages (see Setting Page Size on page 29).
Printer
Name, Type, Where, and Comment all identify the active printer. Status describes the state of the selected printerbusy or ready.
Opens the Printer Properties dialog for additional printer properties. If this is not checked, the design will print just as it appears on screen. When this is checked, S-Edit creates a .PRN format file to the location you specify. Select Active view only, Active design or library or Selected design/libraries to specify the range of pages to print from a file. Use Active schematic heirarchy to print all of the schematics beneath the page currently displayed. You can also elect to print just Schematics or just Symbols.
Print to file
Print Range
Copies Collate
Enter the number of copies to print. When checked, prints copies of a file in proper page order. If not checked, each copy of the first page will be printed consecutively, then the second page, etc. When Auto-rotate is checked, the image will be rotated to best fit the selected page size and scaling.
Placement
56
Printing a Design
Scaling
Do not scale prints the design as set in in Setup > Technology > Schematic Page. Fit to Page scales the design to fit the paper size you are printing to. Custom scaling lets you use percentage values to set the size of the print out with respect to the page layout set in Setup > Technology > Schematic Page.
Print Preview
File > Print Preview lets you preview the active window view, in the S-Edit design window. Unless Print in black on white (page 56) is checked, S-Edit will print using the display colors.
57
When you resize the work area, S-Edit expands or contracts the view in the direction in which you resized, without changing the magnification. S-Edits pan and zoom operations are always active: you may pan or zoom while drawing, moving, or editing an objectand interruptible: once you have initiated a panning or zooming operation, you need not wait for the screen to redraw completely before you initiate another one.
58
Close All open views or Switch Tab Placement from the top to the bottom of the window and vice-versa. Use the arrows in the upper right corner to scroll to open windows that are offscreen. A filled-in arrow indicates the presence of offscreen windows, otherwise is it outlined. When you maximize one design window, they will all be maximized. You can right-click directly on a tab to open a context-sensitive menu to Close that tab or make it Dockable.
59
The Next Page toolbar button cycles through a cells pages as well as providing a drop down menu with the option to select a specific page or create a new page.
60
Panning
Panning
You can pan to different portions of the design area by using the arrow keys, or one of the View > Pan commands. Command
View > Pan > To Selection
Shortcut
Function Centers the view over the selected objects. Depending on the magnification, all selected objects may not be visible in the resulting view.
Moves the work area to the left by one quarter of the width of the display. Moves the work area to the right by one quarter of the width of the display. Moves the work area up by one quarter of the width of the display. Moves the work area down by one quarter of the width of the display. Moves the display window in the direction you indicate, to the farthest edge of all objects in the design area.
View > Pan > To Edge Left Edge Right Edge Up Edge Down Ege
Zooming
You can zoom in S-Edit using the mouse buttons, a mouse wheel, the keyboard, or menu commands.
61
to enable a zoom box. When the zoom box is enabled, the next two mouse clicks define opposing corners of a rectangle. S-Edit zooms the display window directly to the area inside the rectangle. You can also click and drag to draw the zoom box. Note that S-Edit must maintain the correct height-to-width ratio of the display, so the new work area may not be exactly the region contained inside the rectangle. After a Zoom Mouse operation the mouse buttons revert to their previous functions.
+ to zoom in by a factor of 1.5 and the minus key to zoom out by a factor of 1.5.
62
Select a design to open from this menu of the designs that are loaded. The Libraries navigator shows the designs and libraries that are open.
The Cell list shows the cells available from the design and libraries highlighted in the Libraries navigator.
The Preview Pane displays the symbol view for the selected cell. You can right-click anywhere in the Libraries navigator to toggle this preview on or off.
(drop-down menu)
The uppermost field is a drop-down menu that lets you select a design to open from those that are loaded. This pane lists the designs and libraries that are currently open. When you highlight a file in the Libraries navigator, the cell browser displays the cells it contains. Use the Ctrl key to select multiple libraries and list the cells in each of them. Black text indicates the design file, blue text indicates library files.
Libraries navigator
Add Remove
Use this button to Add designs and libraries. Use this button to Remove designs and libraries.
63
Filter
The Filter option lets you enter letters or numbers to filter the cell list to show only the cell names that contain those characters. For example, type av to show only cells with the letters av in their name. The remaining options in the pull-down menu provide hierarchical filters:
Top-levelfilters the list to show only those cells that are not instanced in the design. Leavesfilters the list to show just primitive cells that you
Cell list
Lists the cells contained in each of the files highlighted in the Libraries navigator. Information in square brackets shows how many instances of a given cell are used in the active view. Use this button to open the highlighted cell. (See also Opening a View (Cell > Open View or O) on page 52.) Use this button to quickly instance the highlighted cell. (See also Creating Instances on page 86.) Use this button to highlight all appearances of the selected cell in the view. This preview pane displays the symbol view for the selected cell. You can right-click anywhere in the Libraries navigator to toggle the preview on or off. Displays the number, view type and view names for the highlighted cell.
Open
Instance
Find
(preview pane)
Symbol __ / view_x of y
64
When you change the active view in the design area, the Hierarchy navigator automatically updates to show information for the cell in focus.
CellDisplays the focus cell for which hierarchy information is shown. Full hierarchyToggles display from all levels of the design hierarchy to just those immediately above and below the focus cell. Show roots and leaves onlyDisplays only cells at the very top or bottom of the hierarchyterminal cellswith respect to the focus cell. BackScrolls backwards through the history of cells viewed viewed in the navigator. Forwardscrolls forward through the history of cells viewed in the navigator.
Cell names in the list can be used for navigation as follows: A single-click highlights the cell name. A double-click displays hierarchy information for that cell. A right-click on a cell opens the context-sensitive menu for the selected cell. (See Shortcuts for Viewing Hierarchy on page 66.)
Cell
Displays the name of the cell for which hierarchy is displayed in the navigator. Note that this field does not always indicate the cell that is in focus in the design area. You can click on this link to change focus in the design area to the cell named. Use this text field to filter the navigator lists. It is case- and position-insensitive.
Parents shows cells one level of hierarchy above it that instance the active cell. Ancestors shows cells in all design levels above it that instance the active cell.
Filter
Parents [ ] / [ ]
or
Ancestors [ ] / [ ]
The value in the first bracket indicates the total number of instances currently displayed in the list. When a second bracket is shown, it indicates the total number of qualifying cells. Click on the column header to sort cells alphabetically.
Count [ ] / [ ]
For the upper list field, shows the number of times a cell is instanced in a cell. For the lower list field, shows the number of each instance in a cell. Click on the column header to sort cells numerically.
65
Children [ ] / [ ]
or
Descendents [ ] / [ ]
Children shows cells one level of hierarchy below it that instance the active cell. Descendants shows cells in all design levels below it that instance the active cell.
The value in the first bracket indicates the total number of instances currently displayed in the list. When a second bracket is shown, it indicates the total number of qualifying cells. Click on the column header to sort cells alpahbetically.
66
Find What
Select the object typeinstance, port, text label, or net for example, to search for. All selects all types of object that fit the search criteria. Select the scope of the search.
Selectionsearch only within the objects that are selected in the
Look in
active view.
Viewsearch within the active view. Designsearch the entire active design. Hierarchysearch down the hierarchy of the active cell.
Selection
Sets the selection behavior when objects matching the search criteria are found.
Select Found Object(s)selects only objects that match the
search criteria.
Add to Selectionobjects that are currently selected remain
selected and objects that match the search criteria currently displayed in the Find dialog are also placed in the selected state.
Remove from selectionobjects that are currently selected
remain selected unless they match the search criteria currently displayed in the Find dialog, in which case they are deselected.
Name
Enter the name(s) of the object to search for, using a space to separate name entries. Wildcard searches are not supported. This field applies a filter to the Name field when the search object is set to Instance.
Instance Namefilters the search criteria to find only instances matching the instance name you have entered. Cell Namefilters the search criteria to find only instances of the master cell you have entered.
Find by
Net
This field applies a filter to the Name field when the search object is set to Net.
Exactfilters the search criteria to find a unique net. Andfilters the search criteria to find all nets of a name or
67
Filter
This field is for TCL scripts. Filter scripts are particularly useful for selecting instances based on their parameter values. Note that TCL script in this field is evaluated in the context of just one object being selected. TCL commands entered here are applied only to objects that meet the criteria set in the fields above it, and such objects are evaluated individually. This is important to keep in mindyour script may include multiple criteria, but those criteria are applied to only one object at a time. If the script returns false or 0, then the object is discarded from further operations. If the script returns true or a nonzero value, then the object is successfully found and added to the list of selected objects. For example, the script below selects transistors that have gate lengths within a specific range of .25e-6 and .35e-6. Note that it will generate a warning message for instances which do not have a length property.
set L [ property get L -double ] expr { 0.25e-6 <= $L && $L <= 0.35e-6 }
Use this button to initiate a search. Searches for and selects all objects at once. Use these buttons to search for and select objects one at a time. These three buttons operate in the context of the active view. Each time the First button is pressed, the view context is reset. For this reason you should use First to initiate a search whenever you plan to view the results individually or sequentially.
Firsthighlights the first object that matches the search criteria,
where the ordinal first is established internally according to Tanner database order.
Nextselects the next object that meets the current search criteria. Next moves successively through each view containing one or more
objects that match the search criteria until reaching the last object. However if the first object is reset, the scope and order of objects meeting the search criteria will also reset.
Previousselects the previous object that meets the current search criteria, with behavior matching that of the Next button.
S-Edit will indicate when you have reached either the first or last object that matches the search criteria as shown below.
68
Modify Script
Use this script field to modify objects that meet the preceding criteria. TCL script in this field is applied to the individual elements in the Find list. The script is applied once for each element, and is applied in the context of one element selected at a time. For example, the script below moves each selected instance up by ten database units:
set y [ property get Y -system ] property set Y -system -value [ expr { $y + 10 } ] -units iu
Modify All
Applies the script in Modify Script to all objects. To revoke modifications made with this command, you will need to use the Undo operation in each of the views containing an object that was modified. Applies the script in Modify Script to the currently selected found object and navigates to the next one. Modifications made with this commands can be reversed using Undo.
69
Object Types
Drawn objects in S-Edit are either electrical objectsfor example, wires, ports or solder points, or annotation graphicsgeometric objects without electrical significance. To draw an object, you must select a tool from either the Drawing toolbar (see Drawing Tools for Annotation Graphics on page 72) or the Electrical toolbar, (see Drawing Tools for Electrical Objects on page 75) and also a segment type from the Segment toolbar. Annotation and electrical tools are stickyonce you select a tool, S-Edit will draw only objects of that type until you choose a different tool. You can change segment type at any point while drawing a geometric object, for example from orthogonal to 45 segments.
Segment Types
S-Edit has various types of lines segments90, L-corner, 45 and all-angleyou can select from when drawing. You can change segment type at any point during a drawing operation by simply selecting a different icon from the Segment toolbar. To draw a line, select Path and a segment type, then position the cursor where you want to place the starting point. Left-click to begin drawing and to place vertices. Double-click to place a vertex and end drawing. Right-click to back up to the vertex that was placed last.
90 Segments
When you use this segment option, S-Edit will only draw geometry having 90 angles.
70
Object Types
L-Corner Segments
The L-corner segment draws an L-shaped line from the last placed vertex to the current cursor position. You can toggle the orientation of the 90 angle by pressing the L key before placing the next L-shaped segment. The L-shaped line behavior remains active when you use the middle button, so the action of removing vertices is modified to remove two vertices with each middle-button click.
45 Segments
When you use this segment option, S-Edit will draw geometry having 45 or 90 angles.
With this segment option, S-Edit will draw geometry having any angle.
Use a middle-click (BACKUP) to remove vertices in reverse order of placement. This back-up action is only available while an object is being drawn. The BACKUP button can also be used to move a vertex.
DOUBLE-CLICK
Use a right-click to end the drawing operation without placing a vertex. (This results in what can appear to be "backing up" to the last vertex placed.)
71
You can allow or disallow selection of the objects shown above, and also of net labels, ports and properties, by type. Similarly, you can show or hide objects based on type. Right click on the toolbar button for an object type to choose selectability and visibility. Note that though labeled Show None, in fact at least one type of object must be displayed at any given time; it will be the object type over which the cursor was right-clicked to open the context-sensitive menu. Selectability and visibility of an object type is indicated in the toolbar buttons. Diagonal hatching means the object type is not visible. A red dot in the lower left corner of the button means the object type cannot be selected.
In this case you can select polygons but they are not shown.
72
To draw a box, press the DRAW mouse button and drag the cursor away from the starting point to determine the opposite corner (and therefore the length and width) of the box. Release the DRAW button at the desired opposite corner.
To draw a polygon, click the VERTEX (left) mouse button at the starting point, move the cursor and LEFT CLICK to determine the second vertex. Repeat the process for each successive vertex. Click the BACKUP mouse button to remove the last vertex that was placed. A polygon can have any number of vertices. When you click the END button, coincident vertices (two or more vertices occupying the same location) and colinear vertices (three or more vertices lying on the same straight line) are eliminated. When you draw a polygon the mouse buttons become VERTEX, BACKUP, and END, respectively.
Note that this is simply a line drawing toola path has no electrical properties. A path can have any number of vertices. To draw a path, click the VERTEX (left) mouse button at the starting point, move the cursor and LEFT CLICK to determine the second vertex. Repeat the process for each successive vertex. Click the BACKUP mouse button to remove the last vertex that was placed. Click the END button to complete the operation. The mouse buttons for this operation are VERTEX, BACKUP, and END.
To draw a circle, press the DRAW mouse button and drag the cursor away from the center starting point to determine the radius of the circle. Release the DRAW button at the desired radius. The mouse buttons for this operation are DRAW and SELECT.
73
When you select the Label icon and click in the design area, S-Edit opens the Label Settings dialog so you can enter text and choose how it will be displayed. Click OK to place the label.
Enter your label text in this field. Enter the text size. If Enable auto-repeat is not checked, S-Edit opens the Label Settings dialog just once, places the label when you click OK, and reverts to Select mode. With Enable auto-repeat checked you can place labels repeatedly by clicking in the design area, without having to re-open the label settings dialog each time. S-Edit remains in label mode until you select a different mode or press ESC. The following controls may be added:
Confirm text of each objectwhen checked, re-opens the Label Settings dialog each time a label is placed so you can enter
All text orientations are with respect to the origin point of the label, indicated by a cross.
Horizontal: select Left, Center or Right horizontal text alignment. Vertical: select Top, Middle or Bottom vertical text alignment. Direction: select Normal, Upside down, Down or Up for the text
direction.
74
To instance a cell, highlight it in the Libraries navigator and click on the Instance icon (for more details, see Creating Instances on page 86).
Wires (W) Solder Points Connect/Disconnect Net Caps Net Label In Port Out Port In/Out Port Other Port Global Port Properties
75
Note that wires and paths, while similar in appearance, are functionally different. Wires connect objects electrically; paths do not. S-Edit will draw only orthogonal wires. The starting point is the first vertex of the wire. Wires can have any number of vertices. The mouse buttons for this operation are VERTEX, BACKUP, and END. To draw a wire, activate the Wire tool, then click the DRAW button to place the first endpoint of the wire. Continue clicking the DRAW button wherever you want to place a vertex, up to the last endpoint. Double-click the DRAW button to place the last endpoint and finish drawing the wire, or simply place a vertex on a pin so that S-Edit will terminate the wire automatically. See also Drawing Wires on page 90.
Use solder points to define a point where wires cross and make an electrical connection (see Creating a Connection where Wires Intersect on page 92).
The Connect/Disconnect tool attaches and detaches wires within its perimeter. (See Rubberbanding and Disconnecting Wires on page 92.)
A net cap halts the propagation of a global net to any cell that instances the current cell. (See Naming Global Nets on page 103.)
Net labels identify nets by placing text in the design area. Use the NetLabel Port Settings dialog to place text and control its size, position and alignment. (See Labeling Nets on page 95).
76
Ports
Use the toolbar icons or the Draw > Electrical menu to select and place ports. S-Edit will open a dialog where you can set the port name, size and alignment parameters. (See Adding Ports on page 92.)
Note:
To open a dialog like the one below, click once in the Vertices field of the Properties navigator to activate the ellipsis button and then again on the button to open the Edit Vertices dialog.
77
Selecting Objects
Similarly, a comment or net label is characterized by its name, location in coordinates, text size and orientation.
Selecting Objects
You must select an object before editing it or modifying it in any way. You can select more than one object at a time to manipulate a group of objects as a single one. When you select an object, it is highlighted. Or, if the object is an instance of a cell, a thin highlight appears defining its MBB [minimum bounding box, or perimeter]. If the Display property under Name is set to Visible or ValueOnly, the name will also be displayed in with yellow highlighted text when a cell or instance is selected. (If the names are not visible try zooming-in, or set the display to a larger FontSize value.) When you deselect an object, the highlight disappears and subsequent operations do not affect that object. S-Edit provides two ways of selecting objects: explicit and implicit selection.
Explicit Selection
There are several ways to make an explicit selection. You must select objects explicitly before performing the following actions:
Cut, Copy, Clear, or Duplicate operations.
Selection by Clicking
Position the cursor over the desired object and click the Select button. S-Edit will deselect any previously selected object or objects.
78
Selecting Objects
Extend Selection
To add an object to a set of selected objects, perform a click- or drag-selection with the Extend Select (Shift + Select) button held. Previously selected objects are not deselected.
Cycle Selection
You can also select separate objects in succession by clicking repeatedly near them. This cycle selection technique lets quickly cycle through several overlapping or adjacent objects to select the one of your choice. In cycle-selection, S-Edit first selects the closest object within selection range. When you click again with the cursor in the same spot, S-Edit deselects the first object and selects the next closest object. You may continue clicking to select successive objects until there are no more within the selection range. At that point, all objects are deselected. If you click again with the cursor in the same spot the cycle will resume with the closest object. The actual ordering of candidate objects for cycle-selection is as follows: (1) objects the cursor is inside, ordered according to the closest edge; (2) objects the cursor is outside (yet still within the selection range), ordered according to the closest edge. Objects that do not enclose the cursor can only be selected if they are within the selection range.
Select All (Edit > Select All) and Deselect All (Edit > Deselect All)
Use Ctrl + A to select all objects in the active window and Alt + A to deselect all objects in the active window. To remove objects from a group of selections, hold the Deselect (Alt + Select) button while performing a click- or drag-selection.
79
Right-click on the toolbar button for an object type to open a context-sensitive and click on the Allow Select... option you prefer. A red dot in the lower left corner of the toolbar button indicates an object type cannot be selected.
Implicit Selection
You can move, edit, or copy an object without explicitly selecting it, if it is within the selection range set in Mouse Wheel Options. Clicking the MOVE-EDIT or COPY button with the cursor near such an object implicitly selects it for these operations. The object is deselected after the operation.
Deselection
To deselect an object or remove objects from a set of selected objects, hold the Deselect (Alt + Select) button while performing a click- or drag-selection. Deselecting an object that was selected has no effect on the object.
Automatic Deselection
When you begin a move, edit, or copy operation, S-Edit checks to see how far the cursor is from the bounding box of all currently selected objects. If this distance is greater than the deselection range, then S-Edit deselects all current selections and performs the implicit selection to begin the operation.
80
Forcing a Move Operation Instead of an Edit (Draw > Force Move or Alt + M)
In normal drawing mode, the edit command is active when the cursor is within the edit range of an objects edge (see Mouse Wheel Options on page 34), and the move command is active when the cursor is outside that range.
Draw > Force Move forces a move operation regardless of the cursor position. After the move operation is finished, S-Edit will revert to normal drawing mode, or you can cancel the force move operation by pressing ESC.
Note that a forced move does not preserve an objects electrical connections; that is, it does not rubberband the object.
their starting point. For a single object the center of rotation is the objects origin. For multiple objects the center of rotation is the center of their MBB. Note that you can use the R shortcut key to change an objects orientation before clicking to place it in the design area.
Alternately, the Draw > Rotate command allows you to rotate the selected objects counterclockwise by any degree around the starting point, with up to six decimal points accuracy. Use a negative value for clockwise rotation.
81
The Copy command puts the copy of the selected object(s) in the internal clipboard. The copy does not appear in the design area until it is placed with the Paste command. The copy remains selected after this operation.
82
Pasting Objects
When you use the mouse-drag or Duplicate operation, S-Edit stores the offset of that operation. Subsequent use of the Duplicate command replicates both the object and the displacement, aiding in the rapid creation of regular structures like arrays. (See Creating an Array on page 99.)
Select an object and use Edit > Duplicate (Ctrl + D) to initiate the duplicate operation.
Pasting Objects
S-Edit stores cut or copied objects to an internal clipboard. To paste the contents of this clipboard, click in the design area, use the Edit > Paste (Ctrl + V) command, and click again. When the paste command is active the clipboard objects are visible and move with the cursor (attached at the lower left corner of their MBB) until the second click places them.
83
Deleting Objects
Use one of the following commands to remove selected object(s) from a view:
Edit > Cut (Ctrl + X)
The Cut command puts the deleted objects in the internal clipboard. From there they can be restored to the current cell or placed into another cell.
Edit > Clear (Del)
The Clear command does not put the deleted objects into the internal clipboard.
84
Creating a Schematic
A schematic for a component is made by placing a number of symbols on the schematic page and then connecting the symbols together with wires at their defined connection points. A set of connection points connected together is called a net. You can make a symbol for a new schematic and then use it in other schematics, thus allowing for the construction of hierarchical designs.
Instances of Symbols
Instances of symbols refer to a particular symbol in a cell. A schematic may contain many instances of the same symbol or of different symbols. Instances contain graphics which provide the illustration of the symbol, and ports
Ports
Ports provide connection points for attaching nets. Ports on the symbol and ports on the instance are different in that ports on the symbol are shown as their port name, whereas ports on the instance do not. Ports on the schematic define how connections made to ports on symbol instances connect to nets on the schematic for that symbol.
Nets
A net is a wiring connection between two or more instance ports. A net can be a single wire, or a collection of wires called a bus or a bundle.
Properties
Properties are name-value pairs that are usually used to describe some characteristic of a device, such as a transistor length, width, or Source/Drain areas and perimeters. Properties can be put on an instance to override the value defined in the symbol, or new properties can be created on an instance.
Annotation Graphics
Annotation graphics are non-electrical objects such as boxes, polygons, paths, and labels used to add comment or illustrations to the schematic.
85
Select a design file or library file from the drop-down list of those open where the cell will be saved. Enter a cell name. Select the view type, i.e. schematic. Specify a view name. Specify which interface the new view belongs with. Check this box to prevent S-Edit from checking for naming violations.
Cell View type View name Interface name Disable name validation
Creating Instances
Instances in a cell are references to other cells. These cells might be common library cells (such as basic circuit elements) or larger, custom-designed cells. Instances are dynamically linked to their source cell so that any change you make to a source cell is reflected in each higher-level instance of that cell. Any option you set in the originating cell will be the default for all of its instances. However, you can override this setting in any of the instances, and the change will affect that instance only.
86
Creating Instances
[3]
Property values inherited from the symbol can be overridden on a per instance basis by changing their values in the Instance Cell dialog before placing the instance. Modified values in the instance cell dialog will persist for all subsequent instances unless modified again.
[4]
Drag the instance with the mouse and click in the design area to place it. You will continue to instance the same cell until you either click Done in the Instance Cell dialog, double-click on the design area, choose a different cell to instance, select a new tool, or choose the select arrow. Instances can be flipped horizontally or vertically prior to placement by pressing the H or V key, and can be rotated prior to placement by pressing the R key. Properties for each instance can be modified in the Instance Cell dialog prior to each placement. You can change the cell being instanced by selecting a new Cell name in the Instance Cell drop-down.
Instance Name
Enter a name for the instance. If no name is entered, S-Edit will by default use the cellname_x, where x is an integer that increments automatically. Check this box to prevent S-Edit from checking for naming violations.
Design Select a library from those loaded to the active design. Cell name Select a cell from those loaded to the design. Interface Select an interface from those defined for the cell. Symbol View the list of those open.
Instance of:
Properties
You can change the properties of the cell you are about to instance. This will be local override over the symbol default values. Click Done to stop instancing.
Done
87
When you select an instance property from the design area, you will see a selection box when it is active in the Properties navigator. Changes made in the Properties navigator will update all instances if multiple instances are selected (see Editing Properties on page 113).
88
Locked Properties
Properties which are evaluated expressions are displayed in green in the Properties navigator and cannot be edited there, they can only be changed by editing the expression in the source cell of because reference values have changed.
89
the new new cell you want to use is in a different library, you should select the library first from the MasterDesign property.
Drawing Wires
To draw a wire, select the Wire drawing button on the toolbar and click the left mouse button to place the first vertex. Subsequent clicks with the left mouse button will place additional vertices. Clicking the right mouse button ends the wire without placing a vertex, and double clicking the left mouse button terminates the wire by placing a vertex at the double-click location.
Connections Points
A connection point is defined as an end of a wire or a bus, an instance of a port, a global or local port, a net label or a net cap. Connection points that coincide are considered connected and are shown as filled-in circles unless they occur at the edge of an instance. Connections are usually explicitfor example, a wire end connected to a port, or two ports or two wires connecting directly to each other. Note that it is possible to form an implicit connection. For example, if you instance a cell that has two or more symbol ports named A, anything you connect in the instance to any port corresponding to A will also be implicitly connected to other pins corresponding to A.
90
An open connection point is one that does not coincide with another connection point. Unconnected ports and unconnected wire ends are shown as unfilled circles.
Connected
Unconnected
If you click repeatedly on a connection point you will cycle selection through the wire segments that attach to it.
Hot Spots
A hot spot, drawn as a small red square, indicates a port connection in schematic view. Hot spots also assist with routing, as a mouse click within a hot spot will automatically align and connect wires.
91
Adding Ports
To detach a wire from a pin, or to reattach wires that have detached because of an edit (for example, one moving a pin off-grid) use Draw > Electrical > Connect/Disconnect.
Connect/Disconnect is a toggle command that instantly attaches or detaches wires that fall within the perimeter of the tool. If you click on a connected wire the wire will disconnect, and vice-versa. It is also a non-sticky commandthat is, it goes back to the previously selected tool after its execution.
When you click using the Connect/Disconnect tool S-Edit searches within a square area with sides equal to two times the snap grid size. If there are any open solder dots on or inside the square they will be connected. If not, any connected wires will be disconnected by clipping them at the edge of the square. (With the exception of open connections from port instances, if they are exactly on the corner of the square.) Note that there is a small chance that new unwanted connections will be made this way. Connections are formed by drawing additional orthogonal wires connecting each open solder dot to the center of the square. If an angle is necessary it is created on-grid. When a connecting wire for a port instance requires an angle, the first segment will run perpendicular to the MBB of the instance rather than parallel. When an orthogonal wire patch is needed, the first patch segment will be colinear to the existing wire.
Adding Ports
Ports define the connection points that can be made to a symbol when the symbol is instanced. When instanced, ports do not display their name, but appear as open connectivity circles for attachment to wires. When connected to two or more items, they appear as filled circles; when connected to one item,
92
Adding Ports
they disappear. Ports exist in both symbols and schematics, and you can create and modify ports in both views.
Types of Ports
Five types of ports are available: Input, Output, Bidirectional, Other and Global, as shown in the toolbar below.
S-Edit treats the first four ports similarly. Port types imply different connectivity rules, enforced by the design checker. These rules are: All ports with the same name must have the same type on schematic and symbol A net on a schematic may not connect output ports of two instances A net on a schematic may not consist exclusively of input ports of instances
Global ports, however, have a different functionthey are used to make global nets, which create connectivity throughout a design.
93
Adding Ports
Enter the port label text in this field. Enter the text size. If Enable auto-repeat is not checked, S-Edit opens the Port Settings dialog just once, places the port when you click OK, and reverts to Select mode. With Enable auto-repeat checked, you can place ports repeatedly by clicking in the work area, without having to re-open the port settings dialog each time. S-Edit remains in port mode until you select a different mode or press ESC. The following controls may be added:
Confirm text of each objectwhen checked, re-opens the Port Settings dialog each time a port is placed so you can enter
Justification
Select North, South, East or West, where the cardinal directions describe the orientation of the port text with respect to the center of the connection point.
94
Adding Ports
Each port type has its own graphic so it can be easily identified in the work area.
Naming Ports
In most cases, the port names on schematic views of a cell must match the port names on symbol views of that cell. Specifically, a cell is correctly defined when the arrangement of ports is such that: For every non-global port on the symbol view, there exists a corresponding port of the same name and type on at least one of the cells schematic views. For every non-global port in a schematic view, there exists a corresponding port of the same name and type on the cell symbol.
Attaching ports or net labels with the same name to differently named objects forms an implicit connection, even if those objects are not directly connected by wire. If you rename a port in one net, you break that implicit connection. Similarly, when a cell contains more than one net with the same name, those nets are connected, even if they are on cells.
Labeling Nets
You can label nets to make your design more readable and to indicate connections within a cell. Connections formed by net labels exist only within a particular cell. When different cells contain nets with the same name, those nets are generally unconnected, with the important exception of global nets (see Global Nets on page 101).
Example of a net label with West orientation.
95
Adding Ports
or use Draw > Electrical > Net Label. S-Edit will open the Net Label
Note that you can use the R, H and V shortcut keys (for rotate 90, flip horizontally and flip vertically) to change the orientation of a net label before clicking to place it in the work area.
Enter your net label text in this field. Enter the text size. If Enable auto-repeat is not checked, S-Edit opens the Net Label Settings dialog just once, places the net label when you click OK, and reverts to Select mode. With Enable auto-repeat checked you can place net labels repeatedly by clicking in the work area, without having to re-open the net label dialog each time. S-Edit remains in net label mode until you select a different mode or press ESC. The following controls may be added:
Confirm text of each objectwhen checked, re-opens the Net Label Settings dialog each time a net label is placed so you can
All text orientations are with respect to the origin point of the label, indicated by a cross.
Horizontal: select Left, Center or Right horizontal text alignment. Vertical: select Top, Middle or Bottom vertical text alignment. Direction: select Normal, Upside down, Down or Up for the text
direction.
96
Creating a Bus
You create a bus with the net label tool by using a special naming syntax that specifies how many nets are in the bus, and how their number increments. The default increment value is one and may be omitted if that is the desired value. For example, UpData<0:7:2> creates a bus four bits wide, with nets UpData<0>, UpData<2>, UpData<4>, ... UpData<6>. You can create two-dimensional buses by naming a wire busname <n1:n2:stepa><n3:n4:stepb>. As with arrays (see below), the second range increments before the first range.
97
Prefix Notation
You can repeat a single signal name, a group of signal names, or a vector term any number of times in the wire name by placing a prefix repeat operator <*n> in front of the name, where n is a positive integer that defines the number of times to repeat each bit in the vector term. Use the prefix repeat operator <*n> to repeat a single-signal name. For example, the following equivalent wire names both describe the same four-bit wire:
<*2>A,B,C A,A,B,C
Use the prefix repeat operator <*n> and parentheses to repeat a group of signal names. For example, the following two wire names are equivalent:
<*2>(A,B),C A,B,A,B,C
You can also use combinations of the prefix repeat operator <*n> and parentheses to nest parenthetical expressions to any required depth. Nested expressions are expanded from the innermost expression outward. For example, a name with the expression
<*2>(A,<*2>(X,Y)),B
expands to
A,X,Y,X,Y,A,X,Y,X,Y,B.
Suffix Notation
You can also use <*n> as a suffix repeat operator after a vector term, where n is a positive integer that defines the number of times to repeat each bit in the vector term. For example, use the suffix repeat operator <*n> to repeat each bit in a group of bit names before expanding the vector term. For example, the following three names all describe the same six-bit wire:
A<0:2*2> A<0*2,1*2,2*2> A<0,0,1,1,2,2>
Or, use the suffix repeat operator <*n> and parentheses to repeat the sequence of bit names. In this case, the vector term is expanded before the bits are repeated. Again, the following names all describe the same six-bit wire:
A<(0:2)*2> A<0:2,0:2> A<0,1,2,0,1,2>
98
Expanding Buses
S-Edit supports expansion of bus pins with the colon (:) notation, where : indicates a range of pins. For example, a cell Dig2 has a symbol with properties:
SPICE.DEFINITION = .subckt $Cell (%{Data<3:0>}) Vdd Clk (%{Out<0:3>}) SPICE.OUTPUT = X${Name} (%{Data<3:0>}) %{Vdd} %{Clk} (%{Out<0:3>}) $MasterCell %(Data<3:0>)
SPICE.DEFINITION will expand buses in the subcircuit definition line and SPICE.OUTPUT will expand buses in the netlist. When a cell containing an instance of Dig2 is exported, we will get:
.subckt Dig2 (Data<3:0>) Vdd Clk (Out<0:3>) .ends subckt Dig2 (Data<3> Data<2> Data<1> Data<0>) Vdd Clk (Out<0:3>)
Creating an Array
You create an array by applying array syntax when you name an instance. So, an instance named array_name<n1:n2:step> creates an array of instances named array_name<n>, where n starts at n1, ends at n2, and increments by the step value. The step increment is one by default and can be omitted. Two dimensional arrays may be created by naming an instance U<n1:n2:step1><n3:n4:step2>, where the second range increments first. For example, the instance name U<0:7><0:3> creates an array of instances named:
U<0><0>, U<1><0>, U<2><0>, ... U<7><0>, U<0><1>, U<0><2>, U<0><3>, U<1><1>, U<1><2>, U<1><3>, U<2><1>, U<2><2>, U<2><3>, U<7><1>, U<7><2>, U<7><3>
Array Example 1
In the following example, we have created an array of four cells by giving an instance of cell B the name B1<1:4>.
99
The bundle In, N<1:3> connects four wires In, N<1>, N<2>, and N<3> to array B1, and bus P<1:4> similarly connects to the array D1<1:4>, with bundle N<1:3>, Out exiting.
Array Example 2
In this example, cell F contains port bundles IN<0:7> and Out <0:7> so that it can connect to eight wires.
Buses In<0:7> and D<0:7> form an eight bit wide bus, respectively, in and out of instance F_1, which splits so that wires D<2>, D<3>, D<4>, D<5>, D<6>, and D<7> go into instance G_1 with five-bit port
100
Global Nets
bundles in and out to accommodate D<2:7> and E<0:5>. The single wire D<1> goes into instance B_1 and out as net R, and single wire D<0> goes into instance B_2 and out as net Q.
Global Nets
Global nets simplify the drawing and maintenance of electrical schematics. When a net is global, you can connect or disconnect it throughout a design without drawing or deleting wires. Global nets are especially useful for power, ground, clock, reset, and other circuitwide nets that require routing throughout a design. Like standard nets, global nets connect across all of the schematic views of a cell. Unlike standard nets (which connect to nets outside the cell only through ports), global nets automatically connect between all cells in a design (subject to certain scoping rules; see Naming Global Nets on page 103). Any changes made to a global nets name or state propagate throughout the design. There are two ways to create a global net. You can add a global port to a schematic page, or you can instance a global symbolthat is, a symbol which has a global port or has one on its corresponding schematic page.
Global Ports
Global ports indicate connection points for global nets. Unlike regular ports, the names of global ports are significant outside of the cell where they are placed. The name of a global port is the default name of the global net associated with it. For example, if you want to create a global net with the default name Gnd, name the global port Gnd.
101
Global Nets
To place a global port, use the Global Port tool (See Adding Ports on page 92.)
Global Symbols
Global symbols are special cells that function as wireless connectors. They are defined as such when they contain one or more global ports. When you attach a global symbol to a net, you connect that net to all other nets on every view and cell in the design file that are attached to a like global symbol. Such nets then become global nets. Conversely, a net ceases to be global when all global symbols are detached from it. You can add any number of new global symbols to a design. Sample files shipped with S-Edit contain symbols for Gnd and Vdd as shown below.
In the figure below, two Gnd symbols are attached to two different wires in a cell. Since Gnd is a global symbol, the two wires are thus connected to each other. In addition, any wires in any other cell which has the Gnd symbol attached is also connected to these nets.
102
Global Nets
A global port or an instance containing one appears on the cell, with no net caps on the associated global net. The net propagates up and down the cell hierarchy. A global port or an instance containing one appears on the cell, with a net cap named so it is associated with the global net. The net does not propagate up the cell hierarchy. A global port or an instance containing one does not appear on this cell, but global net propagation passes through this level of the hierarchy because the global port appears, uncapped, in one of the cells instanced within the current cell. In SPICE output, these nets will actually appear in the cell as placeholder nets. You can connect to a hidden net by placing a net label (or port) in the cell with the same name as the hidden net (or by instancing the global symbol).
capped
hidden
When global symbols collide, S-Edit will arbitrarily choose one of their names as the new name for the net. There is no guarantee that this net name will be stable; it may change when further edits are performed. If a global symbol collision causes two separate global nets to be connected, S-Edit will use the common new name to designate the net and all nets connected to all instances of all colliding symbols. Until the collision is resolved, all of these nets continue to be electrically connected. Avoid such situations wherever possible. One way to avoid collisions between global symbols on the same net is to use a voltage source cell to set the voltage between the nets. Let a property of the cell be the voltage between the nets. Then edit the property to set any desired voltage between the nets, even 0 volts. You can find voltage source cells in the S-Edit sample libraries.
103
Global Nets
connections global, regardless of the designer's intention. Moreover, net caps will not prevent such a net from propagating. Be careful when naming different grounds. T-Spice considers all nets named Gnd, GND, gnd, and 0 to be connected.
When a net cap is placed in a cell, the global net will not propagate to any cell that instances that cell. The nets scope is limited to the current cell and any cells instanced on its schematic views. Any global nets with the same global symbol that exist outside the scope of the capped net may have the same name as the capped net, but are unconnected. One important exception to this rule occurs when you export SPICE files from S-Edit for use in T-Spice and some other SPICE simulators, which treat all ground netsin T-Spice, nets with any of the names Gnd, GND, gnd, or 0as connected to 0.0 volts, regardless of S-Edits scoping rules. Note that the net cap does not have to be attached to a netit can be placed anywhere in the work area. However, the name is critical as it defines the net cap.
104
If a port is connected to a global net, the net propagates to the higher levels through the cell port connection, just as a regular net does. This happens even if the global net is capped. This is the only way a capped net can propagate to a higher cell.
Enter the name of the net cap in this field. Enter the text size in points.
(Enable auto-repeat is not functional for this operation.)
Justification
Select North, South, East or West, where the cardinal directions describe the orientation of the text with respect to the center of the connection point of the cap.
Note:
Note that existing cell names and cell names entered using the Properties navigator are not validated until a file undergoes a design check. After a design check, violation warnings are displayed in the Command window.
Some of the common items the design checker will check for include: Dangling wireswires with unconnected ends. Dangling portsports on instances with no connection. Instances with no name or a non-unique name. Nets with at most one output port reference connected to them. Ports with the same name having the same type.
105
Schematic Checks
S-Edit provides the option to check an entire schematic or just the active cell. Use Tools > Design Checks (or the toolbar button ) to check the full hierarchy Click on the icon to run the design checker on just the current schematic view.
Checks on Names
Design Check checks the names of these objects based on the validation constraints in Setup > Technology > Validation. Each violation triggers a warning. Cell names View names Instance names Port text Net labels
Checks on Instances
Design Check examines instances to determine whether the following conditions are met and issues either an error or a warning if not. All instances must refer to a master that can be resolved (error). All instances must have a unique name (error). There cannot be any cyclic dependencies (error). All instances must have a name (warning). All properties can be evaluatedi.e. correct syntax, legal references, etc. (warning). Dangling port references (those that are not connected) do not exist (warning).
Checks on Nets
Design Check examines nets to determine whether the following conditions are met and issues either an error or a warning if not. Note that although it will not result in either an error or a warning, we recommended that you do not give a net the same base name as a bus. For example, a net named N and a bus named N<0:7> could cause confusion. Nets ripped from a netbundle must actually exist in the netbundle (error). Bus dimensions are compatible with rippers, portbundles, subscripts, etc. For example, you're not trying to rip a 5th wire from a 4-wire bus (error). Nets have at most one OUTPUT portref connected to them (error). Nets have at least one portref that is NOT of type INPUT connected to them, unless they are connected to an interface port of type INPUT (error). Dangling nets, i.e. those with a wire end that is not connected, do not exist (error).
106
Net Highlighting
You can use the Push into Context design hierarchy. and Pop Context buttons to trace a net through your
When you select a wire or port at the top level, the entire net it belongs to will be selected when you push into any instance to which it is connected. Unless you select part of a different net, the net will remain selected as you push down to the primitive level. Similarly, if you select a wire or port while pushed into an instance, the net it is connected to will remain selected as you pop back up the design hierarchy.
When you double-click to push into instance core_1, all of net N19 is selected.
107
When you push into instance DDFC_3 in core_1, the five ports (circled) on net N19 are highlighted.
108
Creating a Symbol
The process of schematic capture first involves the creation of symbols. Symbols are a pictorial representation of an electrical component together with a definition of the electrical connections that can be made to that component. Symbols may also contain properties that define the electrical characteristics of the component. In many design situations, a library of symbols already exists, usually of basic standardized components which a designer can use to create their schematic.
Symbol Graphics
Symbol graphics comprise the graphical image of the symbol. This is the image that is seen when the symbol is instanced. Symbol graphics can be boxes, polygons, paths, or circles.
Labels
Text labels can be added to a symbol, and are visible when the symbol is instanced.
Ports
Ports define the connection points that can be made to the symbol when the symbol is instanced. When instanced, ports do not show their text, but appear as an open circle connection point for a wire.
Properties
Properties are name-value pairs that are usually used to describe some characteristic of a device, such as a transistor length, width, or Source/Drain areas and perimeters. Properties can also be used for other purposes, such as controlling the SPICE statements written for a device. Properties on a symbol provide the default values when that symbol is instanced, but may be overridden on an instance-by-instance basis. If a symbol already exists with graphics or ports, Update Symbol will add the new ports from the schematic to the symbol view, but will not modify the graphics or remove any existing ports. (See Creating and Updating Symbols Automatically, below.)
109
[2]
tools. You can add text with the Label drawing tool. The graphical representation has no electrical meaning, but provides a recognizable way to identify instances of the cell. (See Drawing Tools for Annotation Graphics on page 72.) [3]
Add ports Ports define the connection points that can be made to a symbol when the symbol is instanced. They can be of type In, Out, In/Out, Other or Global. (See Adding Ports on page 92.) Add PropertiesIf needed, add properties to the symbol. Properties on a symbol provide the default
[4]
values when that symbol is instanced, but may be overridden on a per instance basis. (See Symbol Property Types, below.)
If the symbol view is empty, Update Symbol creates simple graphics and places ports corresponding to those on the schematic, with input ports on the left and output ports on the right. It will also place text labels corresponding to each port.
110
System Properties
Properties such as the design or library from which the symbol comes or the cell version are shown in the System area of the Properties navigator. In general, the system properties should not be edited.
User Properties
User properties such as Drain Area (AD), Source Area (AS), Length (L) etc. are shown in the User area of the Properties navigator. S-Edit uses property information in two ways. When you instance a cell with properties, S-Edit interprets the properties (as long as they are not hidden) and displays their interpreted values in the instancing cell. If a property has a numeric value, S-Edit displays the value of the number. If a property has a string value, S-Edit displays literal text and the interpreted value of expressions, if any are present (see Evaluated Properties on page 120.) When you export a netlist, S-Edit writes out the values of output properties appropriate to the netlist format. You can use SPICE output properties to include simulation commands in the netlist. For more information on output properties, see Exporting SPICE Files on page 130. You can define, add, edit and import your own properties for design elements, which may be absolute values or expressions for evaluation.
Default Properties
The properties on a symbol are default properties that are used when the symbol is instanced. When you change a property in the symbol view of a cell, that property will change in all the instances of that cell. Properties for a symbol are visible on the symbol itself as well as in the Properties navigator. The Properties navigator will contain different fields depending on the type of object selected. You can add, delete, or edit properties at any time, and you can override properties assigned in the original cell with properties assigned to the instance. You can also show or hide a propertys name or value, for most but not all properties.
Service Sub-Properties
S-Edit properties carry sub-properties, called service properties that are used to set functional characteristics such as allowable values, display characteristics or callback properties.
111
Valid Values
ValidValues is an enumerated list from which the user can choose values for the property. Setting ValidValues to A B C D will make the value field of the property become a drop-down menu with choices A, B, C and D. To place spaces in a value, surround the value with braces. Callback is the name of a TCL function to call when the value to the property is changed. These TCL functions are user-created. Typical uses of callbacks are to perform validity checking of the input, or to modify other properties that should change in order to maintain consistency with the modified property.
Callback
IsInterface
Only properties with IsInterface = True will get written to SPICE as parameters of a device or subcircuit when $$ is used to write all parameters. The property type, from the following pull-down choices:
String- text Boolean- true or false Double- floating point number Integer- integer Coordinate- position number (may be negative), to be displayed in display units Length- distance number (non-negative), to be displayed in
Type
display units
FontSize- positive number, to be displayed in points
Description
The description text is displayed in the description area at the bottom of the property grid when the property is selected. Sets how a property is displayed when the symbol is instanced. Options are: Hiddenthe property is not displayed. Visibledisplays both the property name and its value. ValueOnlydisplays just the property value.
Display
Font size, position, justification and orientation are subsets of the display property, as well as WhenNotEvaluated.
WhenNotEvaluatedSets how an evaluated property is displayed when it has not been calculated. Options are Hidden, Visible and ValueOnly.
112
Editing Properties
Evaluated Properties
A property can be an explicit value or an expression.
For example, in the MOSFET_P symbol shown above, the value of L is 2u and the value of W is 22u. Properties AD, AS, PD and PS are expressions which reference the values of other properties using the $. The Drain area (AD) is 3u times the gate Width (W), which is expressed in the Properties navigator as AD = $W*3u. This will be evaluated to yield AD = 22u*3u = 66p. See the chapter Evaluated Properties (page 120) for more detail.
Editing Properties
You can use the Properties navigator to enter or edit any attribute of a user property (e.g. visibility, font size, or text positioning) on any number of properties that are selected in the active view.
113
Editing Properties
Load from fileruns a TCL file that replaces the current Sort by namesorts properties alphabetically, separately by
category.
Show visible onlyhides property values that are set to hidden in the design.
You can also right-click anywhere in the Properties navigator to open the shortcut menu shown below.
114
Editing Properties
You can also right-click on one property (it will not appear to be selected) then use Ctrl + right-drag to select multiple properties (selection boxes will be visible at this point).
Warning:
Note that edits made in the Properties navigator are unrestricted and are not validated by S-Edit. For example, it is possible to draw a 90 line and then convert it to an all-angle line using the value field of the related property. S-Edit does not give a warning if you make such a change.
Expressions that yield evaluated properties are displayed in green in the Properties navigator and cannot be edited. Note that any edits made in the Properties navigator affect all the selected objects.
115
Editing Properties
User properties may be created, for example, to count cell instances, to reference ports or other properties, or to format property outputs. S-Edit interprets user properties in instances (when shown in schematic mode) or during export to a netlist. S-Edit parses all other text without expansion.
copies the entire property hierarchy above and below the selected object.
Save as opens a dialog to specify the filename, then saves the selected properties to a TCL file. Load from opens a dialog to specify a TCL file, then in background issues a source command to load and run
116
Editing Properties
The file contains the same list of property set commands that would be issued if you used the commands Copy tree and then Paste. You can use File > Open > Open File to open the TCL file in a text editor, as shown below.
117
Editing Properties
Similarly, expanding property W shows that it has a callback function named checkValidWidth.
The function setModelNameFromLength retrieves the length value entered and sets the model name based on that length. The function checkValidWidth checks that the width you entered is in the range 0.25u = W = 50u, and returns an error message and disallow the value if it is not within this range. If you were to open the schematic view of a cell containing an instance of MOSFET_P, for example MOSFET_P_1 in diffcell as shown below, and change the value of L from 1u to 0.1u, the value of model, PMOS.3 with L=1u, will automatically change to PMOS.1 due to the callback. If you change L back to 1u, the model value will change back to PMOS.3. However, if you try to change the value of W to 0.1u, L-Edit will display a callback error message in the log window stating that the value is too small.
118
Port Placement
The callback functions must be defined in S-Edit before they can be called. This is done either by dragging the file containing the callbacks into the command window, or by placing the file in one of the folder locations from which scripts get automatically loaded. Scripts placed in a folder scripts/open.design in the design folder will be automatically loaded when the design is opened. The other locations and conditions by which S-Edit automatically loads scripts are shown in the following table.
To load script when any design is opened, place script in: To load script when S Edit is started, place script in:
C:\Documents and Settings\<username>\Application Data\Tanner EDA\scripts\open.design C:\Documents and Settings\<username>\Application Data\Tanner EDA\scripts\startup
To load script when S Edit C:\Documents and Settings\<username>\Application Data\Tanner is shutdown, place script in: EDA\scripts\shutdown
Port Placement
S-Edit is more flexible than many other schematic editors with respect to port placement. S-Edit allows you to place a port at any location on the symbol, whereas other schematic editors require that you place the port on the symbol boundary. If you plan to export your design to another schematic editor, you will probably achieve better results by following this convention and placing your ports on the symbol boundary. When you instance a cell, S-Edit translates the ports on the symbol view into ports on the cell instance. Ports thus provide connection points between lower-level cells and their instances. When you connect objects to a port on a higher-level instance, you also connect them to any object connected to the corresponding port on the schematic of the originating cell. For example, when you connect an object to the input port In of an instancing inverter, (corresponding to a port named In on the symbol view of the inverter cell), you have connected it to the net named In on the schematic of the instanced inverter cell.
119
Evaluated Properties
S-Edit supports expressions as property values; in fact, every property value is implicitly an expression.
120
Interpretation References the name of the node connected by the terminal T. In the in context view, this name is the hierarchical name of the net. Refers explicitly to another property on the same instance, or in symbol view to another property on the symbol. For example, in the expression AD=$W*6u, the $W refers to the value of a property W on the same device. The reference for a property is first looked for as a User property, and then as a System property. If $P does not exist as either a user or a system sibling property, $P is looked for as a TCL variable. This option corresponds to the Cadence iPar() function.
$P or ${P}
?P or ?{P}
References the parent cell's property, but only looks up one level of the hierarchy. As usual, overridden properties on the instance of the parent have higher priority than the default value on the symbol. In particular, a property value ?P on an instance looks for the property P first on the instance of the parent cell, then on the schematic page containing the instance, then on the symbol of that schematic, and then for a TCL variable. As with the $ reference, at each level, the property is first looked for as a User property, and then as a System property.
(continued)
121
Reference
?P or ?{P}
(continued)
Interpretation Note that in SPICE export mode, parent properties are not expanded as they were prior to the version 12 release, unless: 1) referring to an instance property, 2) the "?" sytax is used, 3) the property exists on the parent view and 4) if the property on the parent view is a system property. For example, consider a symbol of cell BOT instanced in a schematic of cell MID. S-Edit will resolve a property with value ?P on an instance of BOT by looking for a property P as follows: 1 Look for value of property P on the instance of cell MID. This assumes you have navigated in context through an instance of MID and are now looking at a symbol of BOT, or, similarly, are exporting SPICE from a higher level schematic. (The value on an instance of MID is first looked for as an override on the particular instance of MID, and then on the symbol of MID.) Look for a value of property P on the schematic of MID. Look for a value of property P on the symbol of cell MID. (This is not needed when BOT is looked at in a particular context of MID, but provides a default value when MID is opened without context, or as a toplevel cell) Look for a value of property P defined as a TCl variable.
2 3
The ? can be used to iteratively look up the hierarchy. In the above example, cell MID can be instanced in a schematic of cell TOP. The value of property P on the instance of cell MID can be ?Q, and Q could have its value defined on an instance of TOP. This option corresponds to the Cadence pPar() function.
@P or @{P}
References the highest-level definition of P. If we have a cell TOP which contains an instance of MID, which contains an instance of BOT, then the priority order of a property P inside BOT is then (high to low): global, MIDINST.P, MIDSYM.P, BOTINST.P, BOTSYM.P.
An instance (or a symbol) of a cell could have a property A = [ size $B ]. If there is a property B = small on that instance, then property A after substitution of B becomes A = [ size small ], and after TCL evaluation becomes A = 5. Similarly, one could have A = [ size ?B] or A = size @B].
122
Selective Evaluation: se
S-Edit uses the built-in TCL command se to selectively evaluate properties and format the result depending on whether the property is defined or not. The syntax of the command is:
se property true-clause { false-clause }
If the property exists, the true-clause is returned; otherwise, the (optional) false-clause is returned. Because property substitution precedes TCL evaluation in property evaluation, the se function is needed to identify the case where a nonexistent property returns an empty string. For example:
[se $L {L=$L} {L=2u}]
The first two of these are always available to display, the next three depend on values being present from a DC simulation run. To place a property near the desired port use:
Z = [annotate port T]
The key elements of these properties are i) only the property value is important, the property name can be anything, and, ii) the property value contains the string annotate port portname in square brackets, where portname is the name of a port on the symbol. In the preceding example, the square brackets indicate that annotate port T is a TCL function being evaluated.
123
If annotation values are not visible it may be that the Display service property WhenNotEvaluated is set to hidden or value only (see Service Sub-Properties on page 111).
124
Importing a Design
You can import EDIF and SPICE files into S-Edit, and export EDIF, SPICE, Verilog and VHDL files from S-Edit.
Specifies the SPICE file to import. Specifies the design, cell, interface view, and connectivity view into which the SPICE file will be imported. If cells of the same name exist in the SPICE file and the design it is being imported to, a check in this box causes the SPICE file to overwrite the views in the existing cell. Choose from T-Spice, HSPICE, PSpice and CDL. When checked, SPICE device characters will be prepended to model names in the netlist.
125
Importing a Design
compatible with S-Edit as described below. Note that Cadence applications usually export some properties to files other than the EDIF file. When this is the case, you must prompt S-Edit to search for those files and place limits on the directories that will be searched. You must have a design open before you can import. The import operation creates a complete project directory for the design.
Note:
Note that standard cell place and route (SPR) in L-Edit requires either a flattened EDIF netlist or one with only one level of hierarchy.
Specifies the EDIF file to import. Specifies the design into which the EDIF file will be imported. If a library exists in the EDIF file with the same name as the design or one of the libraries of the design, then the contents of that EDIF library will be imported into the design or library of the same name. Libraries in the EDIF file that do not match the design name will be created as new libraries of the selected design. If cells of the same name exist in the EDIF file and the design it is being imported to, a check in this box causes the EDIF file to overwrite the views in the existing cell. Causes S-Edit to analyze the contents of the EDIF file for pin spacing and calculate the best grid spacing and scaling.
126
Importing a Design
Cadence EDIF export places the cdsParam symbol properties in a separate file from the EDIF files called a cdfDump file. When this box is checked, S-Edit searches the directory specified for cdfDump files of the File Extension specified, translates the cdsParam properties and creates SPICE.OUTPUT when an EDIF file is imported from Cadence. Checking Also search subdirectories will do just that for the directory you have entered. The imported properties will be displayed in the standard S-Edit Properties navigator.
Specifies the location of the Cadence cdfDump file to be used for translating cdsParam properties. S-Edit obtains the appropriate library and cell from the header of the file, and applies the property translation to that cell. Parameter files can contain multiple libraries and cells, separated by headers that indicate the library and cell names for the properties that follow. This field is only used for translation of Cadence cdsParam labels and to create SPICE.OUTPUT properties, and may be left blank for EDIF files from vendors other than Cadence, or if a Cadence database is not available. See EDIF Translations for Virtuoso, below.)
File Extension
When a file extension is entered, S-Edit reads all files with the matching extension, regardless of base filename. When this option is checked, S-Edit will search all directories below the one entered.
?defValue ?type
"pch" "string"
127
Importing a Design
?editable "nil" ?parseAsCEL "yes" ) cdfCreateParam( cdfId ?name "macro" ?prompt "Subcircuit name" ?defValue "iPar(\"model\")" ?type "string" ?display "nil" ?parseAsCEL "yes"
For every cdsTerm label, a property with name ~cds.NNN is created, with value [annotate port name]. Here NNN is a unique integer in the symbol scope. The newly created property is placed at the same location as the original label, with the same orientation and justification. For every cdsName label, set the location and text size of the system property Name to the values of this label. If Translate Cadence cdsParam properties is checked, and a Cadence database directory containing cdfDump files is provided, S-Edit properties are created from the parameter name and value that n references in the appropriate cdfDump file in the Cadence database. Labels containing [@ are converted to properties that reference the corresponding S-Edit properties.
cdsName
cdsParam(n)
NLP label
Property values using the Cadence formats pPar, iPar and atPar that refer to other properties are translated to the S-Edit reference format as follows:
pPar(name) iPar(name) atPar(name)
128
Importing a Design
Tokens in the ViewDraw ORDER property are translated to the SPICE output property as follows:
name$ translates to $name name= translates to [se $name {name='$name'}]
129
Exporting a Design
Where rootlibrary is the name of the root library. The root library is the one nearest the bottom of the EDIF file, so you can also identify the root library by locating the entity library libraryname that is nearest the bottom of the file. Another way to create a new design from an EDIF file is to create a design with any name, import the EDIF file, and save the design and its libraries. Use the Top-level filter in the Libraries navigator to assist in finding the toplevel library. You can then open the toplevel library directly (in this context it becomes the design) and you can delete from disk the placeholder design that you initially created.
Exporting a Design
S-Edit can export your design or any portion of it to a variety of netlist formats for simulation or placement and routing. Once you have exported a netlist, you can use T-Spice to simulate it and W-Edit to view the waveform output, directly from S-Edit. S-Edit writes a netlist for the current cell and all of its instances, unless any of these instances contain output properties that describe them as primitive cells. The following sections provide details on S-Edits precise export behavior according to the type of netlist being exported.
Warning:
Tools > Start Simulation and File > Export SPICE, which both export a SPICE file, are independent
and unsynchronized. It is therefore possible to specify two completely different sets of SPICE output properties for the same cell.
130
Exporting a Design
To export a SPICE netlist, use the File > Export > Export SPICE command.
To file
Enter or browse to the filename you wish to export. The first time a file is exported during an editing session, the default file location is My Documents. After that it will be the one that was used the last time a SPICE file was exported.
Enter the Design, Cell and Connectivity View you want to export.
Top Level Cellidentify this cell as the top level of your design
Choose hierarchical or flat. When checked, excludes the .model statement, if any is defined, from the netlist output. This option only applies to designs with cells having connectivity defined by importing a SPICE netlist. When a netlist is imported, a model definition is created internally for primitive devices. To suppress that model definition from being exported as a .model statement, check this box. It is often desirable to exclude the .model statement in the case where such models are included from external library files. (See also .OUTPUT property using TCL on page 133.)
Exclude .end
When checked, suppresses the .end statement in the SPICE output file.
131
Exporting a Design
When checked, global ports are not expanded in subcircuit definitions and calls and instead a .global statement is added to the netlist. Capped nets are excluded because they have a global defintion. Netcaps are ignored. A local net with the same name as a global net will be connected to the global net.
Enter the number of characters at which output text will wrap to a new line. Property name containing sub-properties .OUTPUT, .PRIMITIVE, .ORDER, .DEFINITION, .PREFIX, .PINORDER, .MODEL and .PARAMETERS. (See SPICE Export Properties, below.) If blank, S-Edit will use the default SPICE.OUTPUT. Valid separators are space ( ), comma (,), and semicolon (;).
exported lines
.DEFINITION property (page 134)netlist export control property to format subcircuit
declarations These properties must be created as a sub-property of a property. For example, a symbol can have properties where SPICE1.OUTPUT specifies one set of output parameters and SPICE2.OUTPUT can specify a different set of output parameters. Similarly, SPICE1.PRIMITIVE and SPICE2.PRIMITIVE can express different levels at which traversal of the hierarchy should proceed. You would then enter either SPICE1 or SPICE2 in the Export control property to specify which .OUTPUT and .PRIMITIVE properties to use when you export SPICE. In most cases there will be only one set of .OUTPUT and .PRIMITIVE properties. (See Properties Controlling Verilog Export Behavior on page 142 for further information.)
132
Exporting a Design
Note:
The default Tanner sort order (Tannerbetical) for output properties is first numeric then alphabetic, to yield the sequence 1, 2, 3, 10, 20, 25, 30, 40 (as opposed to 1, 10, 2, 20, 25, 3, 30, 40.)
S-Edit will export a hierarchical SPICE netlist to the specified file according to the following rules: If a cell contains a SPICE.OUTPUT property on its symbol view, S-Edit will interpret the property value and write its interpreted value to the file, followed by a new line. S-Edit will not search the cells schematic views for additional instances.
If the cells symbol view does not contain a SPICE.OUTPUT property, S-Edit: Writes a subcircuit call with the name of the instanced cell. Writes a subcircuit definition by examining the cells instanced on the schematic views in alphabetic order and writing out each instance it encounters. Generates the correct .subckt and .ends lines bracketing each subcircuit. You cannot customize the .subckt or .ends lines; however, you can change the order in which non-global ports are written. If a cell contains instances but no ports or propagated global nets, S-Edit will generate a subcircuit call without ports. If a cell contains no instances but contains ports or propagated global nets, S-Edit will write that cell to the netlist as an empty subcircuit. If a cell contains no instances, ports, or propagated global nets, S-Edit will ignore the instance. S-Edit writes the top-level cell as the main circuit. It is the last block of circuitry S-Edit writes to the file.
S-Edit will append any properties on a subcircuit symbol except for output properties to the subcircuit definition block as subcircuit parameters.
Substitute the netname connected to pin N. Substitute the value of property P on the same instance as the SPICE.OUTPUT property.
133
Exporting a Design
?{P}
Becomes just P, and references the property P directly above in the hierarchy. Becomes just P, and references a property P above in the hierarchy, searching from the top of the hierarchy down until the value is reached. A shortcut for all nets connected to the ports of the device in Tannerbetical order. (See Note on page 133.) A shortcut for all the IsInterface=True properties of the device. Pass the string contained in brackets to the TCl interpreter for evaluation. Use empty brackets [ ] to return an empty string if SPICE output is not desired.
@{P}
%%
$$ [ string ]
If the SPICE.OUTPUT property is not required and not present, then a SPICE subcircuit call is emitted, and all interface properties are appended. If SPICE.OUTPUT is present, but expands to an empty string, no output is written.
.PRIMITIVE property
A property SPICE.PRIMITIVE property with value TRUE on an instance causes the traversal to stop at this level of the hierarchy (i.e., the schematic page is NOT exported, nor are any subcircuits instanced in it), and causes no definition to be written for the symbol in question.
.ORDER property
A property SPICE.ORDER with integer value on an instance controls the relative order in which SPICE statements are emitted. Instances are written in increasing SPICE.ORDER value.
.DEFINITION property
The SPICE.DEFINITION property is used in the definition of a subcircuit. Typically, this is a .subckt, with some subset of parameters as shown below.
.SUBCKT name pin1 [pin2 ...] [par1=val1 par2=val2 ...] <subcircuit definition> .ENDS [name]
The SPICE.DEFINITION value is always taken from symbol, never from an instance. S-Edit will take the symbol property and ignore the overwritten instance property.
134
Exporting a Design
.PREFIX property
The SPICE.PREFIX property is used to automatically specify the prefix when writing an instance. For example, the SPICE.PREFIX for a MOSFET would be:
SPICE.PREFIX = M
.PINORDER property
The SPICE.PINORDER property is used to specify the list of pins written for a device or subcircuit instance, and for a subcircuit definition. The pin list for a MOSFET would be:
SPICE.PINORDER = D G S B
Buses may be written in the pin list as either just the name of the bus, or with a specified range in the format <start:stop> or <start:stop:step>. If no range is specified, all signals in the bus are written out in increasing order. For example, a symbol with input bus IN<0:7> and output bus OUT<0:7> and VDD and GND connections.
SPICE.PINORDER = IN OUT<7:0> VDD GND
.MODEL property
The SPICE.MODEL property is used to specify the model name written for a device or subcircuit instance, or for a subcircuit definition. The value of this property is evaluated and written out. For example, use the following to write out NMOS as the model name:
SPICE.MODEL = NMOS
Or, use the following to write the value of the property modelname.
SPICE.MODEL = $modelname
.PARAMETERS property
The SPICE.PARAMETERS property is used to specify the list of parameters written for a device or subcircuit instance, and also for a subcircuit definition. SPICE.PARAMETERS is a list of parameters, such as:
SPICE.PARAMETERS = Prop1= Prop2= Prop3=
135
Exporting a Design
An = after a property name indicates that a property is to be written as PropName=PropValue. A $ after a property name indicates that only the property value is to be written. A ~ after a property name indicates that the property is to be written as PropName=PropValue if the property value is not the default (symbol) value. If the property value is the default value, then nothing is written. A string of characters that does not end with = or $ is output verbatim. The = or $ characters may be output using \ as an escape character. \= outputs = and \$ outputs $. If the value does not exist (empty string) nothing is output for that parameter. (This eliminates the need to write properties with the se command.) If the value is an expression (the operators +, -, * or /) then the value is enclosed in single quotes.
Instance Calls
When writing an instance, If SPICE.OUTPUT does not exist, you can construct one internally as follows and then write out the SPICE.OUTPUT (user-specified or internally constructed) according to the substitutions listed.
SPICE.OUTPUT = ${SPICE.PREFIX}${Name} %% ${SPICE.MODEL} $$
Where: [1] [2] If SPICE.PREFIX does not exist, then use X. If %% exists in the SPICE.OUTPUT then, if a SPICE.PINORDER list also exists, use it to expand %%. Otherwise write all pins in Tannerbetical order. If SPICE.MODELdoes not exist, then use MasterCell If $$ exists in the SPICE.OUTPUT then, if a SPICE.PARAMETERS list exists, use it to expand $$, otherwise write all properties with IsInterface=True for $$. For better performance, if the value of the property being written is the default value, then do not write it out.
[3] [4]
Subcircuit Definitions
If SPICE.DEFINITION does not exist, construct one internally as shown below, then write out the definition (either the user-specified or an internally constructed one) with the following substitutions:
SPICE.DEFINITION = .subckt ${SPICE.MODEL} %% $$
Where: [1] [2] If SPICE.MODEL does not exist, then use MasterCell If %% exists in the SPICE.DEFINITION then, if a SPICE.PINORDER list exists, use it to expand %%, otherwise write all pins in Tannerbetical order.
136
Exporting a Design
[3]
If $$ exists in the SPICE.DEFINITION then, if a SPICE.PARAMETERS list exists, use it to expand $$, otherwise write all properties with IsInterface=True for $$.
The symbol will also usually have properties for MODEL, W, L, AS, AD, PS, PD. Consider an instance of a MOSFET with he following properties:
MODEL=PMOS W='24*l' L='2*l' AS='114*l*l' AD='72*l*l' PS='60*l' PD='30*l'
The name of the instance is P4, and the drain, gate, source and bulk pins of the instance are connected to QB, Q, Vdd, and Vdd respectively. When the SPICE output statement above is evaluated, the following steps occur: [1] For $Name, substitute the value of the property Name that is on the same instance as the SPICE.OUTPUT property. The property Name typically does not exist as a user property, but does exist as a system property, and is the name of the instance, in this case P4. For %D %G %S %B, substitute the names of the nets connected to ports D, G, S, and B of the instance, in this case QB, Q, Vdd, Vdd. For $MODEL W=$W L=$L AS=$AS AD=$AD PS=$PS PD=$PD, substitute the values of these properties. The SPICE device statement written for this instance will then be:
MP4 QB Q Vdd Vdd PMOS W='24*l' L='2*l' AS='114*l*l' AD='72*l*l' PS='60*l' PD='30*l'
[2]
[3]
The SPICE.PRIMITIVE = true property prevents a subcircuit definition for the MOSFET from being written.
In the above example, the properties MODEL, W, L, AS, AD, PS, PD themselves can use the general property language. For example, the following properties exist on an instance
137
Exporting a Design
MODEL = PMOS W = '?Width' L = '2u' AS = '$W*3u' AD = '$W*3u' PS = '2*$W + 6u' PD ='2*$W + 6u'
And a property Width =20u exists on the instance of the cell in which the MOSFET is located. The SPICE device statement written for this instance will then be:
MP_4 QB Q Vdd Vdd PMOS W='20u' L='2u' AS='20u*3u' AD='20u*3u' PS='2*20u + 6u' PD='2*20u + 6u'
Here, if a property $AS is resolved with value AS_value, then [se $AS {AS=$AS} ] will return AS=AS_value. If $AS does not resolve to anything, because the property AS does not exist, then [se $AS {AS=$AS} ] will return an empty string. Example 4: Controlling Subcircuit Output The SPICE.OUTPUT property can also be used to control the output of subcircuits, as well as of primitive devices. If no SPICE output statement exists on an instance, then the instance is written as a subcircuit instantiation, with the X prefix, and all properties marked as interface properties (sub-property IsInterface=true) are written out. If needed, the output can be explicitly specified:
SPICE.OUTPUT=X${Name} %% ${MasterCell} P1=$P1 P2=$P2
Here Name and MasterCell are system properties referring to the instance name and cell name respectively. %% outputs all the nets connected to the subcircuit ports.
138
Exporting a Design
The title block uses properties with the ? reference to refer to the parent cell properties. The SPICE.OUTPUT property value [ ] is used to return an empty string, in this case because SPICE output is not desired for this instance.
[2]
[3]
[4]
139
Exporting a Design
XAND2_2 N4 RED_EW Gnd Vdd GREEN_NS AND2 ... XDFFC1_7 RESETB CLOCK N66 Gnd N65 N66 Vdd DFFC1 .ENDS
Enter or browse for the name of the EDIF file to be output. Select the Whole design and its libraries you want to export. Or, select Starting From and then specify the Design, Cell, View type and View of the top level view you want to export.
Export schematicoutputs the graphical elements of the design, including all symbols and schematic views, as well as interfaces. Export netlistoutputs the connectivity of the design. Use this option to export a netlist for place and route. Export libraries as externalsoutputs references to the interface
Export options
ports on library elements rather than the entire library. If no option is checked, the output is a list of cells with interfaces. You can select any combination of these export options.
Export control property
Enter the name of the property containing the .PRIMITIVE sub-property used to stop traversal of the design hierarchy.
EDIF export will normally write out an entire design to full extent of the hierarchy. To stop export at a particular instance, place a property with the sub-property .PRIMITIVE having value true on the symbol of the cell, or on each instance of that cell.
140
Exporting a Design
If a cell's symbol contains an EDIF .PRIMITIVE = true property, S-Edit: Writes an EDIF cell definition for the cell without examining the cell's schematic pages for additional instances. The cell definition will contain ports and global ports. Treats the cell as if it were instanced in the top-level cell.
If a cell does not contain an EDIF PRIMITIVE = true property on its symbol page, S-Edit examines all of the cell's schematic and writes out each instance to the netlist. If the instanced cell contains no ports or propagated global nets, S-Edit ignores the instance. If the instanced cell contains ports but no instances, it is an error. S-Edit writes a message to the netlist file identifying the cell with the error and stating that it requires an EDIF definition. S-Edit also displays a dialog box to warn you of the error. After writing all primitive cell definitions, S-Edit writes a top-level cell containing instances of all primitives in the design and the nets that connect these primitives. S-Edit generates scoped node names, which uniquely identify a node by including its hierarchical position in the node name-e.g., inst1/inst2/.../node_name, where inst1, inst2, etc. are the names of the instances in descending order from the top level of the design to the level of the node, and node_name is the name of the node. Local node names are scoped to show the hierarchy of instances from the top level to the level that contains the node. Global node names are scoped to show the hierarchy of instances from the cell containing the global node symbol to the level at which the global node is capped. Uncapped global nodes will be written without a scope-that is, Gnd will simply appear as Gnd in the output file. S-Edit will automatically convert any names that are incompatible with EDIF naming requirements to a legal EDIF name using the rename construct.
Example A netlist-only EDIF file that terminates at standard cells, rather than going to transistor level, is desirable when you export EDIF for standard cell place and route. To do this, create a property EDIF.PRIMITIVE = true (the period indicates PRIMITIVE is a sub-property of EDIF) on each standard cell symbol, and then enter EDIF as the Export control property. Usually an EDIF schematic that traverses all the way down the hierarchy is the desired output when you export EDIF to view in another tool. In this case, leave the Export control property blank.
141
Exporting a Design
To file Export source Export all cells Additional commands preceeding netlist Additional commands following netlist Options
Enter or browse for the name of the netlist file to be output. Enter the Design, Cell and Connectivity View you want to export. Check this box to export all cells in a design. Properties in this field are written verbatim after the title block, on a single line. The values in this field are written at the end of the Verilog output. Use the Export global pins on subcircuits checkbox to ignore global ports in the netlist during export so they are not exported as parameters. Enter the Property name containing the .PRIMITIVE sub-property used to stop traversal of the design hierarchy.
142
Exporting a Design
name as the export control property in the Export Verilog dialog. Typically you would create a property called VERILOG, with subproperty PRIMITIVE and value TRUE, but any name can be used in place of VERILOG.
VERILOG.OUTPUT
The Verilog exporter is controlled by several user properties including VERILOG.OUTPUT, VERILOG.PRIMITIVE and VERILOG.DEFINITION. The "VERILOG" part of these properties may be substituted by a user-supplied prefix in the File > Export > Verilog dialog. Note that VHDL and SPICE operate the same way. The Verilog output option in S-Edit creates a subcircuit call for every level in the design hierarchy. S-Edit cells that have symbols but no schematics are considered primitive elements, and no definition of these elements is written to the Verilog output file. It is assumed that these primitive elements are contained in user-supplied Verilog libraries, if they are required at all. If an instance contains a VERILOG.OUTPUT property, the property will be evaluated and exported to the Verilog output file, instead of the default subcircuit call. In the special case of an empty string (obtained by setting the property value to [], which evaluates in TCL to "nothing,") no carriage return should be appended so it's as if the item doesn't exist at all. Like all user properties, VERILOG.OUTPUT is inherited from the symbol definition. VERILOG.OUTPUT is primarily useful for exporting comments, global statements, and special-purpose output statements. The Verilog exporter recognizes two properties on a schematic view and outputs their values when exporting Verilog. The value of VERILOG.PROLOG, similar to Spice.General.AdditionalCommands, is written verbatim after the title block, on a single line. For example, you can use it to instruct the Verilog netlister to add a timescale statement when netlisting. VERILOG.EPILOG outputs the value at the end of the export.
VERILOG.PRIMITIVE
If an instance contains a VERILOG.PRIMITIVE property, the instance is written out as usual, but no definition for the cell is written. Note that it is the presence of the VERILOG.PRIMITIVE property, and not its value, that causes this behavior. To prevent a symbol or cell (for example a title block or VDD or GND cell) from being exported, use
VERILOG.PRIMITIVE = true so a definition is not generated, and VERILOG.OUTPUT = [] so a
VERILOG.DEFINITION
If a symbol contains a VERILOG.DEFINITION property, that property is evaluated and exported, one time, as a definition. This is primarily useful for conditional inclusion of files and/or external models.
VERILOG.MODEL
Lastly, we have a VERILOG.MODEL property that is evaluated and used to replace the cellname in both the defintition and each instance, unless VERILOG.PRIMITIVE, .DEFINITION, or .OUTPUT properties existif they do, they have precedence.
143
Exporting a Design
Enter or browse for the name of the netlist file to be output. Enter the Design, Cell and Connectivity View you want to export. Check this box to export all cells in a design. Enter the Property name containing the .PRIMITIVE sub-property used to stop traversal of the design hierarchy.
S-Edit will write the connectivity information in a design in VHDL format according to the following rules (see also Properties Controlling Verilog Export Behavior on page 142): If an instanced cell contains a VHDL.PRIMITIVE property on its symbol view, S-Edit will write a VHDL entity with an empty behavioral architecture, which you can edit in the VHDL code to provide a behavioral definition. S-Edit will not search the cells schematic views for additional instances. To prevent a symbol or cell (for example a title block or VDD or GND cell) from being exported, use VHDL.PRIMITIVE = true so a definition is not generated, and VHDL.OUTPUT = [] so a subcircuit call is not generated.
If the instanced cells symbol view does not contain a VHDL.PRIMITIVE property, S-Edit: Writes a structural architecture with the name of the instanced cell. Writes a structural architecture by examining the cells instanced on the schematic views and writing out each instance it encounters, plus the connectivity of the instance, so that you can conveniently provide a description in VHDL. Defines the primitive as a VHDL entity with ports defined as std_logic signal ports. If an instanced cell contains no instances, S-Edit will ignore the instance If an instanced cell contains ports but no instances, S-Edit will signal an error and write the cell to the netlist as an entity with empty structural architecture. S-Edit writes the top-level cell as the top-level entity in the VHDL file.
Note:
Unlike other netlist formats, VHDL netlists require that the top-level cell have a valid symbol view, with ports that correspond to its schematic ports. This information is used to define the top-level entity.
144
Exporting a Design
Enter or browse for the name of the netlist file to be output. Enter the Design, Cell and View you want to export. Enter the name of the output property, typically simply TPR.
If an instanced cell contains a TPR.OUTPUT property, S-Edit will generate a netlist according to the following rules. It will not examine the schematic for additional instances. The .OUTPUT property can take two values, C and CP, where CP is used exclusively for pad cells. These must have a terminal called Pad. S-Edit generates two lines for the cell and writes them to the file. The first line indicates formal parameters for the instanced cell, and the second line indicates the mapping of formal parameters to node names in the instance. S-Edit generates no global node ports for the cell. The property TPR.OUTPUT can have any prefix, which is then entered in the Export control property field. S-Edit generates scoped names which uniquely identify an instance by including its hierarchical position. For example, top/cell1/cell2/.../instance_name, where cell1, cell2, etc. are the names of the cells in descending order from the top level of the design to the level containing the instance. Global symbol names are scoped to show the hierarchy of instances from the cell containing the global symbol to the level at which the global net is capped. Uncapped global nets will be written without a scopethat is, Gnd will simply appear as Gnd in the output file. If an instanced cell does not contain a TPR.OUTPUT property on its symbol view, S-Edit examines all cells in alphabetic order and writes out each instance to the netlist. If the instanced cell contains no ports or propagated global nets, S-Edit ignores the instance. If the instanced cell contains no instances but contains ports, it is an error. S-Edit writes a message to the netlist file identifying the cell with the error and stating that it requires a TPR definition. S-Edit also displays a dialog box warning of the error.
145
S-Edit supports the TCL scripting language as a method to enter commands in the Command window, and also to run scripts. When a command in entered in S-Edit through the graphic interface, the corresponding TCL command is issued in the Command window. It is actually the TCL command in the Command window that causes S-Edit to execute the command; text entered into the Command window functions as a script to instantly execute operations.
Text can be written in directly, copied from executed operations and then pasted back into the Command window, or invoked from a saved TCL file. Scripts written in the TCL language can also be dragged and dropped from a browser into the Command window to execute immediately.
146
Invoke File > Open > Execute Script Invoke File > Recent Scripts and select a previously run script. Type source followed by the path and filename for the script, as described in Source Scripts, below. You can also have a script run automatically when S-Edit is opened, when its closed, or when a design is loaded, simply by saving the TCL file in the appropriate directory. (See Launching Scripts Automatically on page 147.)
Source Scripts
Source scripts take the form :
source filename | foldername [-subfolders] [-relativeto user|design] [-mru false|true] filename
Source runs the specified script file. The filename can contain an absolute or relative path. Source runs all scripts in the specified folder in alphabetical order. The foldername can contain an absolute or relative path. Does not recurse into subfolders by default.
-relativeto user
foldername
If a relative path is given, and -relativeto design is specified, the root is the design folder. If no -relativeto option is specified, then -relativeto user is assumed.
-subfolders
When a foldername is specified, source recurses breadth first into subfolders. (All scripts in the specified folder are run first, in alphabetical order, then subfolders are recurred into in alphabetical order). By default, source filename puts that script into the mru, and source foldername does not put the scripts in that folder into the mru. Specifying -mru false or -mru true allows you to override that behavior. Displays an explanation of command options and syntax.
-help
147
Any design that is opened will run the scripts placed in this startup location. Scripts placed in the folder scripts/open.design within the design folder will be automatically executed only when that specific design is opened.
S-Edit creates the open.design folder during installation. Whenever a design is opened in S-Edit, all the TCL scripts in this directory will be executed. File naming is unrestricted, but note that S-Edit reads files in alphabetical order. Thus if you have a required sequence, use file names to control the order in which files in the the open.design folder are executed. If it is just setup definitions that you want to apply locally, you can alternately save your Setup dialog values to the {user preferences folder}, from which S-Edit populates the open.design folder. (See Changing Setup Options on page 24.) For example, if you want to view wires in red in in each design, regardless of the default setting for the file, you would use the Wires field in Setup > Technology > Schematic Colors to select red, make sure that the corresponding checkbox is checked, and then save to your {user preferences folder}. This will save a colors.tcl script to the open.design folder so that every time you load a design, S-Edit will run colors.tcl with the wires set to red.
148
10
Tanners schematic and simulation tools are fully integrated to allow AC, DC, or transient analysis of your design, with interactive setup, simulation, and post-processing. The three components of this process are S-Edit, T-Spice, and W-Edit, and there are three primary stages to the simulation flow: In the setup stage, you enter commands and information which describe the type of simulation (DC, AC, transient, etc.), and establish the simulator options and outputs. In the design export and simulation stage, S-Edit generates a SPICE file (a netlist) from the design. Then, T-Spice simulates the SPICE file to create a probing data file with voltage and current values for each node and device in the design, and for each analysis specified in the SPICE file. In the probing stage, W-Edit displays traces from the probe data file corresponding to an analysis type and a specific net or device selected in S-Edit. S-Edit can also annotate your schematic with node voltages and device terminal currents and charges.
149
You can easily save or retrieve Setup SPICE Simulation settings (or any other type of cell property) from the Properties navigator. Use the command Save as to save a property set and Load from to copy and run a saved property file, in TCL format. (See also Importing and Exporting Properties on page 116.) The Save as and Load from icons on the Properties navigator toolbar are shown below.
loads a saved TCL property file saves a property tree to a TCL file
Reference Temperature
Tnom - the nominal or reference temperature at which device model parameters were measured; value may be overridden in individual model definitions using the tnom/tref model parameter. Tnom will also represent the default operating temperature of the circuit. (degrees Celsius) Related T-Spice command: .option tnom=temp
150
Allows the user to set macro-level switches to control the tradeoff of accuracy versus performance. Valid selections are default, accurate, and fast. The accurate setting will enhance accuracy at some expense of performance. The fast setting will provide faster simulations with some compromise of accuracy. The default setting, which is generally the best setting, balances accuracy and speed. Related T-Spice commands: .option fast and .option accurate A list of additional SPICE commands which will be entered directly in the netlist. (See SPICE Parameters, Options and Additional Commands on page 153.) Select when W-Edit should display the simulation results. Choices: During - Display solutions during simulation with realtime updating After - Display solutions at the end of the simulation Dont Show - W-Edit will not be activated at all Indicate whether node voltage values should be included in the probe data output file. Related T-Spice command: .option probev=true | false Indicate whether device terminal current values should be included in the probe data output file. Related T-Spice command: .option probei=true | false Warning: May cause excessively large output files. Indicate whether device terminal charge values should be included in the probe data output file. Related T-Spice command: .option probeq=true | false Warning: May cause excessively large output files. A list of directories containing the library and include files. You must separate multiple list entries with semicolons. Related T-Spice command: .options search=path A list of semicolon separated files whose contents should be included in the netlist. Include files can be configured in three different ways: 1. To specify an exact path and filename for an include file, enter the full path and filename in the include file field. 2. To specify an include file in, or relative to, the project folder, enter the relative path and filename without quotes, and the full path with filename will be automatically constructed and placed in a .include statement in the SPICE file. 3. To specify an include file in or relative to the folder specified by the search path, enter the relative path and filename in quotes, and relative path and filename will be placed directly in a .include statement in the SPICE file. Multiple include files should be separated by semicolons. Related T-Spice command: .include filename
Show Waveforms
Include Files
151
Library Files
A list of semicolon separated model library files and optional section names. Note - libraryname should be quoted if sectionname is included. Library files may be specified in the same three ways as include files. However, with library files there is also the name of the library inside the file that must be specified. The name of the library is placed immediately after the library name. LibfileA LibnameA; LibfileB libnameB; ... This generates SPICE .lib statements that looks like: .lib LibfileA libnameA .lib LibfileB libnameB Related T-Spice commands:
.lib libraryname .lib libraryname sectionname
The name of the SPICE file which will be created and simulated when the Simulate command is executed. When the SPICE netlist is generated, all directory and filenames entered in the General Settings dialog will be expanded to refer to fully qualified path names. If this is not the desired behavior, then the name should be entered within quotes. For example, an include file identified as either ./mosis2u.md or mosis2u.md will be written to the SPICE file as designpath\mosis2u.md, where designpath is the directory containing the schematic design. If the filename had been entered as mosis2u.md, then it would not have any pathname expansion performed. Note also that unless a location for the output files is specified explicitly the S-Edit default is to place them in the directory indicated in the this field, where they are considered temporary and deleted at the end of the S-Edit session.
The name of the output file which will contain T-Spice simulation results, and can be plotted by W-Edit.
Note: Temporary output files (.out and .dat) are removed at the end
of the S-Edit session unless you enter a directory location in this field.
Simulator
Allows selection of different simulators. Choices: T-Spice, other The command or executable name for running the SPICE simulator Additional arguments to be included in the simulator execution command
152
Netlisting Options
Exclude .model
When set to True, .model statements are excluded from the netlist (for example, if you plan to include the netlist file in other SPICE netlists.) When set to True, global ports are not expanded in subcircuit definitions and calls; instead a .global statement is added to the netlist. When set to True, suppresses the .end statement in the SPICE output file. Use this field to specify the SPICE control property used when running simulation and when exporting directly to T-Spice. If left blank, the default is .SPICE.OUTPUT. Wrap long lines to specified number of characters. Negative or zero values will be ignored.
Exclude .end
Related T-Spice command: .option optionname=setting For Parameters and SPICE Options, use the create new delete button to remove one. button to enter a parameter and the
153
Indicate whether the DC Operating Point bias and AC small-signal information should be written to the output file. Related T-Spice command: .op A list of transient timepoints at which the bias information and AC small-signal data should be printed. Related T-Spice command: .op T0 T1 T2 Save the node voltage values for the DC operating point to a file in a format which can be loaded in subsequent simulations. Computational time may thus be reduced by providing an improved initial guess for voltages in the subsequent runs. Related T-Spice command: .save file=filename Load the bias point information from a previous simulation, and use the node voltage values as the initial guess in the DC operating point computation. Related T-Spice command: .load file=filename
Calculate at Time
Save to File
Transient/Fourier Analysis
Fourier analysis can be performed in W-Edit, as well as in T-Spice. There are a number of advantages to performing the Fourier analysis in W-Edit: Sampling density can be adjusted Start and stop times can be varied Windows can be applied in order to reduce the error effects of finite time sampling Results can be computed and plotted interactively, without rerunning the simulation
154
Stop Time
The transient simulation stop time, i.e. the total simulation time. Related T-Spice command: .tran Tstep Tstop The maximum timestep to be taken during the transient simulation. Related T-Spice command: .tran Tstep Tstop The time when simulation results printout will begin. If not set, then the results printout will begin immediately, at time = 0. Related T-Spice command: .tran Tstep Tstop START=Tstart The time increment at which solutions are printed. Related T-Spice command: .option prtdel=step Instructs the simulator to use node voltage initial condition values at startup time 0, rather than computing the DC operating point. Related T-Spice command: .tran Tstep Tstop UIC Select the transient simulation startup mode. Choices: OP - standard DC operating point computation (default) Powerup - voltage and current sources are ramped up Preview - Does not perform an actual transient analysis; for previewing source values. Related T-Spice command: .tran/powerup and .tran/preview True or False. The fundamental frequency about which the harmonic components are computed. Related T-Spice command: .four freq outputs List of voltage and current values for computation of spectral components. Related T-Spice command: .four freq outputs The number of harmonic frequencies for which Fourier components are computed. Related T-Spice command: .four freq outputs nfreqs=N
Startup Mode
Output Variables
155
of a circuit while a voltage or current source is swept over a given interval. T-Spice allows three or more levels of source sweeping, in which the first source sweep is the innermost loop, and is swept for each value of the second source, which in turn is swept for each value of the third source. In addition to sweeping current and voltage source values, parameter values may be swept in order to yield a DC curve as a function of the parameter value. Parameters are defined in the Parameters section of the setup dialog, and also include the intrinsic temp temperature value, which is the operating temperature of the circuit.
Source 1 (Swept for each value of Source 2): Source or Parameter Name Start Value Stop Value Step
Voltage source, current source, or parameter name to sweep. The beginning value of the sweep variable. The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep. Choices and Associated T-Spice commands: linear (lin) - .DC variable linear start stop increment decade (dec) - .DC variable dec start stop increment linear (oct) - .DC variable oct start stop increment
Sweep Type
Source 2 (Swept for each value of source 3): Source or Parameter Name Start Value Stop Value Step
Voltage source, current source, or a parameter name to sweep. The beginning value of the sweep variable. The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep.
156
Voltage source, current source, or a parameter name to sweep. The beginning value of the sweep variable. The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep.
Sweep Type
AC Analysis
The beginning frequency. The final frequency. The number of frequency steps - total steps for linear sweeps, or steps per decade/octave for logarithmic sweeps. A list of data The type of sweep. Choices and Associated T-Spice commands: linear (lin) - .AC linear Fstart Fstop Fstep decade (dec) - .AC dec NF Fstart Fstop linear (lin) - .AC oct NF Fstart Fstop
Noise Analysis
Node at which the total noise is to be computed. Reference node for the nodal voltage (default: GND). Voltage or current source to which input noise is referred.
157
Report Interval
Interval for printing noise report summaries; i.e. print a report every N frequencies.
Output Variables
The output small-signal variables. This is a list of any valid .print commands; e.g. v(out) i1(mos2) The small-signal input source; i.e. the name of a current or voltage source in the schematic.
Temperature Sweep
The beginning operating temperature sweep value (degrees Celsius) The final operating termperature value The temperature step size for linear sweeps, or the number of points per decade/octave for logarithmic sweeps The type of sweep. Choices and Associated T-Spice commands: linear (lin) - .step temp linear Tstart Tstop Tstep decade (dec) - .step temp dec NT Tstart Tstop linear (lin) - .step temp oct NT Tstart Tstop A list of circuit operating temperatures. All analyses will be rerun for each temperature. (degrees Celsius) Related T-Spice command: .temp T0 T1 T2 ...
Sweep Type
List of Temperatures
158
Note:
The temperature sweep as defined by the four other variables and the List of Temperatures entry will generate two separate temperature variation commands. Typically only one or the other type of temperature variation will be used, not both. Since every type of analysis in the SPICE netlist will be rerun for each temperature point, temperature sweeps should be used judiciously.
Parameter Sweep
The Parameter Sweep analysis dialog permits the user to define up to three levels of parametric sweeping. For each parameter value of the sweep, every analysis command which has been defined will be performed - i.e. for a sweep of length N, there will be N total transient, DC, and AC simulations performed.
Parameter 1 Sweep Definition (Swept for each value of Parameter 2): Parameter Name Start Value Stop Value Step
The first sweep parameter. The beginning value of the sweep variable. The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep. Choices and Associated T-Spice commands: linear (lin) - .step variable linear start stop increment decade (dec) - .step variable dec start stop increment linear (lin) - .step variable oct start stop increment
Sweep Type
Parameter 2 Sweep Definition (Swept for each value of Parameter 3): Parameter 2 Start Value
The second parameter to sweep. The beginning value of the sweep variable.
159
Running Simulations
The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep.
Sweep Type Parameter 3 Sweep Definition: Parameter 3 Start Value Stop Value Step Size or # of Steps
The third parameter to sweep. The beginning value of the sweep variable. The final value of the sweep variable. The value step size for linear sweeps, or the number of points per decade/octave for decade and octave sweeps. The type of sweep.
Sweep Type
Running Simulations
Once you have defined the simulations you want to run, use Tools > Start Simulation or click on the icon to start SPICE simulation using Tanners T-Spice application. (Use the General page in Setup SPICE Simulation to set whether W-Edit should display the results during simulation, after simulation, or not at all.) If a cell was opened in context after clicking on the Run (green) button, the top level will be simulated (even if this cell has its own simulation settings). To simulate just a lower-level cell you should open it directly from library browser, as opposed to pushing into it from a higher level of the heirarchy. Note that the SPICE control property used when running a simulation ( Tools > Start Simulation) and when exporting directly to T-Spice (File > Export SPICE) are independent; they can have entirely different settings that S-Edit does not synchronize.
Probing Waveforms
Waveform probing allows you to probe nodes and devices in an S-Edit design to examine their circuit simulation results. The process takes place in three stages: [1] In the export stage, you export a SPICE netlist from your S-Edit design file with at least one type of waveform probing enabled in Setup > SPICE Simulation > General so that S-Edit will write .probe commands to the netlist. In the simulation stage, you use T-Spice to simulate the exported netlist. When T-Spice encounters a
.probe command during simulation, it outputs data to the probe data file, a binary file.
[2]
160
Probing Waveforms
[3]
In the probing stage, you select a net or device for analysis using a probe tool. When you probe the schematic design, S-Edit invokes W-Edit, which automatically displays the waveforms corresponding to the simulation results for the nodes or devices you probed.
161
Probing Waveforms
Probing Setup
You must enable at least one of the waveform probing typesvoltage, current or chargefor S-Edit to collect probing data during simulation, by setting the appropriate field to true on the General page of Setup SPICE Simulation.
You can also use the Properties navigator to enter these values.
When available, all types of simulation results (transient, AC, etc.) will be displayed in W-Edit for each probe action. If a probe request is made which cannot be fulfilled, W-Edit will indicate that no current data is available.
162
Probing Waveforms
Probe Tools
The behavior of the probe tool depends on the data included in the simulation and the object being probed. Use Tools > Probe V to probe nets, wires, net labels and ports. Use Tools > Probe I or Probe Q to probe primitive device terminals and subcircuit pins.
All probe tools use a double-click to drill down into the hierarchy. When you reach the level of a primitive, S-Edit displays the small signal outputs.
Use the Pop Context icon to pop out of the last instance you pushed into, until you return to the top level of the cell hierarchy. You can also use the push and pop features to trace nets in your design (see Net Highlighting on page 107.)
163
11
Command Reference
File Menu
Command
File > New > Design File > New > File File > Open > Open Design File > Open > Add Library Open File Execute Script File > Save > Save Design File > Save > Save Design and Its Libraries Save Selected Design/Libraries Save copy of Selected Design/Libraries File > Close > {Design } Remove Library Clsoe File File > Import > Import EDIF Import Spice File > Export > Export EDIF Export Spice Export Verilog Export VHDL Export TPR File > Page Setup File > Print Preview File > Print File > Recent Files File > Recent Scripts File > Exit Ctrl+P Ctrl+S Ctrl+N Ctrl+O
Shortcut
164
Edit Menu
Edit Menu
Command
Edit > Undo Edit > Redo Edit > Cut Edit > Copy Edit > Paste Edit > Clear Edit > Duplicate Edit > Capture Window Edit > Select All Edit > Deselect All Edit > Find Edit > Edit-in-Place > Push Into Edit > Edit-in-Place > Pop Out Page Down Page Up Ctrl+A Alt+A
Shortcut
Ctrl+Z, Alt+Back Ctrl+Y Ctrl+X Ctrl+C Ctrl+V Del Ctrl+D
View Menu
Command
View > Fit View > Exchange View > Goto > Goto Previous View > Goto > Goto Next View > Goto > Goto Coordinates View > Zoom > Mouse Zoom View > Zoom > Zoom In View > Zoom > Zoom Out View > Zoom > Zoom to Selections View > Zoom > Pan to Selections View > Pan > Pan Left View > Pan > Pan Right View > Pan > Pan Up View > Pan > Pan Down View > Pan > Edge View > Library Navigator View > Properties Z
Shortcut
Home X
+ W
165
Draw Menu
Command
View > View Navigator View > Status Bar View > Command Window View > Activate Command Window View > Toolbars > Standard Draw Segment Electrical SPICE Simulation Locator Mouse Buttons View > Cell View > Cycle View View > Objects > Visible Selectable View > Display > Display Major Grid Display Minor Grid Display Origin Display Evaluated Properties View > Redraw
Shortcut
Space
Draw Menu
Command
Draw > Move By Draw > Force Move Draw > Rotate Draw > Flip > Flip Horizontal Draw > Flip > Flip Vertical Draw > Select Draw > Box Draw > Polygon Draw > Path Draw > Circle Draw > Text Label B P Alt + M R H V
Shortcut
166
Cell Menu
Command
Draw > Electrical > Wire Solder Point Connect/Disconnect Net Cap Net Label In Port Out Port In/Out Port Other Port Global Port Property
Shortcut
Cell Menu
Command
Cell > New View Cell > Open View Cell > Copy View Cell > Rename View Cell > Delete View Cell > Page New Page Delete Page Rename Page Previous Page Next Page Open Page Cell > Copy Cell Cell > Rename Cell Cell > Redirect Instances Cell > Update Symbol Cell > Instance I
Shortcut
N O
Setup Menu
Command
Setup > Technology Page > Preferences Page > SPICE Simulation
Shortcut
167
Tools Menu
Tools Menu
Command
Tools > Design Checks Tools > Highlight Net Tools > Start Simulation Tools > T-Spice Tools > ProbeV Tools > ProbeI Tools > ProbeQ Tools > User > (User 1...10)
Shortcut
Window Menu
Command
Window > Dockable Window > Auto Hide Window > Hide Window > Floating Window > Close Window > Cascade Window > New Window Window > Tile Window > Arrange Icons Window > Close All Except Active Window > Theme Window > (recently opened files)
Shortcut
Help Menu
Command
Help > Schematic Editor Manual Help > Release Notes Help > Tutorial Help > S-Edit Examples Guide Help > Setup Examples and Tutorial Help > Commuter Licenses Help > Support Help > About S-Edit
Shortcut
168
Index
SYMBOLS
$P property reference, 121 %port property reference, 121 ?P property reference, 121 @P property reference, 122
C
Cadence CDF properties, 128 cdfDump files, 127 cdsParam properties, 127 cdsParams, 127 functions, 121, 122 property values pPar, iPar, atPar, 128 Virtuoso, 128 callbacks, 112 capping global nodes, 104, 141 cdfDump files, 127 cdsParam properties, 127 cell list, filtering, 63 cells ancestor, 64 child, 64 copying, 53 creating, 52, 53 deleting, 55 descendant, 64 implicit connections, 90 instancing, 54, 64, 86 interface, 41, 42 locking, 32 multiple interfaces, example, 43 multiple symbols, 44 naming constraints, 30 opening, 51, 52, 63 parent, 64 previewing, 63, 64 primitive, 64 renaming, 55 schematic view, 42 selecting all instances, 89 symbol view, 42 top-level, 64, 144 validation, 31 view types, 41 child cells, 64 circles, drawing, 73 colors, in the design window, 26 Command window as a log, 20, 146 excluding messages from, 22
A
AC small-signal data, to the output file, 154 accurate, in SPICE simulation, 151 ancestor cells, 64 annotating ports, 123 arranging windows, docking, 23 arrays, 97, 99 example, 100 autocalculate, to set grid size, 28
B
backup files, design, 45, 50 bias point information, 154 boxes, drawing, 73 bundles, 97, 100 buses, 97 creating, 97 grouping, 98 incrementing, 97 labeling, 97 prefix notation, 98 repeat operator, 98 suffix notation, 98 syntax, 97 two-dimensional, 97 buttons adding to toolbars, 12 creating customized for toolbar, 12 renaming, 12 TCL functions for, 12
169
filtering content, 22 for executing scripts, 20 formatting display, 21 hyperlinks from, 35 toggling display, 20 commands adding to toolbars, 12 creating customized, 12 renaming, 12 TCL functions for, 12 connection points, 90 connection points, displayed in design window, 90 connectivity checks, 105 coordinates using to edit objects, 77 copying objects in the design window, 82 work area as bitmap, 84
D
DC operating point saving node voltage values, 154 DC operating point analysis, 154 loading bias point information, 154 DC operating point analysis, bias, 154 DC transfer, see DC sweep analysis deleting objects, 84 descendant cells, 64 deselecting objects, 80 automatic deselection, 80 design renaming, 50 design area, 16 design hierarchy ancestor cells, 64 child cells, 64 descendant cells, 64 moving through levels with "push" and "pop", 124 parent cells, 64 viewing, 64 design windows arranging, 58 changing focus with "backward"/"forward", 59 changing focus with "previous"/"next", 59 previous view, 60 redrawing, 59 reuse behavior, 33, 59 designs adding, 63 backup files, 45, 50 backup files for, 50 closing, 50
creating new, 45 file structure, 45 locking, 32 opening, 46, 63 previewing print layout, 57 printing, 56 removing, 63 renaming, 50 saving, 45, 50 device terminal charge, 151 device terminal current, 151 devices replacing, 116 display grid coordinates, 27 minimum feature size, 27 origin point, 27 setting size of, 28 showing or hiding, 60 display units internal units, 27 Draw toolbar, 10 duplicating objects in the design window, 82
E
EDIF files, 125 exporting, 140 importing, 125 SPICE.OUTPUT, 128, 129 translations for Cadence files, 128 translations for ViewDraw files, 129 edit replace, 116 Electrical toolbar, 10 Evaluated properties, 112, 120 displaying, 123 evaluated properties, 113, 120, 123 example cell library, 43 filtering the menu list, 9 interface view, 42 interface views, 43 multiple interface views, 44 multiple symbols, 43 view types, 43
170
F
fast,in SPICE simulation, 151 file formats text files, 37 Find navigator, 19, 66 flipping objects, 82 for waveform probing, 160 Fourier analysis, 154 Full hierarchy, 64 fundamental frequency, for Fourier analysis, 155
I
implicit connections, 90, 95 include files, netlisting, 151 instances, 85 changing properties in all, 111 converting to different cell, 89 design checks on, 106 hiding, 88 locking, 88 naming constraints, 30 placing new, 88 preventing selection, 88 validation, 31 viewing a specific one, 124 viewing in context, 33 interface cell, 41, 42 design checks on, 107 examples, 43 internal units, 27 interpreted properties, 111 iPar() function, 121
G
global nets, 102, 103 as defined by global ports, 93 capped, 103 naming, 103 propagating, 103 global nodes, 139, 141 capping, 104 exporting, 139 naming, 103 global ports, 128 creating, 101 naming for global nets, 103 global symbols, 102 collisions, 103 naming, 103 grid coordinates, 27 minimum feature size, 27 mouse, 27 origin, 27 setting size of, 28 setup options, 28 snapping, 27 grids showing or hiding, 60
K
keyboard shortcuts adding or changing, 13 keyword groups in text files, 38
L
L corner segment, 71 labels drawing, 74 orientation, 75 repeating, 75 language changing, 33 libraries adding, 44, 46, 63 cross-referencing, 44 different color setups in one design, 26 list of used in design, 45 loading, 46 location, 46 opening, 63 removing, 63 renaming, 50
H
harmonic frequencies, in Fourier analysis, 155 hidden properties, 111 hiding instances, 88 Hierarchy navigator, 18
171
saving, 50 Libraries navigator, 18, 62 library files netlisting, 152 lines drawing, 73 Locator toolbar, 10 locking instances, 88 locking cells, 32 log files displaying, 20 filtering, 22 where saved, 20 lscroll with the mouse wheel, 34
capping, 104 connection points, 90 design checks on, 106 global, 93, 102, 103 hidden, 103 highlighting, 163 labeling, 95 naming, 90, 95 naming constraints, 30 placeholder, 103 validation, 31 node capping, 141 node caps, 104 node voltage initial condition values, 155 node voltage values, 154 noise analysis, 157
M
major grid setting size of, 28 menu bar, 9 minor grid setting size of, 28 mouse scrolling with the wheel, 34 mouse buttons drawing mode, 71 Mouse buttons toolbar, 11 mouse snapping grid, 27 moving objects, 80 using numeric values, 81
O
object types, 70 origin point, 27 output properties, 111
P
page size overriding, 29 setting, 29 pages frames, 29 size, 29 panning, 61 to a coordinate, 61 with the mouse wheel, 34 parameter sweep, 159 parametric sweep, 159 parent cells, 64 pasting work area as bitmap, 84 pasting objects, 83 paths drawing, 73 performance impact temperature sweep, 159 polygons drawing, 73 pop context, 107, 163 port labels
N
name contraints checking a design for, 106 name validation, 30 naming constraints, 30 customizing, 31 default, 31 TCL files for, 31 net caps, 104 net labels orientation, 75 repeating, 75 netlists exporting, 131 nets, 85, 90
172
orientation, 75 repeating, 75 ports, 85, 92 adding, 93, 94 annotating, 123 displaying voltage, charge or current, 123 global, 93, 101, 128 graphics, 95 implicit connection, 90 naming, 95 naming constraints, 30 placement, 119 properties, 97 symbolic and schematic correspondence, 95 types, 93 validation, 31 pPar() function, 122 primitive cells, 64 print start time for transient analysis, 155 print time step for transient analysis, 155 probe data file, 160 probing data output file values, 151 data output files device terminal current, 151 nets, 163 pins, 163 subcircuits, 163 to SPICE primitives, 163 voltage, current, charge, 162 product support, 39 project setup folder, 25 properties, 85 adding, 115 as expressions, 109 changing in all instances of a cell, 111 default, 111 default values symbols, 109 defined, 110 displaying, 90 editing from the Properties window, 113 editing from the work area, 88 editing in work area, 88 editing on multiple instances, 89 evaluated, 123 evaluated properties, 89 evaluating "$", 113 hidden, 110, 111 hiding, 90 in SPICE statements, 109 inheriting, 87 interpreted expressions, 111 locked, 89 moving, 89
netlisting, 133 operators for expressions, 120 output, 111 outputting, 111 overriding, 87 overriding in instances, 109 prefixes, 121 selecting from the work area, 88 selecting in the design window, 115 service, 111 SPICE.DEFINITION, 134 SPICE.MODEL, 135 SPICE.ORDER, 134 SPICE.OUTPUT, 133, 139 SPICE.PARAMETERS, 135 SPICE.PINORDER, 135 SPICE.PREFIX, 135 SPICE.PRIMITIVE, 134 sub-properties, 111 system, 111 user, 111 value only, 110 visible, 110 Properties window, 19 property references, 121 push into context, 107, 163
R
replace device, 116 replace symbol, 116 restoring an operation, 84 rotating objects, 81 rubberbanding, 80, 92
S
saving SPICE simulation parameters, 150 scaling for maximum grid size, 28 setting for a design, 27 schematic view cells, 42 screentips, 14 scrolling with the mouse wheel, 34 Segment toolbar, 10 segment types changing, 70
173
drawing, 70 selecting objects cycling selection, 79 explicit selection, 78 extending selection, 79 implicit selection, 80 implicitly, 80 selection behavior, 35 explicit, 78 extending, 79 implicit, 80 selective evaluations, 123 service properties, 111 setup folder, 45 setup options changing, 24 customizing, 25 display colors, 26 editing cell contents, 32 grids, 28 keyword groups, 38 language, 33 loading, 8 loading from TCL files, 24 mouse wheel, 34 mouse wheel behavior, 34 naming constraints, 30 project setup folder, 25 reusing design windows, 33 saving, 8, 24 saving local settings, 148 selection behavior, 35 TCL files, 31 text file display, 37 text file extensions, 37 text file updates, 36 user preferences folder, 25 Setup values, 150 simulation output file, 152 simulation toolbar, 10 small-signal input source, 158 variables, 158 small-signal parameters probing, 163 snap grid, 27 for solder points, 92 solder points, 92 source sweeping, 156 SPICE additional SPICE commands, 153 exporting as subcircuit, 131 exporting as top level cell, 131 exporting files, 130 files, 125
formats supported in S-Edit, 125 netlists, exporting, 133 options, 153 output options, 132 parameters, 153 saving simulation setups, 150 translation for Cadence, 127 SPICE export controlling order of, 132 SPICE Simulation toolbar, 10 SPICE.DEFINITION, 134 SPICE.MODEL, 135 SPICE.ORDER, 134 SPICE.OUTPUT, 128, 133, 139 exporting properties, 133 in EDIF, 129 properties, 133 SPICE.PARAMETERS, 135 SPICE.PINORDER, 135 SPICE.PREFIX, 135 SPICE.PRIMITIVE, 134 Standard toolbar, 10 startup folder, 30, 31 for button functions, 12 Status bar, 16 step size, in sweep analysis, 156 stop time, for transient analysis, 155 subcircuit definition, 132, 134, 135 passing parameters down the hierarchy, 139 subcircuit parameter passing, 139 subcircuits exporting from netlist, 131 probing, 163 support diagnostics, 40 sweep analysis, 155 symbol view cells, 42 symbol views switching schematics for, 44 symbols creating, 110 creating automatically from schematic views, 110 global, 102 replacing, 116 updating, 110 system properties, 111
T
TCL files built in functions, 123 commands in properties, 122 commands used in S-Edit, 146
174
editing, 20 executing, 146 filtering events to log, 13, 22 for name validation, 31 log file, 20 opening to edit, 46 opening to execute, 47 running, 20 running automatically, 147 saving and loading setups, 24 source scripts, 147 writing, 146 TCL functions, 123 for evaluating expressions, 123 temperature sweep, 158 text editor local and remote file updates, 36 text files, 45 display options, 37 extentions, 37 external updates, 36 files formats, 37 keyword groups, 38 opening, 46 timestep for transient analysis, 155 title bar, 9 Tnom in SPICE simulation, 150, 153 toolbars adding, 11 creating customized, 11 drawing, 10 electrical, 10 hiding , 11 locator, 10 mouse buttons, 11 renaming, 11 resetting to defaults, 11 segment, 10 simulation, 10 standard, 10 status, 16 tooltips, 14 top-level cells, 64 TPR netlists exporting, 145 transfer function analysis, 158 Transient analysis, 154 transient simulation startup mode, 155
U
undoing an operation, 84 user preferences folder, 25 location, 26 user properties, 111 adding, 115
V
validation of names, 31 values in probe data output file, 151 vectors repeating bits in a vector term, 98 verbosity, 22 Verilog .DEFINITION property, 143 .MODEL property, 143 .OUTPUT property, 143 .PRIMITIVE property, 143 export properties, 143 omitting global parameters during export, 142 output options, 142 Verilog files, 125 VHDL files, 125 exporting, 144 view types examples, 43 interface, 41, 42 ViewDraw properties ORDER, PINORDER, PREFIX, 129 views copying, 53 creating, 52, 86 deleting, 55 naming constraints, 30 opening, 51, 52 renaming, 55 validation, 31 visibility of, 112, 120 voltage source modules, 103
W
waveform display controlling, 151 waveform display, controlling, 160 waveform probing, 160, 162
175
device terminals, 163 nets, 163 probe data file, 160 properties in context, 107, 163 subcircuits, 163 with .probe in netlist, 161 with SPICE OUTPUT property, 161 wires adding a conection point, 92 attaching,detaching, 92 connecting, 92 disconnecting, 92 drawing, 73, 76, 90 implicit connections, 90, 95 rubberbanding, 92 split automatically, 92 work area, 16, 58 panning, 61 work space settings, 45
Z
zooming, 61 to selected objects, 62 to show all objects, 62 with the keyboard, 62 with the mouse, 62 with the mouse wheel, 34, 62
176
Credits
Software Development
Seyran Avanesyan Barry Dyne Alexander Ivanov Danl Leviton Nicolas Williams David Cardoze Radoslav Getov Nikita Jorniak Massimo Sivilotti
Quality Assurance
Luba Gromova Lena Neo
Documentation
Judy Bergstresser Ken Van de Houten Barry Dyne
177