Handbook Protel 99 Se
Handbook Protel 99 Se
Includes:
Design Explorer
Schematic Capture
Circuit Simulation
PLD Design
PCB Layout
PCB Autorouting
Signal Integrity Analysis
Contents
Contents
SECTION 1
3
6
6
6
7
7
7
7
8
SECTION 2
11
12
13
14
17
18
18
19
20
21
22
22
23
24
24
24
Contents
SECTION 3
51
SCHEMATIC CAPTURE
51
ii
24
25
25
26
27
28
29
29
30
30
31
32
32
34
35
36
36
43
45
48
48
49
49
50
53
54
54
54
57
57
58
59
60
62
63
64
Contents
Environment Preferences
Schematic Document Options
Sheet Templates
Working in the Schematic Editing Window
Changing Your View of the Sheet
Moving Around the Schematic
Placing Schematic Objects
Editing Schematic Objects
Global Editing
Quick-Copying an Object
Activity - Finding and Replacing Text
Aligning Objects
Moving and Dragging
Schematic Editing Shortcuts
Re-entrant Editing
Canceling a Screen Redraw
Mouse Shortcuts
Keyboard Shortcuts
Frequently Used Shortcut Keys
Undo and Redo
Schematic Design Objects
Electrical Schematic Primitives
Non-Electrical (Drawing) Primitives
Fonts
Schematic Components and Libraries
What is a Schematic Library?
What is a Component and what is a Part?
Where are the Schematic Component Libraries?
Accessing the Components You Need for Your Design
Placing Parts on the Schematic Sheet
The Attributes of a Schematic Part
The Schematic Library Editor
Multi-Sheet Design and Project Management
Overview
Managing Multiple Sheet Projects
Structure of a Multi Sheet Schematic
Master Sheets and Sub-Sheets
How Connectivity is Created in a Multi-Sheet Design
The Different Methods of Structuring a Multi-Sheet Design
Working With a Hierarchical Project
Schematic Design Verification
Marking Points That You Do Not Want Flagged as Errors
64
66
68
72
72
72
75
78
85
88
89
91
92
95
95
95
95
96
98
98
99
100
102
105
106
106
106
107
107
110
111
114
122
122
123
123
124
125
127
134
136
136
iii
Contents
Verification Options
Setting the Net Identifier Scope
Setting up the Electrical Rules Matrix
Resolving Errors
Preparing the Design for PCB Layout
Assigning and Re-assigning Designators
Check for Missing Footprints
Perform an ERC
Including PCB Layout Specifications
Ready for PCB Layout
Transferring the Design Information to the PCB
Transferring the Design Information
How the Synchronizer knows which PCB to Use
Where the Components are Placed in the PCB Workspace
Transferring PCB Layout Information
Passing Forward Schematic Design Updates
How the Synchronizer Associates the Schematic and PCB Components
How the Synchronizer Transfers the Design Information
Printing Your Schematic Design
Overview
Generating a print or plot
Creating Schematic Reports
Bill of Materials
Cross Reference
Project hierarchy
Netlist Compare
Linking to Databases
Hot Linking to a Database
Importing and Exporting to a Database
Interfacing to Third-Party Tools
Translating an Orcad Capture Design
Mechanical CAD Interface
Creating a Netlist
SECTION 4
175
MIXED-SIGNAL SIMULATION
175
iv
137
138
138
140
142
142
144
144
145
145
146
146
149
149
150
150
150
152
154
154
154
158
158
158
158
158
159
159
163
167
167
169
169
177
180
180
Contents
180
181
181
182
182
182
183
184
185
188
191
193
194
198
201
202
203
204
205
206
209
209
210
211
211
212
215
215
216
217
217
217
218
218
219
219
219
220
222
224
226
228
Contents
SECTION 5
311
PLD DESIGN
311
230
233
235
235
236
237
247
252
252
252
253
254
255
255
256
256
257
257
261
262
262
262
263
269
272
313
314
314
314
314
314
315
315
316
316
317
318
Contents
318
319
319
333
334
334
335
336
336
338
342
344
351
351
354
357
359
359
359
360
360
360
361
361
372
372
375
378
385
385
386
389
389
390
391
392
394
395
397
399
403
407
410
vii
Contents
Summary
PLD Design Examples
Example 1 - Simple Logic Gates
Example 2 - Two-Bit Counter
Example 3 - Simple State Machine Design
Example 4 - Decade Up/Down Counter
Example 5 - Seven-Segment Display Decoder
Example 6 - 4-Bit Counter with Load and Reset
SECTION 6
437
PCB DESIGN
437
410
411
412
418
420
422
430
433
439
440
440
440
440
446
446
446
446
447
449
453
460
460
460
460
461
461
463
466
469
478
483
485
486
487
487
487
487
Contents
Slider Hand
Keyboard Shortcuts
Special Mode-Dependent Keys
Locating Components
Undo and Redo
PCB Design Objects
PCB Primitive Objects
Group Objects
PCB Component Footprints and Libraries
What is a Footprint and what is a Component?
Where are the PCB Footprint Libraries?
Accessing Component Footprints
Finding and Placing Components
PCB Components Attributes
Changing the Footprint a Component is Using
Modifying a Component Footprint on the Board
Including Routing in Component Footprints
Un-Grouping a Component
Copying Components from the PCB to a Library
The PCB Library Editor
Creating a Project Library
Defining the Board
Creating the mechanical definition of the PCB
Defining the Placement and Routing Outline
Defining the PCB Layer Stack
Defining the drill pairs
Using The Board Wizard
Transferring the Design from the Schematic
Specifying the PCB Design Requirements
What are Design Rules?
Defining the Design Rules
How Rules are Applied
Working with Design Rules
Object Classes
Routing Rule Definitions
Manufacturing Rule Definitions
High Speed Rule Definitions
Placement Rule Definitions
Signal Integrity Rule Definitions
Other Rule Definitions
Examples of Using Design Rules
Component Placement Tools and Techniques
Important Placement Options
488
489
491
491
491
492
493
504
509
509
509
509
511
512
515
515
516
516
516
517
520
521
521
522
522
524
524
525
526
526
527
534
535
537
539
544
548
550
552
556
557
563
563
ix
Contents
Moving Components
Working Between the Schematic and PCB
Using Component Unions
Working with Placement Rooms
Using the Interactive Placement Tools
Automatic Component Placement
Understanding Connectivity and Topology
How the Component and Connectivity Information is Transferred
How the Net Connectivity is Displayed
Net Topology
Changing the Net Topology
User-defined From-Tos
Displaying Pin-to-Pin Connections
Managing the Netlist
Changing Net Attributes
Identifying Nets
Manually Routing the PCB
How the PCB Editor Manages the Connectivity as you Route
Preparing to Route
Manually Routing the PCB
Interactive Routing Modes, including Push and Shove
Re-routing
Using Internal Power Planes
Creating a Copper Plane on a Signal Layer
Autorouting the PCB
Setting Up to Autoroute
Autorouting Options
Inside Protel 99 SEs Autorouter
Including Testpoints and Teardrops on the PCB
What is a Testpoint?
Setting up the Testpoint Design Rules
Locating Existing Testpoint Sites
Adding Testpoints with the Autorouter
Reporting the Location of Each Testpoint
Reporting Nets that Failed to Receive a Testpoint
Clearing all Testpoints from the Board
Adding Teardrops to Pads and Vias
Verifying the PCB Design
What is the Design Rule Checker?
Online DRC
Setting Up for a Batch Mode Design Rule Check
Running the Batch DRC
The DRC Report
x
564
566
567
568
569
571
576
576
577
578
578
578
581
581
582
582
583
584
586
588
592
593
594
598
599
599
602
603
605
605
606
607
607
608
608
608
608
609
609
609
610
611
611
Contents
INDEX
611
613
617
618
620
621
621
622
623
623
624
624
624
625
626
626
626
627
627
628
629
629
632
633
633
634
635
636
636
642
642
642
644
644
649
649
651
xi
Section 1
3
6
8
Refer to the Readme file for any late-breaking updates and additions.
Protel 99 SE transforms your desktop PC into a complete, integrated, full 32-bit printed
circuit board design and document management environment, providing everything
you need to take your electronics project from concept, all the way through to
completed boards.
Capture your circuit as a "connectivity-aware" schematic, choosing components from a
vast array of libraries. Perform circuit simulations directly from your schematic at the
touch of a button. Port elements of your design for incorporation into programmable
logic devices. Layout your schematic as a printed circuit board (PCB), maintaining
electrical connectivity and design rule compliance throughout. Autoroute your PCB to
produce a professional single or multi-layer board that complies with your
manufacturer's mechanical layout specifications, then test the signal integrity before
the design leaves your PC. Protel 99 SE lets you perform all these tasks easily from
within a single, integrated design environment.
The heart of Protel 99 SE is its unique architecture, built on Smart integration
technologies SmartTool, SmartDoc, and SmartTeam.
SmartTool is client/server technology that brings all your favorite design tools together,
into a single user interface. These tools include Protel 99 SEs Schematic Editor,
Mixed-Signal Circuit Simulator, PLD Compiler, PCB Placement and Routing, and
PCB Signal Integrity Analysis.
SmartTool technology also integrates OLE compliant editors. These include Microsoft
Word, Microsoft Excel, and the Visio tools, to name a few. Now you can store
the handbook that you are writing in Word in the Design Database right next to the
other design documents, then simply double-click to open in Word, ready for editing.
SmartDoc technology finally solves the task that every designer dreads document
management. No longer do you need to keep track of 30 or more design documents;
from schematic sheets, simulation results, PLD source files, PCB layouts, Gerber and
drill files, the bill of materials, various Word documents, mechanical drawings the
list goes on.
With SmartDoc technology all the design documents are stored in a single Design
Database. You can import and export documents at any time when it is time to send
the files off to the PCB fabrication house just select them, right-click and Export.
SmartTeam technology brings a new way of working to the design team. With
SmartTeam technology all the team members can work in the same Design Database,
at the same time, with complete confidence. All the document access and control
features that you need are there create members, specify their access rights, keep
track of which designer is working on what document, and lock documents to prevent
accidental overwriting. Better still, all these features are defined and controlled at the
Design Database level, not at the network level.
Protel 99 SE brings these three powerful technologies together in the Design Explorer.
This single intuitive interface is all you need to manage and edit all the documents in
the integrated Design Database. If you can use the Windows File Explorer then you
already know how to use the Design Explorer. Navigate and manage all the documents
in the Design Database, create folders, drag and drop documents, import and export
documents, all with a few mouse clicks.
You can automate tasks in Protel 99 SE using macro scripts written in Client Basic, a
simple to learn yet powerful macro programming language. Develop your macro
scripts using the Text Editor and you have full Client Basic syntax highlighting, and a
range of debugging tools at your disposal. Macros operate at the environment level,
meaning you can control any system process, regardless of which Editor provides it.
If you are new to the world of Protel 99 SE, please take some time to get to know the
capabilities of the Protel 99 SE environment. All toolbars, menus and shortcut keys in
Protel 99 SE are highly configurable. We understand that different designers like to
work in different ways, and Protel 99 SE allows you to tailor your environment to suit.
Whenever you are working on a particular type of document, a schematic sheet or a
PCB layout for example, Protel 99 SE will present you with the appropriate toolbars,
menus and shortcut keys. Switch to a different type of document and Protel 99 SE will
change the toolbars, menus and shortcut keys to those appropriate to the new
document. You can easily configure the toolbars, menus and shortcut keys that are
active for any particular document type. So regardless of whether you are routing a
PCB, calculating manufacturing costs in a spreadsheet, or running a transient circuit
analysis, you will always have the tools you want directly at hand.
Components are the foundation of any electronic circuit, and Protel 99 SE comes with
comprehensive schematic, PCB footprint and simulation model libraries that include a
vast range of components from all leading device manufacturers. The Altium Library
Development Center is continually updating these libraries and creating new ones to
give you access to the very latest devices and packaging. For instant component
updates, the Protel Web site at www.protel.com maintains the latest libraries for direct
download. With Protel 99 SE, you can also create your own component libraries.
Component Wizards make the job of creating your own custom components a breeze.
At Altium, we understand that great designs are not created by computer, they are
created by designers. That is why we have created Protel 99 SE to be the easiest to use,
most integrated and configurable electronics design suite for the Windows platform.
Protel 99 SE works the way you want to work.
So sit back, put your feet up and let Protel 99 SE go to work for you.
Installation
System Requirements
Minimum
Microsoft Windows 95 or NT running on an IBM PC or compatible
Pentium processor
32 MB of RAM
Recommended
Microsoft Windows NT 4 (or later)
64 MB of RAM
Installation CD
Letter with the required access codes (this may be delivered separately)
If any of these items are missing from your package, contact your Altium
representative immediately to arrange a replacement.
Installation
It is advisable to
close all applications
and re-start Windows
prior to installing the
software.
<drive_name>:\Protel99SE\Setup.exe
where <drive_name> is the drive you are installing from. This is typically D or E when
installing from CD ROM. Follow the installation instructions from there.
The last page of the installation Wizard may report that your PC will be restarted to
complete the installation process. You will not be able to run the software until this is
done.
Document Conventions
Windows
DOS
italic
CAPITALS
SMALL CAPS
Initial Caps
These indicate dialog box names (e.g. Document Options) or option names in a
dialog box (Snap To Center).
Menu items are shown in bold. Each menu level is separated by a . For
example, if you read Client menu Servers you should click on the Client menu
(the down arrow on the left of the menu bar), then click on Servers.
SHIFT+ALT
The + sign means: hold down the SHIFT key then press the
ALT key.
F1, F2
The comma (,) means press and release the F1 key then
press and release the F2 key.
Tips are
shown in a
highlight box
like this.
On-line Help
The Help menu provides instant access to on-line
information about the various features of the Protel
software. Protel 99 SE includes an easy-to-use natural
language query feature, the Help Advisor. To run the
Help Advisor click on the button on the Status bar, or
select Help Search for Help on from the menus.
Simply type a question in the Help Advisor as if you
were asking a person. A list of appropriate topics will
appear, click on a topic to launch the help system and
display that topic. You can also tailor the Natural
Language interface to search particular topics, press
the Options button to configure this.
Section 2
11
12
17
18
20
21
22
22
23
24
25
29
32
36
48
50
10
When you select Protel 99 SE from the Windows Start menu, the Design Explorer
opens. The Design Explorer is your interface to your designs, and the various design
tools that you use to create your designs.
The Design Explorer has a number of features which distinguish it from other
Windows applications. These include:
The ability to store multiple documents (files) in a single Design Database. These
can be Protel documents, such as schematic sheets, PCB files, etc, as well as any
other kind of document created by any application in Microsoft Windows.
A single document editing window for each open Design Database, referred to in
this handbook as a Design Window. Each document that you open from a Design
Database is opened on a separate Tab, within the same Design Window. This
allows you to easily manage anything from a single schematic sheet design,
through to a large project which includes multiple sets of schematics and PCBs, as
11
well as other project documents, such as Microsoft Word and Excel documents,
Visio documents, and so on.
The Design Explorer Navigation Panel which you use to manage your design in
it you can create a design hierarchy of any depth, navigate the design hierarchy,
and perform all the standard document operations, such as copy, paste, move and
delete.
Navigation Panel
Working in the Design Explorer is easy. In fact if you are familiar with the Windows
File Explorer, then you are ready to go!
Like the File Explorer, there are two regions to work in: the navigation tree in the panel
on the left; and the view of where you currently are in the tree, on the right. In the
Design Explorer this is your window into the open Design Database, and is called the
Design Window.
12
13
14
The easiest way to split the Design Window is to right mouse click on the active Tab.
The active Tab has a small icon on the left.
15
In the menu that appears there are a number of Split options. In the figure shown above
the Tile Tabs option has been chosen, splitting the Design Window into four regions,
one for each Tab that was open when the option was chosen.
Rearranging Tabs in a Split Design Window
The Tabs in a split Design Window can be rearranged by clicking, holding, and
dragging a Tab from the current split region, and
Look for the icon to see
dropping it onto another Tab, in a different split
which Tab is currently active.
region. With a bit of practice you will find it easy to
quickly rearrange the Tabs, to display exactly as you
require.
Resizing Regions in a Split Design Window
Position the cursor over the edge where two regions
of a split window meet. When you do small doubleheaded arrow will appear click and drag to resize
these two regions.
16
The Tabs at the top of the Design Window show you what
documents and folders are currently open
17
18
The new Design Database, ready to create new folders and documents in
19
20
Editing a Document
When you first open a Design Database none of
the documents in the database are opened. The
only thing that is opened is the top level folder.
There are two approaches to opening a document
in the design database for editing.
The first approach is to use the Navigation Panel
on the left to locate the document in the Design
Database, then click once on its icon to open the
document. The advantage of this approach is that
you can locate and open the document (regardless
of how deep it is in the Design Database), without
opening anything else. For tips on using the
Navigation Panel refer to the topic, Using the
Navigation Panel earlier in this chapter.
21
There are disadvantages to linking to an external document. You must remember that
the document is external, so backing it up, moving it, deleting it managing that
22
document must be done separately from managing the Design Database. The other
disadvantage is that you cannot lock an external document while you are working on it,
so you cannot protect against the possibility that two designers may have the same
linked document open, and overwrite each others work.
To link to an external document right-click in the folder view to display the floating
menu, then click on Link in the menu. The Link Document dialog will appear.
Navigate to locate the required document, select it, then click Open to Link to it. An
icon is added into the current folder. Note that the icon has a small arrow in the bottom
left corner, indicating that this is a linked external document.
23
The Design Explorer supports all the familiar File Explorer shortcuts:
SHIFT+click, CTRL+click,
24
25
Note: Permissions
can only be defined by
logging in as Admin.
Default Permissions
When you create a new Design Database the following default permissions are created:
Member
Document
Permissions
Definition
Admin
[R,W,D,C]
Guest
[R]
[All members]
[R,W,D,C]
[All members]
\Design Team
[]
26
An Example of Permissions
The following example demonstrates the use of Permissions:
1.
Admin has Read, Write, Create and Delete Permissions throughout the database.
2.
3.
[All members] can Read any document in the database. The default for this
Permission is Read, Write, Create and Delete in this Design Database this has
been changed to Read only, removing this general freedom. This means that
permissions that allow access must be added.
4.
Team member Gustaf can Read, Write, Create and Delete from the Design folder
down, except for the Rate Controller.pcb, which he can only Read.
5.
Joe can only Read from the Design folder down, except for the Rate
Controller.pcb, which he can Read and Write. Joe cannot Create new files or
Delete files (including Rate Controller.pcb).
6.
Verns permissions allow him to Read, Write, Create and Delete throughout the
database.
27
1.
Gustaf has two documents open, Rate Controller.prj and Timing Module.sch. He
has Timing Module.sch locked, and is in the process of locking Rate
Controller.prj. Other team members that have permission to open these documents
still can, but they will not be able to save these documents, even if their
Permissions normally allow this.
2.
Joe has the Rate Controller.pcb open, and has locked it.
3.
Vern has Rate Controller.prj and Timing Module.sch open. Both of these
documents have been opened and locked by other team members, so Vern will not
be able to save changes to these documents, even though his permissions allow
this.
Select View Refresh from the menus to
refresh the list in the Sessions folder.
Locking a Document
Right-click on a document in the Sessions folder to lock or unlock it. The figure at the
top of this page shows a document in the process of being locked. Once a document
has been locked it can only be unlocked by the team member that locked it. When the
team member that locked a document closes it, the document is automatically
unlocked.
Locked documents can still be opened by other team members that have the
appropriate permissions. When another team member attempts to open a document that
is already open and locked, a message appears. The message details which team
member has opened and locked the document, and asks if they would like to open the
document in Read-Only mode.
Right-click on a document name in the
Sessions folder to lock that document.
28
After creating a new Design Database right-click in the folder view to import your project
29
You can drag an entire design folder from the File Explorer, and drop it straight into a
Design Database open in the Design Explorer
30
When it is initially
matching, the Synchronizer
relies on the component
designator it is important
that
the
schematic
designators correspond with
the PCB designators.
31
a complete set of PCB design tools integrated into the one user environment,
the ability to store and manage all the design documents in a single Design
Database,
teamwork collaboration features that give you total control over document access
and locking.
SmartTool Technology
Protel 99 SE is built on SmartTool technology. SmartTool technology brings together
Protel Editors and OLE compliant editors, accessible through a single user interface,
the Design Explorer.
The foundations of the SmartTool technology is its client/server architecture, which
separates the user interface (the client), from the tools, or editors (the servers).
PLD schematic circuit
design
editor
simulator
auto
routing
PCB
layout
signal
integrity
future
tools
Design Explorer
The figure shows how each server plugs into the Design Explorer,
and how a server can also communicate directly to another server
32
For information on adding, removing and resetting a server refer to the topic,
Working with Servers, in the chapter, Customizing the Design Explorer.
What is an OLE Server?
OLE (Object Linking and Embedding) is a high-level information exchange
technology developed by Microsoft. OLE was developed to allow applications to
exchange information and functionality. There are 2 distinct parts to the OLE model
OLE Servers, that expose their functionality to other applications, and OLE
Controllers, that are able to call on the services of an OLE Server. The Design Explorer
is an OLE Controller.
Applications that can run as OLE Servers include Microsoft Word and Excel, and the
Visio graphical design and modeling software tools.
You do not need to install OLE Servers in the Design Explorer, the Design Explorer
will automatically identify all the OLE Servers that are currently installed on your PC.
SmartDoc Technology
SmartDoc technology redefines document integration and document management, by
bringing together all the design team documents into a single, integrated, Design
Database. Any type of document can be stored in a Design Database, from the
schematic sheets, the PCBs, the Gerber files through to reports and spreadsheets
prepared in Microsoft Word and Excel, mechanical drawings created in AutoCAD, and
project drawings created in Visio.
Using the Design Explorer you can work with the documents in the Design Database
just like you work in the Windows File Explorer create folders, copy, paste and
delete documents, drag and drop documents between folders, in fact you can even drag
and drop from the Windows File Explorer straight into the Design Explorer.
34
SmartTeam Technology
SmartTeam technology allows design team collaboration in a way that has not been
possible before. SmartTeam technology lets all your design team members work inside
the same Design Database, at the same time. Once the team members are specified,
you can control exactly what folder and document access rights each team member has.
Each team member can see what documents are currently open by other team
members, and with a click of the mouse they can lock documents to prevent
inadvertent overwriting.
All the Team functionality is specified and controlled at the Design Explorer level,
making it both network and network-department independent.
35
All the menus are organized so they are consistent with the
Windows model. This means that standard operations, such as
opening and saving files, printing, or using standard editing
operations such as Cut or Paste, behave the same in each editor.
This makes you more productive as you work in the different
Editors.
36
To edit a
menu doubleclick on the
menu bar.
To
toolbar
click on
region
toolbar.
edit a
doublethe title
of the
Each document editor includes at least one shortcut key table. These tables can be
edited, and new shortcut key tables can be created.
Keyboard shortcuts can include key combinations, including CRTL, SHIFT and ALT, in
combination with either one or two keys. To edit a shortcut table select Client menu
Customize.
As well as being able to map keyboard shortcut keys directly to processes,
keyboard keys can also be mapped to popup a menu. If a key has mistakenly been
mapped to popup a menu and to directly launch a process, then the process
mapping takes priority.
Default Menus, Toolbars and Shortcuts
The default resources for each server are defined in a resource file (*.RCS). This file
contains the definitions of the default menus, toolbars and shortcut key tables. These
resources are known as system resources and can not be removed from the Design
Explorer environment, but they can be customized.
During the initial installation process the default resource definitions for each tool are
loaded into the Design Explorer and stored in a common resource definition file. Any
modifications that you make are made in the common resource file. You can restore
the resources of any tool back to the defaults at any time.
37
You have total freedom in customizing the menus, toolbars and shortcut keys in the
Design Explorer. If necessary you can restore the menus, toolbars and shortcut keys
back to their original state at any time. To do this, select the Client menu Servers menu
item. Double-click on the required servers icon in the EDA Servers dialog, then press
the Defaults button. The menus, toolbars and shortcut keys for the selected server will
be returned to their default state.
Sometimes when you reset the resources you may find that some menu items
disappear. This happens because those missing menu items were plugged in by
another server. For example, if you reset the resources for the Schematic Editor, the
Simulate and PLD menus will disappear. To recover these you must also reset the
resources for the Sim server and the Pld server.
Customizing Resources
When you would like to add a new shortcut key, change the menu to use your custom
menu, or display a particular toolbar, you need to customize the resources.
To customize the resources for the active document editor select the Client menu
Customize menu item, to pop up the Customize Resources dialog box. If a schematic
sheet is the active document then the Customize Resources dialog will give you access
to the resources currently available to the Schematic Editor.
Click on the Tab at the top to select the resource that you wish to work on, then click
on the Menu button and select the appropriate command.
38
Delete the selected resource. When you select this menu option you will be prompted
to Confirm the deletion. You will also be asked if you want to Remove from Global
Resource Pool. If you disable this option the resource is not removed from the Design
Explorer environment, only the link from the resource to this editor is removed.
Replicate a Resource
Select Replicate when you wish to create a new resource, but you do not wish to start
from scratch. The selected resource will be replicated, and then opened, ready for
editing.
Import From Other Documents
Use this option to access resources that belong to other servers, or custom resources
that you have created.
Editing a Resource
Selecting Edit from the menu pops up a dialog which allows you to edit the selected
toolbar, menu or shortcut key table.
39
2.
Assign the process that will be launched when you select this resource item.
Regardless of the resource, the way you map a process to a resource item is essentially
the same. Each dialog that allows you to perform this function will have a region as
shown above, where you specify which process is to be launched when you click on
this button / menu item / shortcut key.
Finding the Process
The Process field specifies the process that is launched when you select this resource
item. Use the Browse button to pop up the Process Browser use the Browser filtering
features to quickly locate the required process.
Need more Info about a Process?
There are two ways of creating a new toolbar. An existing toolbar can be replicated and
then modified, or a new one can be built. This example shows how to build up a new
toolbar for placing primitives in the PCB Editor.
40
1.
With a PCB document as the active document Select the Client menu Customize
menu item.
2.
Click on the Toolbar Tab and select New from the Menu to pop up the Toolbar
Properties dialog.
3.
4.
To add a button to the toolbar first click in the large empty white area, and press
INSERT on the keyboard. A blank button will appear in the Toolbar window, now
you need to map a process to this button.
5.
Double-click on the new button to pop up the Button dialog. We will now use the
Process Browser to locate the process.
6.
7.
8.
The Process List will now display all the PCB processes that start with the string
place. Note that the server name before the colon (:) is not considered by the filter.
The * (any characters) and ? (any single character) wildcards can be used in the
filter.
9. Select the PCB:PlaceString process and click the OK button (shortcut: doubleclick LEFT MOUSE).
You will return to the Button dialog. The next step is to assign the bitmap that you
would like to use with this button.
10. We will use button bitmaps that already exist. To locate the button bitmaps click
on the Browse button next to the Bitmap File field.
The Image File dialog will pop up. Button bitmaps are stored in the \Program
Files\Design Explorer 99 SE\System\Buttons folder.
11. In the File Name field enter the string t*.bmp and press enter.
The dialog will now list all bitmap files starting with the letter t.
12. Double-click on the file text.bmp.
The Image File dialog will close, presenting the Button dialog again. Note that the
text bitmap has been linked and the Preview button now shows the image of the
letter T.
41
14. Repeat steps 4 to 13 to add the other five buttons using the following details.
Process Identifier
Bitmap
PCB:PlaceArc
arc.bmp
PCB:PlaceFill
rect.bmp
PCB:PlaceVia
via.bmp
PCB:PlacePad
pad.bmp
PCB:PlaceTrack
track.bmp
15. To make the toolbar appear as two rows of three buttons, highlight the forth button
in the list, then select Separator from the dialog Menu. A blank space will appear
above this button.
16. Click the Close button to close the Edit Toolbar dialog box.
The new toolbar has been created and will appear in the Available Toolbars List in
the Customize Resources dialog.
17. Click OK to close the Customize Resources dialog.
The new Primitives toolbar now exists in the pool of resources
available in the Design Explorer environment, and is automatically
linked to the PCB Editor.
42
Understanding Processes
The functionality of each server that is installed in the Design Explorer is exposed by
that servers processes. Once you come to terms with the concept of processes how
they work and launch them you are well on the way to being able to customize the
Design Explorer environment.
What is a Process?
A process can be thought of as the software executing a sequence of jobs. This job may
be something simple, like refreshing the screen, or it may be more complex, like
placing a polygon plane.
Any action or operation that is performed in the Design Explorer is carried out by a
process. When you select File Save from the menus, the SaveDocument process is
launched. Selecting the Place Wire menu item in Advanced Schematic launches the
PalceWire process, which you then interact with as you place the wire on the sheet.
The menu items, toolbar buttons and shortcut keys launch the processes, and are called
Process Launchers. The action, or job, is performed by the process.
Each process is identified by a unique Process Identifier. The process identifier
includes the server name and the process name, separated by a colon. For the two
process names mentioned above, the syntax is:
Client:SaveDocument
Sch:PlaceWire
A definition of each process provided by the Design Explorer and each server can be
found in the On-line Help. Each of the dialogs where you assign processes includes an
Info button. Press this button to pop up the Help file with a description of that process.
Launching a Process
When you select a menu item or
click on a toolbar button, you
launch a process. Processes are
launched by passing the process
identifier to the appropriate
server. The server then executes
that process.
Sch:ZoomIn
Process Parameters
Processes in the Design Explorer environment are parametric that is, each process
can have a set of parameters. What are process parameters? Remember how the
process can be thought of as the software executing a sequence of jobs. You can think
of the process parameters as the instructions on how you want the job to be carried out.
Consider the Sch:PlacePart process. When you launch this process (select Place Part)
a dialog pops up asking for the Library Reference of the part you would like. After
entering this a second dialog pops up asking what Designator to use, then the part
appears floating on the cursor. Instead of entering the Library Reference and the
Designator in dialogs, you can pass this information when you launch the process.
To pass the process parameters when you press a
toolbar button, enter the parameters in the Parameters
text field of a process launcher editing dialog box (eg,
the Button dialog).
Process parameters
can also be passed by a
macro.
PartType=74HC00 | LibReference=MM74HC00 | Library=ns03-c.lib | Orientation=0 | Designator=U10 | $Description=Quad 2-input positive Nand gate
Editing a toolbar button to launch the Sch:PlacePart process. It also passes the parameters.
Library
= The name of the library that the component is in. If the library is not in
the standard location, include the full path.
LibReference = The name of the component in the library.
Designator = The designator you want to give this component.
PartType
= The part type or comment you want to give this component.
Orientation = The orientation of the component when it appears on the cursor.
$Description = This parameter allows you to create your own button tool tip.
When this button is pressed the 74HC00
will appear on the cursor with the
designator specified, ready to be placed.
44
Parameter Syntax
The syntax for passing process parameters in the Parameters text field is;
parameter1 = value1 | parameter2 = value2 | parameter3 = value3
Each parameter is separated by the vertical bar | (or pipe) symbol. It is not necessary
to list parameters in any order, nor is it necessary to pass every possible parameter.
Parameter text is not case sensitive, you can type in LibReference or libreference.
For instant access to information on the parameters of a process press the Info button in
the Edit Menu, Edit Button or Edit Keyboard Shortcut dialogs.
Refer to the Macros topic in the Online Help
for information on passing parameters from macros.
Text Editor used for editing text documents, such as PLD source files
Circuit Simulator analyses and simulates directly from the schematic sheet
45
Design Synchronizer passes design data from schematic to PCB, and from PCB
to schematic
PCB manual router provides all the manual routing functionality in the PCB
workspace, including the push and shove feature
PCB autorouter autoroutes the current PCB, directly in the PCB workspace
Installing a Server
When you install Protel 99 SE from the
CD all the servers are automatically
installed. If you need to manually install a
server:
1. Select Client menu Servers from the menu bar. The EDA Servers dialog will pop
up, with a list of all currently installed servers.
46
1. Press the Menu button and select Install. A document opening dialog will pop up.
2.
Locate and select the server installation file (eg, advsch.INS, spread.INS).
3.
Check the Status at the bottom of the EDA Servers dialog to confirm that the server has
been correctly installed.
Starting and Stopping a Server
When a server is first installed it has a Status of Not Started. When a server is Not
Started it is not occupying any memory. If you do not start it now, it will automatically
be started the first time you use it. Normally you do not need to manually stop a server,
unless you wish to free up some memory.
Removing a Server
Generally you will not need to remove a server from the Design Explorer. Removing a
server does not delete the servers files from your hard disk, it merely removes the
server from the Design Explorer environment.
A server must be
To remove a server from the Design Explorer:
stopped before it can be
1. Select Client menu Servers from the menu bar.
removed, and it cannot be
The EDA Servers dialog will pop up, with a list
stopped if there are any open
of all currently installed servers.
documents using this server.
2. Click on the icon to select the server that you
wish to remove.
3.
4.
A Confirm dialog will pop up, click Yes to remove the server.
When you remove a server from the Design Explorer environment all the
resources associated with the server are removed. You will lose any customization
you have performed on the default resources, such as toolbar buttons you have
added. Custom resources that you have created will still be available.
47
Languages
The Text Editor includes a number of
pre-defined languages, as well as the
capability to create new languages. These
languages are not the language of a
country or culture like French or
Mandarin, rather they are a language
because each can have their own syntax
highlighting definition.
Languages can be created, edited and
deleted in the Languages dialog (select
Tools Change Language in the Text
Editor, or the Change Language button
on the panel). Click on a Language in the
list and click the right mouse button to
pop up the dialog Menu.
The language is associated to a document by the documents file extension. To
associate a file extension with a language, double-click on the desired language in the
48
Languages dialog. The Edit Syntax dialog will pop up. In the Associated Files field
enter the file extension. For multiple file extensions, separate each with a comma.
Syntax Highlighting
There are two distinct parts to Syntax Highlighting. The first is editing the syntax, the
second is assigning the highlight colors to each type of syntax identifier.
To edit the syntax, select the Options Change Language menu item. This pops up the
Languages dialog. Select the language you wish to edit the syntax for and press the
Edit button. In the Edit Syntax dialog you define the set of reserved words, how
comments and strings are delimited, the valid set of symbols and any file extensions to
be associated with this language.
Define the syntax for the selected language in the Edit Syntax dialog
Highlight colors are then assigned in the Text Editor Properties dialog (Tools
item).
Preferences menu
Document Options
Select Tools Options to pop up the Text Editor Properties dialog and set up the user
preferences. The Colors used for syntax highlighting are set in the Text Colors Tab.
49
Macros
The Design Explorer includes a Macro server. The
macro server supports the Client Basic scripting
language, which is a subset of Visual Basic.
Macros provide a powerful mechanism to enhance your productivity in Protel 99 SE.
The macro server supports all the processes available in the Design Explorer
environment, and allows passing of parameters to those processes. Macros can be
written to work with any server running in the Design Explorer.
Macros can perform anything from a repetitive sequence of processes, through to
complex wizards which pop up dialog boxes and respond to user choices. The macro
server also supports OLE automation, a feature where operations can be performed in
other Windows applications (which also support OLE automation).
Client Basic is interpreted rather than compiled, so macros can be run as soon as they
are written. Like all processes in the Design Explorer environment, macros can be
launched from any process launcher. Client Basic includes a set of debugging tools
which support breakpoints, variable watching, single step, and real-time animation,
where the macro is run at a slow enough speed to watch the code being executed.
The macro server includes a comprehensive error flagging mechanism. When an error
is encountered, the script file is opened in the Text Editor, the line in error is displayed
and highlighted, and a dialog pops up with a description of the error condition.
For comprehensive information on how to write macros in Client Basic, as
well as lots of example code, refer to the On-line Help system.
50
Section 3
Schematic Capture
Schematic Capture Feature Highlights
Fundamentals of Schematic Capture
Setting up the Schematic Workspace
Working in the Schematic Editing Window
Schematic Editing Shortcuts
Schematic Design Objects
Schematic Components and Libraries
Multi-Sheet Design and Project Management
Design Verification
Preparing the Design for PCB Layout
Transferring the Design Information to the PCB
Printing Your Schematic Design
Schematic Reports
Linking to Databases
Interfacing to Third-Party Tools
53
57
64
72
95
99
106
122
136
142
146
154
158
159
167
51
Schematic Capture
52
This section of the Protel Designers Handbook guides you through the schematic
capture phase of your electronic design project, using Protel 99 SEs Schematic Editor.
As you read this section you will find all the information you need to get up and
running with the system, and learn how to use the basic features required to design a
circuit, perform electrical rule checks, generate a netlist and print out design
documentation. Additional, detailed information about the schematic design objects
can be found in the on-line Help system.
53
Schematic Capture
Design Capabilities
The Schematic Editor is a comprehensive design entry tool. When combined with the
Protel Circuit Simulator, PLD design and board layout tools, the Schematic Editor
becomes the front-end of a fully automated, integrated, end-to-end design system.
The Schematic Editor can generate single sheet, multiple sheet and fully hierarchical
designs of virtually any size, limited only by the available memory and storage
capacity of your PC. Sheet sizes include A, B, C, D, E and metric sizes A4-A0, plus
user-defined sheets. You can also create custom sheet borders and title blocks, and
save custom templates for re-use.
Component Support
The Schematic Editors standard component libraries include over 65,000 components.
The Altium Library Development Center is constantly developing new components,
which can be downloaded from the Protel Web site. Visit www.protel.com to
download the latest libraries, or to submit a suggestion for a future library.
Hierarchical and Multi-Sheet Support
The Schematic Editor supports single sheet, multiple sheet and fully hierarchical
designs including complex hierarchy, where multiple instances of a single sheet can be
used in a project. Projects can be navigated visually using the Design Explorer. The
Design Explorer displays all the sheets that make up the design in a hierarchical tree
structure. You can click on sheet icons to move from sheet to sheet.
54
Guided Wiring
Special automation features speed the connection of electrical items in the schematic
sheets. An electrical grid provides true snap to wiring of all electrical items: ports,
sheet entries, buses, bus entries, net identifiers, wires and parts. When this feature is
active the cursor will jump to the nearest electrical hot spot within the range of the
electrical grid, and then change shape to indicate the connection point. You need only
click (or release LEFT MOUSE) to complete the connection, a junction is automatically
added.
Connections between electrical objects are maintained as the objects are dragged to a
new location on the sheet. The system will automatically add or remove wire segments
to maintain orthogonal routing during complex moves.
Flexible Selection
Groups of items can be selected by sheet, by physical connectivity or by designating an
area of the drawing. Individual items can be added to or removed from the selection.
Selections can be manipulated using standard commands such as Cut, Copy, Paste or
Clear. They can also be moved and rotated. Selections copied to the clipboard can be
pasted into other Windows applications. There is also an option to add the template to
the clipboard, allowing you to Copy the entire sheet, including the border and title
block.
Powerful Editing Options
Design objects (parts, wires, graphical entities, etc) can be edited by double-clicking
directly on the item to open its editing dialog, which displays every editable object
attribute. Changes to these attributes can be globally applied across a sheet, or across
an entire multi-sheet project using specific conditions to define the targets. For
example, when editing wires you can change the color or wire size or both attributes.
These changes can be globally applied to other wires on the sheet, or to other open
sheets. Similar global options are provided for components and other objects.
Text editing is supported by powerful Find and Replace functions, which allow you to
define the scope of the edit across multi-sheet projects.
Library System
The Schematic Editor includes comprehensive tools for managing component libraries.
Any number of libraries can be opened and accessed without leaving the sheet editor.
Components can also be browsed and placed directly from the Schematic Library
Editor. A wide range of standard manufacturers libraries is included. Simultaneous
multi-user library access is supported for network installations. Parts placed in sheets
can be globally updated to reflect library-level changes.
Components include eight read-only (library) text fields and 16 sheet-level text fields
of up to 255 characters that can be edited for each instance of a part. You can pre-
55
Schematic Capture
define these field names for a component type in the library editor, for convenient
reference.
Special Strings
Special purpose pre-defined strings allow you to place date, sheet name, filename,
component count and other information to be interpreted at plot time. For example,
placing the string .DATE, on the sheet, places the current system date on the plot.
Special strings can be incorporated in sheet templates.
Font Support
Windows TrueType fonts are fully supported. A system font can be assigned for
component pins, port and power object names and sheet reference text. Default fonts
can be defined for all other objects that include strings.
Array Placement Options
Linear array placement allows automated step-and-repeat placement of objects in the
sheet. This can include individual objects or complex selections of objects. You can
specify the number of repeats and set pre-defined x and y offsets, and text increments.
Alignment Tools
Objects can be aligned by their left/right/top/bottom sides, distributed horizontally or
vertically or moved to the placement grid.
Design Verification Tools
Electrical Rule Check allows quick verification of large or complex drawings. ERC
checks are performed in accordance with user-specified physical and logical properties.
Options include flagging and reporting a wide range of physical/logical violations
including unconnected net labels, unconnected power objects and floating input pins.
Windows Support for Printing and Plotting
Dot matrix and laser printing, color printing, pen plotting and PostScript output are all
controlled from a common Print menu item. Any device supported by Windows can be
selected. The Schematic Editor allows the production of presentation quality artwork.
56
U1
CSDAC
WR
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
1
2
18
17
7
6
5
4
16
15
14
13
10
CS
WR1
WR2
XFER
DI0
DI1
DI2
DI3
DI4
DI5
DI6
DI7
DGND
VCCDA
ILE
VREF
RFB
IOUT2
IOUT1
AGND
20
C1
104
19
8
+
-
U2B
7
358
+5VDAC
9
R2
11
10K
12
R1
470J
R4
10K
DAC0832
57
Schematic Capture
58
U1A
3
7400
U1A
6
7400
U1A
8
10
12
7400
U1A
11
13
7400
Connectivity
An additional major feature of the Schematic Editor is the systems use of connectivity.
Connectivity is the ability of the software to recognize the physical links between
objects inside the sheet and the ability to associate the logical connections that exist
between various sheets in a multi-sheet design. Connectivity is also used to anchor
certain objects together. For example, you can drag connected electrical items (parts,
buses, wires, ports, etc) without breaking existing connections. More importantly,
connectivity allows the schematic to generate connectivity lists, used for passing
design information to the PCB Editor, and for performing electrical rule checks.
The process of placing electrical objects in the sheet is often referred to as wiring. This
is because the connectivity features allow you to work with electrical objects as though
you were physically hooking-up the circuit.
Basic electrical objects used in wiring your schematic include: special connective lines
that carry signals or power between components, called wires; buses, that graphically
represent grouped nets; bus entries that graphically attach wires to buses; junctions that
connect tangent or crossed wires; and parts that represent the component devices and
their pins.
Two other special classes of electrical objects are provided as well. The first is
Directives, which are used to indicate unconnected pins (No ERC), and PCB layout
attributes on individual nets. The second class is net identifiers, which are used to
indicate electrical connections that are not physically wired together, for example,
connections that continue from one schematic sheet to another in a multi-sheet design.
Net Identifiers
As mentioned above, net identifier objects can create connections that are not
physically joined by wires. These objects include: net labels that identify common nets
on a sheet (or globally, across multiple sheets if you specify); ports that identify net
connections between two sheets; sheet entries that identify net connections into a subsheet (referenced by a sheet symbol); and power ports which are special symbols
placed to represent a global power (or another user-specified) net.
Hidden pins on parts are the fifth type of net identifier. Hidden pins function similarly
to power ports. Each hidden pin is connected to all other hidden pins with the same
name, and also connected to a net of the same name, if present. If un-hidden these
pins are not automatically connected and must be manually wired.
59
Schematic Capture
Using Connectivity
Methods
Connectivity is derived from the placement of certain electrical objects in the sheet,
and from the placement of net identifiers. However, not all electrical objects use
placement to define connective behavior. Some objects use their physical geometry to
establish connections. Other objects include logical connectivity in their behavior.
Physical Connectivity
Physical connectivity is derived by placing the hot spots of any two electrical objects
so they are in physical contact. In the simplest example, a wire touching a component
pin is deemed to be connected to that pin, and the Schematic Editor can extract that
logical connection from the physical contact between the two items.
In general terms, when the hot spots of any two connective objects touch they are
deemed to be connected. However, there are some special rules that apply to certain
classes of connections.
Logical Connectivity
Logical connectivity depends upon the presence of net identifiers (net labels, ports,
sheet entries, power ports and hidden pins) on the sheet. Logical connectivity does not
require special placement or physical contact but relies on the matching of the net
names that associate these objects within a single sheet or across multiple sheets in a
project. Refer to the chapters Multi Sheet Designs and Project Management and
Creating a Netlist for further information about using logical connectivity.
General Rule for Connectivity
Electrical objects are connected when their electrical hot spots are touching. Special
cases of connectivity are described below. When the electrical grid is enabled (Design
Options) the cursor will jump to the nearest hot spot and change into a dot shape.
When placing or moving electrical objects, clicking LEFT MOUSE (or releasing LEFT
MOUSE when dragging) will establish a connection when the hot spot is displayed.
Special Rules for Connectivity
Wire to Wire
Wires whose ends touch at any angle, butt end-to-end or have co-linear (overlapping)
terminations are deemed to be connected. Co-linear wires that terminate elsewhere on
the sheet are not deemed to be connected. Wires that cross or terminate perpendicularly
are not deemed to be connected unless a junction is placed at their intersection.
Wire to Bus
Buses are graphical representations of grouped signals, and do not have any special
connective properties for netlisting. Although buses display hot spots when wiring and
60
maintain connections during drags, they do not simulate electrical connections. Wires
are graphically connected to buses using bus entry symbols. Net labels must be used to
indicate logical connectivity on either side of the bus connection.
Wire to Pin
Pins that touch the ends of wires at any angle are deemed to be connected. Pins that
intersect perpendicular wires must be connected by placing a junction at that location.
Junctions will be automatically inserted where wires cross pins perpendicularly when
this option is active (Tools Preferences menu item).
Wire to Port
Buses are graphical representations of grouped nets only and have no special physical
properties for netlisting. Logical connectivity (use of net identifier, e.g. net label and
port) is used in these cases to indicate connections on either side of a bus (See Net
label to bus, below). Note however, if a bus is connecting to a port the bus line must
end on the end of the port.
Net Label to Wire
Net labels associate a wire with single net. To achieve this association, the net label
must be placed on the same grid point as the wire, either vertically or horizontally.
Labels can only be placed on horizontal or vertical lines or at line vertices.
Net Label to Bus
Buses are graphical entities and do not provide physical connectivity for netlisting.
Logical connectivity for buses can be assigned by placing a net label on the bus.
Generally, this net label will include all bus signals, e.g. HA[0..19] represents nets
named HA0, HA1, HA2, etc, to HA19. Buses and bus entries do not highlight when
the Edit Select Net process launcher is used.
Pin to Object
Pins connect directly to other pins, wires, net labels, sheet entries or ports. Hidden pins
can be assigned directly to nets in the Schematic Library Editor. Un-hidden pins can
also connect directly to other sheets, when that sheet is named in the parts Sheet Path
field.
Pin to Pin
No ERC objects are deemed to be connected to pins or wires if they are in contact.
61
Schematic Capture
Design verification
Design verification is a general term for validating the physical (or electrical) and
logical connections in your design. A number of tools are provided that allow you to
perform design verification from within the Schematic Editor, by generating reports
and by running the Electrical Rule Check (ERC) feature.
Electrical Rule Check report
The Electrical Rule Check (ERC) report is a listing of electrical (and certain logical)
violations and warnings for the current active project. A wide variety of basic electrical
errors are reported. Errors that can be reported include instances of open input pins on
parts or shorts between two different nets. You can select the specific rules for a
project. Suppress ERC symbols can be placed on intentionally unused pins or at
other locations where you prefer violations to be ignored by the ERC system.
You can specify either an error or warning using a graphical matrix of pin, port
and sheet entry conditions.
The way net identifiers are used in the design can impact the electrical validity of
connections. For example, global net labels (Net Labels and Ports Global option) will
join all nets with the same label across multiple sheets, where local net labels (Only
Ports Global option) will only join electrical items within a single sheet. You can
specify the scope of these net identifiers for electrical rule checks, the same way that
they are specified for generating a valid netlist.
Special symbols are overlaid on the sheet, indicating the location of the reported
conditions when you specify Add Error Markers. These symbols are cleared from the
sheet when the error condition is corrected.
Running an ERC is integral part of the schematic capture phase. Carefully
check and resolve all reported errors prior to passing the design information to the
PCB Editor.
Checking Sheets and Projects
While creating a schematic, a number of useful design verification features are
available directly from the sheet workspace. The Edit Select Net and Edit Select
Connection menu items can be used to highlight all objects associated with a net or a
single connection (component pins do not select in these cases). These process
launchers are useful in verifying connections. Once you have used either of these,
select Reports Selected Pins from the menus to display a list of all pins connected to
the current selection.
62
63
Schematic Capture
Schematic Tab
Pin Options
The Pin Options allow the pin name and number to be moved. The number specified is
the distance from the end of the pin (the end closest to the component body). The units
are hundredths of an inch.
Auto-Junction
Auto-Junction can be enabled and disabled here. Auto junction will automatically place
a junction when you terminate a wire onto another wire.
Drag Orthogonal
When you drag components, the wiring is keep orthogonal (corners at 90 degrees).
Turning Drag Orthogonal off allows the wires to move at any angle.
Multipart Suffix
Multipart components can use either a numeric or alpha part identifier suffix, for
example U1:1, U1:2, etc, or U1A, U1B, etc. Note that this is an environment setting, it
applies to all currently open sheets.
Default Power Object Names
These fields can be used to pre-assign a net name to these 3 styles of Power Port.
Orcad Load Options
The Copy Footprint From / To is used to map the Orcad part field that contains the
footprint to the schematic footprint field. The Orcad ports option prevents ports from
being resized in the Schematic Editor, important if the design has to go back to Orcad
(which does not support resizing ports).
Default Template File
Select a Default Template File to specify what sheet template is used when you create
a new schematic sheet.
64
If this option is on when you do an Edit Copy or an Edit Cut you will be asked to
select a reference point. This is useful when copying a section of circuit which is to be
pasted back into a schematic sheet. This reference point will be the point where the
section of circuit will be held when pasting.
Add Template to Clipboard
The sheet template is also copied to the clipboard when you Copy or Cut.
Convert Special Strings
Enable this option to see the contents of the special strings on screen, as they will be
printed. For more information on using special strings refer to the Sheet Templates
topic in the Setting up the Schematic Editor chapter.
Display Printer Fonts
Not all fonts are supported on all output devices (and Windows will automatically
substitute). To see what the text is going to look like on the printout enable this option.
Center of Object
Hold the object being moved or dragged by its reference point (for objects that have
one, such as library components or ports), or its center (for objects which do not have a
reference point such as a rectangle).
Objects Electrical Hot Spot
Hold the object being moved or dragged by the nearest electrical hot spot (eg, the end
of a pin) when moving or dragging.
Auto Zoom
IF this option is enabled a net name can be negated by typing a backslash character
before the first letter in the net name. This applies to ports, net labels and sheet entries.
Undo Stack Size
You can undo this many edits. Set as required (remember, these undo-able edits are
being held in memory).
Default Primitives Tab
The default attributes for every object that can be placed in the Schematic Sheet Editor
can be defined here. Typical changes that you might make to the Default Primitives
include: changing fonts, such as Designators, Part Types and so on; or changing the
color of objects such as Wires and Text. User defined default values are held in the file
ADVSCH.DFT. User DFT files can be created and loaded. Use the permanent check
box to prevent these defaults being altered.
65
Schematic Capture
You can choose from 10 standard imperial and metric sheet sizes, or to define a custom
sheet size. The maximum custom sheet size is 65 inches by 65 inches.
Schematic sheets are conventionally displayed and printed in landscape (wide) rather
than portrait (tall) orientation. The Schematic Editor allows you to display and print
your drawings in either orientation. Standard sheet sizes include:
SIZE
A
B
C
D
E
A4
A3
A2
A1
A0
ORCAD A
ORCAD B
ORCAD C
ORCAD D
ORCAD E
LETTER
LEGAL
TABLOID
11.00
17.00
22.00
34.00
44.00
11.69
16.54
23.39
33.07
46.80
9.90
15.40
20.60
32.60
42.80
11.00
14.00
17.00
8.50
11.00
17.00
22.00
34.00
8.27
11.69
16.54
23.39
33.07
7.90
9.90
15.60
20.60
32.80
8.50
8.50
11.00
279
432
559
864
1078
297
420
594
840
1188
251
391
523
828
1087
279
356
432
216
279
432
559
864
210
297
420
594
840
200
251
396
523
833
216
216
279
The maximum available work area in a sheet (with the border hidden) will depend
upon the output device. Many printers and plotters cannot print to the edge of the sheet,
so some trial and error may be necessary to determine the exact available work area.
Because of this, the standard ANSI and ISO border specifications cannot be applied
66
when targeting these devices. The Schematic Editor can compensate for this by
allowing you to scale the output during printing or plotting.
The available work area will be smaller when sheet borders are displayed. The default
sheet border removes 0.2 to 0.4 inch (approximately 5 to 10 mm) from the working
area, depending upon the sheet size selected.
Template
Name of the template that this sheet is based on. Refer to the Sheet Templates topic
later in this chapter for more information on creating and using sheet templates.
Borders
When defining sheet borders, you should be aware that not all devices can print all the
way to the edge of the page. For example, laser printers typically reserve a margin of
about 0.15 inches (4.0 mm) outside the printable area. This can make it impossible to
include all of the standard border when printing at 100% scale using standard sheet
sizes, such as A or A4. You can change the print scale to accommodate the
maximum printable area of your printer.
Title block
Protel provides two pre-defined title block formats. Choose the default title block or an
ANSI standard title block that is somewhat larger. Some of the information in title
blocks is provided automatically, e.g., the sheet size, file name and creation date. Turn
the title block off if you wish to draw your own.
Snap Grid
The snap grid is the grid that the cursor is locked to when placing or manipulating
objects on the sheet. This grid should be left on at all times except when specifically
placing or moving objects that need to be off grid, like text.
Visible Grid
The visible grid is the grid you see on the sheet, which acts as a visual reference.
Typically it is set to be the same as or a multiple of the snap grid.
Electrical Grid
The electrical grid supports the Schematic Editors Guided Wiring feature. Imagine
you are moving an electrical object in the workspace. When it falls within the electrical
grid range of another electrical object that you could connect to, the object you are
moving will snap to the fixed object, and a Hot Spot or highlight dot will appear. This
dot guides you as to where a valid connection can be made. The electrical grid should
be set slightly lower than the current snap grid or else it becomes difficult to position
electrical objects one snap grid apart.
Organization
Click on the Organization Tab in the Document Options dialog to enter the
organization details. Each field here is linked to a Special String. Refer to the Sheet
67
Schematic Capture
Templates topic later in this chapter for an explanation and example of how to use
special strings.
Sheet Units
Both the Schematic Sheet Editor and Library Editor have a resolution of 0.01, or one
hundredth of an inch. The units displayed on the left of the status bar are always
hundredths of an inch, regardless of the sheet style.
Changing the System Font
The System font includes; border text, system title blocks, pin names, pin numbers,
ports, power ports and sheet entries. For more information refer to the Fonts topic in
the Schematic Design Objects chapter.
Sheet Templates
The sheet border, title block and included graphics make up what is referred to as the
sheet template. The Schematic Editor is supplied with a number of sheet templates, one
for each size of sheet available.
User defined sheet templates can be created. They are created in the same way you
create a normal schematic sheet. After adding all the objects to the sheet select File
Save Copy As to save the sheet as a *.DOT template file. Once created, these predefined templates can be applied to new or existing projects.
As well as including custom title blocks and graphics, sheet templates can include
special strings to automatically add document text when printing or plotting. Refer to
the Activity on the following page for information on how to create a template.
Special Strings
Special strings are text strings which are recognized by the Schematic Editor and
interpreted when the sheet is printed or plotted. Each
Use special strings
special string either links to a field in the Organization Tab
with your templates to
of the Document Options dialog, such as .TITLE, or
provide quick and
provides current information, such as .DATE. Special text
consistent
document
strings can be placed either on a sheet template, or directly
text.
on a schematic sheet.
By placing the special strings on your sheet template you
will not need to accurately place text each time you do a new design. You simply go to
the Document Options dialog for that sheet and fill in the fields. When the sheet is
printed, each special string will be replaced by the text you entered into the appropriate
field of the Document Options dialog. The string will be placed at the location of the
. (the dot, or full stop).
68
If you wish to see the text that was entered in the Document Options dialog on the
screen, rather than waiting till it is printed, check the Convert Special Strings check
box in the Graphical Edit Tab of the Preferences dialog (Tools Preferences).
The Special string that are linked to the Document Options dialog are:
.ORGANIZATION
.ADDRESS1
.ADDRESS2
.ADDRESS3
.ADDRESS4
.SHEETNUMBER
.SHEETTOTAL
.TITLE
.DOCUMENTNUMBER
.REVISION
To place a special string select Place Annotation from the menus and type in the
special string, including the dot.
Activity - Creating a Custom Template
Protel templates are stored in the \Program Files\Design Explorer 99
SE\System\Templates.ddb database. You can add your template to this
database, create your own templates database, or include the template in the design.
Follow these steps to define a custom schematic template:
1. After opening the database and the folder that the template will be stored in, select
File New to create an empty schematic sheet, then double-click to open this sheet.
2. Choose Design Options from the menus, then click on the Sheet Options Tab.
3. Select the sheet size in the Standard Styles pull down list.
4. Un-check the Title Block option (to remove the standard title block) and click OK.
Notice that the standard title block no longer appears on the page. Zoom-in to the
bottom right corner of the page to start a custom title block (zoom in shortcut:
position the cursor where you wish to zoom and press PAGE UP) .
You are ready to draw a new title block.
69
Schematic Capture
5. Choose the graphical line tool from the Drawing Tools toolbar, or select the Place
Drawing Tools Line menu item. A cross-hair will appear on the cursor.
6. Before starting the line, press the TAB key to set the attributes of the line. The Line
dialog will open.
7. In the Line dialog click in the Color box to open the Color Selector, then scroll up
to color number 4 (black). Click OK to close the Color Selector dialog .
8. You will be back in the Line dialog. Set the Line Width to Smallest.
9. Click OK in the Line dialog to accept these changes.
10. Now, position the cursor in the sheet workspace and click to begin the first title
block line segment.
11. Move the cursor to the point where you wish to define the first corner. Click to
define this corner, then move the cursor to the location of the second corner.
Continue to do this until you need to start drawing a new line.
12. Click RIGHT MOUSE once (or the ESC key) when you want to end this multisegment line. You can then move the cursor to a new location to start a new line.
Click RIGHT MOUSE a second time (or the ESC key again) to exit the Place Line
command.
13. You are ready to place text in the title block.
14. Choose Place Annotation from the menus.
15. Before placing the text, press the TAB key to change the text attributes.
16. Press the Font Change button.
17. In the Size field, type 16 and Click OK.
18. In the Text field type .TITLE and then click OK to close the dialog. Note the full
stop character immediately in front of the word TITLE, this must be included.
19. Position the cursor in the appropriate region of your new title block, then click
LEFT MOUSE. To temporarily disable the snap grid hold the CTRL key as you
position the text.
The .TITLE special string is mapped to the Title field in the Document Options
dialog. Refer to the Special Strings topic earlier in this section for an explanation
of special stings and a list of all the special strings. Continue to define your custom
title block by adding the appropriate special strings as follows:
20. Press TAB to pop up the Annotation dialog again. Enter the
.DOCUMENTNUMBER special string and set the font to an appropriate size.
Position the cursor where you wish to place this special string and click LEFT
MOUSE. Continue to place the special strings in the appropriate regions of your title
block.
21. Press ESC to exit the place text annotation command.
70
22. Graphics can be included in the template. Select the Place Drawing Tools
Graphic menu item to add a graphic. When the Image file dialog appears select the
graphic image file and click OK. When the cursor
When you place
appears you will need to click once to define the top
a graphic the image is
left of the image location, then a second time to define
not saved with the
the bottom right of the image location.
document, only a
You are now ready to save this sheet as a template:
pointer to the graphic
file. If you move the
23. Choose File Save As from the menus.
design to another PC
24. Type a name for the template in the File Name field,
the graphic file will
and set the Save As Type option to Schematic
need to move too.
template binary (*.dot).
25. The extension .DOT defines this file as a sheet template. This template can now be
used for new or existing designs. Close the template file when you have finished.
Setting a Preferred Template to be Automatically Used
You can specify a template to be used automatically whenever a new file is created. To
do this select the Tools Preferences menu item. In the Preferences dialog, at the
bottom of the Schematic Tab, press the Browse button to display the Select dialog.
Select the database that contains your template in the drop-down list at the top of the
dialog, if the database is not available in the list click the Add button and browse to
locate it. Locate and select your template in the database that you selected.
When you click OK and return to the Preferences dialog, your template name will
appear in the Default Template File field. Click OK to close the dialog. When you
select File New, the new sheet will use your template. Note that the objects that make
up the template cannot be edited now, any changes have to be made to the template
itself.
Updating Existing Templates
Templates can also be applied to the active sheet, or all open sheets, at any time. The
Design menu has three menu items for working with templates:
Update Current Template - use this if you have modified a template and need to refresh the sheets which use it. You will be asked if you wish to update the template
for all currently open files. Click No if you wish to only re-fresh the active sheet.
Set Template File Name - this removes the existing template and uses the one you
choose.
Remove Template - removes the template (but retains the sheet size from the old
template).
71
Schematic Capture
72
hair cursor. You have a cross-hair cursor whenever you perform an edit type
operation like placing, selecting, moving or deleting objects.
This cursor can be moved either by moving the mouse, or pressing the arrow keys on
the keyboard. If the cursor is moved such that it hits the window frame, you will pan
across the sheet. To autopan at higher speed hold the SHIFT key while panning. The
speed at which you autopan can be altered by changing the Speed setting in the
Graphical Editing Tab in the Preferences dialog (Tools Preferences). Here you can
also change the style of autopanning as well, choosing either a Fixed Size Jump, where
the sheet moves over by the current step size, or Re-Center where the sheet shifts in
half screen increments, and re-centers the cursor.
Browsing the Schematic
When your design has many
sheets it can become difficult and
time consuming to locate objects
on the sheets. To simplify this
process the Schematic Editor
includes powerful browsing
features.
Set the Browse mode at the top
of the Editor Panel to Primitives,
to browse through objects on the
current sheet, or the entire
project.
You can browse by any of the
object types available in the
Schematic Editor.
The bottom of the browser has
three buttons, Text, Jump and
Edit. Select an item from the
browse list before using these
buttons.
select the
browse mode
select what to
browse by
use the mask to
narrow the search
list of "Parts"
(current browse mode)
for the selected object edit the text, jump to it,
or edit the object
refresh the
browse list
73
Schematic Capture
Jumps to the absolute (0,0) coordinate. In the Schematic Sheet Editor this is the lowerleft corner of the sheet. In the Library Editor it is the center of the sheet.
New Location
This option allows you to type in the desired coordinates for the jump.
Using Location Markers
The Schematic Editor includes ten user-definable location markers, allowing you to
mark positions on a sheet, which you can then quickly jump to with just two key
strokes. These markers can be placed anywhere on a sheet by selecting Edit Set
Location Marks.
Jumping to Location Markers
To jump to any of the pre-defined location markers on the current sheet select Edit
Jump Location Mark X (shortcut: J, 1 or J, 2 etc).
75
Schematic Capture
7. To exit wire placement, press ESC (or click RIGHT MOUSE a second time). Note that
the cross-hair disappears from the end of the cursor.
Manual and Auto Wire Placement Modes
The Schematic Editor provides six wire and bus placement modes. Press the SPACEBAR
as you place a wire or bus to toggle between the different modes. Options include two
orthogonal modes, an any angle mode, and an Auto Wire mode.
Any Angle Mode
Constrains the wire placement to horizontal or vertical orientation. There are two
modes; one keeps the shorter of the two segments attached to the cursor, the other
keeps the longer of the two segments attached to the cursor.
45/90 Line Mode
Constrains wire placement to 0, 45, 90, 135, 180, 225, 270 or 315 degree orientation.
There are two modes; one keeps the straight segment with the cursor, the other mode
keeps the 45 degree line with the cursor.
Auto Wire Mode
The Auto Wire mode will attempt to route a wire, in an orthogonal manner, from the
first point you click, to the next point you click. These click points are not restricted to
electrical hot spots (such as pins), they can be anywhere on the sheet. To modify the
Auto Wire parameters press the TAB key during wire placement.
To make it easy to
tell when you are in the
Auto Wire mode, the
connective line is shown
as a dotted line.
After placing the first wire from pin
A21 to pin 2, the remaining seven
wires in the bus can be quickly
placed using the Auto Wire mode.
Simply click on the start pin (pin
A25 in the figure), click on the end
pin (pin 6), then right mouse click
to finish this wire.
76
junction will be
added once this
wire is complete
Guided wiring speeds the process of getting the cursor to the correct location to
terminate the wire allowing you to wire quickly, and at much lower zoom levels.
Once the cursor is in the correct location you simply click to terminate the wire.
There is no need to worry if a junction is
required when you click, the Auto-Junction
feature will automatically add one if it is
required. Auto-Junction places a junction
when two wires are connected in a T-type
fashion, or a wire connects orthogonally to a
pin or power port.
Creating 2-Dimensional Graphical Objects
2-Dimensional objects, such
as rectangles and polygons are
created and placed similarly to
wires, buses and lines. Each
object may require a different
rectangle
number of mouse clicks to
define it, refer to the
Primitives topics in the
Schematic Design Objects
chapter for more information.
polygon
pie
77
Schematic Capture
78
When an object is in focus, you can move the object, or edit its graphical
characteristics.
To graphically change a focused object click once on an editing handle. That point of
the object will then become attached to the cursor simply move the mouse to a new
location and click to place.
Click anywhere on a focused object to move it, press the DELETE key to delete it. For
strategies about moving or dragging objects refer to the Moving and Dragging topic
later in this chapter.
79
Schematic Capture
NetLabel1
C14
0.1uF
Objects in focus, displaying their focus handles or focus box.
Editing Handles and Polyline Behavior
Polyline objects have special graphical editing characteristics. For example, when you
place wires, buses or graphical lines, you define a vertex each time the wire, bus or line
changes directions. These vertices are displayed as editing handles when the object is
in focus. These objects can have complex shapes (hence polyline), but can be
manipulated (moved, cut, copied, pasted, cleared or deleted) as a single object.
A special feature of polyline objects is the ability to add or delete vertices from a
placed object.
Activity - Adding a Vertex or Control Point to a Polyline Object
Sometimes you will want to remove a vertex (or control point) when reshaping a
polyline object. To remove a vertex or control point:
1. Click on the polyline object to place it in focus.
80
2. Position the cursor over the handle that you wish to delete. Click and hold LEFT
MOUSE to grab the handle.
3. Press DELETE to remove the vertex (or control point).
The cursor will jump to the nearest remaining vertex.
Focus Summary
As illustrated in these examples, you must focus an object before you can modify it
graphically. Note that you cannot use the clipboard menu items: Edit Copy, Cut, Paste
or Clear with the focused object. These Clipboard features work only on a selection.
Selection
Selection provides a second, distinct method of manipulating objects. Unlike focus,
selection can be used with both individual objects and with a group of objects.
Selection does not display an objects graphical
editing handles or a focus box. Instead, the
object is outlined in the selection color (to
change the color select Tools Preferences).
81
Schematic Capture
Objects
remain
selected
until
you
deselect them it is
good practice to always
clear
the
current
selection prior to making
a new selection (Edit
DeSelect All or shortcut:
X, A)
Direct selection can also be performed on an area. To select all objects within an area:
1. Position the mouse where there are no objects under the cursor.
2. Click and hold the LEFT MOUSE button.
The Status Bar will prompt Choose Second Corner.
3. Drag the mouse diagonally away. Define the area with the selection rectangle and
release the LEFT MOUSE button.
Only objects that fall entirely with the rectangle will be selected. The selected
objects will highlight in the current selection color.
4. Repeat the process to extend this selection.
82
The Edit Select menu items allows you to select all objects inside or outside of an
area, or all objects. You can also select by Net (selects all wires and net identifiers for
the chosen net on the current sheet), or Connection (selects all wires and net identifiers
that are physically connected).
Edit De-Select provides the same options, less the Net and Connection options.
Shortcut: press X to pop up the De-Select menu.
The Edit Toggle Selection menu item allows you to toggle the selection state of
individual objects, behaving the same as the SHIFT+LEFT MOUSE direct selection
technique.
Working with a Selection
Objects that are selected can be cut or copied to the clipboard, and from there pasted
into other schematic sheets, or into any Windows application that supports the
Windows clipboard. Selections can also be deleted by selecting the Edit Clear menu
item or the CTRL+DEL shortcut keys.
Use the clipboard in the Schematic Editor the same as you would in any Windows
application. The sequence is; select the objects to perform the operation on, cut or copy
the selection to the clipboard, then paste the clipboard contents to the desired location.
Notes on Using the Clipboard
Edit Cut
clears the current selection from the workspace and copies it to the
clipboard.
Select Edit Paste to paste the selection back into any open sheet.
Make sure that the selection includes only those items you wish to copy or cut. To
ensure that nothing is selected before making a new selection use the deselect all
shortcut: x, a.
Use the shortcut SHIFT+left mouse to add or remove items from the current
selection.
The clipboard holds the last selection only, each time you select Cut or Copy you
overwrite the clipboard contents.
Select Edit Clear to delete the current selection from the workspace without
copying it to the clipboard (shortcut: CTRL+DELETE).
83
Schematic Capture
The Schematic Editor includes an option to include the sheet template when
copying to the clipboard. Select Tools Preferences to set this.
Pasting an Array
When you use Edit Cut (or Copy) you are placing a copy of the current selection in the
clipboard. Edit Paste Array allows you to place multiple copies of the clipboard
contents back into the workspace. The following figure shows an example of using the
array feature to create a set of eight data lines. It is easier to create and place the array
if the Clipboard Reference feature is enabled (refer to the previous topic).
Creating a set of eight data lines using the Paste Array feature.
After placing the wire, bus
entry and net label, select
them, then cut the selection
to the clipboard.
Data0
Select Paste Array and setup for the required number of data lines.
Data0
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Item Count
This option is used for text which you want to auto-increment, such as net labels.
Setting this to 1 will increment the component designators, for example U1, U2,
U3 etc.
84
Horizontal
The horizontal spacing between each pasted item. Setting this to 10 would place
each object on the next standard visible grid point (0.1 inches apart).
Vertical
The vertical spacing between each pasted item. Setting this to 10 would place each
object on the next standard visible grid point (0.1 inches apart).
Global Editing
As well as being able to edit the attributes of a single object, you can also apply these
edits to other objects of the same type on the current document, or if you wish, across
the entire project .
Additionally, you can further define conditions that either extend or restrict global
changes. For example, changes can be applied to all objects that are selected or all
objects that are not currently selected, or the change can be applied without regard to
the objects selection status. If desired, you can create a complex set of conditions for
applying changes.
Virtually every one of these editable object attributes can be globally applied. A simple
example would be changing the color assigned to all wire segments associated with a
specific net. In another instance you may wish to change the font of all net labels.
These options (and more) are possible with global editing. The possible applications
for global changes are limited only by the imagination of the designer.
The large number of global change options may make this feature appear somewhat
complex at first. However, the principles of applying global changes are reasonably
simple once understood. When mastered, this feature can be an important productivity
tool that can save a great deal of manual editing of a schematic.
Cross-Project Global Editing
Global editing of schematic objects throughout a multi-sheet, hierarchical project is
supported. This feature allows you to change items located in various parts of a project,
or impose style changes throughout all open sheets in the current project. Set the
Change Scope to control which sheets are affected by the global edit.
Global Editing Strategies
While the presentation of global change options may appear differently in the various
object dialogs, the strategy used is always the same. This description will outline the
approach to global editing.
85
Schematic Capture
current attributes
of the object being
edited
attribute changes
that are to be copied
from this object, to
all the matched
objects
Current Attributes
When you double-click on an object, you are presented with the dialog for that type of
object. This dialog contains the current values or settings of the attributes of that
object. Change the attributes you would like to alter.
In the dialog shown above we are going to change all the data net labels from D1, D2,
etc to Data1, Data2, and so on. As this is a string substitution we do not need to change
anything in the Current Attributes.
Attributes to Match By
After changing the attributes press the Global button. The dialog will expand to look
like the one shown in the picture above. In the center of the dialog there be a column
titled Attributes To Match By. In the Attributes To Match By column you define how
to identify the other objects that this change is to apply to.
The Attributes To Match By column will contain either a choice field for each attribute
or a text field which you can type in.
The choice field has three options: Same (apply global changes if this object attribute is
matched in the target object); Different (apply global changes if this attribute is not a
86
match in the target object) and Any (the default) which applies the change irrespective
of whether the attribute has the same value in both objects.
If the Match By attributes are all set to any and the text fields contain the wildcard
symbol (*), then the global change will apply to all objects of this type.
Use combinations of Match By attributes to define a particular set of objects to apply
the change to. For this example we set the Net Label to D*, to target all net labels
starting with the letter D.
Copy Attributes
To perform a
complete
string
replacement simply
remove the braces
{} and type in the
new string.
The last parameter to set is the change scope. This will be; the current item, all
matching items in this document, or all matching items in the documents that make up
the project. Other open documents which are not part of the project will not be
affected.
When you press the OK button all Net Labels which start with the letter D will have
the D replaced with the string Data, so D1 would become Data1, D2 becomes
Data2, and so on. Note that if the design included a net label with a value of DR it
would become DataR.
If you are unsure if your global edit will target the right objects, only enable
the Selection option in the Copy Attributes column. When you click OK to perform
the change the set of target objects will be selected, but not changed. You can then
do the global change again, this time using selection as the Attribute to Match By.
Using Wildcards when Globally Editing Text
Many objects include text fields. These text fields allow you to use wildcards to define
changes. This applies to parts, net labels, annotations (single line text), sheet symbols,
sheet entries, ports and power ports.
Both the ? and * wildcard characters can be used to extend the definition of target
strings. For example, S* will limit the fields to strings beginning with S, etc. Wildcards
are case in-sensitive.
87
Schematic Capture
Separate Edit Find Text and Edit Replace Text features allow text replacement
across different object types. They also support the wildcard search and string
substitution syntax.
Syntax for String Substitutions
The Copy field for text strings is used to define the changes to be made to the string.
This field can be used in two ways.
If you wish to replace the entire contents of this field with a new value, remove the
braces, { and } and enter the new value.
The braces are used when you wish to perform selective string substitutions, using the
syntax {oldtext=newtext}. This means you can change a portion of the string "oldtext"
to "newtext". In the example shown earlier in this section we changed the letter D
for the string Data.
You can use multiple sets of brackets to define complex replacements. In this case the
leftmost replacement is made, then the next on, etc. This is very powerful, you must
take care because the first change can effect subsequent replacements, possibly
generating an unexpected result.
You can further limit the replacement by typing {!Text=text} to make the changes case
sensitive. In this case, "Text" becomes "text". Otherwise replacement is case insensitive by default. Use Undo to recover from any mistakes.
Summary
With care and planning you can experience significant productivity benefits from this
powerful feature. However, the very power of these options can contribute to some
unanticipated results particularly when complex selections are globally edited. When
in doubt, its always safest to Edit DeSelect All (shortcut: X, A), then create a fresh
selection. Remember, the Undo/Redo features allow you to recover several operations,
if required.
Quick-Copying an Object
The Schematic Editor has a powerful feature for copying the attributes of one object
into a second object of the same type. With this feature you can morph the object
currently floating on the cursor into an object already placed on the schematic.
For example, lets say you have a capacitor floating on the cursor, when you would
really like to place a resistor. Rather than pressing ESC to get rid of the capacitor, then
browsing through the library to find a resistor, you can use the quick-copy feature to
turn the capacitor into a resistor.
88
Position the cursor (with the floating capacitor) over the source object (an existing
resistor on the schematic), and press the INSERT key. There will now be a resistor
floating on the cursor. You can also edit the attributes of the object before you place it
by pressing the TAB key.
All attributes of the placed object will be copied to the floating object. If the floating
object did not inherit the attributes of the placed object, the cursor cross-hair may not
have been inside the body of the placed object when pressing INSERT. Place the object
in the desired location.
The quick attribute copy feature (also known as morphing) can be used to clone
the attributes of all schematic object types, except sheet symbols. This feature works
whether placing a new object, or moving an already-placed item. It does not work
when dragging connected electrical objects.
89
Schematic Capture
Changes can be applied to the Current Document Only or to All Open Documents.
Objects with text to be changed can be restricted to selected or un-selected items.
Case Sensitive
Changes can be made on a Case Sensitive basis (upper and lower case must match
exactly when searching). Replacement text always matches the case used when typing
text into the New Text field.
Prompt on Replace
Restrict find-and-replace text changes to net identifier objects, including; net labels,
power ports, ports and sheet entries.
Conditional String Substitutions
Both the ? and * wildcard characters can be used to extend the definition of target
strings. For example, S* will limit the fields to strings beginning with S, etc. Wildcards
are case in-sensitive.
Selective string substitutions can be performed, using the {oldtext=newtext}syntax.
This means you can change a portion of the string "oldtext" to "newtext". In our
example we changed the letter D for the string Data.
You can use multiple sets of brackets to define complex replacements. In this case the
leftmost replacement is made, then the next on, etc. This is very powerful, you must
take care because the first change can effect subsequent replacements, possibly
generating an unexpected result.
You can further limit the replacement by typing {!Text=text} to make the changes case
sensitive. In this case, "Text" becomes "text". Otherwise replacement is case insensitive by default. Use Undo to recover from any mistakes.
90
Aligning Objects
Two methods of alignment are provided. You can align a group of selected objects on
both axes, by choosing Edit Align Align. Alternatively you can align objects on one
axis, by choosing the other Align sub-menu items.
Align objects by selecting them and then choosing Edit Align Align to pop up the
dialog, or by choosing Edit Align Align Left, Align Right, etc.
Notes on Aligning Objects
Ensure that only the required objects are selected first clear the current selection
(shortcut: x, a).
Use the Edit Align Align menu item to pop the dialog if you want to align both
horizontally and vertically, for one direction you can just pick the required option.
Use the Move primitives to Grid option to constrain alignment to the nearest grid
point.
If you are not happy with the alignment use Edit Undo to remove the change.
91
Schematic Capture
Moves an object to the front of other items in the stack and allows you to re-position it.
When you select this menu item you are prompted to choose the item to be moved.
When you click on the item, it floats on the cursor. Click a second time to place the
object once it has been re-positioned.
Bring To Front
Moves an object to the front of other items in the stack. When you select this menu
item you are prompted to choose the item to be moved. When you click on the item it
moves to the front of the stack without changing its x or y coordinates.
Send To Back
Sends an object to the back of other items in the stack. When you select this menu item
you are prompted to choose the item to be moved. When you click on the item it moves
to the back of the stack without changing its x or y coordinates.
Bring To Front Of
Moves an object to the front of a second item. When you select this menu item you are
prompted to choose the item to be moved. When you click on the item, you are then
92
prompted to choose the target item. The item to be moved will be re-located in front
of the target without changing its x or y coordinates.
Send To Back Of
Moves an object behind a second item. When you select this menu item you are
prompted to choose the item to be moved. When you click on the item, you are then
prompted to choose the target item. The item to be moved will be re-located behind
the target without changing its x or y coordinates.
Dragging Objects
Often you will need to rearrange the objects on the schematic sheet, perhaps as you add
to the circuit, but you want to maintain the connectivity. To do this you need to Drag
the object(s).
Dragging a Single Object
To drag a single object, position the cursor over the object, hold the CTRL key down
and click and hold on the object. Release the CTRL key, then drag the object to the
desired location.
Dragging a Group of Objects
To drag a group of objects they must be selected first. Once they are selected, select the
Edit Move Drag Selection menu item, click to chose the reference location, then drag
the selection to the desired location.
Tips on Dragging
If the wiring is dense you can find that wires land on top of other wires as you
drag a selection, which are then connected by the auto-junction feature. Select
Tools Preferences to disable Auto-Junction.
Another technique that helps when dragging in a dense design is to disable the
Drag Orthogonal feature (select Tools Preferences). This allows wires to move at
any angle, and will avoid wires landing on top of other wires as you drag. You can
then re-shape each wire as required; click to focus, then click and move the
vertices as required. New vertices can be added and existing vertices removed,
refer to the Focus topic earlier in this chapter for more information.
If two component pins are touching a wire will automatically be added when you
drag them apart. This also works for an orthogonal wire across the end of
component pins.
Press the SPACEBAR to toggle the orthogonal wire mode while dragging.
93
Schematic Capture
press SHFT+SPACEBAR
to rotate X1
click to place X1
Using the Schematic Editors interactive editing features to change the layout of you schematic
94
Mouse Shortcuts
As you read through this guide, you will notice several mouse and keyboard shortcuts
that are used to speed-up or simplify frequently performed operations. For example,
pressing P, N allows you to place a net label without having to go to the Place menu
and choose the Net Label menu item. Using the left mouse button for ENTER and the
right mouse button for ESC will allow you to perform many operations without using
the keyboard. The opposite can also be done, press ENTER or ESC on the keyboard
rather than clicking OK or CANCEL in a dialog box.
Sometimes keyboard actions provide the only practical way of performing an operation
when you do not wish to move the mouse in the workspace, such as toggling the Snap
Grid off when you are placing a text string (V, G), or changing the zoom level while
moving a selection.
95
Schematic Capture
Standard Windows shortcuts, such as pressing ALT+F4 to close the application window
or CTRL+TAB to toggle through document windows are supported. Other shortcut keys
are specific to the Schematic Editor. You can also create your own custom shortcut
keys. Refer to the Design Explorer section for clues on creating your own shortcut
keys.
Windows allows you to assign operations to specific key combinations by using the
Recorder feature. See your Microsoft Windows Users Guide for details.
Keyboard Shortcuts
There are two ways of creating shortcuts invoked through the keyboard. The first is
through the Keyboard Shortcut Editor (Client menu Customize). These are known as
Keyboard Shortcuts these shortcuts launch a process directly. For example, pressing
CTRL+T will align the selected objects along their top edge.
Processes can also be launched through the keyboard via the menu keyboard shortcuts.
Underlined menu items which lead to a sub-menu will pop up that sub-menu,
underlined menu items which do not pop up a sub-menu will launch the process tied to
that menu item. For example, press P to pop up the Place menu, then press N to present
the current Net Label on the cursor, ready for placing. Press T to pop up the Tools
menu, followed by N to pop up the Netlist Creation dialog.
If the same key has been assigned to a keyboard shortcut and a menu shortcut, then the
keyboard shortcut will take precedence.
Menu Shortcuts include:
A
B
E
F
H
J
L
M
D
P
R
S
T
V
W
X
Z
96
menu
menu
Help menu
Edit
File
menu
menu
Reports menu
Edit Select sub-menu
Tools menu
View menu
Window menu
Edit DeSelect menu
Zoom pop-up menu
Design
Place
97
Schematic Capture
Left-Click
Left-Double-Click
CTRL+Left-Hold-Down
ALT
ALT+SHIFT
Left-Hold-Down
Focus object
Change object
Drag single object
Constrain object movement to Y direction
Constrain object movement to X direction
Move object / move selection
98
Design Objects
Your design is built up by placing the various design objects to create the circuit.
99
Schematic Capture
Wire
Wires are straight line segments which are placed on
the sheet to create the electrical connections.
R1
junction
R2
wire
Junction
Junctions are small circular objects used to logically
join intersecting wires on the schematic.
D[0..7]
Data[0..7]
bus
entry
port
D0
D1
D2
D3
D4
D5
D6
D7
bus
Bus Entry
net label
A Bus Entry is a special wire at an angle of 45
degrees, that is used to connect a wire to a bus line. A Bus Entry allows you to connect
two different nets to the same point on a Bus. If this was done using wires the two nets
would short.
Bus
Buses are special graphical objects that represent a common pathway for multiple
signals on the sheet. Buses have no electrical properties, they must be correctly
identified by Net Labels and Ports, as shown in the figure above. The Bus net label can
be either ascending (eg D[0..7]), or descending (eg D[7..0]).
Net Label
When you wire from one component pin, to a second
pin, then to a third pin, you are creating a Net. When
you create a netlist each net is given a unique identifier.
C1
NET1
1
R1
R2
100
Design Objects
Port
A Port is used to connect a net on one sheet, to Ports
with the same name on other sheets. Ports can also
connect from a child sheet, to Sheet Entries in the
appropriate sheet symbol on the parent sheet. Press
the SPACEBAR to rotate the port during placement.
sheet
symbol
sheet
entry
Sheet Symbol
Sheet Symbols represent another schematic sheet (often referred to
as a child sheet). The link between the Sheet Symbol and the other
schematic sheet is the File Name attribute, which must be the same
as the name of the child sheet.
Sheet Entry
A Sheet Entry creates a connection between the net touching it on
the parent sheet to a Port with the same name on the child sheet.
Drag the sheet entry to position it in the sheet symbol.
Refer to the
chapter Multi-Sheet
Design and Project
Management
for
more information on
how to use Ports,
Sheet Symbols and
Sheet Entries.
Probe Directive
A Probe is a special marker which is placed on the worksheet to identify nodes for
digital simulation.
Test Vector Directive
Test Vectors are special symbols used to identify a node with a simulation test vector.
The test vectors are referred to by a column number, which indicates the column of the
test vector file to use when the simulation is run.
Stimulus Directive
A Stimulus is a special symbol which is used to identify a node or net to be stimulated
when the digital simulation is run.
PCB Layout Directive
PCB Layouts are special symbols that allow you to attach board layout information to a
specific net.
No ERC Directive
The No ERC directive is a special symbol that identifies a pin as one that you want the
Electrical Rules Checker to ignore.
101
Schematic Capture
Pin
Pins are special objects that have electrical characteristics and are used to direct signals
into and out of Parts. Refer to the Library Editor chapter for more information on pins.
102
Design Objects
Rectangle
Rectangles are filled or unfilled graphic elements. It takes two clicks to define a
rectangle; the top left corner, and the bottom right corner.
Rounded Rectangle
Rounded Rectangles filled or unfilled graphic elements with rounded corners. It takes
two clicks to define a rectangle; the top left corner, and the bottom right corner.
Ellipse
Ellipses are filled or unfilled graphic elements. It takes three clicks to define an Ellipse;
the center, the X radius, and the Y radius.
Pie
Pies are filled or unfilled graphic elements. It takes four clicks to define a Pie; the
center, the radius, the start point, and the end point.
Graphic Image
Graphic images can be included on your schematic. The following file formats are
supported:
BMP, TIF, JPG, WMF
Note that a copy of the image is not stored inside the sheet, only a link to it. If the
location of the image changes you will need to update the link (double-click on the
image to do this).
Refer to the Placing Schematic Objects topic in the Working in the Schematic Editor
chapter for examples of how to place schematic design objects.
103
Schematic Capture
Process Container
The Schematic Editor includes a
method of storing a process identifier
with a particular configuration of the
its process parameters. This is done in
a Process Container.
Netlist:RunElectricalRulesCheck
ECL ERC setup
C:\Client 98\SCH4\EXAMPLES\Demo1.ERC
You can use a process container to hold the setup for a particular process with the
design. As an example, your design may have a special ERC setup that you need to
store with the design for future reference.
Configuring a Process Container
104
Design Objects
Files Produced by Process Containers
Fonts
The Schematic Editor supports the TrueType fonts that are delivered with Windows,
including bold and italic formats and display font scaling. PostScript scaleable fonts,
and Windows non-scaleable raster fonts can be used when they are part of vector
image files imported into schematic sheets.
Organization of Fonts
You can think of the text fonts as belonging in one of two groups; those that are
individually editable, and those that use the System Font.
Individually editable fonts include; component designator, part type, net label, text
annotation, text frame, sheet symbol name and sheet symbol file name.
Text that uses the system font include; border text, system title blocks, pin names,
pin numbers, ports, power ports and sheet entries.
Changing Fonts
The easiest way to tell if a font is an individually editable font is to double-click on the
text. The dialog for that object will pop up. If it has a Font Change button, then this is
an individually editable font. Pressing this will pop up the Font dialog. If doubleclicking produces no response, or if there is no Font Change button, this text uses the
system font.
You can also specify default fonts for all objects that have an editable font. Select
Tools Preferences to display the Preferences dialog, then click on the Defaults Tab.
Select the object that you wish to set the font for (for example Net Label) and press the
Edit Values button. Select the required font in the normal way. From now on all new
net labels will use this font. Note that it will not change the font for net labels that are
already on the sheet, these can be changed using global editing.
Setting the System Font
To change the system font, select the Design Options menu item. This will pop up the
Document Options dialog. On the Sheet Options Tab there is a Change System Font
button. Pressing this will pop up the Font dialog. Select the required font in the normal
way. This will change all text that uses the system font.
105
Schematic Capture
106
107
Schematic Capture
After locating the required Library Database, double-click on it to add it to the list. Double-click
on a Library Database in the Selected Files list to remove it.
Use the Look in field at the top of the dialog to browse to the folder where the Library
Databases are located. The Protel 99 SE Library Databases are stored in the
\Program Files\Design Explorer 99 SE\Library\Sch folder.
Libraries are stored in standard Protel 99 SE Design Databases, which means
you can easily create your own Library Databases. These databases can even be a
mix of schematic and PCB libraries.
To access components in libraries that are stored inside a Project Design
Database, simply add the Project Design Database to the Selected Files list in the
Change Libraries File List dialog.
108
Component
Schematic Capture
You can also place parts by selecting Place Part in the menus, or by pressing the Place
Part button on the Wiring Toolbar. This will pop up the Component Library Reference
dialog. When you enter the exact Library Reference all the Libraries in the list will be
searched for this part.
You can edit the attributes of the component floating on the cursor before
actually placing it on the sheet. To do this, press the TAB key while the component
is floating, and you will be presented with the Part dialog. If you set the
designator now and continue to place instances of the same part, the designator will
auto-increment.
While the component is floating on the cursor it can be rotated by pressing the
and flipped along the X or Y axis by pressing the X or Y key.
SPACEBAR,
110
Schematic Capture
designator is assigned before you place the part. The suffix is always an alpha
character.
Select Tools Annotate to automatically re-assign the designators. Refer to the Passing
Your Design into the PCB Editor chapter for more information about annotation.
Part Type
The Part Type text field is for the part description, such as the value (220nF) or device
type (74HC32). This field can be up to 255 characters long.
Sheet Path
Parts on the schematic sheet can be made to behave as sheet symbols rather than
component parts. When they are in this mode, the nets connecting to their pins connect
to matching ports on the sheet below. To get a part to behave as a sheet symbol, you
specify the sheet that exists below in the Sheet Path field and enable the descend into
sheet parts option in the Netlist Creation dialog. When a component is configured to
behave as a sheet symbol it does not appear in the netlist. Refer to the Multi-Sheet
Design and Project Management chapter for more information.
Part
This field indicates which part this particular instance is, in the multi-part component.
1 indicates part A, 2 indicates part B, and so on. The part suffix can be either an alpha
character, or a number, depending on the setting of the Multi-part Suffix option in the
Preferences dialog. Note that this is an environment setting, which applies to all
currently open schematic sheets.
Hidden Pins
Component pins can be specified as Hidden or Visible in the Library Editor.
Normally, hidden pins are used for component power pins.
Hidden pins are automatically connected to nets with the same name during netlisting.
If hidden pins are displayed they then must be wired manually. If the hidden pins on a
multi-part component are being displayed, then the hidden pins on all parts of that
component (eg: U2:A, U2:B, U2:C, U2:D) must be displayed.
Hidden Fields
The 16 Part Fields are not displayed on the schematic sheet by default. Use this option
to display the values of these fields. Double-click on an individual Part Field to hide it.
Field Names
The names of the 16 Part Fields are not displayed on the schematic sheet by default.
Use this option to display the names of these fields. Double-click on an individual Part
Field name to hide it. The Part Field names can be edited in the Library Editor.
112
113
Schematic Capture
The Library Editor is the second document editor included with the Protel 99 SEs
schematic server. Where the Schematic Sheet Editor is used for capturing the
schematic, the Library Editor is used to create and modify the components used in
those schematics.
In Protel 99 SE, the schematic libraries are stored within a set of Library Design
Databases. Most of these Library Databases are manufacturer specific each database
includes all the libraries that have been produced for that manufacturer. There are also
a number of other special-purpose databases, for example, one for schematic-base PD
design, and another which includes all the simulation-ready symbols.
The Altium Library Development Center is constantly developing new
libraries check www.protel.com to download the latest schematic libraries.
114
Libraries are opened in the Library Editor in the same way all documents are opened
the Design Explorer, by first selecting File Open to open the Library Design Database,
then browsing through the database and opening the library for editing.
Each open library will appear on a separate Tab in the integrated Design Window.
Creating a New Library
Before you create a new library you must open the Design Database that you want to
store the library in, then browse through the database and open the folder that you want
to create the library in.
To create the new library right-click in the folder window, and select New from the
floating menu that appears. The New Document dialog will pop up, double-click on the
SchLib icon to create a new library.
Schematic Capture
116
Library Editor
Panel
list of components
in this library
place this component
on the last active
schematic sheet
perform a search to
find a component
part that is currently
visible, and total
number of parts
list, or group of
components that
are sharing this
component graphic
add a name to the
group, or delete the
highlighted name
from the group
edit the component
text, including default
designator, footprints
and read only fields
press this to update
all instances of this
component on all
currently open
schematic sheets
list of pins in this
component
display the hidden
component pins
select which graphic
Mode to display
All the tools you need to create and edit library components are in the Tools menu. To
create a new library component:
1.
2.
You will be presented with an empty component sheet, titled Component_1, with a
cross-hair through the center (origin) of the sheet.
3.
You are currently at full zoom, so press PageUp until the grid becomes visible. If
necessary re-locate the origin of the sheet by selecting Edit Jump Origin.
4.
The first step is to define the component body. If the Component has a
rectangular shape select the Rectangle tool from the toolbar, or in the Place
menu. Alternatively, use the line tool to draw the required shape.
5.
Click at the sheet origin to define the top left of the component body. Use the
Status line to confirm that you have the cursor at the origin.
6.
Move the mouse down and to the right to size the rectangle. The size will depend
on the number of pins the component will have. Use the grid to guide you as you
size it, allowing one grid line per pin.
If you accidentally moved the cursor outside the window and the view
suddenly pans, use the J, O shortcut keys to jump back to the origin.
7.
Click a second time to define the bottom right corner of the component body.
You can re-size the component body at any time simply click once inside
the rectangle to focus it, then click and drag on the small handles that appear.
Click outside to rectangle to release the focus when you are finished.
8.
After defining the component body you can place the component pins. When you
click on the Place Pin tool on the toolbar a pin will appear floating on the
cursor. You are holding the pin by the non-electrical end, which goes against
the component body. Press the SPACEBAR to rotate the pin while it is floating
on the cursor.
Only one end of a Pin is electrical you must place the pins with this end
out from the component body. You can easily identify the non-electrical end of
the pin, it has the pin name next to it.
9.
Before placing the pin press the TAB key to edit the pin attributes. Each attribute is
described in the next topic. If you define the pin attributes before you place it, then
the settings you define will become the
Click and hold on a pin to
defaults this means that numeric pin names
re-position it after you place it,
and numbers will auto-increment.
press the SPACEBAR to rotate it.
10. Continue to add the pins required to finish
the component.
117
Schematic Capture
Component Pins
Component pins give a component its electrical properties. Pins have a number of
attributes, which can be set in the Pin dialog. To set the attributes prior to placing the
pin, press the TAB key while the pin is floating on the cursor. To set them after placing
the pin, double-click on the pin, or click once on the pin in the pin list in the panel.
Pin Name
The pin name is optional, except when the pin is going to be hidden. A hidden pin is
automatically connected to other hidden pins with the same name, and to nets with the
same name, when the netlist is created.
Pin Number
Number of this component pin, each pin must have a unique number.
Dot symbol
Enable this option to define the pin as Hidden. A hidden pin is automatically connected
to other hidden pins with the same name, and to nets with the same name, when the
netlist is created. Power pins are often defined as Hidden. Once a pin is defined as
hidden you must enable the Hidden Pins option in the panel to be able to see them (or
select View Show Hidden Pins).
Show Name
Show the pin name on the schematic sheet. It remains visible in the Library Editor.
Show Number
Show the pin number on the schematic sheet. It remains visible in the Library Editor.
Pin Length
As well as its graphical definition, each component has a number of text fields
associated with it. Select Tools Description to pop up the Component Text Fields
dialog.
118
A default prefix can be defined for the part designator. The default designator would
typically take the form R?, C?, U? and so on.
Footprint
Four fields are provided for naming PCB footprints for the component. If these are not
pre-assigned in the Library Editor a value can be entered when the part is placed on the
sheet. Four fields allow you to nominate alternate patterns for SMD versions, etc.
Sheet Part Filename
Parts on the schematic sheet can be made to behave as sheet symbols rather than
component parts. When they are in this mode, the nets connecting to their pins connect
to matching ports on the sheet below. To get a part to behave as a sheet symbol, you
specify the sheet that exists below in the Sheet Part Filename field and enable the
descend into sheet parts option in the Netlist Creation dialog. The Sheet Part Filename
can also be entered once the part is placed on the schematic sheet. Refer to the chapter
Multi-Sheet Design and Project Management for more information.
Library Text Fields
Each library component has eight user-definable text fields. These fields can hold up to
255 characters each. Library text fields cannot be edited once he part has been placed
in the schematic sheet, but can be viewed, and can also be included in the Bill of
Materials.
Part Text Fields
The names of the sixteen part text fields can be defined in the Component Text Fields
dialog. Up to 255 characters can be used, but only the end of the character string will
be displayed in the Edit Part dialog if the length of the string exceeds the display area.
There is room for 14 characters and/or spaces, when 12 point Helvetica is used as the
dialog font.
Description
Use up to 255 characters for a text description of the component. Component searches
can be done on the contents of the description field.
What is a Group of Components?
Many components share the same packaging they have identical graphics and pin
numbers, but exist as individual names in libraries. Perhaps these are identical devices
from different manufacturers, or components that share the same packages but vary on
some specification, such as a 120ns versus 80ns RAMs. While it is convenient to
access these otherwise duplicate parts using either description, it would be inefficient
to maintain a separate graphical version of each duplicate.
The Schematic Editor uses the concept of component groups to associate multiple
component names with a single description stored in the library. This keeps libraries
efficient and manageable. For example, while the TTL library contains nearly 1800
119
Schematic Capture
component names, the graphical and data descriptions that represent these components
number only about six hundred.
Copying Components
Component.
When you copy a component within a library you will notice that the component name
appears twice in the list in the panel. You can then select Tool Rename Component to
give one of them a new name.
Components can also be copied between libraries, and from a library to a schematic
using the right-click menu in the Schematic Library Editor panel. To copy between
libraries select the component(s) in the Library Editor panel using the standard
Windows selection keys (left-click, SHIFT+click and CTRL+click). Once the
components have been selected click the right mouse button to pop up the floating
menu and select Copy. Change to the target library, right-click in the Library Editor
panel, and select Paste to add them to the target library.
Updating Your Schematic
After editing components in the Library Editor there are two ways of passing these
updates across to your schematic sheets.
120
1.
From the Library Editor press the Update Schematics button in the panel (or
select Tools Update Schematics in the menus). This will update all instances of
this component, on all open schematic sheets.
2.
From the Schematic Sheet Editor select Design Update Parts in Cache to update
all parts, on all open sheets, that are different from those in the libraries in the
current Schematic Editor library list (not libraries open in the Library Editor).
This report lists all the information available for the active component. This includes;
the number of parts, the group names and the pin details for each part in the
component. This report has the file extension CMP.
Library
This report lists each component in the library and its description. This report has the
file extension REP.
Component Rule Check
The Component Rule Check is used as an aid in component verification. Set the
attributes you wish to test for, click OK and a report will be generated and opened in
Text Expert. This report has the file extension ERR.
121
Schematic Capture
Overview
Each schematic sheet is stored as an individual document. Any sheet can be opened
and edited independently of all other sheets, simply click on the icon for the sheet in
the Design Explorer Navigation Panel.
A schematic design can consist of a
single drawing sheet, or multiple
linked sheets.
Multiple sheet projects support
large or complex designs that
a project can
cannot be served by a single sheet.
include many
sheets
Even when the design is not
particularly complex, there can be
advantages in organizing the
project across multiple sheets. For
example, the design may include
or a single
various
modular
elements.
sheet
Maintaining these modules as
individual documents allows several engineers to work on a project at the same time.
Another reason to organize a project across multiple sheets is that this method allows
you to use small format printing, such as laser printers.
When two or more sheet files are associated or linked in some way, we refer to this as
a multi-sheet project. There are a number of methods for organizing multiple sheet
projects. Choosing one approach or another is based upon the type, size and structure
of the project.
122
123
Schematic Capture
Lowpass Filter
J1
J2
Filter In
1
2
Filter.sch
My Design.sch
1
R1
Filter Out
Filter In
Filter Out
10k
master
sheet
C1
220n
B
sub-sheet
A
Filter.sch
1
124
power
port
sheet
entries
net label
VCC
RESET
RESET
ENABLE
ENABLE
port
Four of the five possible net identifier objects are
illustrated. Hidden pins on schematic parts provide a
fifth method for identifying nets.
Use a net label to uniquely identify a net. This net will connect to other nets of the
same name on the same sheet, and can also connect to nets of the same name on
different sheets. Net Labels are attached to individual wires, part pins and buses.
Port
When the connectivity is vertical you can use a sheet entry to connect to a port of the
same name, on the sheet below.
125
Schematic Capture
Power Port
All power ports with the same name are connected throughout the entire project.
Hidden Pin
Hidden pins behave like power ports, connecting globally to nets of the same name
throughout the entire project.
Bus connectivity is created by the correct combination of net
labels and ports. Refer to the Schematic Design Objects chapter for
details on connecting with buses.
Negating Net Identifiers
There are 2 methods that can be used to negate (include a bar over the top of) a net
label, sheet entry or port. The first is to include a backslash character before each letter
in the net name (eg \n\e\t). The second method is to enable the Single \ Negation
option in the Preferences dialog, and include one backslash character at the start of the
net name (eg \net).
The Scope of Net Identifiers
The connectivity that is created when you generate a netlist for your multi-sheet project
depends on the scope of the net identifiers. The scope specifies how you want the net
identifiers to connect: local within the sheet; global across all sheets; sheet
symbol/port connections connect vertically between a port and the matching sheet
entry.
For example if net labels are local then a net labeled Clock1 on one sheet will not
connect to a net named Clock1 on another sheet. In this case the scope of net labels is
local.
Net labels can also be specified to be global net identifiers. If they are then all
instances of the net label Clock1 (on all sheets in the project) would be deemed to be
part of the same net. Two special net identifier objects are always deemed to be global:
power ports and hidden pins.
The scope of net identifiers is specified when you generate a netlist (Design Create
Netlist) or when you run an electrical rules check (Tools ERC).
The scope of net identifiers must be determined at the beginning of the project. The
different methods of structuring the project are described in the following topic.
126
Sheet_1
Sheet_1.Sch
Sheet_2
Sheet_2.Sch
Master.sch
C1
C1
net labels do
not connect
C2
RESET
ports connect
directly between
sheets
sheet_1.sch
C2
RESET
sheet_2.sch
This model of hierarchy represents a flat design. The master sheet and sheet symbols
simply provide a means of identifying all project sheets. Ports are the only method used
to link between sub-sheets, and this linking is horizontal. All circuit information is in the
sub-sheets.
127
Schematic Capture
Model 1 is called a flat design because all the sub-sheets are on the same level in the
project hierarchy. The top sheet includes the sheet symbols for all the sub-sheets, but it
does not include any wiring or circuitry.
In this model all the inter-sheet connections are made globally through ports, where
ports of the same name are connected throughout the project. Note that the net names
in the two sub-sheets are local, meaning that the net name connects only within each
sheet, not to other sheets in the project.
This model treats your design as though it were laid out on a single large sheet, that has
been cut into individual pages. While this approach works well for designs that are not
large, management of large designs can be awkward because it is difficult to trace a net
from one sheet to another. To simplify tracing a net in this style of design you can
include cross-sheet port references on the sheets.
Cross-Sheet Port References
You can include sheet-to-sheet port referencing on your schematic, in one of two ways.
The two options are in the Schematic Editor Reports menu and include:
Add Port References (Flat) select this to include a string next to each port, detailing the
sheet name and grid reference of all other ports of the same name in the project.
Add Port References (Hierarchical) select this to include a string next to each port,
detailing the sheet name and grid reference of the sheet entry that this port connects to.
Port references can be removed at any time by selecting Reports Remove Port
References from the menus. Port references are a calculated attribute of the port, they
can not be edited and are not stored with the design. Their location is determined by
the location of the port on the sheet and the position of the connecting wire.
When performing an ERC or using the synchronizer to update the PCB set the Net
Identifier Scope to Only Ports Global for this model.
128
Sheet_1
Sheet_1.Sch
Sheet_2
Sheet_2.Sch
Master.sch
C1
C1
C2
C2
RESET
sheet_1.sch
RESET
sheet_2.sch
This model of hierarchy represents a flat design. The master sheet and sheet symbols
simply provide a means of identifying all project sheets. In this model both ports and net
labels can be used to link between sub-sheets, and this linking is horizontal. All circuit
information is in the sub-sheets.
Model 2 is also called a flat design because all the sub-sheets are on the same level
in the project hierarchy. The top sheet includes the sheet symbols for all the sub-sheets,
but it does not include any wiring or circuitry. In model 2 the inter-sheet connections
are created by both net labels and ports.
Setting the Net Identifier Scope
When performing an ERC or using the synchronizer to update the PCB set the Net
Identifier Scope to Net Labels and Ports Global for this model.
129
Schematic Capture
Sheet_1
Sheet_1.Sch
Sheet_2
Sheet_2.Sch
RESET
RESET
ports connect to
sheet entries
Master.sch
C1
C1
C2
C2
RESET
RESET
net labels C1
and C2 are
local to each
sheet
sheet_1.sch
sheet_2.sch
This model of hierarchy represents simple hierarchy where each sheet appears once
in a design. Hierarchy is implemented by each sheet entry connecting to a port of the
same name on the sub-sheet below. Nets labels are local.
The third model is referred to as simple hierarchy. This model supports multi-level or
block design, where the design hierarchy can be represented by a tree-like structure. In
this model the sheet symbol represents a child sheet, which descends from the parent.
All the inter-sheet connections are vertical, the sheet entries in each sheet symbol are
connected to similarly named ports on the respective sub-sheets. The sheet symbol-tosheet symbol wiring is included on the parent sheet.
Model 3 is a true hierarchy because the inter-sheet connections follow the
hierarchy of the sheets themselves, and the design can be as many levels deep as
you like. This is the recommended model to use for a multi-sheet design.
Setting the Net Identifier Scope
When performing an ERC or using the synchronizer to update the PCB set the Net
Identifier Scope to Sheet Symbols/Port Connections for this model.
130
Control.Sch
RESET
RESET
Channel_B.Sch
C1
RESET
C2
Master.sch
RESET
ports connect to
sheet entries
C1
Channel_A.sch
C2
RESET
net labels C1
and C2 are
local to each
sheet
Control.sch
The fourth model is referred to as complex hierarchy. In this model multiple sheet
symbols reference the same sub-sheet.
To establish the complex hierarchy you must create a document shortcut for each
duplicate sheet symbol. Consider the figure above. Channel_A.sch was created and
referenced by the Channel_A sheet symbol. This sheet symbol was copied and pasted
on the schematic sheet, and the schematic filename field for the copy was changed to
Channel_B.sch.
The document icon for Channel_A.sch was then copied (right-click on the document
icon in the folder that contains the Channel_A schematic and select Copy from the
floating menu), and pasted as a shortcut (right-click in free space in the same folder
and select Paste Shortcut from the floating menu).
After creating the document shortcut icon, the hierarchy can be rebuilt by selecting
View Refresh from the Folder menus.
This model fits projects which are highly modular. An example would be a stereo
amplifier, where left and right channels are identical circuits.
Converting From Complex Hierarchy to Simple Hierarchy
Complex hierarchy is used during the schematic capture phase. When you are ready to
create the netlist you must flatten the design, converting it from complex to simple.
131
Schematic Capture
Select Tools Complex to Simple to flatten the design. Each child sheet that is used
more than once will be copied and renamed. You must also re-annotate the design to
assign a unique designator to each part.
Setting the Net Identifier Scope
Model 4 also uses the Sheet Symbols/Port Connections Net Identifier Scope when
performing an ERC or synchronizing (after converting the design from complex to
simple).
Model 5 - Using Sheet Parts to Create Hierarchy
1
F1
J1
C
J2
Filter In
1
2
In
Out
Filter Out
1
2
FILTER
B
2
3
3
My Filter.sch
In
Out
Filter Circuit.sch
1
132
2.
Model 5 also uses the Sheet Symbols/Port Connections Net Identifier scope when
creating a netlist or performing an ERC. Remember to enable the Descend Into Sheet
Parts option when creating a netlist or performing an ERC.
Summarizing Hierarchical Design
Models 3, 4 and 5 illustrate powerful ways to organize complex projects. In
hierarchical designs, sheet symbols can represent functional blocks, with the sheet
entries serving as connectors that tie circuitry on the sheet to the sub-sheet.
This hierarchical structure can be represented by thinking of the first sheet as the
parent and the sheet represented by sheet symbols as the child. In the terminology
of hierarchical design, we can say that the child is descended from the parent.
Extending this model, the child can have its own children, additional sheets that
descend, in this top-down structure, to lower and lower levels.
As shown above, hierarchy can be either simple, where each sheet is unique, as in
Model 3 or complex, where the same children (and its children) appear more than once
in the design a modular approach illustrated by Model 4.
133
Schematic Capture
134
If you are designing in a top-down fashion, where you start with the top sheet and lay
the design out as functional blocks using sheet symbols, you can use the Design
Create Sheet From Symbol feature to automatically create the sub-sheets.
When you select this menu item you will be prompted to select a sheet symbol. After
clicking on a sheet symbol the Schematic Editor will open a new schematic sheet with
the correct file name. The new sub-sheet will include ports to match each of the sheet
entries on the sheet symbol you selected.
Bottom-Up Design
If you are designing in a bottom-up fashion, where the sub-sheet already exists and you
need to create a sheet symbol to represent it, select the Design Create Symbol From
Sheet menu item (the parent sheet must be the active sheet). The Choose Document to
Place dialog will pop up.
Select the sheet you would like to base your sheet symbol on. You will then be asked if
you want to Reverse Input/Output Directions. After you answer this, you will be
presented with a sheet symbol floating on the cursor. This sheet symbol will have the
correct Filename to link it to the sub-sheet, and will have sheet entries to match each of
the ports on the sub-sheet.
To respond to the Reverse Input/Output Directions question - each of the ports on the
sub-sheet has an I/O type. Say one of the ports has an I/O type of output. If you
respond yes to the Reverse Input/Output Directions question then the sheet entry that
matches this port will have an I/O type of input (the I/O direction has been reversed)
and will be positioned on the left of the sheet symbol. If you respond no to the
Reverse Input/Output Directions question then the sheet entry that matches this port
will have an I/O type of output and will be positioned on the right of the sheet symbol.
135
Schematic Capture
136
Verification Options
A wide variety of basic electrical errors are reported. For example, floating input pins
on parts and shorts between two differently named power nets.
Setup Electrical Rules Check
When the Tools ERC menu item is
selected, the Setup Electrical Rule Check
dialog pops up. This dialog is used to
define the options, scope and parameters
of the electrical rules check. Options
include:
Multiple Net Names On Net
Reports sheets that have been assigned the same sheet number (Design Options
dialog, Organization Tab).
Duplicate Component Designators
Reports parts that have identical designator labels. This condition can occur when
the Annotate process launcher has not been used or when the Tools Complex to
Simple process launcher has not been used to flatten a complex hierarchical
project (project with duplicate sheets).
Bus Label Format Errors
Reports net labels attached to buses which are not legally formatted to reflect a
range of signals. Logical connectivity for buses can be assigned by placing a net
label on the bus. Generally, this net label will include all bus signals, e.g.
HA[0..19] represents nets named HA0, HA1, HA2, etc, to HA19.
Floating Input Pins
137
Schematic Capture
Suppress Warnings
This option generates a report and error markers for error conditions only.
Warning conditions (see Connected Pin / Sheet Entry / Port Rule Matrix below)
are ignored. This allows you to perform a quick ERC for all error-level problems.
Other Options
Create Report File
This option generates a text report listing all ERC report information.
Add Error Markers
This option places special error markers on the sheets, at the site of each reported
warning or error. Special facilities in the sheet editor allow you to jump from error
marker to error marker.
Descend Into Sheet Parts
This options treats sheet parts as hierarchical sheet symbols. A sheet part is a part
which is specified to behave like a sheet symbol, where its pins are associated with
ports on a sheet which descends hierarchically from the sheet part. The
descending sheet is defined in the parts Sheet Part path field. Refer to the
chapter Multi-Sheet Design and Project Management for more information.
138
The error report includes information to identify which sheet the error or warning
occurred on, and the location on the sheet. Where appropriate there will also be net
identifier and component designator information.
139
Schematic Capture
Resolving Errors
The Schematic Editor includes features to assist in the
process of resolving the errors and warnings detected
by the Electrical Rule Check.
Using the Browser to Jump to Errors
The lower half of the Schematic Editor panel includes
a Browser. This browser can be used to browse through
your project for any type of primitive, including error
markers.
In the Browser, set the Browse type to Error Markers.
Select an error in the list and press the Jump button to
have the error marker presented in the center of the
active window.
Note that a description of the error condition appears
on the Status Line, alleviating the need to switch back
and forth to the error report. Pressing the Text button in
the Component Browser will pop up a dialog which
can also be used to examine the description of the error
condition.
Cross Probing
The Schematic Editor supports cross probing to and from other open documents. Cross
probing is particularly useful when you want to go from the schematic to the error
report. Simply click on the cross probe button, then click on the error marker. The
warning or error will be highlighted in the error report.
Typical Causes of Errors
Errors will typically be due to the one or more of the following:
drafting errors - wires overlapping pins, lines being used instead of wires, the
design being wired with the snap grid off so the wire ends dont touch the pin ends
or wires / buses finishing under a port instead of touching the end of the port.
syntax errors - net identifiers with spelling mistakes or buses incorrectly labeled.
component errors - component pins placed the wrong way around on the
component or pins with an inappropriate Electrical Type.
design errors - a design condition that the ERC detects as an error, such as two
output pins connected.
140
Tracing Errors
To resolve an error, start at the error marker, read the error condition on the Status line
and consider the possible causes as described above. If there are no problems
at the error marker, trace the net through the design. Use the Up/Down
Hierarchy button on the main toolbar to assist tracing a net through a multisheet design. Use the Status line for information on what to do after selecting
one of these tools.
A floating input pin in essentially an open circuit condition. While this
condition is reported at the input pin, the break could be anywhere between the
driving output pin and the floating input pin. If there is nothing wrong at the input
pin, trace the net back to the output pin, checking along the way for the break.
If all the nets of a bus are reporting an error, look for the problem at the bus
level, perhaps a typing mistake in a bus port or a missing net label, perhaps a bus
line finishing under a port (which may not be visible). Click on a bus to focus it to
see if it ends under a port.
141
Schematic Capture
Reassign the designators for all parts in the project. This option does not re-use any
currently assigned designators.
? Parts
Assign a designator to all parts which currently have a designator of R?, C?, U?, etc.
Reset Designators
sets all designators back to R?, C?, U? and so on. Use this if you wish to renumber all
components, starting at 1.
If you have used complex hierarchy in your design you must first convert the design to
simple hierarchy, and then re-assign the designators. Refer to the topic, Model 4 Complex Hierarchy, in the chapter, Multi-Sheet Design and Project Management, for
more information on working with complex hierarchy.
Grouping Parts into the Same Physical Component
To know how to identify and group multi-part components, say, how to package two
particular op amps into the same physical component, use the Group Parts Together If
Match By fields in the Annotate dialog. The default is to only group by the Part Type
field, however combinations of any of the sixteen part fields and eight library text
fields can also be used to identify a group.
For the example of two op amps that must be grouped, edit each one and enter a string
into one of the part fields that identifies them. For example, you might enter Stage1
into Part Field 16 for both the op amps. When you perform the annotation, enable Part
Field 16 in the Group Parts Together If Match By check boxes this will ensure that
these two op amps are grouped into the same physical component.
142
Positional Annotation
Schematic components are annotated based on their position on the sheet. The position
of each component is determined by the location of its designator within the reference
zones around the edge of the sheet. To change the number of sheet border regions
enable the Use Custom Style option in the Document Options dialog, and change the X
Ref Region Count and the Y Ref Region Count settings.
Use the options in the Annotate dialog to control the annotation process
143
Schematic Capture
The Suffix options allow you to repeat the range for multiple sheets. Both alpha
suffixes (A, B, C, etc) and numeric suffixes (_1, _2, _3, etc) are supported. Use these
annotation options if you are annotating a multi-channel design and you want common
in-channel numbering across all channels, for example, R1_1, R2_1, C1_1, etc, for
channel 1, then R1_2, R2_2, C1_2, etc, for channel 2, and so on.
Excluding Components from the Annotation Process
Components can be excluded from the annotation process by selecting them. Enable
the Ignore Selected Parts option in the Annotate dialog to exclude these parts from the
annotation process.
Perform an ERC
You should perform an Electrical Rules Check as a normal part of the design cycle.
This will detect both drafting and electrical problems with your design, and will help
prevent problems occurring later in the design process. Read the Design Verification
chapter for tips on performing an ERC and resolving the errors.
144
145
Schematic Capture
Update PCB to
Update Schematic to
146
Net Identifier Scope this option defines how the sheet-to-sheet connectivity is created
in a multi-sheet design. If the sheet symbols in your design use sheet entries to connect
to the sub-sheets below, then you should choose Sheet Symbol/Port Connections. If
your design uses nets or ports to connect directly between sub-sheets, you should
choose one of the other options. For more information on sheet-to-sheet connectivity
refer to the chapter Multi-Sheet Design and Project Management.
Assign Net to Connected Copper if this option is enabled the net attributes of all the
routing (tracks, vias, etc) is checked and updated to match the net attribute of the pads
that the routing connects to. Enable this if you have modified the connectivity on the
schematic. Once you have updated the PCB you can use the DRC error markers to find
any routing that must be updated. This Assign Net to Connected Copper action can be
performed at any time in the PCB Editor, select Design Netlist Manager to do this.
Components
Delete Components Automatically remove any components that are present in the
target document, but have no matching component in the reference document.
147
Schematic Capture
Typically you would use this when you have made a large number of design changes in
the schematic, and you want to automatically remove any redundant components in the
PCB.
Update Footprints If this option is enabled then changes to footprint information are
transferred from the reference document, to the target document.
Rules
The Synchronizer can transfer PCB layout information from the PCB Layout directives
in the schematic, to design rules in the PCB. Enable the Generate PCB Rules option to
do this. There are two modes for this feature:
Only add missing PCB rules new rules are created if there is no rule defined for this
net, existing rules are updated to match the settings in the PCB Layout directive.
Strictly follow Schematic directives new rules are created if there is no rule defined
for this net, existing rules are updated to match the settings in the PCB Layout
directive, any other net scope rules of this type are removed.
Refer to the topic, Transferring PCB Layout Information later in this chapter, for more
details on how the PCB Layout directives map to design rules.
Classes
At the bottom of the Update dialog there is a button labeled Preview Changes. If you
would like to examine what changes the Synchronizer is about to perform, before it
carries them out, press this button.
The Changes Tab will appear in the Update dialog, listing each change that will be
made to the target document. Note that you can show just the errors by enabling the
option at the bottom of the dialog. If necessary, you can delete a macro by rightclicking on the macro in the list, and selecting Delete from the floating menu. Press the
Report button for complete details of each macro in the change list.
148
Preview the changes before they are applied, and check for errors
149
Schematic Capture
Design Rule
Track Width
Width Constraint
Via Width
Topology
Routing Topology
Priority
Routing Priority
Layer
Routing Layers
150
Matched and unmatched components are listed in the Confirm Components Associations dialog
The Synchronizer does this initial match by designator, always check that the matches
are correct. When you click on the Apply button the matched components will be given
a matching ID.
If the Update is from schematic to PCB, the unmatched reference components are
added to the PCB and the unmatched target components are either removed or
reported, depending on the Components option in the Update dialog.
If the Update is from PCB to schematic, the unmatched reference components are
listed in the Preview Changes Report, and the unmatched target components are either
removed, or reported, depending on the Components option in the Update dialog.
151
Schematic Capture
A macro is attempting to: add or remove a node; remove a net; or change a net name
when that net can not be found in the PCB netlist.
Component not found
A macro is attempting to: add or remove a node when the component designator is
incorrectly specified in the macro or the component can not be found in the PCB
netlist; remove a component; or change a footprint, designator or comment when the
component can not be found in the PCB netlist.
Node not found
A macro is attempting to: add or remove a node from a component which does not
have that pin; or remove a node which does not exist in the specified net.
Net already exists
A macro is attempting to: add a net name when a net with that name already exists in
the PCB netlist.
Component already exists
A macro is attempting to: add a component when a component with that designator
already exists in the PCB netlist.
New footprint not matching old footprint
A macro is attempting to: change a component footprint when the used pins on the old
footprint do not match the used pins on the new footprint. This can occur if the new
component has fewer pins than the old, or if the pin numbering in the (which comes
from the schematic component pin numbers) is different to the pin numbering on the
PCB component.
152
A macro is attempting to: add a new component or change a component footprint when
the specified footprint could not be found in any of the libraries in the current library
list and no alternative library reference could be found in the Cross Reference file
(ADVPCB.XRF).
Alternative footprint used instead (warning)
A macro is attempting to: add a new component or change a component footprint when
the specified footprint could not be found in any of the libraries in the current library
list. An alternative library reference was found in the Cross Reference file
(ADVPCB.XRF) and this component will be loaded from one of the libraries in the
current library list. Always confirm that the alternative footprint is appropriate before
executing a macro with this warning.
When a macro attempts to load or change a component footprint which can not
be located in any of the libraries, it then uses the component Comment to look-up
the Cross Reference file (Advpcb.XRF). The Cross Reference file lists components
by their type, against any appropriate footprint(s) for that component. For example,
if the component U1 was a 74LS00, but you had forgotten to include the footprint,
when the macro to add this component was created it would look up 74LS00 in the
XRF file. 74LS00 has DIP14 as a footprint, which would be loaded from one of the
libraries in the current library list.
Summary
Most problems with passing a schematic design to the PCB Editor generally fall into
two categories.
1.
2.
New footprint not matching old footprint the cause is usually that the pin
numbering on the schematic component differs from the pin numbering on the
PCB footprint.
Schematic libraries contain specific components and devices. The PCB libraries
contain generic footprints, which can belong to various specific components each
having different pin assignments.
For example, a transistor shape can represent various combinations of E, B and
C, each of which must be assigned to the correct pin number in the PCB Editor.
Diodes are a similar case, with pins often named A and K in the schematic.
You will need to either, modify the PCB footprint pin numbers to match the Schematic
pin numbers, or change the schematic component pin numbers to match the PCB
footprint.
153
Schematic Capture
154
Press
the
Properties in the
Printer
Setup
dialog to set the
portrait/landscape
mode.
Selecting a Printer
The available output device options will include those that have been installed using
the Windows Control Panel (see your Microsoft Windows Users Guide for details).
These devices are supported by drivers delivered with your Windows software, or by
the device manufacturer. You should note that new and updated drivers are released for
both new and existing devices on a regular basis. For the latest information about print
drivers, contact Microsoft Windows support or the device manufacturer.
Rotation of fonts is not supported for all printers, and the substituted fonts will
only be used if the text on your schematic is in a standard horizontal (or landscape)
orientation, and within the size capability of the printer. PostScript printers support
rotation of fonts at any angle.
Batch Type
When using this option from the Schematic Editor, this option prints either a single
sheet or a batch of all open sheets (including all opened projects). Using this option
from the Library Editor to choose between printing a single component (from the
window that is the current focus) or all components in the current library. The latter
option allows you to print out an entire component library in a single operation. When
you choose this option, all representations of a component are printed, including each
parts DeMorgan and IEEE equivalents, when applicable. Component description
fields are also added to the sheet. This option works with all other print/plot options,
including scaling, and so on.
Color mode
Two choices are available, Color or Monochrome. If you select color the schematic
screen color assignments are used to assign colors to the print or plot, based upon the
options available in the print or plot driver. Monochrome PostScript or HP-PCL
devices will print grayscale representations of color. The number of gray levels, and
the assignment of color to grayscale depends upon the driver and device. The
Monochrome option prints images in solid black/white only. No dithering or grayscale
support is provided. This option is appropriate for low resolution dot matrix and single
pen plotting.
Margins
You have total control over margins, limited only by the margin limits built into
printers or plotters that do not allow printing to the sheet edge (e.g., PostScript
printers). When used with the Scale and Scale to Fit Page options (described below),
this option will size the print area to fit as closely within the margins as allowed by the
aspect ratio of the print area. To do this set all the Margin fields to zero and press the
Refresh button. The Margins will automatically be set at the minimum for the currently
selected printer.
155
Schematic Capture
The print or plot will be expanded or contracted to fit within your pre-defined margins,
on the page size selected up for the target printer. The plot will be shrunk or expanded
to use the available space, keeping the correct aspect ratio.
When you use scale to fit you can set the margins to zero, the printer driver
will automatically cater for the no-print zones.
Tiling
When the size of the sheet or library document to be printed exceeds the print area
available on the target device, the Schematic Editor will automatically cut the print into
two or more sheets, or tiles. The sheets are tiled such that the correct margin is
maintained at the outer edge of each sheet. You can preview the result of tiling by
pressing the Refresh button.
It is often possible to reduce the number of sheets required to tile a print, by
changing the printer page orientation and adjusting margins. Use the Preview view
in the Printer Setup dialog to help work out the best match.
Printer Properties
Pressing the Properties button opens the Print Setup dialog, where options for the target
device are available. Depending upon the device, options include: sheet
size/orientation, the printer tray to use, and so on. From this dialog you will have
access to the printers own setup dialog.
Refresh Button
After changing any of the setup parameters you must press the Refresh button to
refresh the preview display.
Printing
Once all options have been entered, Click Print to proceed with the print or plot, OK to
save all the set-ups or Cancel to leave the Printer Setup dialog without saving the new
parameters. As the print or plot is generated (either directly to the output device, or to a
156
filename) the current page and layer being printed is displayed in a dialog. If printing
or plotting to a file, you will be prompted to supply an Output File Name.
PostScript Printing Issues
Some PostScript printers will time out and discard the current data when they dont
receive the end of page marker within a specified time. This can cause problems where
you seem to be missing pages from your plots. If you experience this problem using a
PostScript printer or any other printing device then you should go to the Control Panel,
select the printer icon, select the printer and click the Configure button. Change the
Transmission Retry to 500 seconds, or some other large number. This will allow the
printer sufficient time to catch up before the Print Manager gives up.
If you find your printout is incomplete, say all the components are there but not all the
wires, there may be insufficient memory in the printer. Laser printers must capture the
entire image in memory before printing it, so if does not all fit in memory, then the
image in memory is printed as is.
157
Schematic Capture
Cross Reference
This ASCII text report gives a listing of part designators, type and the sheet location
(filename) for each part. The report is named <FILENAME>.XRF.
Project hierarchy
This ASCII text report gives a listing of project files for the active design. The report is
named <FILENAME>.REP.
Netlist Compare
This ASCII text report lists the differences between two netlists. Use this report to
document changes made to a project from one revision to another. This feature works
with Protel, Protel 2 and Tango format netlists. Among other details, the report lists
matched nets, partially matched nets, extra nets in the first or second netlist, total nets
in each netlist. The report is named <FILENAME>.REP.
158
Linking to Databases
Linking to Databases
The Schematic Editor includes two powerful and flexible methods of linking to
external databases.
Hot linking of component part fields to external databases. This feature allows
mapping of external database information directly to the component part fields on
the schematic sheet.
Database import and export features. These allow you to export and import the
value of any attribute, of any object, placed in the Schematic Sheet Editor.
159
Schematic Capture
To establish the links between a part field and a database, click to select the Part Field
in the Linking Setup dialog and press the Configure Button. This will pop up the
Database Linking for Part Field X dialog.
Note that the title bar of the Database Link dialog will also say Active or
Inactive, indicating if this link is currently enabled in the Linking Setup dialog.
Specify the Database
The first step is to select the database you wish to link to. Enter the Database Filename
(including the full path), or use the browse button to locate the database. Supported
database formats include dBase III and dBase IV.
Select the Database Field
Once you have selected the database the Schematic Editor will read in all the available
fields. The next step is to choose which field in the database you wish to map into the
Part Field you are configuring. To do this select the database field in the Update Part
Field With drop down list. In our example we are mapping MANUFACTURER to Part
Field 1.
160
Linking to Databases
The purpose of mapping the key fields is to establish how to identify the desired record
in the external database. For example, consider a database that contains a list of
components, with each component record including details like manufacturer, price,
availability, etc. In our example we are using the PARTNAME in the database as the
record identifier. This field name is then mapped to the schematic components library
reference, so that when their contents match, the link is established. Once the link is
established between a record in the database and a component part field, the contents
of any field in that record can be extracted from the record and loaded into the
component part field.
161
Schematic Capture
162
Linking to Databases
163
Schematic Capture
A default name will be provided for each database you export, based on the primitive
selected.
Selecting the Primitives
The Primitives list box provides access to each of the primitives (or objects) available
in the Schematic Editor. The desired primitives are selected and added to the Selected
Primitives list box.
There is a
Once a primitive is added you then select which attributes of
separate database
that primitive you would like to export in the Attributes list
created for each
box. Continue with this process for each of the primitives you
primitive selected.
require; select the primitive, then select the attributes for that
primitive.
Each type of attribute will become a field of cells in the database, which must be
identified. A field name is automatically assigned for each type of attribute when you
export to a database.
164
Linking to Databases
Selecting the Attributes
For each primitive you select, you choose which attributes of that primitive are to be
exported.
When exporting, you must include the appropriate location attributes if you
intend to later import the database. Without these location identifiers, the import
feature will not be able to match the database fields with each instance of the
primitive on their respective sheets.
Setting the Scope
Once the primitives and their attributes have been selected, set the export scope. The
Schematic Sheet Editor has three options for the scope, the Current Sheet, the Current
Project or All Open Sheets.
Importing from a Database
Selecting File Import from Database will pop up the Import from Database dialog.
Select the primitive type that you wish to import, then Browse to locate and select the
database file. After setting the Scope and the Update Action, you are ready to Map the
Database fields to the Objects Attributes.
165
Schematic Capture
To establish what you wish to extract you map the Schematic Objects Attributes to the
Database Fields. To identify where it is to go you set the Scope and check the Key
Attributes.
Mapping the Attributes
In the Database Fields list box select the field you wish to import from. Then select
which of the Schematic Objects Attributes this field is to map to, and press the >>
Map button. If the contents of that field can be mapped to the chosen attribute, they
will appear in the Mapped Attributes list box. If the field chosen in the database cannot
be mapped to that attribute of the object, a dialog will pop up warning that they are not
the same Type. To be the same type, they must both be integers, or real numbers, or
ASCII values, etc.
Setting the Key Fields
To identify how to locate the target object on a sheet, key field(s) must be selected.
Each attribute in the Mapped Attributes list box has a check box next to it. The check
box specifies if an attribute is to be used as a key field.
In the Mapped Attributes list box, select an attribute which uniquely identifies an
instance of that object and check its check box. Examples of attributes that are
appropriate for key fields are X location, Y location, Document File Name and Vertex
Array. You must select the appropriate key attributes to identify each instance of the
object for the scope of the import. If the import scope is current sheet, X location and
Y location (or vertex array) will be sufficient. If the scope is over more than one sheet,
include the Document File Name attribute as well.
Import Options - Scope
As with exporting, the scope of the import includes the Current Sheet, the Current
Project and All Open Sheets. The Only Selected Items check box allows you to further
narrow the scope.
Import Options - Action
There are three ways the data being imported from the database can be used. The data
can be:
imported as new objects - use this option to create a new schematic from the
information in the database.
used to update existing objects - use this option if you are updating an existing
design.
update existing objects if they exist and add new objects if they do not - use this
option if you wish to update an existing design and add new objects to the sheet.
166
3.
Locate the DSN file in the Import dialog, and click the
Open button.
4.
It is a good
idea to remove any
schematic libraries
from the current
library list before
importing
and
translating a DSN
file.
Orcad does not store components with the actual schematic sheets, they are held in an
internal design library, called the Design Cache.
So that you do not need to translate this cache into a Protel library first, and then make
it available in the Protel 99 SE Schematic Editor when the sheets are translated, the
Design Cache is automatically translated into a schematic library. Once this is done,
the database that you are working in is added to the Schematic Editor library list,
making this new library (the translated design cache) available during the sheet
translation process.
167
Schematic Capture
Sample design shown in Orcad, and translated in Protel 99 SE. Protel 99 SE creates
the hierarchy that exists in the Orcad design. Note the original design file
(Simple.Dsn) is included inside the Protel Design Database. You can re-translate the
entire design at any time by double-clicking on the icon.
Each Orcad schematic folder is translated to a Protel schematic sheet, with a sheet
symbol for each Orcad schematic page within that schematic folder.
Each Orcad schematic page is translated to a Protel schematic sheet.
Hierarchical pins are translated to Sheet Entries.
Hierarchical ports are translated to Ports.
The connectivity between Orcad schematic pages in an Orcad schematic folder is
created with off-page connectors. This horizontal connectivity is translated to vertical
connectivity in Protel 99 SE in the following way:
168
Use the Sheet Symbol/Port Connection Net Identifier Scope for ERC and PCB
Design Synchronization.
The location of user-defined symbols can not be exactly determined, check the
location of all user-defined symbols after translating.
Pictures are not imported, a red rectangle will mark their location.
Bus pins are not supported in Protel 99 SE, these are translated into normal pins
and a warning is issued.
Orcad supports the connection of buses with different names, this is not supported.
Full support for DWG/DXF import/export to the Schematic editor, all versions
from 2.5 to 2000.
Component to block and block to component translation.
Import scaling option.
Option to include the schematic template during export.
Use the Help button and Whats This help in the dialogs for more details on the
import/export options.
Creating a Netlist
Netlists are common to most electronics design environments. Simply stated, a netlist
is a summary of all the components and connections (or networks) that comprise a
circuit.
Generally, netlists are simple ASCII text files. The typical netlist format includes
descriptions of components, such as the designator and package type, combined with
the pin-to-pin connections that define each net. Loading a netlist into a printed circuit
board layout package automates many of the tedious and error prone operations
inherent in the design process.
Netlist formats
Netlists come in many different formats, but are usually generated as ASCII text files
and contain the following types of information:
1) Descriptions of the components in the circuit.
2) A list of all pin-to-pin connections in the circuit.
169
Schematic Capture
3) Some netlist formats can include additional information in component text or net
text fields. This information can be used to link netlists with simulators and board
layout in ways that arent covered by netlist hierarchy and connectivity. Examples
include data for simulation and PCB layout.
Some netlist formats combine the component and connection data in a single
description. Others, including the Protel formats, separate the two sets of data into
separate sections.
As straight-forward text files, netlists are readily translated into other formats using a
simple, user-written program. Netlists can also be created (or modified) manually using
a simple text editor or word processor.
If you intend to manually edit a netlist, make sure that you save the results in an unformatted or text only form, as hidden control characters can render the netlist unreadable by the target software.
Generating the Netlist
You can generate a netlist for a project at any time while using the Schematic Sheet
Editor. Select the Design Create Netlist (shortcut: T, N) menu item, the Netlist Creation
dialog will open. Options include:
Netlist Output Format Options
The following table lists the available netlist output format options.
Protel Hierarchical
EEsof Touchstone
Algorex
Protel Wirelist
FutrureNet
AppliconBRAVO
Racal Redac
Hilo
AppliconLEAP
Scicards
Integraph
Cadnetix
Spice
Mentor BoardStation 6
Calay
Spice Hierarchical
Multiwire
Calay90
Star Semiconductor
Orcad PLDnet
Case
Tango
Orcad - PCB II
CBDS
Telesis
PADS Ascii
ComputerVision
Vectron
PCAD
EDIF 2.0
VHDL
PCAD NLT
EDIF 2.0 Hierarchical
Xilinx XNF
Protel
EEDesigner
Protel 2
EEsof Libra
Net Identifier Scope
The Net Identifier Scope defines how the inter-sheet connectivity is created. There are
essentially two ways the inter-sheet connectivity can be created, either vertically (from
a sheet entry down to a matching port), or horizontally (directly from a port or net label
to a matching port or net label). It is important that the Net Identifier Scope is set to
suit the structure of the design.
170
Refer to the chapter, Multi-Sheet Design and Project Management, for more
information on how to structure a multi-sheet design. The three Net Identifier Scope
options are:
Net Labels and Ports Global
With this option, net labels are assumed to apply to all sheets in a project. In other
words, nets are global and each instance of a net label and port is deemed to be
connected to all other identically named net labels and ports (note ports do not
connect to net labels and net labels no not connect to ports). This model works like
Protel Schematic 3 (DOS), where net labels are always global to all project sheets.
This option creates the inter-sheet connectivity horizontally.
Only Ports Global
This option treats net labels as local only, only connecting within each sheet. Intersheet connections occur through identically labeled ports. This model works like
the Orcad SDT flat project model. This option also creates the inter-sheet
connectivity horizontally.
Sheet Symbol / Port Connections
This option makes inter-sheet net connections only through sheet symbol entries
and sub-sheet ports. Ports are deemed to be connected only to identically named
sheet entries in their sheet symbols on parent sheets. This model works like the
Orcad SDT hierarchical project model. This option creates the inter-sheet
connectivity vertically.
Sheets to Netlist
Add the sheet number (Design Options dialog, Organization Tab) to each net. If
you have selected one of the net identifier scopes where net labels are local, this
option adds the sheet number to the net, ensuring that each net in the netlist is
unique. This option can also be used as an aid in debugging netlist problems,
where nets should be connecting across sheets but are not. By appending the sheet
number you can identify which sheet a net is isolated on.
Descend Into Sheet Parts
Enabled this option when using Sheet Parts. Sheet Parts are parts which are
specified to behave like a sheet symbol, where the pins connect to identically
named ports on a child sheet. The Sheet Path field in the Edit Part dialog is used to
identify the child sheet. When this option is enabled, the netlist will include the
171
Schematic Capture
sheets hierarchically below the sheet parts. Refer to the topic, Model 5 - Using
Sheet Parts to Create Hierarchy in the chapter, Multi-Sheet Design and Project
Management, for more details on using this feature.
Protel Netlist Formats
If the netlist is going to be loaded into the PCB Editor, designators and package
descriptions (footprint) are limited to 12 alphanumeric characters. Comments can be up
to 32 characters long. Net names can be 20 characters. Pin numbers in netlists are
limited to four alphanumeric characters. No blank spaces may be used within these
strings.
Any number of components or nodes can be included in a Protel or Protel2 netlist,
limited only by available memory.
Protel Netlist
The standard Protel netlist format is a simple ASCII text file, split into two sections.
The first part of a Protel netlist describes each component:
[
U8
DIP16
74LS138
(blank)
(blank)
(blank)
]
J21-1
U5-5
)
This format is similar to the standard Protel netlist, with the addition of several fields
that include schematic part fields (used for documentation and simulation) plus layout
directives which provide net attributes. Advanced PCB version 2.0 or later load this
format.
PROTEL NETLIST 2.0 The netlist header.
[
Begin component delimiter.
DESIGNATOR
(Each field is first named)
172
U1
Component designator.
FOOTPRINT
DIP20
Library pattern (footprint).
PARTTYPE
AmPAL16L8
Part Type field (when placed).
DESCRIPTION
Description
Description field from schematic.
PART FIELD 1
(Field name can be defined in schematic)
Part Field 1
Part fields (1-16) from schematic.
(etc.)
LIBRARYFIELD1
Library Part Field 1
Library fields (1-8) from schematic lib.
]
End component delimiter.
(
Begin net delimiter.
VCC
Net name.
U1-20 AMPAL16L8-VCC POWER
First node in net.
Includes: Component -pin designator.
(single blank space)
Part type-Pin name.
(single blank space)
Pin electrical type.
U2-14 4001-VCC POWER
Last component-pin node in net.
)
End net delimiter.
{
Begin Layout Directive delimiter.
TRACK
(Each field is first named).
10
Size of tracks (mils).
VIA
50
Diameter of vias (mils).
NET TOPOLOGY
SHORTEST
Net Topology for routing.
ROUTING PRIORITY
MEDIUM
Routing priority.
LAYER
UNDEFINED
Routing layer.
}
End Layout Directive delimiter.
173
Schematic Capture
For schematic symbols use the 2000 to 7000 series Xilinx libraries. These libraries are
in the Xilinx.Ddb Library Database.
Creating a Mixed-Mode Design
The top sheet of a mixed-mode design must be a schematic sheet. A VHDL source file
is referenced from a Sheet Symbol in the same way as a schematic sheet, by entering
the filename in the Sheet Symbol Filename field.
The top sheet of the VHDL design can also be referenced from the physical
component on the PCB schematic enter the name of the VHDL top sheet in the Sheet
Path Field of the physical component.
How the Design is Netlisted
An Entity declaration is created for the top sheet in the design, and the circuitry within
the sheet is translated into the matching Architecture declaration. Each component and
sheet symbol on the sheet becomes a VHDL component within that architecture
declaration.
This process is then repeated for each sheet symbol/sub-sheet on the top sheet an
Entity declaration is created for the sheet symbol, and the components and sheet
symbols on the sub-sheet become VHDL components within the matching Architecture
declaration.
Netlisting the Design
To create the netlist select Design Create Netlist from the Schematic Editor menus. In
the Netlist Creation dialog set the Output Format to VHDL. The Sheets to Netlist list
has three options:
Active Sheet netlist the active sheet only.
Active Project open and netlist all sheets that are in the project hierarchy.
Active Sheet plus sub-sheets open and netlist all sheets below this sheet (but none of
the sheets above). Use this option if you design is part of the entire PCB schematic.
174
Section 4
Mixed-Signal Simulation
Mixed-Signal Simulation Feature Highlights
Getting Started with Simulation
Setting up and Running a Simulation
The Waveform Analysis Window
Voltage and Current Sources
Components and Models
Working with Circuits that will not Simulate
SPICE Variables and Analog Options
Digital Simulation
177
180
183
211
219
235
252
256
262
175
Mixed-Signal Simulation
176
This section of the Protel Designers Handbook explains how to perform mixed-signal
simulations of analog and digital designs. The Circuit Simulator is tightly integrated
with the Schematic Editor, once the design is complete you can simulate directly from
the schematic sheet.
As you read this section you will find all the information you need to get up and
running with the simulator; learning how to use the features required to prepare your
circuit, perform a variety of types of simulation analyses, and plot and manipulate the
result waveforms.
Capture your Design
The first step in being able to simulate a design is to capture the circuit in the
Schematic Editor. To be able to simulate the design The Circuit Simulator requires
special information about each circuit element, such as the simulation model to use,
what type of component it is, and so on. This information is stored in the simulationready schematic symbols libraries.
177
Mixed-Signal Simulation
The Circuit Simulator is a true mixed-signal simulator, meaning that it can analyze
circuits that include both analog and digital devices. However, due to the complexity of
digital devices it is generally not practical to simulate them using standard, non-eventdriven, SPICE instructions. For this reason, the simulator includes a special descriptive
language that allows digital devices to be simulated using an extended version of the
event-driven XSPICE. The digital devices included in the simulation library are
modeled using the Digital SimCodeTM language, a proprietary language created
specifically for use with the Protel Circuit Simulator.
Support for Device Manufacturers Models
The simulator supports models from model providers such as Motorola, Texas
Instruments and others, who deliver pure SPICE models for maximum compatibility
with analog simulators. The simulator can read these models directly, providing true
SPICE-compatibility.
Comprehensive Model Libraries
178
Development Center, which specializes in developing libraries for all Protel products.
These libraries are available from the Protel web site, www.protel.com.
Simulation Limits
The Circuit Simulator allows unlimited circuit-level analog simulation and unlimited
gate-level digital simulation. The circuit can be single or multi-sheet, and the circuit
size is only limited by the amount of RAM you have in your system.
Supported Analyses
The Circuit Simulator supports many types of analyses, including AC small signal,
Transient, Noise and DC transfer. Beyond these basic analyses there is also Monte
Carlo analysis, parameter and temperature sweeping, and Fourier analysis.
Mathematical Functions and Waveforms
As part of the analysis of your design you may want to perform a mathematical
operation on one or more of the simulation signals, and view the resultant waveform.
This feature is an integral part of the simulators waveform viewer, you can construct a
mathematical expression based on any signal available in the simulated circuit.
Dependent Sources
The Circuit Simulator includes linear and non-linear dependent sources. These can be
used to define black-box circuit behavior.
Linear dependent sources
These devices allow you to define a voltage or current equation using a variety of
functions (log, ln, exp, sin, etc), based on any voltage(s) in the circuit.
179
Mixed-Signal Simulation
Example Circuits
The Circuit Simulator includes a large number of example circuits which demonstrate
the various analysis types, as well as showing how the various types of devices can be
used.
Refer to these examples as you explore the various Setup options for the simulator. As
you experiment with the examples refer to the chapter, Setting Up and Running a
Simulation, for information about how to configure each type of analysis.
Check
out
the
example
designs
in
the
folder
\Program Files\Design Explorer 99 SE\Examples
180
Scale
factor
Represents
10 12
10 9
Meg
10 6
10 3
mil
25.4 6
10 -3
u (or )
10 6
10 -9
10 12
10 15
1000, 1000.0, 1000Hz, 1e3, 1.0e3, 1KHz, and 1K all represent the same number, 1000.
181
Mixed-Signal Simulation
Refer to the topic Specifying the Simulation Data that you want Collected, Displayed
and Stored in the Setting up and Running a Simulation chapter for more information
about defining what is displayed.
Running a Simulation
Once the analyses have been configured you are ready to run a simulation. This can be
done by pressing the Run Analyses button in the Analyses Setup dialog, by selecting
Simulate Run from the menus, or by pressing the Run button on the Simulation Tools
toolbar.
The simulation progress is displayed on the status bar. If an error is detected during
netlisting the simulation is stopped and a message box appears, asking if you would
like to view the error file. Review this file and correct any errors. For more information
refer to the chapter, Working with Circuits that will not Simulate.
182
The Status bar shows the progress, and the waveform window displays the results.
Once the simulation is complete the results will be displayed in the Simulation analysis
window. This window includes a Tab at the bottom for each type of analysis that has
been performed. Refer to the chapter, The Waveform Analysis Window, for more
information on working with the waveforms.
183
Mixed-Signal Simulation
184
SimView Setup
When you run a simulation the results are displayed in the SimView Waveform
Window. In the Waveform Window you can rearrange the display to suit your needs;
you can change the scaling, add different nodes, remove existing nodes, and so on.
When you close the Simulation Data File (.SDF), the setup information is saved with
the file.
By default the display setup is retained, so that you can re-open a simulation data file
and the results will be as you left them. If you re-run the simulation and you want it to
display the Analyses and nodes that you have just setup, change the SimView Setup
from Keep last setup, to Show active signals.
Transient Analysis
A Transient analysis generates output like that normally shown on an oscilloscope,
computing the transient output variables (voltage or current) as a function of time, over
the user-specified time interval. An Operating Point analysis is automatically
performed prior to a Transient analysis to determine the DC bias of the circuit, unless
the Use Initial Conditions option is enabled. Refer to the topic When to Use the Initial
Conditions Option later in this topic for more information on this option.
185
Mixed-Signal Simulation
187
Mixed-Signal Simulation
188
At least one Source in the circuit must include a value in the AC Part Field. This
Source is replaced with a sine wave generator during simulation which has its
frequency swept from Start Frequency to Stop Frequency, stepping in increments
defined by Test Points and the Sweep Type.
Set the Sweep Type to define how the test points are determined. The Sweep options
are defined below:
Sweep Option
What it Means
Linear
Decade
Octave
Set
the
AC
amplitude to 1 so that
the output variables
are relative to 0 dB.
189
Mixed-Signal Simulation
190
DC Sweep Analysis
The DC Sweep analysis generates output like that of a curve tracer. It performs a series
of Operating Point analyses, modifying the voltage of a selected source in pre-defined
steps, to give a DC transfer curve. You can also specify an optional secondary source.
A DC Transfer analysis each curve shows the output voltage, as the input
voltage (primary source) is stepped from 0.7V to 1.5V. The supply voltage
(secondary source) is stepped to give the set of curves.
191
Mixed-Signal Simulation
Source Name is the name of the independent power source in the circuit that is to be
stepped. The start, stop and step values define the sweep range and resolution. The
primary source is required, and the secondary source is optional. If a secondary source
is specified, the primary source is stepped over its entire range for each value of the
secondary source.
Running a DC Sweep Analysis
1. Set up the DC Sweep analysis parameters as described above.
2. Enable the DC Sweep Analysis option in the General Tab of the Analyses Setup
dialog (select Simulate Analyses Setup).
3. After enabling this option you can either press the Run Analyses button at the
bottom of the dialog, or select the Simulate Run menu item to start the simulation
process.
The simulation progress is displayed on the status bar. If an error is detected during
netlisting the simulation is stopped and a message box appears, asking if you would
like to view the error file. Review this file and correct any errors. For more information
refer to the chapter, Working with Circuits that will not Simulate.
192
Once the design is netlisted the waveform window will appear, displaying the
simulation results as they are calculated.
You can then view and measure the transfer curves from the waveforms in the analysis
window that is displayed. Refer to the chapter, The Waveform Analysis Window, for
more information on working in this window.
193
Mixed-Signal Simulation
Use the Monte Carlo analysis to examine the circuit performance as the
component tolerances vary
Enter the number of simulation runs you want the simulator to perform. For example, if
you enter 10, then 10 simulation runs will be performed, with different device values
on each run, within the specified tolerance range.
194
The simulator uses the seed to generate random numbers for the Monte Carlo runs. The
default seed value is 1. If you want to run a simulation with a different series of
random numbers you must change the seed value to another number.
Default Distribution
You can choose from the following three distributions for random number generation
in the Monte Carlo analysis:
Uniform distribution
Values are distributed according to a Gaussian (bell-shaped) curve, with the center
at the nominal value and the specified tolerance at +/- 3 standard deviations. For a
resistor with a value of 1K +/-10% the center of the distribution would be at 1000
ohms, + 3 standard deviations is 1100 ohms, and 3 standard deviations is 990
ohms. With this type of distribution there is a higher probability that the generated
value will be closer to the specified value.
Worst Case distribution
This is the same as the uniform distribution, but only the end points (worst case) of
the range are used. For a 1K +/-10% resistor the value used would be randomly
chosen from the two worst case values of 990 ohms and 1100 ohms. On any one
simulation run there is an equal chance that the high-end worst case value (1100)
or low-end worst case value (990) will be used.
Specifying Default Tolerances
You can specify default tolerances for six general categories of devices: resistor,
capacitor, inductor, DC source, transistor (beta forward), and digital Tp (propagation
delay for digital devices).
Tolerances can be specified as actual values, or as percentages. For example, you can
enter a resistor tolerance as 10 or 10%. If a 1kohm resistor has a tolerance of 10, it
varies between 990 and 1010 ohms. With a tolerance of 10%, a 1kohm resistor varies
between 900 and 1100 ohms.
Each device is randomly varied independent of other devices. For example, if a circuit
has two 10kohm resistors, and the default tolerance is set to 10%, then during the first
pass of the simulation, one resistor might have a value of 953 ohms, and the other one
could be 1022 ohms. The simulator uses a separate and independent random number to
generate the value for each device.
195
Mixed-Signal Simulation
Specific Device Tolerances
You can also override Default Tolerances with specific device tolerances. To add a
Specific Device Tolerance click RIGHT MOUSE in the Specific Device Tolerance region
of the dialog, and select Add from the pop-up menu that appears (shortcut: press the
INSERT key). The Monte Carlo Device and Lot Tolerances dialog will pop up. The
attributes of this dialog are:
Designator
Include a parameter if the device requires it. Supported parameters include; the
propagation delay of a digital component, the Beta forward of a transistor, and the
resistance of a potentiometer.
Device Tolerance
Assign a common tracking number to devices when you require the variation in
their tolerance to be correlated. If you give two devices the same Device Tracking
Number and Device Distribution then the same random number is used for both
devices when the device values for a simulation run are calculated.
Device Distribution
Select the distribution kind for this device, as described earlier in this topic.
Lot Tolerance, Tracking and Distribution
These settings are used in exactly the same way as the Device settings. They
provide a second way of defining and correlating device tolerances. Both device
and lot tolerances are allowed, but only one or the other is required. The simulator
calculates device and lot tolerances independently (using different random
numbers) and then adds them together.
Combined device and lot tolerances are useful where values are not completely
correlated, but are not completely independent either. An example would be two
different resistor packs. Here, the lot tolerance can be large (that is, the variation
from wafer to wafer), while the device tolerance (the variation from resistor to
resistor in the same package), is small. In this case the device tolerance should not
be ignored because it may limit the overall performance of a circuit.
Consider the following example:
Assume R1 and R2 are both 1k, with a Device Tolerance of 1% (no device
tracking) and they have a Lot Tolerance of 4%, with the same Lot Tracking
number. For each Monte Carlo run the resistors are first assigned the same lot
variation (a nominal value) between +/- 4%. Then each resistor is assigned a
device tolerance between +/- 1%. This gives a total tolerance of 5% (1% + 4%).
196
However, during the same run the values of each resistor cannot be any farther
than +/- 1% from their nominal value, or 2% from each other.
Running a Monte Carlo Analysis
To run a Monte Carlo analysis:
1. Set up the Monte Carlo analysis parameters as described above.
2. Enable the Monte Carlo Analysis option in the General Tab of the Analyses Setup
dialog (select Simulate Analyses Setup).
3. Monte Carlo analysis can result in a large amount of data being calculated. To
limit the amount of data that is calculated you can set the Collect Data For option
in the Analyses setup dialog to Active Variables. With this option Monte Carlo
data is only calculated for the Variables currently listed in the Active Variables
field. In the figure shown above this would mean that Monte Carlo data is only
collected for the OUTPUT variable.
4. After enabling this option you can either press the Run Analyses button at the
bottom of the dialog, or select the Simulate Run menu item to start the simulation
process.
The simulation progress is displayed on the status bar. If an error is detected during
netlisting the simulation is stopped and a message box appears, asking if you would
like to view the error file. Review this file and correct any errors. For more information
refer to the chapter, Working with Circuits that will not Simulate.
Once the design is netlisted the waveform window will appear, displaying the
simulation results as they are calculated.
197
Mixed-Signal Simulation
The simulator displays the results of the Monte Carlo analysis in the AC, DC, or
Transient analysis window(s), depending on which analyses were enabled. You can
then view and measure the Monte Carlo analysis results from the waveforms in the
analysis window. Refer to the chapter, The Waveform Analysis Window, for more
information on working in this window.
Parameter Sweep
The Parameter Sweep feature allows you to sweep the value of a device in defined
increments, over a specified range. The simulator performs multiple passes of the
enabled analyses (AC, DC, or Transient). The Parameter Sweep can vary basic
components and models, note that subcircuit data is not varied during the analysis.
You can also define a Secondary parameter to be swept. When a Secondary parameter
is defined the Primary parameter is swept for each value of the Secondary parameter.
For example, if the step sizes are set so that there will be 3 passes of the Primary sweep
and 3 passes of the Secondary sweep, the component values will be; P1and S1, P2 and
S1, P3 and S1, then P1and S2, P2 and S2, P3 and S2, and so on.
The voltage at the node OUT, as one of the component values in the circuit is swept
198
The Parameter Sweep requires the following data: Parameter, Start Value, Stop Value,
and Step Value. The parameter can be a single designation (such as C2), or a
designation with a device parameter in brackets (such as U5[tp_val]). Following are
some valid examples:
Example
What it Varies
RF
Q3[bf]
R3[r]
option[temp]
U5[tp_val]
Normally you would use a Temperature Sweep to vary the temperature for
simulation; however, temperature can also be varied in the Parameter Sweep. This
is useful if you want to vary the temperature as either the primary or secondary
parameter in a two-parameter sweep.
199
Mixed-Signal Simulation
200
Temperature Sweep
A Temperature Sweep can be used in conjunction with one or more of the standard
analyses; AC, DC, or Transient. The circuit is analyzed at each temperature in the
specified range, producing a series a curves, one for each temperature setting.
Setting up a Temperature Sweep Analysis
A Temperature Sweep is set up in the Temperature Sweep Tab of the Analyses Setup
dialog (select Simulate Analyses Setup).
Set up one or more standard analysis so that each analysis is performed at the indicated
temperatures.
Running a Temperature Sweep Analysis
To run a Temperature Sweep analysis,
1. Temperature Sweep analysis can result in a large amount of data being calculated.
To limit the amount of data that is calculated you can set the Collect Data For
option in the Analyses setup dialog to Active Variables. With this option data is
only calculated for the Variables currently listed in the Active Variables field.
2. Set up the Temperature Sweep parameters in the Temperature Sweep Tab of the
Analyses Setup dialog.
3. Enable the Temperature Sweep option in the General Tab of the Analyses Setup
dialog.
4. After enabling this option you can either press the Run Analyses button at the
bottom of the dialog, or select the Simulate Run menu item to start the simulation
process.
The simulation progress is displayed on the status bar. If an error is detected during
netlisting the simulation is stopped and a message box appears, asking if you would
like to view the error file. Review this file and correct any errors. For more information
refer to the chapter, Working with Circuits that will not Simulate.
Once the design is netlisted the waveform window will appear, displaying the
simulation results as they are calculated.
The simulator displays the results of the Temperature Sweep in the AC, DC, or
Transient analysis window(s), depending on which analyses were enabled. You can
then view and measure the Temperature Sweep results from the waveforms in the
analysis window. Refer to the chapter, The Waveform Analysis Window, for more
information on working in this window.
201
Mixed-Signal Simulation
Fourier Analysis
The simulator can perform a Fourier analysis based on the last cycle of transient data
that is calculated during a Transient analysis. For example, if the fundamental
frequency is 1.0kHz, then the transient data from the last 1ms cycle would be used for
the Fourier analysis.
The results of a Fourier analysis, showing the frequency spectrum of a 1KHz square wave
202
like to view the error file. Review this file and correct any errors. For more information
refer to the chapter, Working with Circuits that will not Simulate.
Once the design is netlisted the waveform window will appear, displaying the
simulation results as they are calculated.
Refer
to
the
simulation
You can then view and measure the Fourier
information
file
(DesignName.SIM)
analysis waveforms in the analysis window
for details of the magnitude and phase
that is displayed. Refer to the chapter, The
of each harmonic.
Waveform Analysis Window, for more
information on working in this window.
203
Mixed-Signal Simulation
Noise Analysis
Noise analysis lets you measure the noise in your circuit due to noise contributions of
resistors and semiconductor devices. The simulator can plot the Noise Spectral
Density, which is the noise measured in Volts squared per Hertz (V^2/Hz). Capacitors,
inductors, and controlled sources are treated as noise free. The following noise
measurements can be made in the simulator:
Output Noise
The amount of noise that, if injected at the input, would cause the calculated noise at
the output. For example, if the output noise is 10p, and the circuit has a gain of 10, then
it would take 1p of noise at the input to measure 10p of noise at the output. Thus the
equivalent input noise is 1p.
Component Noise
The output noise contribution of each component in the circuit. The total output noise
is the sum of individual noise contributions of resistors and semiconductor devices.
Each of these components contributes a certain amount of noise, which is multiplied by
the gain from that components position to the circuits output. Thus the same
component can contribute different amounts of noise to the output, depending on its
location in the circuit.
Setting up a Noise Analysis
Noise analysis is set up in
the Noise Tab of the
Analyses Setup dialog
(select Simulate Analyses
Setup).
Select the Source to be used
as the input reference for
the noise calculations. Enter
the
Start
and
Stop
Frequencies and the number
of Test Points that the
calculations
will
be
performed
at.
The
distribution of these test
points over the frequency
range is defined by the
Sweep Type. Enter a 0 in
the Points Summary field to measure only input and output noise, enter a 1 to measure
the noise contribution of each component.
204
Locate the source of interest in the Available Variables list and add it to the Active
Variables list. A source with a designator of VIN would appear in the list as @VIN(z).
Running an Impedance Plot Analysis
When you run the simulation an impedance plot will appear in the Analyses windows.
This is especially useful to the impedance versus frequency in the AC Analysis
window. The impedance measurement is calculated from the voltage at the supplys
positive terminal, divided by the current out of that same terminal.
You can also do an impedance plot of the circuits output impedance. To measure the
circuits output impedance:
205
Mixed-Signal Simulation
206
Create mathematical expressions and display the results with the signal waveforms
Description
Addition operator.
Subtraction operator.
Multiplication operator.
Division operator.
Power operator, y^x returns the value of "y raised to the power
of x." Same as PWR( , ).
Precedence Indicators. Use to set precedence of math
operations. Operations contained within ( ) will be performed
first.
Absolute value function. ABS(x) returns the value of |x|.
^
()
ABS( )
207
Mixed-Signal Simulation
ACOS( )
ACOSH( )
ASIN( )
ASINH( )
ATAN( )
ATANH( )
AVG( )
BOOL( , )
COS( )
COSH( )
DER( )
LN( )
LOG10( )
LOG2( )
SIN( )
SINH( )
SQRT( )
TAN( )
Tangent function.
TANH( )
UNARY( )
URAMP( )
Unit ramp function. Integral of the unit step: for an input x, the
value is zero if x is less than zero, or if x is greater than zero, the
value is x.
Unit step function. Returns a value of one for arguments greater
than zero and a value of zero for arguments less than zero.
EXP( )
INT( )
PWR( , )
RMS( )
USTEP( )
208
Vout
L1
1m
L2
1m
R
1k
GND
209
Mixed-Signal Simulation
Setting
Designator
Part Type
Setting
Designator
Part Type
210
The simulator displays simulation data and waveforms using a multi-tabbed Waveform
analysis window, through which you can quickly and easily analyze the simulation
results.
The results from each enabled analysis are displayed on a separate Tab in the
Waveform analysis window. For more information on setting up each type of analysis
refer to the chapter Setting Up and Running a Simulation.
The Waveform analysis window operates much like an oscilloscope. Simply adjust the
scale options in the Panel to show exactly the part of the waveform that you would like
to examine. The Waveform analysis windows also includes measurement cursors that
you can use to take measurements directly from the waveforms.
Displaying Waveforms
The simulation results are plotted while the simulation is being carried out. Once the
simulation is complete you can click on the appropriate Tab at the bottom of the
211
Mixed-Signal Simulation
Window to display the results for that type of analysis. Operating Point results are
displayed as a list of voltage, current and power calculations for nodes or devices. Note
that the Operating Point results that are displayed depend on the Collect Data setting in
General Tab of the Analyses Setup dialog.
Wondering how to specify the nodes in the circuit that you want to be
displayed in the waveform window? Refer to the topic Specifying the Simulation
Data that you want Collected, Displayed and Stored in the Setting up and Running
a Simulation chapter.
current
X division
size
default location
of the zero
reference point
zero reference
is offset by this
amount
(Y Offset)
Use the Scaling controls to change the scale
212
213
Mixed-Signal Simulation
214
Click, drag and drop to show 2 waveforms in the same cell then right-click to toggle to single cell mode
215
Mixed-Signal Simulation
216
217
Mixed-Signal Simulation
1. Select the waveform that you wish to attach a by picking the waveform name
in the list
cursor to in the drop-down list.
2. A small Tab with the letter of that cursor will
appear at the top of the window. Click and drag
this Tab to change the location of the cursor.
3. Read the X and Y values of the current cursor
point from the Measurement Cursors region of the
panel.
218
Constant Source
Use the constant source to power your circuit.
After you place the source you will need to
specify the following attributes of the Source
component.
Attribute / Part Field
Setting
Designator
Part Type
AC Magnitude (V or A)
AC Phase (degrees)
Note:
219
Mixed-Signal Simulation
Sinusoidal Source
Use this source to create sinusoidal waveforms. After you
place the source you will need to specify the following
attributes in the Part Fields of the Source component.
Attribute / Part Field
Designator
Setting
DC (V or A)
AC (V or A)
AC Phase (degrees)
Offset (V or A)
Amplitude (V or A)
Frequency (Hz)
Delay (s)
Sets the rate at which the sinusoid decreases in amplitude (eg 250)
Phase (degrees)
Example of the waveform produced by a Sinusoidal Voltage Source (VSIN) with the
attributes set to the example values in the table above.
220
= VO
= VO +VA sin(2F (t-SD)) e-(t-SD)THETA
DC Offset (VO)
Used to adjust the DC bias of the signal generator with respect to the negative terminal
(usually ground), measured in volts or amps.
Peak Amplitude (VA)
Maximum amplitude of the output swing, excluding the DC Offset, measured in volts
or amps.
Frequency (F)
Provides a phase shift of the output by delaying the start of the sine wave.
Damping Factor (THETA)
221
Mixed-Signal Simulation
Designator
Setting
DC (V or A)
AC (V or A)
AC Phase (degrees)
Initial (V or A)
Pulsed (V or A)
Time it takes to rise from Initial Voltage to Pulsed Voltage, must be >0
(eg 4u)
Time it takes to fall from Pulsed Voltage back to Initial Voltage, must
be >0 (eg 1u)
Period (s)
Time between the start of the first pulse to the start of the second pulse
(eg 5u)
Example of the waveform produced by a Periodic Pulse Source with the attributes
set to the example values in the table above.
222
= VI
= VI
= VP
= VP
= VI
= VI
Initial amplitude of the output with respect to the negative terminal (usually ground),
measured in volts or amps.
Pulse Amplitude (VP)
Duration that the output remains at VI before beginning to ramp toward VP the first
time.
223
Mixed-Signal Simulation
Piece-Wise-Linear Source
Use this source to create an arbitrary waveform as a set of
voltages (or currents) at various points in time. After you
place the source you will need to specify the following
attributes in the Part Fields of the Source component.
Attribute / Part Field
Designator
Setting
DC (V or A)
AC (V or A)
AC Phase (degrees)
File Name
Example of the waveform produced by a PWL source with the Time/Voltage attribute set
to 0U 5V 5U 5V 12U 0V 50U 5V 60U 5V
224
Note:
225
Mixed-Signal Simulation
Exponential Source
Use this source to create an exponential waveform. After you
place the source you will need to specify the following
attributes in the Part Fields of the Source component.
Attribute / Part Field
Designator
Setting
DC (V or A)
AC (V or A)
AC Phase (degrees)
Initial Value (V or A)
Pulse Value (V or A)
Delay before the source changes from Initial to Pulsed (eg 1u)
Time it takes to fall from Pulsed Voltage back to Initial Voltage, must
be >0 (eg 2u)
Example of the waveform produced by an Exponential Source with the attributes set to
the example values in the table above.
226
= VI
= VI + (VP - VI) (1 - e-(t - tRD) / tRT)
= VI + (VP - VI) (-e-(t - tRD) / tRT) + (VI - VP) (1 - e-(t - tFD) / tFT)
Initial amplitude of the output with respect to the negative terminal (usually ground),
measured in volts or amps.
Pulse Amplitude (VP)
The point in time, from t0, when the output begins to rise. This provides a phase shift
of the output by delaying the start of the exponential waveform.
Rise Time Constant (RT)
The point in time, from t0, when the output begins to fall.
Fall Time Constant (FT)
227
Mixed-Signal Simulation
Designator
Setting
DC (V or A)
AC (V or A)
AC Phase (degrees)
Offset (V or A)
Amplitude (V or A)
Carrier (F)
Modulation
Signal (F)
Example of the waveform produced by an FM Source with the attributes set to the
example values in the table above.
228
Adjust the DC bias of the signal generator with respect to the negative terminal
(usually ground), measured in volts or amps.
Peak Amplitude (VA)
Maximum amplitude of the output swing, excluding the DC Offset, measured in volts
or amps.
Carrier Frequency (FC)
229
Mixed-Signal Simulation
Designator
Part Type
Setting
Designator
Part Type
Setting
Designator
Part Type
Setting
Designator
Part Type
230
Setting
Designator
Setting
VIL
VIH
CYCLES
Designator
LOW
HIGH
C1
C2
C3
C4
C5
F1
F2
F3
F4
F5
Setting
231
Mixed-Signal Simulation
Designator
LOW
HIGH
CYCLE
RISE
FALL
C1
C2
C3
C4
C5
F1
F2
F3
F4
F5
Setting
Designator
LOW
HIGH
CYCLE
C1
C2
C3
C4
C5
F1
F2
F3
F4
F5
232
Setting
Designator
Part Type
Setting
For example, if you have a node in your circuit labeled with a Net Label called IN,
then the following would be valid entries in the Part Type field of the source:
V(IN)^3
COS(V(IN))
By default the node is referenced to the Spice Reference Net Name, which is specified
in the Analog Options dialog (GND by default). You can include a different reference
node directly in the equation using the following syntax:
V(netlabel1,netlabel2)
eg LN(COS(LOG(V(NetLabel1,NetLabel2)2)))-V(NetLabel2)V(NetLabel1)
233
Mixed-Signal Simulation
Supported Functions
ABS
SIN
COS
TAN
LN
ASIN
ACOS
ATAN
SQRT
ASINH
ACOSH
ATANH
LOG
EXP
SINH
COSH
Standard operators
+ - * / unary -If
Notes
If the argument of log, ln, or sqrt becomes less than zero, the absolute value of the
argument is used. If a divisor becomes zero or the argument of log or ln becomes zero,
an error will result. Other problems may occur when the argument for a function in a
partial derivative enters a region where that function is undefined.
234
JFET.lib
Simulation Symbols.lib
7 Segment Displays.lib
Math.lib
Timer.lib
BJT.lib
Mesfet.lib
Transformer.lib
Buffer.lib
Mosfet.lib
Transmission lines.lib
CAmp.lib
OpAmp.lib
Tube.lib
CMOS.lib
Opto.lib
UJT.lib
Comparator.lib
Regulator.lib
Crystal.lib
Diode.lib
Relay.lib
Misc.lib
Fuse.lib
SCR.lib
Triac.lib
IGBT.lib
Switch.lib
235
Mixed-Signal Simulation
Include the * wildcard before and after the search string (as shown in the image),
as different manufacturers use different prefix and suffixes.
Use multiple search strings in the description field to improve the chance of a
match when searching by Description for more than one word. Enclose each word
with the wildcard character and separate with a space (eg *barrel* *shifter*).
If your search produces no results check that the Path is correctly specified. Also,
try searching for a component that you know is in a library to check that
everything is set correctly.
Use the Add to Library List button once you locate the correct component. When
you press this button the selected library is added to the list of available libraries in
the Schematic Sheet Editor.
236
Device Descriptions
Apart from discrete components (such as resistors), the component
Part Type is used as the reference to the simulation model. For nondiscrete components (op amps, etc) you should only change the Part
Type value if you want to reference a different model.
Resistors
As well as supporting the standard resistor, the simulator also supports semiconductor
resistors. Semiconductor resistors allow you to model the resistance as a function of the
geometry, and specify the temperature at which the device is to operate. Resistor
symbols are in the Simulation Symbols library in the \Program Files\Design
Explorer 99 SE\Library\Sch\Sim.ddb database.
Attribute / Part Field
Designator
Setting
Resistor designation
Part Type
L#
W#
Temp
Capacitor
As well as supporting the standard capacitor, the simulator also supports
semiconductor capacitors. Semiconductor capacitors allow you to model the
capacitance as a function of the geometry, and the initial voltage across the capacitor.
Capacitor symbols are in the Simulation Symbols library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.ddb database.
Attribute / Part Field
Designator
Setting
Capacitor designation
Part Type
L#
W
IC
237
Mixed-Signal Simulation
Inductor
Inductor symbols are in the Simulation Symbols library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.ddb database. The
Inductor attributes include:
Attribute / Part Field
Designator
Setting
Inductor designation
Part Type
Inductor value
IC
Coupled Inductors
Inductors can be coupled using the standard SPICE inductor coupling syntax. This is
described in the topic, Including extra SPICE Information in the Netlist, in the chapter
Setting up and Running a Simulation.
Diode
Standard diode and Zener diode symbols are in the Diode library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.lib database. The
standard diode attributes include:
Attribute / Part Field
Designator
Part Type
Area
Setting
Diode designation
Diode type
Area factor specifies the number of equivalent parallel devices of
the specified model. This setting affects a number of parameters in
the model.
Off / On #
IC
238
Transistors
BJT
The model for the BJT is based on the integral-charge model of Gummel and Poon.
However, if the Gummel-Poon parameters are not specified the model reduces to the
simpler Ebers-Moll model. BJT symbols are in the BJT library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.lib database. The
BJT attributes include:
Attribute / Part Field
Designator
Part Type
Area
Setting
Transistor designation
Transistor type
Area factor specifies the number of equivalent parallel devices of
the specified model. This setting affects a number of parameters in
the model.
Off / On #
IC
The JFET model is based on the FET model of Shichman and Hodges. JFET symbols
are in the JFET library in the \Program Files\Design Explorer 99
SE\Library\Sch\Sim.ddb database. The JFET attributes include:
Attribute / Part Field
Designator
Part Type
Area
Setting
Transistor designation
Transistor type
Area factor specifies the number of equivalent parallel devices of
the model. This setting affects a number of parameters in the
model.
Off / On #
IC
239
Mixed-Signal Simulation
# These options have defaults, only set them when required.
MOSFET
The simulator supports Shichman Hodges, BSIM 1, 2 and 3, and MOS 2, 3 and 6
models. MOSFET symbols are in the MOSFET library in the \Program Files
\Design Explorer 99 SE\Library\Sch\Sim.ddb database. The
MOSFET attributes include:
Attribute / Part Field
Designator
Part Type
L
Setting
Transistor designation
Transistor type
Channel length (meters)
W#
AD
AS #
PD #
PS
NRD #
NRS
OFF
IC
240
The MESFET model is derived from the GaAs FET model of Statz. MESFET symbols
are in the MESFET library in the \Program Files\Design Explorer 99
SE\Library\Sch\Sim.ddb database. The MESFET attributes include:
Attribute / Part Field
Designator
Setting
Transistor designation
Part Type
Transistor type
Area #
Off / On #
IC
Description
CSW
SW
SW05
VT=500.0m
SWM10
VT=-0.01
SWP10
VT=0.01
STTL
VT=2.5 VH=0.1
TTL
TRIAC
241
Mixed-Signal Simulation
Voltage controlled switch
Name
VT
Default Value
0.0 #
VH
0.0
RON
On resistance (ohms)
1.0
ROFF
1/GMIN*
Default Value
IT
0.0
IH
0.0
RON
On resistance (ohms)
1.0
ROFF
1/GMIN*
# The excitation signal must pass through this voltage to actuate the switch.
* GMIN is defined in the Analog Options dialog.
Notes on using Switches
The use of an ideal, highly non-linear element such as a switch can cause large
discontinuities to occur in the circuit node voltages. The rapid changes associated with
a switch changing state can cause numerical roundoff or tolerance problems, leading to
timestep difficulties, or erroneous results. You can improve the situation by taking the
following steps:
Firstly, set the switch impedance just high or low enough to be negligible with
respect to other circuit elements. Using a switch impedance that is close to ideal
in all cases aggravates the problem of discontinuities.
If you are modeling real devices such as MOSFETS, the on resistance should be
adjusted to a realistic level, depending on the size of the device being modeled.
If a wide range of ON to OFF resistance must be used in the switch (ROFF/RON
>1e+12), then the tolerance on errors allowed during transient analysis should be
decreased by setting TRTOL to be less than the default value of 7.0 (in the Analog
Options dialog). Try setting TRTOL to 1.
When a switch is placed around a capacitor, then the CHGTOL option should also
be reduced (try 1e-16).
These changes tell the simulators SPICE engine to be more careful around the switch
points, so that errors are not made due to the rapid change in the circuit.
242
Fuses
There is a generic fuse symbol in the Simulation Symbols library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.ddb database.
Specify the fuse current rating in the Current Part Field. The fuse attributes include:
Attribute / Part Field
Designator
Fuse designation
Current #
Resistance
Setting
Crystals
Crystal symbols are in the CRYSTALS library in the \Program Files\Design
Explorer 99 SE\Library\Sch\Sim.ddb database. There are a number of
pre-defined crystals, as well as a generic crystal component. All the crystals include a
Frequency Part Field, however it is not necessary to enter a value in this field unless
you need a different value from that specified in the Part Type. If you use the generic
XTAL component (which has a default frequency of 1Mhz), enter the required
frequency in the Frequency Part Field. The crystal attributes include:
Attribute / Part Field
Designator
Freq #
RS
Setting
Crystal designation
Crystal fundamental frequency
Series resistance
Crystal capacitance
To check the default values of a crystal open the appropriate simulation model
file. The crystal models are in the \Crystal folder in the \Program
Files\Design
Explorer
99
SE\Library\Sim\Simulation
Models.ddb database. The model file has the same name as the Part Type of the
crystal symbol. The model header describes each parameter, which have their
defaults defined in the .SUBCKT line.
243
Mixed-Signal Simulation
Relays
Relay symbols are in the RELAY library in the \Program Files\Design
Explorer 99 SE\Library\Sch\Sim.ddb database. The attributes include:
Attribute / Part Field
Designator
Relay designation
Pullin
Setting
Dropoff
Contact
Resistance
Inductance
Transformers
Transformer symbols are in the TRANSFORMER library in the \Program
Files\Design Explorer 99 SE\Library\Sch\Sim.ddb database. This
symbols in this library link to two types of transformer models - transformer models
which support magnetization and leakage inductance (TRANS and TRANSCT), and
coupled inductor models which model the transformer as a pair of coupled inductors
(KTRANSFORMER and KTRANSFORMERCT).
The TRANS and TRANSCT attributes include:
Attribute / Part Field
Designator
#
Ratio
RP
Setting
Transformer designation
Turns ratio = secondary turns / primary turns
RS #
Leak
Mag
Transmission Lines
The simulator supports lossless transmission lines, constant-parameter distributed lossy
transmission lines, and lumped RC lossy transmission lines. The transmission line
symbols are in the TRANSLINE library in the \Program Files\Design
Explorer 99 SE\Library\Sch\Sim.ddb database. The transmission line
attributes include:
244
Designator
ZO
TD
Setting
NL
IC
This uses a two-port convolution model for single-conductor lossy transmission lines.
Note that a lossy transmission line with zero loss may be more accurate than the
lossless transmission line due to implementation details.
The Lossy transmission line model includes attributes for resistance, inductance,
capacitance, and length. It is not possible to pass these parameters directly from the
schematic component, however you can create and reference your own model file. To
do this copy the file ltra.MDL. Edit this new model file and change the string
immediately after the .MODEL statement to be the same as the new file name, then
edit the attributes as required. To use this new model from the schematic enter the new
model name in the components Part Type field.
For example, from the existing model file ltra.MDL:
.MODEL LTRA LTRA(R=0.000 L=9.130n C=3.650p LEN=1.000)
You could create a new file, ltra10.MDL:
.MODEL LTRA10 LTRA(R=0.2 L=32n C=13p LEN=10.000)
Uniform Distributed RC Lines (Lossy)
Attribute / Part Field
Setting
245
Mixed-Signal Simulation
Designator
Digital Components
The simulator includes a special descriptive language that allows digital devices to be
simulated, using an extended version of the event-driven XSPICE. The digital devices
are modeled using the Digital SimCodeTM language. Refer to the Digital Simulation
chapter for more details on the SimCode language.
There are two libraries of digital components in the \Program Files\Design
Explorer99\Library\Sch\Sim.ddb database, 74xx.lib and CMOS.lib.
The models for the components in these libraries include default values for all
attributes, such as propagation delay, loading, etc. If required these defaults can be
overridden for an individual component by filling in the appropriate Part Fields in the
Components Part dialog.
Attribute / Part Field
Propagation
Setting
Device propagation delay. Specify min or max to use either the predefined minimum or maximum value.
Loading #
Drive #
Current #
PWR value #
GND value #
VIL value #
VIH value
VOH value #
WARN
Specify on to flag errors in; setup time, hold time, recovery time,
pulse width, min max frequency violation, min max supply
violation. Warnings are recorded in the .SIM file, errors in the
.ERR file.
VOL value
246
After creating the component symbol enter the simulation information in the Library Fields
247
Mixed-Signal Simulation
CAP(C)
CCCS(F)
CCS(W)
CCVS(H)
DIODE(D)
INDUCTOR(L)
IPULSE(I)
IPWL(I)
ISFFM(I)
ISIN(I)
ISRC(I)
LTRA(O)
MUTUALINDUCTANCE(K)
NDMOS(M)
NEMOS(M)
NJFET(J)
NMESFET(Z)
NPN(Q)
PDMOS(M)
PEMOS(M)
PJFET(J)
PMESFET(Z)
PNP(Q)
POT(R)
RES(R)
SEMICAP(C)
SEMIRES(R)
SIMCODE(A)
TRA(T)
UDRC(U)
VCCS(G)
VCSW(S)
VCVS(E)
NLDS(B)
VPULSE(V)
VPWL(V)
VSFFM(V)
VSIN(V)
VSRC(V)
ZENER(A)
SUBCKT(X)
248
Capacitor
Current Controlled Current Source
Current Controlled Switch
Current Controlled Voltage Source
Diode
Inductor
Pulse Current Source
Piecewise Linear Current Source
Single Frequency FM Current Source
Sinusoidal Current Source
DC Current Source
Lossy Transmission Line
Mutual Inductor Coupling
N-channel Depletion MOSFET
N-channel Enhancement MOSFET
N-channel JFET
N-channel MESFET
NPN Bipolar Junction Transistor
P-channel Depletion MOSFET
P-channel Enhancement MOSFET
P-channel JFET
P-channel MESFET
PNP Bipolar Junction Transistor
Variable Resistor or Potentiometer
Resistor
Semiconductor Capacitor
Semiconductor Resistor
Digital SimCode Device
Lossless Transmission Line
Uniformly Distributed RC Line (Lossy)
Voltage Controlled Current Source
Voltage Controlled Switch
Voltage Controlled Voltage Source
Non-linear Dependent Source
Pulse Voltage Source
Piecewise-linear Voltage Source
Single Frequency FM Voltage Source
Sinusoidal Voltage Source
DC Voltage Source
SimCode Zener Diode
Subcircuit
model=<model name>
Specifies the name of the model to use when simulating the device. If the string
model=<parttype> is entered here then the Part Type of the component is inserted as
the model name.
Library Field 3
file={model_path}\...\<filename>.*
Indicates the location of the file in which the model indicated by the previous field can
be found. If you are using the model=<parttype> syntax then this line would be;
file={model_path}\...\<parttype>.* Typically the file extension will be .ckt, or .mdl.
The contents of this model file are included at the end of the netlist file.
Library Field 4
Pins=1:[pin1<,pin2,pin3,...>]<2:[pin1<,pin2,pin3,...>]...>
Specifies the pins on each part of the symbol. The order here is not fixed, but it is
convenient to enter the pin numbers in the order they are required by the simulation
model. This makes it straightforward to specify the mapping numbers in Library Field
5. The order information is often detailed in the header of the model file.
e.g. for a quad 741 op amp this line would be:
pins=1:[3,2,4,11,1]2:[5,6,4,11,7]3:[10,9,4,11,8]4:[12,13,4,11,14]
Library Field 5
Inserts the device designator. If the first character of the designator does not match the
SPICE prefix, then the prefix is automatically inserted at the beginning of the string in
the netlist.
%1, %2, %3, .. %n
Device pins to be added to the netlist, in the order required by the SPICE model. The
numbers are not used directly, each is used as an index to the component pin number
specified in Library Field 4 (for this part of the component).
For example, a quad 741 op amp (MC4741), with a designator of U1C (part 3 of U1),
has the following entries for Library Fields 4 and 5:
249
Mixed-Signal Simulation
pins=1:[3,2,4,11,1]2:[5,6,4,11,7]3:[10,9,4,11,8]4:[12,13,4,11,14]
netlist=%D %1 %2 %3 %4 %5 %M
During netlisting, this netlist= line is interpreted in the following way;
Entry
%D
Action
Result in Netlist
XU1C
%1
NetOnPin10
%2
Look up the second pin for the 3rd part, and add the net on this
pin to the netlist
NetOnPin9
%3
Look up the third pin for the 3rd part, and add the net on this
pin to the netlist
NetOnPin4
%4
Look up the fourth pin for the 3rd part, and add the net on this
pin to the netlist
NetOnPin11
%5
Look up the fifth pin for the 3rd part, and add the net on this
pin to the netlist
NetOnPin8
%M
MC4741
%F1 through %F16 refer to the schematic Part Fields 1-16 respectively. Inserts the
value of the specified Part Field into the netlist.
%IF( ) Conditional Netlist Entry
Inserts the contents of the braces if the fields referenced within contain data. This is
non-recursive (nested %Ifs not allowed) and is limited to Part Field and text values (i.e.
%Fx or %Px). For example:
%IF(AC %F2 %F3) would add; AC 1 0
%IF(PARAMS: %P6) would add; PARAMS: PartField6Name = PartField6Value
%M Model Name
250
Inserts the part field name, as well as the contents of that part field. %P on its own
results in all Part Fields that contain a value being included.
The format that the parameters are inserted is:
<TextFieldName1=TextField1> ... <TextFieldName16=TextField16>
If the Part Field does not contain a value then nothing is inserted.
%R Library Reference
Inserts the contents of the Part Type Field into the netlist. No checking of any kind is
performed.
%V Value
Inserts the contents of the Part Type Field into the netlist. Requires that the value is a
number. The number can be an integer, a floating point number, a floating point
number followed by an integer exponent, or an integer or floating point number
followed by one of the standard scale factors (multipliers). Refer to the Component and
Simulation Values topic in the Getting Started with Simulation chapter for a complete
list of allowed scale factors.
Note: If a multiplier is used it must immediately follow the number, spaces are not
permitted between the multiplier and the number. Letters that are not multipliers are
ignored.
Library Field 8 (Optional)
e.g. defaults=F1:0,F2:15,F3:6,...
This field is used to specify any default parameters that are required in the component
Part Fields. This instructs the simulator to read to label from the specified Part Field,
then add the default value entered here.
For example, the Lossless Transmission Line (library reference LLTRA) includes the
following information in Text Field 8:
defaults=F1:50,F2:10ns
Netlisting this component (between nets IN, O and OUT, O) produces the following:
TLLTR1 IN 0 OUT 0 Z0=50 TD=10ns
Part Fields 1-16
Part Fields 1-16 are used for parameters that can be specified once a component has
been placed on the schematic. Use the %F1-16, %P, %P1-16 or %PARAMS syntax in
Library Field 5 to include them in the netlist (as described earlier in this topic).
251
Mixed-Signal Simulation
The simulation model file that the component references is not in the location
specified in Read Only Field 3. This could happen if the models are not installed,
or they have been moved from their original install location. The default location
for the Simulation Models.ddb database is \Program Files\Design
Explorer 99 SE\Library\Sim\. Check in this folder for the simulation
models database, there should be 27 folders of models and subcircuits inside the
database. If the database is not present, or models are missing, you can copy the
Simulation Models.ddb database from the product CD. Remember to disable the
Read-Only attribute whenever you copy a database from a CD.
The path to the simulation model, referred to as {model_path}, does not match the
location of the model. This could happen if the models are moved to a different
location on the hard drive. The model path is stored in Advsim99.INI.
252
SPICE3 uses simultaneous linear equations, expressed in matrix form, to determine the
operating point (DC voltages and currents) of a circuit at each step of the simulation.
The circuit is reduced to an array of conductances which are placed in the matrix to
form the equations (G * V = I). When a circuit includes nonlinear elements, SPICE
uses multiple iterations of the linear equations to account for the nonlinearities. SPICE
makes an initial guess at the node voltages then calculates the branch currents based on
the conductances in the circuit. SPICE then uses the branch currents to recalculate the
node voltages, and the cycle is repeated. This cycle continues until all of the node
voltages and branch currents fall within specified
tolerances (converge).
Use the Analog
Options dialog box to
However, if the voltages or currents do not converge within
specify the tolerances
a specified number of iterations, SPICE produces error
and iteration limits
messages (such as singular matrix, Gmin stepping
for
the
various
failed, source stepping failed or iteration limit
analyses.
reached) and aborts the simulation. SPICE uses the results
of each simulation step as the initial guesses for the next
step. If you are performing a Transient analysis (that is, time is being stepped) and
SPICE cannot converge on a solution using the specified timestep, the timestep is
automatically reduced, and the cycle is repeated. If the timestep is reduced too far,
SPICE displays a Timestep too small message and aborts the simulation.
253
Mixed-Signal Simulation
254
4.
5.
6.
7.
8.
Check the circuit topology and connectivity. See the common mistakes described
in the earlier topic, Strategies for Solving Analysis Failures.
Set RELTOL to 0.01 in the Analog Options dialog box. By increasing the
tolerance from 0.001 (0.1% accuracy), fewer iterations will be required to
converge on a solution and the simulation will complete much more quickly.
Increase ITL4 to 100 in the Analog Options dialog box. This will allow the
Transient analysis to go through more iterations for each timestep before giving
up. Raising this value may help to eliminate timestep too small errors improving
both convergence and simulation speed.
Reduce the accuracy of ABSTOL/VNTOL if current/voltage levels allow. Your
particular circuit may not require resolutions down to 1uV or 1pA. You should
allow at least an order of magnitude below the lowest expected voltage or current
levels of your circuit.
Realistically model your circuit. Add realistic parasitics, especially stray/junction
capacitance. Use RC snubbers around diodes. Replace device models with
subcircuits, especially for RF and power devices.
Increase the rise/fall times of the Pulse Generators. Even the best pulse generators
cannot switch instantaneously.
Change the integration method to Gear. Gear integration requires a longer
simulation time, but is generally more stable than trapezoidal. Gear integration
may be particularly useful with circuits that oscillate or have feedback paths.
Error Messages
Error messages provide information about problems that SPICE could not resolve and
were fatal to the simulation. Error messages indicate that simulation results could not
be generated, so they must be corrected before you will be able to analyze the circuit.
255
Mixed-Signal Simulation
Select Simulate Analyses Setup to pop up the Analyses Setup dialog, then press the
Advanced button to display the Analog Options SPICE Variables dialog. The options
in this dialog include:
Integration Method
Choose which numerical integration method you want to use. The Trapezoidal method
is relatively fast and accurate, but tends to oscillate under certain conditions. The Gear
methods requires longer simulation times, but tends to be more stable. Using a higher
gear order theoretically leads to more accurate results, but increases simulation time.
The default is Trapezoidal.
256
SPICE Options
Following is a list of the SPICE options and their
effect on the simulation. To change the value of a
SPICE variable first select the variable, type the new
value into the Option Value field, then press the
Enter button.
To return an option to
its default value enter an
asterisk in the Option Value
edit field.
Option
What it Does
ABSTOL
CHGTOL
Provides a lower limit on capacitor charge or inductor flux; used in the LTE
timestep control algorithm. Default=1.0e-14 coulombs.
DEFAD
DEFAS
DEFL
DEFW
GMIN
ITL1
ITL2
ITL3
257
Mixed-Signal Simulation
258
ITL4
ITL5
PIVREL
Sets the relative ratio between the largest column entry in the matrix and an
acceptable pivot value. The value must be between 0 and 1. Default=1.0e-3.
In the numerical pivoting algorithm the allowed minimum pivot is determined
by EPSREL=AMAX1(PIVREL*MAXVAL, PIVTOL) where MAXVAL is
the maximum element in the column where a pivot is sought (partial
pivoting).
PIVTOL
Sets the absolute minimum value for a matrix entry to be accepted as a pivot.
Default=1.0e-13.
RELTOL
Sets the relative error tolerance of the program. The value must be between 0
and 1. Default is 0.001 (0.1%). Larger values mean faster simulation time, but
less accuracy.
TEMP
Sets the actual operating temperature of the circuit. Any deviation from
TNOM will produce a change in the simulation results. Default=27C.
Note: TEMP can be overridden by a temperature specification on any
temperature dependent instance.
TNOM
Sets the nominal temperature for which device models are created.
Default=27C. Note: TNOM can be overridden by a specification on any
temperature dependent device model.
TRTOL
Used in the LTE timestep control algorithm. This is an estimate of the factor
by which SPICE overestimates the actual truncation error.
Default=7.0.
VNTOL
Sets the absolute voltage tolerance of the program. Set VNTOL= RELTOL*
(lowest voltage magnitude in the circuit). Default=1 microvolt.
BOOLL
BOOLH
BOOLT
BADMOS3
KEEPOPINFO
TRYTOCOMPACT
NOOPITER
GMINSTEP
Sets the number of steps in the GMIN stepping algorithm. When set to 0,
GMIN stepping is disabled, making source stepping the simulators default
DC (operating point) convergence algorithm. Default=10 steps.
SRCSTEP
Sets the number of steps in the source stepping algorithm for DC (operating
point) convergence. Default=10 steps.
ACCT
LIST
OPTS
BYPASS
Enables the device bypass scheme for nonlinear model evaluation. Default=1
(on).
MINBREAK
Sets the minimum time between breakpoints. Default=0 seconds (sets the time
automatically).
MAXOPALTER
MAXEVTITER
NOOPALTER
RAMPTIME
CONVLIMIT
CONVSTEP
Sets the limit of the relative step size in solving for the DC operating point
convergence for code model inputs. Default=0.25.
CONVABSSTEP
Sets the limit of the absolute step size in solving for the DC operating point
convergence for code model inputs. Default=0.1.
AUTOPARTIAL
PROPMNS
Sets scale factor used to determine minimum propagation delay when actual
value is not specified in SimCode model. Default=0.5 (50% of typical
propagation delay).
PROPMXS
Sets scale factor used to determine maximum propagation delay when actual
value is not specified in SimCode model. Default=1.5 (150% of typical
propagation delay).
TRANMNS
Sets scale factor used to determine minimum transition time when actual
value is not specified in SimCode model. Default=0.5 (50% of typical
transition time).
259
Mixed-Signal Simulation
260
TRANMXS
Sets scale factor used to determine maximum transition time when actual
value is not specified in SimCode model. Default=1.5 (150% of typical
transition time).
LOADMNS
Sets scale factor used to determine minimum input loading (maximum input
resistance) when actual value is not specified in SimCode model. Default=1.5
(150% of typical input resistance).
LOADMXS
Sets scale factor used to determine maximum input loading (minimum input
resistance) when actual value is not specified in SimCode model. Default=0.5
(50% of typical input resistance).
DRIVEMNS
Sets scale factor used to determine minimum output drive capacity (maximum
output resistance) when actual value is not specified in SimCode model.
Default=1.5 (150% of typical output resistance).
DRIVEMXS
Sets scale factor used to determine maximum output drive capacity (minimum
output resistance) when actual value is not specified in SimCode model.
Default=0.5 (50% of typical output resistance).
CURRENTMNS
CURRENTMXS
TPMNTYMX
TTMNTYMX
LDMNTYMX
DRVMNTYMX
IMNTYMX
SIMWARN
RSHUNT
Value in ohms of resistors added between each circuit node and ground,
helping to eliminate problems such as singular matrix errors. In general, the
value of RSHUNT should be set to a very high resistance (1e+12). Default=0
(no shunt resistors).
ADCSTEP
The minimum step size required to register an event on the input of the
internal A/D converters. Default=0.01 volts.
261
Mixed-Signal Simulation
262
The first step is to create a schematic symbol for the device in the
Schematic Library Editor. The 74LS74 has been drawn as a 2-part
component. VCC (pin 14) and GND (pin 7) are defined as hidden First create the symbol
pins.
Refer to the Schematic Components and Libraries chapter in the Schematic Capture
section for details on creating a schematic symbol. Often is easier to copy an existing
symbol, and then modify it as required.
Step 2 Define the simulation linking information
Mixed-Signal Simulation
pins=1:[]2:[]
The order of the pins in Text Field 4 is not fixed, so for convenience they have been
listed from left-to-right, top-to-bottom, for each part in the component.
pins=1:[2,3,4,1,5,6,7,14]2:[12,11,10,13,9,8]
Text Field 5 The first entry on this line is the designator reference, %D. The last
entry on this line is %M, the model reference.
Between the Designator and Model references is the pin mapping information, which is
also know as the node list. The syntax for digital components is different than analog
components; for digital components there are two sections, one for the input nodes, the
second for the output nodes. Each section is delimited by square brackets.
The nodes must be listed in the same order as the pins in the INPUTS and OUTPUTS
statements in the SimCode. If you refer to the example source file for the 74LS74, the
inputs and outputs are specified as follows:
INPUTS VCC, GND, PRE, DATA, CLK, CLR;
OUTPUTS VCC_LD, PRE_LD, DATA_LD, CLK_LD, CLR_LD, QN, Q;
(The syntax of these statements is described later in the example.)
The easiest way to map the pins is to draw up a table. List the pins in the order they are
required by the SimCode model, then write the position of this pin in the pin list (Text
Field 4) next to it. These are shown below;
Input Pin
VCC
Output Pin
VCC_LD
GND
PRE_LD
PRE
DATA_LD
DATA
CLK_LD
CLK
CLR_LD
CLR
QN
From this the node list can be written, adding an i after each input pin and an o
after each output pin. Text Field 5 becomes:
netlist=%D [%8i %7i %3 %1 %2 %4][%8o %3o %1o %2o %4o %6o %5o] %M
Step 3 Create the intermediate model linking file
The next step is to create a .MDL model linking file, that maps from the schematic
symbol to the ASCII SimCode model file. Once the model has been compiled you
change this mapping file to reference the compiled SimCode model file.
264
In a text editor create a new file, called 74LS74.MDL. Save it in the location specified
in the model file location, in Text Field 3 of the symbol.
The MDL file includes one .MODEL line, and as many comment lines (starting with a
* symbol) as required.
The syntax of the .MODEL line is:
.MODEL 74LS74 xsimcode(file="{MODEL_PATH}74LS74.TXT" func=ls74
.MODEL
74LS74
xsimcode
file=
func=
data=
{mntymx}
The last step is to create the digital SimCode model for the device. You can do this in
any ASCII text editor. The file can be given any name and extension, as long as it
matches the file name listed in the file= parameter in the .MDL file. Typically it is
named the same as the device, 74LS74.TXT for this example. Multiple digital
SimCode device models can be placed in the same file, each is referenced by the
func= parameter.
There is an example of the SimCode for a 74LS74 later in this topic. This SimCode can
be copied and pasted directly from the On-line help file if you do not want to type it in.
Test the new device by creating a simple circuit to test its functionality. It is advisable
to only test one new device at a time.
When you run the simulation, the source code model is automatically compiled and
written to an ASCII text file called Simlist.TXT, in the same directory as the schematic
that you are simulating. This file also contains a listing of the execution order of the
source code model. Refine the SimCode source model as needed, and continue testing
until you have completely debugged the model.
Step 5 Create the compiled SimCode model file
Once the SimCode has been successfully compiled you can extract the compiled model
information from the Simlist.TXT file, and create a compiled model file (74LS74.SCB
for this example). Again you can store multiple models in a single file, but you must
set the file= parameter in the .MDL file to be the same as the file name of the
compiled SimCode model library. The default location for compiled SimCode models
265
Mixed-Signal Simulation
Explorer
99
# ls74 source identifies the beginning of the SimCode source function for the 74LS74.
Section 2 - Data declarations
The IF (init_sim) THEN section is executed only once, at the beginning of the
simulation. In this section we set the device characteristics that are not subject to
change due to outside influences, such as databook specifications. The outputs states
should also be initialized here to their most likely state. The EXIT command should
be placed at the end of this section.
Section 4 - LOAD and DRIVE Statements
These statements are used to declare the load and drive capabilities of the device pins.
Section 5 - Device Functionality
This section can vary dramatically from part to part. In this example an EXT_TABLE
command has been used. Other device models use a variety of IF...THEN, STATE_BIT,
NUMBER, and other statements to define the logical function of the device.
Section 6 - Tests for Device Setup Violations
These tests warn of device setup violations which, in the real world, may cause a
device not to function properly. In the simulation, the device will generally still
function, but warnings, if enabled, will be displayed.
266
The DELAY statements occur at the end of the SimCode function. These statements
actually post the events to the simulator to let it know that something has changed, and
when these events are scheduled to occur, relative to the rest of the simulation. Timing
(propagation delay) is assigned to each output based on the databook specifications,
input stimulus and the functionality of the device.
//============================================================
# ls74 source
//1/2- 74LS74 D flip-flop Digital Simcode Model
//typical prop delay values from TI 1981 2nd edition data book
//============================================================
IF (init_sim) THEN
BEGIN
//select prop delay, setup, hold, and width times
//MESSAGE("time\t\tPRE\tCLR\tCLK\tDATA\tQ\tQN"); //debug
//NOTE: both ttlh and tthl are the same value
tt_val= (MIN_TYP_MAX(tt_param: NULL, 5n, NULL));
temp_tp= (PWL_TABLE(sim_temp: -75, -5n, 125, 5n)); //tp temperature affect
tplh_val= (MIN_TYP_MAX(tp_param: NULL, 14n, 25n)) + temp_tp;
tphl_val= (MIN_TYP_MAX(tp_param: NULL, 20n, 40n)) + temp_tp;
ts_val= (20n);
th_val= (5n);
trec_val= (5n);
clk_twl= (25n);
clk_twh= (25n);
pre_clr_twl= (20n);
267
Mixed-Signal Simulation
DRIVE Q QN = (v0=vol_param,v1=voh_param,ttlh=tt_val,tthl=tt_val);
LOAD PRE_LD DATA_LD CLK_LD CLR_LD =
(v0=vol_param,r0=ril_val,v1=voh_param,r1=rih_val,io=1e9,t=1p);
EXT_TABLE tblIndex
PRE CLR CLK DATA
0
1
X
X
1
0
X
X
0
0
X
X
1
1
^
X
1
1
X
X
Q
H
L
H
DATA
Q
QN
L
H
H
~DATA
~Q;
//MESSAGE("%fs\t%d\t%d\t%d\t%d\t%d\t%d",present_time,PRE,CLR,CLK,DATA,Q,QN);
LOAD VCC_LD = (v0=gnd_param,r0=ricc_val,t=1p);
IF (warn_param) THEN
BEGIN
IF (PRE && CLR) THEN
BEGIN
SETUP_HOLD(CLK=LH DATA Ts=ts_val Th=th_val "CLK->DATA");
RECOVER(CLK=LH PRE CLR Trec=trec_val "CLK->PRE or CLR");
WIDTH(CLK Twl=clk_twl Twh=clk_twh "CLK");
WIDTH(PRE CLR Twl= pre_clr_twl "PRE or CLR");
END;
END;
DELAY Q QN =
CASE (TRAN_LH) : tplh_val
CASE (TRAN_HL) : tphl_val
END;
EXIT;
268
INTEGERS
REALS
PWR_GND_PINS
IO_PAIRS
RECOVER
SETUP_HOLD
WIDTH
FREQUENCY(FMAX)
269
Mixed-Signal Simulation
STATE_BIT
LEVEL
STRENGTH
TABLE
EXT_TABLE
LOAD
DRIVE
DELAY
NO_CHANGE
EVENT
Expression Operations
Use the operators and functions in expressions to manipulate data, and to make
comparisons which control program flow. Expressions are always contained within
parentheses ( ). Operator precedence is from left to right, starting with the inner most
parentheses.
270
Operators
+, -, *, /, ~, !, &&, ||, ^^, &, |, >>, <<, >, <, =, !=, >=, <=
Math Functions
POW, ABS, SQRT, EXP, LOG, LOG10, SIN, COS, TAN, ASIN,
ACOS, ATAN, HSIN, HCOS, HTAN
Expression Functions
PARAM_SET
PWL_TABLE
SELECT_VALUE
MIN_TYP_MAX
NUMBER
VALUE
CHANGE_TIME
WIDTH_TIME
INSTANCE
CHANGED_xx
READ_DATA
Program Control
Use these statements to control the flow of the program.
# xxxx source
IF ... THEN
WHILE ... DO
GOTO
GOSUB
RETURN
EXIT
Output Text
Use these commands to display messages during simulation and debugging.
PROMPT
MESSAGE
Debug
Allow you to trace through the execution of the SimCode for debugging purposes.
STEP_ON
STEP_OFF
271
Mixed-Signal Simulation
<>
value/variable/pin/expression
[]
optional parameter
{ }|{ }
# xxxx source
Identifies the beginning of the SimCode source function.
General Form
This statement identifies the SimCode function so that it can be called when it is time
to simulate this device. It must be the first statement of each Digital SimCode device
function.
Notes
The simulators SPICE engine has the ability to read either source code models, or
compiled code models. The keyword source identifies this as a source code model to
the simulator, which automatically compiles the model when the simulation is run. The
compiled code is placed in an ASCII text file called Simlist.TXT, in the same directory
as the schematic that uses this device.
Example
//==================================
# MyDevice source
//==================================
INPUTS VCC, GND, IN1, IN2
OUTPUTS VCC_LD, IN1_LD, IN2_LD, OUT
.
.
.
EXIT
CHANGE_TIME
Returns time when the specified pin last changed state.
272
This function returns a real value that indicates the last time the specified input or
output pin changed states.
Example
T1 = (CHANGE_TIME(INA));
CHANGED_xx
Checks if the specified pin has changed state.
General Form
CHANGED_xx(<pin> [{<}|{<=}|{>}|{>=} <var/time/value>])
Parameters
<pin>
<var/time/value>
Use
The CHANGED_xx function is used to determine if the specified <pin> has changed
state. The _xx that follows the keyword CHANGED can be eliminated (to indicate any
type of change) or the xx can be set to:
LH, LX, HL, HX, XL, XH, LZ, ZL, ZH, ZX, HZ or XZ
to indicate a specific type of change. The optional compare operator (<, <=, >, >=) and
<var/time/value> would be included to check for a more specific change. If they are
not included, the function will return 1 if the pin has changed at the current simulation
step.
Examples
IF (CHANGED_LH(CLK)) THEN ...
IF (CHANGED(DATA < 10n)) THEN ...
DELAY
Sets propagation delay to specified outputs.
General Form 1
DELAY <output> [<output> ...] = <delay>;
General Form 2
DELAY <output> [<output> ...] =
CASE (<conditional exp>) : <delay>
CASE (<conditional exp>) : <delay>
273
Mixed-Signal Simulation
<output>
Use
The DELAY command is executed once for each pin listed and posts a propagation
delay for each pin that has changed its level. The CASE option allows more than one
<delay> to be specified. The <conditional exp> then determines which <delay> will be
used. If a delay is set for a pin that has not changed then the pin will be flagged as NOCHANGE and the delay will not be posted. The <delay> can be a real constant, a real
variable or a real expression.
Notes
The DELAY command must be executed exactly once for each output pin, that is, for
each pin declared in the OUTPUTS statement which is not listed in the LOAD or
NO_CHANGE statements. The order in which the delays are set is based on the order
in which these pins are listed in the DELAY command (i.e. first pin listed is set first).
Each <conditional expression> is evaluated in the order it is listed until one expression
evaluates TRUE. When this occurs, the <delay> value associated with the TRUE
expression is posted for the output being set. When using the CASE option, at least one
<conditional exp> should evaluate as TRUE for each output pin listed. If no
<conditional exp> evaluates to TRUE, the <delay> associated with the last CASE
statement is posted.
In addition to the standard expression functions, the following terms apply only to the
output pin being set and can be used in the <conditional exp> :
TRAN_LH
TRAN_LX
TRAN_HL
TRAN_HX
TRAN_HZ
TRAN_XL
TRAN_XH
TRAN_LZ
TRAN_ZL
TRAN_ZH
TRAN_ZX
TRAN_XZ
TRAN_XX
274
low-to-high
low-to-other
high-to-low
high-to-other
high-to-tristate
other-to-low
other-to-high
low-to-tristate
tristate-to-low
tristate-to-high
tristate-to-other
other-to-tristate
other-to-different
If the <delay> value is less than or equal to 0.0 a run-time error message will be
displayed. Output pins can be specified by using the output pin name or by an integer
variable that contains the index of an output pin. Pin names and variables cannot be
mixed in the same DELAY statement. References to outputs must be either all pin
names or all variable names.
Examples
DELAY Q1 Q2 Q3 Q4 = 10n;
DELAY Q QN =
CASE (TRAN_LH) : tplh_val
CASE (TRAN_HL) : tphl_val
END;
data = (E0_1 && (CHANGED(D0) || CHANGED(D1)));
DELAY Q1 Q0 =
CASE (data && TRAN_LH) : tplh_D_Q
CASE (data && TRAN_HL) : tphl_D_Q
CASE (TRAN_LH) : tplh_E_Q
CASE (TRAN_HL) : tphl_E_Q
END;
In this example, if data is nonzero and Q1 is changing from High to Low, the
tphl_D_Q delay will be posted for Q1. Then, if Q0 is changing from Low to High, the
tplh_D_Q delay will be posted for Q0.
DRIVE
Declares drive characteristics of output pins.
General Form
DRIVE <output> [<output> ...] =
(v0=<value> v1=<value> ttlh=<value> tthl=<value>);
Parameters
<output>
<value>
v0
v1
ttlh
tthl
Use
The DRIVE command is used to declare the output pins DRIVE characteristics. When
the output is set to a LOW state, the output pin is connected to voltage value v0
through resistance rol_param. When the output is set to a HIGH state, the output pin is
connected to voltage value v1 through resistance roh_param. The low-to-high
transition time is set by ttlh and the high-to-low transition time is set by tthl.
275
Mixed-Signal Simulation
Notes
Pin names and variables cannot be mixed in the same DRIVE statement. References to
outputs must be either all pin names or all variable names.
The values used for rol_param should be derived using the databook specs for VOL.
This value represents the total saturation resistance of the pull-down structure of the
devices output. A standard LS output in the LOW state, for example, sinking 8mA
will not exceed 0.5V, typically closer to 0.35V. Therefore:
for typ LOW state drive:
Example
rol_param = (MIN_TYP_MAX(drv_param: 62.5, 43.75, NULL);
roh_param = (MIN_TYP_MAX(drv_param: 262.5, NULL, 52.5);
DRIVE Q QN = (v0=vol_param,v1=voh_param,ttlh=ttlh_val,
tthl=tthl_val);
See Also
LOAD
EVENT
Causes a digital event to be posted.
General Form
EVENT = ({<time>}|{<expression>})
Parameters
<time>
<expression>
276
In most cases a digital event is posted when one or more INPUT pins for a simcode
model changes state. When the event is processed, the simcode for the specified event
is called and run. This instruction allows a simcode model to post a digital event at a
specified <time>. If the specified EVENT time is greater than the simulation time
(indicated by present_time), then a digital event will be posted. If more than one
EVENT is posted in a single call to a simcode model, only the longest EVENT <time>
will be used. This function allows the creation of one-shots and other similar device
models.
Notes
If a digital event for a specific simcode model occurs before an EVENT <time> posted
by that simcode, the EVENT <time> must be posted again. For example, if 1) the
present simulation time is 1us, 2) a simcode model sets EVENT = 2us and 3) an
INPUT pin in the simcode model changes state at 1.5us, then the 2us event must be
posted again.
Example
EVENT = (present_time + 1e-6);
//return in 1us
EXIT
Terminates SimCode execution.
General Form
EXIT;
Use
This is the last line of a SimCode model, but it may also be placed at other locations to
abort execution of remaining SimCode.
EXT_TABLE
Sets output logic states based on extended truth table.
General Form
EXT_TABLE <line>
<input pin> [<input pin> ...] <output pin> [<output pin> ...]
<input state> [<input state> ...]
<output state> [<output state> ...];
Parameters
<line>
<input pin>
<output pin>
Variable into which the line number used in the table is placed
Name of the input pin
Name of the output pin
277
Mixed-Signal Simulation
<input state>
<output state>
Use
The EXT_TABLE statement is an extended truth table function used to set the level and
strength of the specified outputs. Valid input states are:
0
low (input voltage is <= vil_param)
1
high (input voltage is >= vih_param)
^
low-to-high-transition
v
high-to-low-transition
X
dont care what input voltage is
Valid output states are:
L
ZERO (set output level to vol_param).
H
ONE (set output level to voh_param).
Z
UNKNOWN (set output level to v3s_param).
It also allows INPUT and/or OUTPUT pin names with optional prefixes to specify the
output states. Prefixes are:
State is the previous state.
~
State is the inverse of the state.
-~ State is the inverse of the previous state.
Output state letters can be followed by a colon and a letter to indicate strength:
s
STRONG (set output to rol_param for L and roh_param for H).
z
HI_IMPEDANCE (set output to r3s_param).
If a strength character is not specified after an output state then STRONG will be used
for L and H states and HI_IMPEDANCE will be used for Z states.
Notes
Each row is tested sequentially from top to bottom until the input conditions are met.
The outputs are set for the first row to meet the input conditions. <line> is set to the
line number in the table that was used. If no match was made then <line> is set to 0.
Pin names used to specify output states do not need to be in the table heading. Unlike
the TABLE statement, input variables are not allowed.
Example
EXT_TABLE
PRE CLR
0
1
1
0
0
0
1
1
1
1
278
tblIndex
CLK
DATA
X
X
X
X
X
X
^
X
X
X
Q
H
L
H
DATA
Q
QN
L
H
H
~DATA
~Q;
This example is representative of 1/2 of a 7474 D type flip-flop. If input pins PRE,
CLR, and DATA are all high (>= vih_param) and CLK has a low-to-high transition, Q
is set to high (voh_param) and STRONG (roh_param), QN is set to low (vol_param)
and STRONG (rol_param) and tblIndex is set to 4.
See Also
<input>
MIN
MAX
<message>
Use
The FREQUENCY function compares the <input> period (the time from one low-tohigh edge to the next low-to-high edge) with the reciprocal of the specified
<frequency> (1/freq). If the time period for the <input> is smaller than the reciprocal
of the specified MAX<frequency> or the time period for the <input> is greater than the
reciprocal of the specified MIN<frequency>, then a WARNING will be displayed. An
optional <message> string can be included in the FREQUENCY statement which will
be output if a WARNING is displayed.
Notes
Databook specifications should be used with this function. Pin and variable names can
be mixed in the same FREQUENCY statement. Only the first FREQUENCY failure for
each pin listed will be reported.
Example
FREQUENCY(CLK MAX=10MEG "CLK"); //check fmax only
GOSUB
Jumps to a subroutine in the SimCode.
General Form
GOSUB <label>;
Parameters
<label>
279
Mixed-Signal Simulation
Use
RETURN
GOTO
Jumps to a new location in the SimCode.
General Form
GOTO <label>;
Parameters
<label>
Use
Program flow resumes from the location where <label>: appears in the SimCode.
<label> must begin with an alpha character, followed by any number of alpha-numeric
characters or the underscore ( _ ) character. Where <label> appears in the code, it must
be followed immediately by a colon ( : ).
Example
GOTO Shutdown;
.
.
.
Shutdown:
.
.
280
.
Exit;
See Also
<expression>
<label>
Use
The IF ... THEN statement is used to control the flow of the program, based on whether
<expression> evaluates to true or false. Multiple IF ... THEN statements may be nested.
Notes
281
Mixed-Signal Simulation
<input pin>
Use
The INPUTS data type is used to define the pins which monitor stimulus external to the
device. These generally include input, i/o, power and ground pins.
Notes
Input pin names must begin with a letter and be defined before they are used.
Example
INPUTS VCC, GND, PRE, DATA, CLK, CLR
See Also
<instance name>
Use
The INSTANCE function returns 1 if the present instance of the SimCode device
matches the <instance name> specified. Otherwise it returns 0;
282
A circuit may contain more than one of any given device. During simulation it may be
important to know if the device being simulated at this moment is the one you are
interested in. This would allow you, for example, to print messages for one specific
NAND gate without having to wade through messages for all the other NAND gates as
well. The instance name is the device Designation preceded by its SPICE Prefix
Character (the letter A).
Example
IF (INSTANCE("AU23")) THEN
BEGIN
MESSAGE("U23-Q0 = %d", Q0);
END;
INTEGERS
Declares integer variables and arrays.
General Form
INTEGERS <var>[, <var>, ...];
Parameters
<var>
Use
The INTEGERS data type is used to define integer variables and arrays.
Notes
Integer variables and arrays must begin with a letter and be defined before they are
used. Integer arrays are defined by following the array name with a left bracket ( [ ), an
integer number which defines the size of the array, and a right bracket ( ] ). Integer
arrays can be set and/or used in expressions.
The following are reserved SimCode integer variables which do not need to be
declared:
Variable
Use
SPICE Option
tp_param
tplh/hl index
Propagation Delays
TPMNTYMX
tt_param
ttlh/hl index
Transition Times
TTMNTYMX
ld_param
LOAD index
Input Loading
LDMNTYMX
drv_param
DRIVE index
Output Drive
DRVMNTYMX
i_param
ICC index
Device Current
IMNTYMX
user_param
USER index
User Defined
USERMNTYM
X
warn_param
Warning messages
WARN flag
SIMWARN
283
Mixed-Signal Simulation
init_sim
N/A
N/A
tran_pin
N/A
N/A
The first six variables in this list are expected to have a value of 1, 2 or 3. These values
represent an index into the min/typ/max arrays:
Value
Represents
1
2
3
The Digital Model Parameter can be set independently for each digital device in the
Digital Model Parameters dialog box. If a SPICE Option parameter is set in the Analog
Options dialog box, that setting will globally override the Digital Model Parameter
settings for all digital devices. If the variable is set explicitly in the SimCode, that
setting will override all other settings.
warn_param can be set to any positive value to conditionally display warning
messages for the device. Different levels of warning could be created by the device
programmer, accessed by entering different positive values. The value of init_sim is set
to 1 during SimCode initialization, otherwise it is set to 0. The value of tran_pin is set
to the index of the pin being set during a DELAY CASE statement. This index is used to
determine which pin the TRAN_xx instruction is applied to.
Example
INTEGERS tblIndex, count, data[64];
See Also
DELAY, MIN_TYP_MAX
IO_PAIRS
Declares input/output pin associations for input loading.
General Form
IO_PAIRS (<ipin:opin>[, <ipin:opin>,
Parameters
The IO_PAIRS statement defines which of the INPUTS pins are associated with which
of the OUTPUTS pins. This association is used by the LOAD statement.
284
Each physical input pin on a device consists of both an ipin and an opin in SimCode.
The opin is required to provide input loading characteristics. This statement can only
be used once in the SimCode. Power pins are not listed in the IO_PAIRS statement.
Example
IO_PAIRS (IN1:IN1_LD, IN2:IN2_LD
In this example, IN1 and IN2 are INPUTS and IN1_LD and IN2_LD are OUTPUTS.
IN1 and IN1_LD both refer to the same physical pin on the device.
See Also
<output>
<expression>
Use
The state of an output pin is determined by its level and its strength. Use the LEVEL
command to set the level of one or more output pins.
<expression>
State
Level
<= vol_param
>= voh_param
other
ZERO
ONE
UNKNOWN
vol_param
voh_param
v3s_param
Notes
Output pins can be specified by using the output pin name, or by an integer variable
that contains the INDEX of an output pin. Pin and variable names cannot be mixed in
the same LEVEL statement. References to outputs must be either all pin names or all
variable names.
Examples
LEVEL Q = ONE;
LEVEL Q1 Q2 Q3 Q4 = ZERO;
LEVEL OUT = ((1+2)/3);
Mixed-Signal Simulation
<output>
<value>
v0
r0
v1
r1
io
t
Use
The LOAD command is typically used with input or power pins to provide loading for
the driving circuit. Since only output pins can provide a load, each input must have a
corresponding output. These are assigned using the IO_PAIRS statement.
If different loads are required for different inputs, multiple LOAD statements may be
used. Power pins should be placed in a separate LOAD statement which does not
include the v1/r1 load or io. Power pins are not included in the IO_PAIRS statement.
The IO_PAIRS statement must be entered before any LOAD statements that contain io.
Notes
An input load consists of a voltage and a resistance (v0/r0 or v1/r1). The voltage level
of the incoming signal determines which load will be used. If the voltage level goes
below VIL and remains below VIH, then the input is considered to be in the LOW state
and the v1/r1 is applied. If the voltage level goes above VIH and remains above VIL,
then the input is considered to be in the HIGH state and the v0/r0 is applied. io is the
input state off resistance. The unused load is essentially removed from the circuit by
changing its r value to the value specified for io.
The values for v0, r0, v1 and r1 can be either real constants or real variables. The
values for io and t must be real constants. Pin names and pin variables cannot be mixed
286
in the same LOAD statement. References to outputs must be either all pin names or all
variable names.
For input pins, the values used for r0 should be derived using the databook specs for
IIH. A standard LS input, for example, will sink a maximum of 20uA at Vin=2.7V.
Therefore, if vol_param = 0.2V, then:
for max HIGH state load:
IO_PAIRS, DRIVE
287
Mixed-Signal Simulation
MATH FUNCTIONS
Function
Description
Example
POW
power
X= (12 POW(3));
ABS
absolute value
X= (ABS(-12));
SQRT
square-root
X= (SQRT(2));
EXP
exponent
X= (EXP(10));
LOG
natural log
X= (LOG(0.1));
LOG10
log base 10
X= (LOG10(0.1));
SIN
sine
X= (SIN(0.1));
COS
cosine
X= (COS(0.1));
TAN
tangent
X= (TAN(0.1));
ASIN
arc sine
X= (ASIN(0.1));
ACOS
arc cosine
X= (ACOS(0.1));
ATAN
arc tangent
X= (ATAN(0.1));
HSIN
hyperbolic sine
X= (HSIN(0.1));
HCOS
hyperbolic cosine
X= (HCOS(0.1));
HTAN
hyperbolic tangent
X= (HTAN(0.1));
See Also
OPERATORS
MESSAGE
Displays a message without pausing.
General Form
MESSAGE("<message>"[, <value/pin>...]);
Parameters
<message>
<value>
<pin>
Use
The MESSAGE statement is used to output the information specified by the <message>
string. It does not interrupt the simulation. The message is displayed in the status
window during simulation.
288
tab
\n
new line
\r
Carriage return
%d
%D
%x
%X
%c
%C
%e
%f
%g
%s
Note:
INSTANCE
FUNC
FILE
Examples
MESSAGE("time\t\tCLK\tDATA\tQ\tQN");
MESSAGE("device instance= %s",INSTANCE);
MESSAGE("%.3e\t%d\t%d\t%d\t%d",present_time,CLK,DATA,Q,QN);
See Also
PROMPT
MIN_TYP_MAX
Returns value from MIN_TYP_MAX look-up table.
General Form
MIN_TYP_MAX(<index>: <min>, <typ>, <max>);
Parameters
<index>
<min>
<typ>
<max>
Mixed-Signal Simulation
Use
Formula
<min>, <max>
<min> only
<typ> only
<max> only
Notes
If <index> is not one of the predefined variables listed below, then <min scale factor>
= 0.5 and <max scale factor> = 1.5. The <min scale factor> and <max scale factor> for
each of these predefined variables can be changed in the Analog Options dialog. The
<min scale factor> and <max scale factors> are reversed for ld_param, drv_param and
i_param because these parameters control a resistance value rather than a current value
(i.e., maximum load equates to minimum resistance).
Variable
290
SPICE Option
Parameter
Default
tp_param
PROPMNS
0.5
tp_param
PROPMXS
1.5
tt_param
TRANMNS
0.5
tt_param
TRANMXS
1.5
ld_param
LOADMNS
1.5
ld_param
LOADMXS
0.5
drv_param
DRIVEMNS
1.5
drv_param
DRIVEMXS
0.5
i_param
CURRENTMNS
1.5
i_param
CURRENTMXS
0.5
vth_param
VTHMNS
0.5
vth_param
VTHMXS
1.5
user_param
USERMNS
0.5
user_param
USERMXS
1.5
In this example, if we assume that PROPMNS and PROPMXS are set to their default
values, then:
if tp_param = 1, then tplh_val = 2.5n
if tp_param = 2, then tplh_val = 5n
if tp_param = 3, then tplh_val = 10n
ricch_val = (MIN_TYP_MAX(i_param: NULL, 2500, 1250));
INTEGERS, SELECT_VALUE
NO_CHANGE
Leaves output state of I/O pins unchanged.
General Form
NO_CHANGE <output> [<output> ...];
Parameters
<output>
Use
Use the NO_CHANGE function to indicate no-change for specified output pins. Use
this statement on bi-directional pins when the bi-directional pin is being treated as an
input.
Notes
Pin names and variables cannot be mixed in the same NO_CHANGE statement.
References to outputs must be either all pin names or all variable names.
Example
NO_CHANGE Q1 Q2 Q3 Q4;
NUMBER
Returns number based on binary weighted pin states.
General Form
NUMBER(<MSB pin>, [<pin>,
291
Mixed-Signal Simulation
Parameters
<pin>
Use
The NUMBER function returns a short integer that represents the decimal value of the
binary number represented by the list of <pin>. Each bit (represented by a <pin>) is set
to 1 if the <pin> is non-zero, otherwise it is set to 0.
Notes
The first <pin> in the list represents the most-significant-bit (MSB) and the last <pin>
in the list represents the least-significant-bit (LSB).
Example
A = (NUMBER(D3,D2,D1,D0));
In this example, if D3 is HIGH, and D2, D1 and D0 are LOW (10002), then A = 8.
OPERATORS
Assignment Operator
Math Operators
+
*
/
Add
Subtract
Multiply
Divide
Unary Operators
~
!
Logical not
Bitwise complement
Logical Operators
&&
||
^^
AND
OR
XOR
Bitwise Operators
&
|
^
<<
>>
292
AND
OR
XOR
Shift left
Shift right
=
!=
<
<=
>
>=
Equal
Not equal
Less than
Less than or equal to
Greater than
Greater than or equal to
Use
X=1
X=1
X=1
X=1
X=1
X=1
X=1
then
then
then
then
then
then
then
Y=FFFFFFFE
A=1, if X=2
B=9, if X=2
C=0, if X=2
D=1, if X=2
E=4, if X=2
F=4, if X=2
then
then
then
then
then
then
A=0
B=10
C=0
D=0
E=8
F=8
See Also
MATH FUNCTIONS
OUTPUTS
Declares output pins (pins that drive or load the circuit).
General Form
OUTPUTS <output pin>[, <output pin>, ...];
293
Mixed-Signal Simulation
Parameters
<output pin>
Use
The OUTPUTS data type is used to define the pins which affect the operation of
circuitry external to the device. These generally include input, output, I/O and power
pins. Input and power pins are included in this list because their presence constitutes a
load on the driving circuitry.
Notes
Output pin names must begin with a letter and be defined before they are used.
Example
OUTPUTS VCC_LD, PRE_LD, DATA_LD, CLK_LD, CLR_LD, QN, Q;
See Also
See INTEGER and REAL declarations for a list of SimCode model definition
parameters and their associated variable names.
Example
A = PARAM_SET(ld_param);
IF (PARAM_SET(voh_param)) THEN ...
See Also
INTEGERS, REALS
PROMPT
Pauses simulation and displays a message.
294
<message>
<value>
<pin>
Use
The PROMPT statement is used to stop simulation and display the information
specified by the <message> string. The message is displayed in the status window
during simulation. The user must click on a button to continue execution of the
SimCode.
Notes
tab
\n
new line
\r
Carriage return
%d
%D
%x
%X
%c
%C
%e
%f
%g
%s
Note:
INSTANCE
FUNC
FILE
Example
PROMPT("input=%d
See Also
MESSAGE
295
Mixed-Signal Simulation
PWL_TABLE
Returns value from interpolative look-up table.
General Form
PWL_TABLE (<IN var>: <IN1>,<OUT1>,<IN2>,<OUT2>[,...<OUTn>,<OUTn>])
Parameters
<IN var>
<INx>
<OUTx>
Use
This piece-wise-linear function is essentially a look-up table. The value of <IN var> is
used to look up an entry in the table which consists of pairs of values. The first value in
each pair is an input compare value and the second value is the corresponding output
value. If the <IN var> value is less than the first <IN> value the first <OUT> value is
returned. If the <IN var> value is greater than the last <INn> value then the last
<OUTn> value is returned. Linear interpolation is done between entries according to
the formula:
value = (((OUTA-OUTB)/(INA-INB))*(<IN var>-INA)+OUTA)
where <IN var> falls between the input compare values INA and INB. The actual
output value will fall between output values OUTA and OUTB.
Notes
Two or more IN/OUT data value pairs must be entered and the IN values must be
entered in ascending order. There is no limit to the maximum number of IN/OUT data
pairs that can be entered.
Example
twh = (PWL_TABLE(var: 5,180n,10,120n,15,80n));
In this example, if var = 10 then twh = 120n and if var = 12 then twh = 104.
See Also
SELECT_VALUE
PWR_GND_PINS
Declares power and ground pins; records supply voltage.
General Form
PWR_GND_PINS (<pwrpin>, <gndpin>);
Parameters
<pwrpin>
<gndpin>
296
The PWR_GND_PINS statement defines which of the INPUTS pins are power and
ground and sets the Power and Ground parameters of the device to absolute voltages as
follows:
pwr_param = voltage on <pwrpin>
gnd_param = voltage on <gndpin>
Notes
This statement can only be used once in the SimCode. Only one pin can be defined for
power and one for ground.
Example
PWR_GND_PINS(VCC, GND);
See Also
<array>
Use
The READ_DATA function opens the file specified by the data= parameter in the
devices .MODEL statement and reads ASCII text data. The number and type
(integer/real) of the values per line that will be read is based on the number and type of
array variables that are specified in the function call. The number of data lines read is
determined by the number of data lines in the specified file and/or the size of the
smallest array in the function call. The READ_DATA function returns the number of
lines read. A negative number is returned if an error is encountered:
-1
-2
-3
-4
-5
-6
Notes
Multiple values per line in the data file must be separated by commas. The real values
in the data file must be in scientific notation. The devices .MODEL statement which
contains the data= parameter must be placed in the device symbols .MDL file.
297
Mixed-Signal Simulation
Example
MYDEVICE.MDL file:
.MODEL AMYDEVICE XSIMCODE(file="{MODEL_PATH}MYDEVICES.SCB" +
func=MyDevice data="{MODEL_PATH}MYDEVICE.DAT" {mntymx})
MYDEVICE.DAT file:
8, 8E-6
9, 9E-6
10, 1E-5
11, 1.1E-5
MyDevice SimCode:
nlines = READ_DATA(int_array, real_array);
This example opens a file called MYDEVICE.DAT in the Models directory. It reads
two columns of data from the file where the first column contains integer values and
the second column contains real values. If the arrays are declared as int_array[3] and
real_array[5] then only the first 3 data lines will be read and nlines will be set to 3.
REALS
Declares real variables and arrays.
General Form
<var>
Use
The REALS data type is used to define real variables and arrays.
Notes
Real variables and arrays must begin with a letter and be defined before they are used.
Real arrays are defined by following the array name with a left bracket ( [ ), an integer
number which defines the size of the array, and a right bracket ( ] ). Real arrays can be
set and/or used in expressions.
The following are reserved SimCode real variables which do not need to be declared:
Variable
298
Use
vil_param
VIL value
vih_param
VIH value
vol_param
VOL value
voh_param
VOH value
v3s_param
N/A
rol_param
N/A
roh_param
N/A
r3s_param
N/A
pwr_param
PWR value
gnd_param
GND value
present_time
N/A
previous_time
N/A
sim_temp
The Digital Model Parameter can be set independently for each digital device in the
Digital Model Parameters dialog box. If the variable is set explicitly in the SimCode,
that setting will override all other settings.
The values of pwr_param and gnd_param are set each time the PWR_GND_PINS
statement is executed. The value of present_time and previous_time are set each time
the time step changes. The value of sim_temp is the current operating temperature of
the circuit which can be set from the SPICE Option TEMP.
Example
REALS tplh_val, tphl_val, ricc_val, vbias, values[64];
See Also
<clk input>
<mr input>
TREC
TRECL
TRECH
<message>
Use
The RECOVER function compares the time difference between a level change (LH or
HL) on the <clk input> and a level change on the <mr input> to a specified test time.
RECOVER test times are specified jointly using TREC=<time> (which sets TRECL
and TRECH to the same value) or individually using TRECL=<time> and
TRECH=<time>. If the compare time is less than the specified <time> a warning will
299
Mixed-Signal Simulation
RETURN
Returns from a subroutine in the SimCode.
General Form
RETURN;
Use
The RETURN instruction is used to return program flow to the instruction that
followed the last GOSUB instruction.
See Also
GOSUB
SELECT_VALUE
Returns value from simple look-up table.
General Form
SELECT_VALUE (<index>: <val/pin/var>,
<val/pin/var>[,<val/pin/var>,...]);
Parameters
<index>
<val/pin/var>
Use
The SELECT_VALUE function returns the value of the number or variable indicated by
the value of the index variable.
Notes
PWL_TABLE, MIN_TYP_MAX
SETUP_HOLD
Tests inputs for setup and hold time violations
General Form
SETUP_HOLD(<clk input> = {LH}|{HL}
<data input> [<data input> ...]
{TS=<time>}|{TSL=<time> TSH=<time>}
{TH=<time>}|{THL=<time> THH=<time>} ["<message>"];
Parameters
<clk input>
<data input>
TS
TSL
TSH
TH
THL
THH
<message>
Use
The SETUP_HOLD function compares the time difference between a level change (LH
or HL) on the <clk input> and a level change on the <data input> to a specified test
time. SETUP test times are specified jointly using TS=<time> (which sets TSL and
TSH to the same value) or individually using TSL=<time> and TSH=<time>. HOLD
test times are specified jointly using TH=<time> (which sets THL and THH to the
same value) or individually using THL=<time> and THH=<time>. If the compare time
is less than the specified <time> a WARNING will be displayed. An optional
<message> string can be included in a SETUP_HOLD statement which will be output
if a WARNING is displayed.
Notes
Mixed-Signal Simulation
TSL is specified, then the <data input> must be LOW when the <clk input> goes from
LOW to HIGH for a SETUP test to be made. Pin names and variables can be mixed in
the same SETUP_HOLD statement.
Example
SETUP_HOLD(CLK=LH DATA Ts=ts_val Th=th_val "CLK->DATA");
STATE
Sets outputs to the declared logic state.
General Form 1
STATE <output> [<output>...] = (<expression>);
General Form 2
STATE <output> [<output>...] = {ZERO}|{ONE}|{UNKNOWN};
Parameters
<output>
<expression>
Use
The state of an output pin is determined by its level and its strength. The STATE
command sets the level and strength for one or more output pins or variables. If
<expression> is less than or equal to vil_param, the output will be set to ZERO. If
<expression> is greater than or equal to vih_param, the output will be set to ONE.
Otherwise, the output will be set to UNKNOWN. The level and strength values are set
according to the state:
<expression>
State
Level
Strength
<= vol_param
>= voh_param
other
ZERO
ONE
UNKNOWN
vol_param
voh_param
v3s_param
rol_param
roh_param
r3s_param
Notes
Output pins can be specified by using the output pin name or by an integer variable that
contains the index of an output pin. Pin and variable names cannot be mixed in the
same STATE command. References to outputs must be either all pin names or all
variable names.
Examples
STATE Q = ONE;
STATE Q1 Q2 Q3 Q4 = ZERO;
STATE OUT = ((1+2)/3);
<output>
<expression>
Use
The state of an output pin is determined by its level and its strength. The STATE_BIT
command is used to set the level and strength for one or more output pins based on the
value of the <expression>. The state of the first pin listed is set according to the first
(least-significant-bit) of the expression's value, the state of the second pin listed is set
according to second bit of the expression's value, and so on. The level and strength
values are set by the bit's value:
Bit Value
State
Level
Strength
0
1
ZERO
ONE
vol_param
voh_param
rol_param
roh_param
Notes
Output pins can be specified by using the output pin name or by an integer variable that
contains the index of an output pin. Pin and variable names cannot be mixed in the
same STATE_BIT statement. References to outputs must be either all pin names or all
variable names. The maximum number of output pins/vars is limited to 16.
Example
STATE_BIT Q1 Q2 Q3 Q4 = (internal_reg);
303
Mixed-Signal Simulation
General Form
STEP_OFF
Use
STEP_ON
STEP_ON
Turns on the SimCode trace mode.
General Form
STEP_ON
Use
The STEP_ON statement turns on the SimCode TRACE mode. This causes the
SimCode to display the Program Counter (PC) number and each SimCode instruction
before it is executed.
See Also
STEP_OFF
STRENGTH
Sets the strength of the output state.
General Form 1
STRENGTH <output> [<output> ...] = (<expression>);
General Form 2
STRENGTH <output> [<output> ...] = {STRONG}|{HI_IMPEDANCE};
Parameters
<output>
<expression>
Use
The state of an output pin is determined by its level and its strength. Use the
STRENGTH command to set the strength of one or more output pins.
304
Value
State
Strength
STRONG
STRONG
HI_IMPEDANCE
<expression>
ZERO
ONE
N/A
N/A
rol_param
roh_param
r3s_param
<expression>
Output pins can be specified by using the output pin name or by an integer variable that
contains the index of an output pin. Pin and variable names cannot be mixed in the
same STATE statement. References to outputs must be either all pin names or all
variable names.
See Also
<min value>
<max value>
Use
The SUPPLY_MIN_MAX function checks the voltage difference between the power
and ground pins defined in PWR_GND_PINS. If the WARN flag is set in the Digital
Model Parameters dialog box and the voltage difference (pwr_param - gnd_param) is
less than <min value> or greater than <max value> a warning will be displayed during
simulation.
Notes
INTEGERS, PWR_GND_PINS
TABLE
Sets output logic states based on truth table.
General Form
TABLE <line>
<input> [<input> ...] <output pin> [<output pin> ...]
<input state> [<input state> ...] <output state> [<output state> ...];
Parameters
<line>
305
Mixed-Signal Simulation
<input>
<output pin>
<input state>
<output state>
Use
The TABLE statement operates like a truth table to set the level and strength of the
specified outputs. Valid input states are:
0
low (input voltage is <= vil_param).
1
high (input voltage is >= vih_param).
X
dont care what input voltage is.
Valid output states are:
L
ZERO (set output level to vol_param)
H
ONE (set output level to voh_param).
Z
UNKNOWN (set output level to v3s_param).
Output state letters can be followed by a colon and a letter to indicate strength:
s
STRONG (set output to rol_param for L and roh_param for H).
z
HI_IMPEDANCE (set output to r3s_param).
If a strength character is not specified after an output state then STRONG will be used
for L and H states and HI_IMPEDANCE will be used for Z states.
Notes
Each row is tested sequentially from top to bottom until the input conditions are met.
The outputs are set for the first row to meet the input conditions. The <line> is set to
the line number in the table that was used. If no match was made then <line> is set to
0. Input pin and variable names cannot be mixed in the same TABLE statement.
References to inputs must be either all pin names or all variable names.
Example
TABLE tblIndex
INA
INB
OUT
0 0 H
0 1 H
1 0 H
1 1 L;
This example is representative of 1/4 of a 7400 2-input NAND gate. If input pins INA
and INB are both high (>= vih_param), OUT is set to ZERO (vol_param) and
STRONG (rol_param) and tblIndex is set to 4.
See Also
306
VALUE
Returns the value of the specified pin.
General Form
VALUE(<pin>)
Parameters
<pin>
Use
The VALUE function returns a real number that indicates the voltage level of the
specified pin.
Example
v = (VALUE(D3));
VIL_VIH_PERCENT
Sets VIL and VIH values to a percentage of supply voltage.
General Form
VIL_VIH_PERCENT (<vil %>, <vih %>);
Parameters
<vil %>
<vih %>
Use
VIL and VIH do not use a min/typ/max array to select their values, but must be
declared explicitly for each digital device. The VIL_VIH_PERCENT statement sets the
VIL and VIH parameters of the device to a percentage of the supply voltage as follows:
vil_param = (pwr_param - gnd_param) * <vil %>
vih_param = (pwr_param - gnd_param) * <vih %>
Notes
PWR_GND_PINS must be defined to use this function. The % values must be greater
than 0 and less than 100. The vil_param and vih_param values set by
VIL_VIH_PERCENT are overridden by any values set for VIL value and VIH
value in the Digital Model Parameters dialog box.
Example
VIL_VIH_PERCENT(33, 67);
See Also
Mixed-Signal Simulation
General Form
VIL_VIH_VALUE (<vil>, <vih>);
Parameters
<vil>
<vih>
Use
VIL and VIH do not use a min/typ/max array to select their values, but must be
declared explicitly for each digital device. The VIL_VIH_VALUE statement sets the
VIL and VIH parameters of the device to absolute voltages as follows:
vil_param = <vil>
vih_param = <vih>
Notes
In order to more accurately model the actual switching characteristics of a digital input,
VIL and VIH are not generally set to their specified databook values. The exception is
the case of devices with a specified hysteresis such as the 74LS14. Typically, the
hysteresis of a digital device is small, in the order of 100mV, but never 0V.
The vil_param and vih_param values set by VIL_VIH_VALUE are overridden by any
values set for VIL value and VIH value in the Digital Model Parameters dialog
box.
Example
VIL_VIH_VALUE(1.25, 1.35);
See Also
REALS, VIL_VIH_PERCENT
VOL_VOH_MIN
Sets VOH and VOL relative to power and ground.
General Form
VOL_VOH_MIN (<vol offset>, <voh offset>, <min voh-vol>);
Parameters
<vol offset>
<voh offset>
<min voh-vol>
Use
VOL and VOH do not use a min/typ/max array to select their values, but must be
declared explicitly for each digital device. The VOL_VOH_MIN statement sets the
VOL and VOH parameters of the device as follows:
vol_param = gnd_param + <vol offset>
voh_param = pwr_param + <voh offset>
308
In order to more accurately model the actual characteristics of a digital output, VOH is
not generally set to its specified databook value. The reason for this deviation is that
databook values for VOH are specified for maximum IOH load. In digital SimCode,
VOL and VOH represent an unloaded output voltage.
PWR_GND_PINS must be defined to use this function. The vol_param and voh_param
values set by VOL_VOH_MIN are overridden by any values set for VOL value and
VOH value in the Digital Model Parameters dialog box. These are offset values
rather than absolute voltages. The <voh offset> is negative so that when added to
pwr_param, the resulting VOH will not be greater than pwr_param. If the difference
between the resulting vol_param and voh_param is less than <min voh-vol>, then
vol_param will be set to the value of gnd_param and voh_param will be set to
gnd_param + <min voh-vol>.
Example
VOL_VOH_MIN(0.2, -0.4, 0.1);
In this example:
1
2
See Also
REALS, PWR_GND_PINS
WHILE ... DO
Conditionally controls looping in the SimCode.
General Form
WHILE (<expression>) DO BEGIN ... END;
Parameters
<expression>
Use
The WHILE ... DO statement is used to loop through a section of SimCode until
<expression> evaluates to false.
Notes
Program flow will remain in a loop between the BEGIN and END statements until
<expression> evaluates to false, then program flow resumes after the END statement.
Examples
i = 1;
WHILE (i <= 5) DO
BEGIN
data[i] = data[i + 1];
i = i + 1;
309
Mixed-Signal Simulation
END;
See Also
IF ... THEN
WIDTH
Tests inputs for minimum pulse width violations.
General Form
WIDTH(<input> [<input>...] {TWL=<time>}|{TWH=<time>} ["<message>"];
Parameters
<input>
TWL
TWH
<message>
Use
The WIDTH function compares the pulse width on each <ipin> to the specified test
WIDTH times. A low level test time is specified using TWL=<time> while a high level
test time is specified using TWH=<time>. If the compare time is less than the specified
<time> a WARNING will be displayed. An optional <message> string can be included
in the WIDTH statement which will be output if a WARNING is displayed.
Notes
Databook specifications should be used with this function. The input pins can be input
pin names and/or integer variables that contain an index value to an input pin. Pin
names and variables can be mixed in the same WIDTH statement.
Examples
WIDTH(CLK TWL=clk_twl TWH=clk_twh "CLK");
WIDTH(PRE CLR TWL= pre_clr_twl "PRE or CLR");
WIDTH_TIME
Returns last pulse width encountered on specified pin.
General Form
WIDTH_TIME(<input>)
Parameters
<input>
Use
This function returns a real value that indicates the last pulse width encountered on the
specified <input>.
Example
PW = (WIDTH_TIME(CP2));
310
Section 5
PLD Design
PLD Design Feature Highlights
An Overview of the PLD Design Process
Schematic-based PLD Design Entry
CUPL HDL Design Entry
Compiling the Programmable Logic Design
Simulating the Programmable Logic Design
Sample PLD Design Session
PLD Design Examples
313
316
319
336
351
359
389
411
311
PLD Design
312
This section of the Protel Designers Handbook will guide you through the process of
designing for programmable logic. As you read this section you will find all the
information you need to design a PLD; either as a schematic, or using the CUPL
Hardware Description Language.
The CUPL HDL allows you to design a PLD using Boolean equations, state machines
and truth tables. Use the sample design session and the design examples to guide you
through the design process.
Extensive device libraries are included, supporting devices from all the major
manufacturers of programmable logic. The CUPL HDL is manufacture-independent,
providing you with both design and packaging freedom.
313
PLD Design
314
315
PLD Design
316
317
PLD Design
macrocells and multiplexers of complex devices to fit the Boolean logic into the
device. If the design cannot fit into the device an error message is displayed. The fitter
module also creates all the output files specified in the Configure dialog.
The fitter module determines if the design fits the target device architecture and builds
a fuse map. The fuse map and symbol table are used to generate the documentation and
JEDEC files.
318
configure
compile
simulate
A 2 input NOR, a 2-to-1 multiplexer, and a 3-to-8 decoder from the PLD Symbols library
319
PLD Design
320
There are three types of arithmetic functions: accumulators (ACC), adders (ADD), and
adder/subtracters (ADSU).
ACC1
ACC16
ACC4
ACC8
ADD1
ADD16
ADD4
ADD8
ADSU1
ADSU16
ADSU4
ADSU8
X74_280
X74_283
Buffers
Buffers route high fan-out signals, 3-state signals, and clocks inside a PLD device.
BUF
BUF16
BUF4
BUF8
BUFE
BUFE16
BUFE4
BUFE8
BUFG
BUFGP
BUFGS
BUFT
BUFT16
BUFT4
321
PLD Design
BUFT8
Comparators
There are two types of comparators, identity (COMP) and magnitude (COMPM).
COMP16
COMP2
COMP4
COMP8
COMPM16
COMPM2
COMPM4
COMPM8
COMPMC16
COMPMC8
X74_518
X74_521
X74_L85
Counters
There are six types of counters, with a variety of synchronous and asynchronous
inputs. Use the naming information shown below to determine exactly what functions
each counter includes.
CB16CE
CB16CLE
CB16CLED
CB16RE
CB2CE
CB2CLE
CB2CLED
CB2RE
CB4CE
CB4CLE
CB4CLED
CB4RE
CB8CE
322
16-Bit cascadable binary counter with clock enable and asynchronous Clear
16-Bit loadable cascadable binary counter with clock enable and
asynchronous Clear
16-Bit loadable cascadable bi-directional binary counter with clock enable
and asynchronous Clear
16-Bit cascadable binary counter with clock enable and synchronous reset
2-Bit cascadable binary counter with clock enable and asynchronous Clear
2-Bit loadable cascadable binary counter with clock enable and
asynchronous Clear
2-Bit loadable cascadable bi-directional binary counter with clock enable
and asynchronous Clear
2-Bit cascadable binary counter with clock enable and synchronous reset
4-Bit cascadable binary counter with clock enable and asynchronous Clear
4-Bit loadable cascadable binary counter with clock enable and
asynchronous Clear
4-Bit loadable cascadable bi-directional binary counter with clock enable
and asynchronous Clear
4-Bit cascadable binary counter with clock enable and synchronous reset
8-Bit cascadable binary counter with clock enable and asynchronous Clear
CB8CLE
CB8CLED
CB8RE
CC16CE
CC16CLE
CC16CLED
CC16RE
CC8CE
CC8CLE
CC8CLED
CC8RE
CD4CE
CD4CLE
4-Bit cascadable BCD counter with clock enable and asynchronous Clear
4-Bit loadable cascadable BCD counter with clock enable and asynchronous
Clear
4-Bit cascadable BCD counter with clock enable and synchronous reset
4-Bit loadable cascadable BCD counter with clock enable and synchronous
reset
4-Bit Johnson counter with clock enable and asynchronous Clear
4-Bit Johnson counter with clock enable and synchronous reset
5-Bit Johnson counter with clock enable and asynchronous Clear
5-Bit Johnson counter with clock enable and synchronous reset
8-Bit Johnson counter with clock enable and asynchronous Clear
8-Bit Johnson counter with clock enable and synchronous reset
16-Bit Negative-Edge binary ripple counter with clock enable and
asynchronous Clear
8-Bit Negative-Edge binary ripple counter with clock enable and
asynchronous Clear
4-Bit BCD counter with parallel and trickle enables, active-low load enable
and synchronous reset
4-Bit binary counter with parallel and trickle enables, active-low load enable
and synchronous reset
4-Bit binary counter with parallel and trickle enables, active-low load enable
and synchronous reset
4-Bit binary counter with parallel and trickle enables, active-low load enable
and synchronous reset
CD4RE
CD4RLE
CJ4CE
CJ4RE
CJ5CE
CJ5RE
CJ8CE
CJ8RE
CR16CE
CR8CE
X74_160
X74_161
X74_162
X74_163
323
PLD Design
X74_168
X74_390
4-Bit BCD bi-directional counter with parallel and trickle clock enables and
active-low load enable
4-Bit BCD/Bi-Quinary counter with negative-edge clock and asynchronous
clear
Data Registers
The 3 types of data registers function exactly the same as the equivalent TTL
components.
X74_174
X74_273
X74_377
Decoders
Encoders
Flip-Flops
There are three types of flip-flops (D, J-K, toggle) with various synchronous and
asynchronous inputs. Some of the flip-flops have inverted clock inputs, and/or the
ability to be set in response to a global set/reset, rather than reset.
FD
FD_1
FD16CE
FD16RE
FD4CE
FD4RE
FD8CE
FD8RE
324
D Flip-Flop
D Flip-Flop with negative-edge clock
16-Bit data register with clock enable and asynchronous clear
16-Bit data register with clock enable and synchronous reset
4-Bit data register with clock enable and asynchronous clear
4-Bit data register with clock enable and synchronous reset
8-Bit data register with clock enable and asynchronous clear
8-Bit data register with clock enable and synchronous reset
FDC
FDC_1
FDCE
FDCE_1
FDCP
FDCPE
FDCS
FDP
FDP_1
FDPE
FDPE_1
FDR
FDRE
FDRS
FDRSE
FDS
FDSE
FDSR
FDSRE
FJKC
FJKCE
FJKCP
FJKCPE
FJKCS
FJKP
FJKPE
FJKRSE
FJKSRE
FTC
FTCE
FTCLE
FTCP
FTCPE
FTCPLE
FTCS
FTP
FTPE
325
PLD Design
FTPLE
FTRSE
FTRSLE
FTSRE
FTSRLE
Input/Output Flip-Flops
Input/Output flip-flops are configured in IOBs. They include flip-flops whose outputs
are enabled by 3-state buffers, flip-flops that can be set upon global set/reset rather
than reset, and flip-flops with inverted clock inputs.
IFD
IFD_1
IFD16
IFD4
IFD8
OFD
OFD_1
OFD16
OFD4
OFD8
OFDE
OFDE_1
OFDE16
OFDE4
OFDE8
OFDT
OFDT_1
OFDT16
OFDT4
OFDT8
326
Input D Flip-Flop
Input D Flip-Flop with inverted clock
16 x Input D Flip-Flops
4 x Input D Flip-Flops
8 x Input D Flip-Flops
Output D Flip-Flop
Output D Flip-Flop with inverted clock
16 x Output D Flip-Flop
4 x Output D Flip-Flop
8 x Output D Flip-Flop
Output D Flip-Flop with active-high enable output buffer
Output D Flip-Flop with active-high enable output buffer and inverted clock
16 x Output D Flip-Flop with active-high enable output buffer
4 x Output D Flip-Flop with active-high enable output buffer
8 x Output D Flip-Flop with active-high enable output buffer
Output D Flip-Flop with active-high 3-state and active-low enable output
buffer
Output D Flip-Flop with active-high 3-state and active-low enable output
buffer and inverted clock
16 x Output D Flip-Flop with active-high 3-state and active-low enable output
buffer
4 x Output D Flip-Flop with active-high 3-state and active-low enable output
buffer
8 x Output D Flip-Flop with active-high 3-state and active-low enable output
buffer
Input buffer
16 x Input buffers
4 x Input buffers
8 x Input buffers
Output buffer
16 x Output buffer
4 x Output buffer
8 x Output buffer
3-state Output buffer with active-high output enable
16 x 3-state Output buffer with active-high output enable
4 x 3-state Output buffer with active-high output enable
8 x 3-state Output buffer with active-high output enable
3-state Output buffer with active-low output enable
16 x 3-state Output buffer with active-low output enable
4 x 3-state Output buffer with active-low output enable
8 x 3-state Output buffer with active-low output enable
Input/Output Pads
Input, Output, and Input/Output pads are used to connect to the device pins.
IOPAD
IOPAD16
IOPAD4
IOPAD8
IPAD
IPAD16
IPAD4
IPAD8
OPAD
OPAD16
OPAD4
OPAD8
Input/Output Pad
16 x Input Pads
4 x Input/Output Pads
8 x Input/Output Pads
Input Pad
16 x Input Pads
4 x Input Pads
8 x Input Pads
Output Pad
16 x Output Pads
4 x Output Pads
8 x Output Pads
327
PLD Design
Input Latches
Input latches are used to hold transient data entering the device.
ILD
ILD_1
ILD16
ILD4
ILD8
Inverters
Logic inverters.
INV
INV16
INV4
INV8
Inverter
16 x Inverters
4 x Inverters
8 x Inverters
Latches
Logic Primitives
Combinatorial logic gates that implement the basic Boolean functions. Up to 5 inputs
with a combination of inverted and non-inverted inputs, and up to 9 inputs noninverted.
AND2
AND2B1
AND2B2
AND3
AND3B1
AND3B2
AND3B3
AND4
AND4B1
AND4B2
AND4B3
AND4B4
328
AND5
AND5B1
AND5B2
AND5B3
AND5B4
AND5B5
AND6
AND7
AND8
AND9
NAND2
NAND2B1
NAND2B2
NAND3
NAND3B1
NAND3B2
NAND3B3
NAND4
NAND4B1
NAND4B2
NAND4B3
NAND4B4
NAND5
NAND5B1
NAND5B2
NAND5B3
NAND5B4
NAND5B5
NAND6
NAND7
NAND8
NAND9
NOR2
NOR2B1
NOR2B2
NOR3
NOR3B1
NOR3B2
NOR3B3
329
PLD Design
NOR4
NOR4B1
NOR4B2
NOR4B3
NOR4B4
NOR5
NOR5B1
NOR5B2
NOR5B3
NOR5B4
NOR5B5
NOR6
NOR7
NOR8
NOR9
OR2
OR2B1
OR2B2
OR3
OR3B1
OR3B2
OR3B3
OR4
OR4B1
OR4B2
OR4B3
OR4B4
OR5
OR5B1
OR5B2
OR5B3
OR5B4
OR5B5
OR6
OR7
OR8
OR9
SOP3
SOP3B1A
330
SOP3B1B
SOP3B2A
SOP3B2B
SOP3B3
SOP4
SOP4B1
SOP4B2A
SOP4B2B
SOP4B3
SOP4B4
XNOR2
XNOR3
XNOR4
XNOR5
XNOR6
XNOR7
XNOR8
XNOR9
XOR2
XOR3
XOR4
XOR5
XOR6
XOR7
XOR8
XOR9
Multiplexers
331
PLD Design
X74_152
X74_153
X74_154
X74_157
X74_158
X74_298
X74_352
Shift Registers
Various size shift registers, with different enable and clear options.
SR4CE
SR4CLE
SR4CLED
SR4RE
SR4RLE
SR4RLED
SR8CE
SR8CLE
SR8CLED
SR8RE
SR8RLE
SR8RLED
SR16CE
SR16CLE
SR16CLED
SR16RE
332
4-Bit Serial-in Parallel-out shift register with clock enable and asynchronous
clear
4-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
4-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
4-Bit Serial-in Parallel-out shift register with clock enable and synchronous
reset
4-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
4-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
8-Bit Serial-in Parallel-out shift register with clock enable and asynchronous
clear
8-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
8-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
8-Bit Serial-in Parallel-out shift register with clock enable and synchronous
reset
8-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
8-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
16-Bit Serial-in Parallel-out shift register with clock enable and
asynchronous clear
16-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
16-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and asynchronous clear
16-Bit Serial-in Parallel-out shift register with clock enable and synchronous
SR16RLE
SR16RLED
X74_164
X74_165S
X74_194
X74_195
reset
16-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
16-Bit loadable Serial/Parallel-in Parallel-out shift register with clock enable
and synchronous reset
8-Bit serial-in parallel-out shift register with active-low asynchronous clear
8-Bit loadable serial/parallel-in parallel-out shift register with clock enable
4-Bit loadable bi-directional serial/parallel-in parallel-out shift register
4-Bit loadable serial/parallel-in parallel-out shift register
Shifters
BRLSHFT4
BRLSHFT8
GND
VCC
RAM
RAM16X1
Each symbol in the design must have a unique designator, including the input and
output pads. There are no special requirements or restrictions on designators.
Assigning net names to all internal nets can assist in debugging.
Internal net names must be unique, and cannot be the negated value of any other
net name.
333
PLD Design
Buses can be used, they must include the standard bus-format net labels, the range
can be either ascending or descending.
Use symbols that are appropriate for the target device.
There are a number of multi-pin IPAD, OPAD and IOPAD components in the library.
334
net name
DBus0
DBus1
DBus2
DBus3
DBus4
DBus5
DBus6
DBus7
Component pin
21
22
23
24
25
39
38
32
DBus[0..7]
U51
IOPAD8
DBus7
DBus6
DBus5
DBus4
DBus3
DBus2
DBus1
DBus0
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
LOC=PIN[21..25,39,38,32]
These can be used to connect an internal bus to the component pins. The syntax used
for mapping the PAD pins to physical component pins in Part Field 1 is to either
specify the pins as a range, separated by 2 dots (ascending or descending); or specify
them individually, separated by a comma. The mapping that would apply for the
IOPAD8 shown in the figure is shown in the table.
Displaying all the Pin Numbers
The Pin Numbers can be displayed on the sheet by selecting Simulate Display Pin
LOCs from the Schematic Editor menus. This is a toggle feature, select it again to hide
them.
If the design is a multi-sheet design you must also disable the Current sheet only option
and set the Net Identifier Scope option, in the Configure PLD dialog.
When you initiate the Compile process the design is first translated from a schematic to
a CUPL compiler source file. The resulting CUPL file (filename.PLD) is then compiled
to produce the selected output files.
When you compile a design using the CUPL compiler you can use the Virtual
Device option. This allows you to verify that the design will compile, as well as
examine the maximum number of product terms it will require (check the DOC
file). The number of product terms is often the reason a larger device must be used
experiment with the various compiler options and optimizations to reduce this
number.
335
PLD Design
Formulate the Equations: Equations must be written in CUPL to specify the logic
desired. This can be in Boolean, state-machine, or truth table format.
Choose a Target Device: Make sure that there is a sufficient number of input pins. Check
that the number of registered and non-registered output pins is sufficient for the design.
Ensure that the device has three-state output control, if needed. Check that the device
can adequately handle the number of product terms required. Select the target device in
the Configure PLD dialog.
Assign the inputs and outputs of the design to the pins of the
device. Make sure that the device is being used properly by consulting the reference
material available from the manufacturer.
Ready to Compile:
336
Header Information
The header contains fundamental information about the design. The type of
information included is the name of the file, a part number for the device, a starting
date, a design revision number, a company name, a designers name, the assembly for
the device, and the location of the device in the assembly. The header may also specify
the device to be used for the design and the type of output to be generated by the
compiler. The header information can appear in any order and all of the information is
optional except for the name field. When a header item is missing, a warning message
will appear, but the compilation will be uninterrupted
Name
Partno
Date
Revision
Designer
Company
Assembly
Location
Format
Device
XXXXXX;
XXXXXX;
XX/XX/XX;
XX;
XXXXXX;
XXXXXX;
XXXXXX;
XXXXXX;
XXXXXX;
XXXXXX;
Title Block
The title block is a comment area provided for the designer to place a title and
description of the design. The actual device name and manufacturer can be placed here
for future use or second source possibilities.
/**************************************************************/
/*
*/
/*
*/
/*
*/
/**************************************************************/
/* Allowable Target Device Types:
*/
/**************************************************************/
Title Block Section
Pin/node Definition
The pin/node section provides a comment label for the section and pin declaration
statements that the designer can fill in with the numbers and labels for his design. The
pin definitions can be in any order but it is easier to understand the design when the
pins are grouped according to usage. Empty comments are provided after each pin
definition to better describe the pins role in the design
337
PLD Design
/**
Pin
Pin
Pin
Inputs
/**
Pin
Pin
Pin
Outputs
Pinnode
Pinnode
**/
=
=
=
;
;
;
/*
/*
/*
*/
*/
*/
**/
=
=
=
;
;
;
/*
/*
/*
*/
*/
*/
=
=
;
;
/*
/*
*/
*/
Intermediate Variables
Intermediate variables are used to generate logic equations or additional intermediate
variables, which can then be used in other expressions. Writing logic equations in this
top down manner yields a logic description file that is easier to read and comprehend
Logic Equations
This section is like the body of a letter. It contains all the important parts of the design
like state machines, truth tables, and Boolean equations
constants that are commonly used in many source specifications. The files that are
included may also contain $include commands, allowing for nested include files.
Conditional Compilation
Conditional compilation allows the user to compile sections of source code based on
the existence or nonexistence of defined symbolic constants. These commands are
$ifdef, $ifndef, $else, and $endif. When a symbolic constant has previously been
defined, the source statements following the $ifdef command are compiled until the
occurrence of an $else or $endif command. When the argument has not previously
been defined, the source statements following the $ifdef command are ignored. The
$ifndef command works in the opposite manner of the $ifdef command. If the tested
condition of the $ifdef or $ifndef commands is false, then any source statements
between an $else and $endif command are compiled, otherwise they are ignored. The
$endif command is used to end a conditional compilation started with the $ifdef or
$ifndef commands. Conditional compilation may be nested, and for each level of
nesting of the $ifdef or $ifndef command, an associated $endif must be used.
$DEFINE Prototype X /*
$IFDEF Prototype
pin 1 = memreq;
/*
/*
pin 2 = ioreq;
/*
/*
$ELSE
pin 1 = ioreq;
/*
/*
pin 2 = memreq;
/*
/*
$ENDIF
define Prototype*/
memory request on */
pin 1 of prototype*/
I/O request on*/
pin 2 of prototype*/
I/O request on*/
pin 1 of PCB*/
memory request on
pin 2 of PCB*/
*/
Repeating Statements
To repeat a set of CUPL language statements use the $repeat and $repend commands.
This command is similar to the FOR statement in C language and the DO statement in
FORTRAN language. The statements between the $repeat and $repend will be
repeated as many times as the index in the $repeat statement allows. This can make
defining state machine based counters very easy.
CUPL Source Code
339
PLD Design
!out4
!out5
!out6
!out7
=
=
=
=
sel:h4
sel:h5
sel:h6
sel:h7
&
&
&
&
enable;
enable;
enable;
enable;
Using Macros
A macro is a user-defined command that allows the user to substitute a series of
commands for a single word. This is accomplished by using the $macro and $mend
commands. The statements between the $macro and $mend commands will not be
compiled until the macro name is called. The macro is called by stating the macro
name in the source file and passing the parameters to the macro. Macros can be used to
create a library of decoders, counters, etc. A macro expansion (.MX) file can be created
to see how the preprocessor processed the macro definition.
$MACRO decoder bits MY_X MY_Y MY_enable;
FIELD select = [MY_Y{bits-1}..0];
$REPEAT i = [0..{2**(bits-1)}]
!MY_X{i} = select:h{i} & MY_enable;
$REPEND
$MEND
_/* Other CUPL statements */
decoder(3, out, in, enable); /*macro function call*/
Using $macro and $mend Commands
340
Corresponding Minimization
None
Quick
Quine-McCluskey
Presto
Expresso
= 2;
/* no reduction
*/
/* Quine-McCluskey reduction
/* Expresso reduction
*/
*/
341
PLD Design
Language Elements
This section describes the elements that comprise the CUPL logic description
language.
Pin/node Definition
Since the PIN definitions must be declared at the beginning of the source file, their
definition is a natural starting point for a design. Nodes and pinnodes, used to define
buried registers, should also be declared at the beginning of the source file. Pin
assignment needs to be done if you already know the device you want to use. However,
when creating a VIRTUAL design only the variable names that will later be assigned
to pins need to be filled in. The area that normally contains the pin number is left
blank.
Defining Intermediate Variables
Intermediate variables are variables that are assigned to an equation, but are not
assigned to a PIN or NODE. These are used to define equations that are used by many
variables or to provide an easier understanding of the design.
Using Indexed Variables
Variable names that end in a decimal number from 0 to 31 are referred to as indexed
variables. They can be used to represent a group of address lines, data lines, or other
sequentially numbered items. When indexed variables are used in bit field operations
the variable with index number 0 is always the lowest order bit.
Using Number Bases
All operations involving numbers in the Compiler are done with 32-bit accuracy.
Therefore, the numbers may have a value from 0 to 232 -1. Numbers may be
represented in any one of the four common bases: binary, octal, decimal, or
hexadecimal. The default base for all numbers used in the source file is hexadecimal,
except for device pin numbers and indexed variables, which are always decimal.
Binary, octal, and hexadecimal numbers can have dont care (X) values intermixed
with numerical values.
Number
b0
B1101
O663
D92
hBA
O[300..477]
H7FXX
342
Base
Binary
Binary
Octal
Decimal
Hexadecimal
Octal (range)
Hexadecimal (range)
Decimal Value
0
13
435
92
186
192..314
32512..32767
343
PLD Design
Language Syntax
This section introduces the logic and arithmetic operators and functions that are needed
to create a design using the CUPL language.
Logical Operators
Four standard logical operators are available for use: NOT, AND, OR, and XOR. The
following table lists the operators and their order of precedence, from highest to
lowest.
Operator
!
&
#
$
Example
!A
A&B
A#B
A$B
Description
NOT
AND
OR
XOR
Precedence
1
2
3
4
Example
Description
2**3
2*i
4/2
9%8
2+4
4-i
Exponentiation
Multiplication
Division
Modulus
Addition
Subtraction
Precedence
1
2
2
2
3
3
One arithmetic function is available to use in expressions being used in $repeat and
$macro commands. The following table shows the arithmetic function and its bases.
Function
Base
LOG2
LOG8
LOG16
LOG
Binary
Octal
Hexadecimal
Decimal
344
Variable Extensions
Extensions can be added to variable names to indicate specific functions associated
with the major nodes inside a programmable device, including such capabilities as flipflop description and programmable tri-state enables. The Compiler checks the usage of
the extension to determine whether it is valid for the specified device and whether its
usage conflicts with some other extension used. The Compiler uses these extensions to
configure the macrocells within a device. This way the designer does not have to know
which fuses control what in the macrocells.
The figure below shows the use of extensions. Note that this figure does not represent
an actual circuit, but shows how to use extensions to write equations for different
functions in a circuit.
OUT_VAR.OE
IN_VAR1
OUT_VAR.SP
n
IN_VAR1
IN_VAR3.DQ
IN_VAR1
FUSE
ARRAY
SP
OUT_VAR.D
D
OUT_VAR
OUT_VAR.CK
OUT_VAR.AR
AR
Logic Equations
Logic equations are the building blocks of the CUPL language. The form for logic
equations is as follows:
[!] var [.ext] = exp ;
where:
var is a single variable or a list of indexed or non-indexed variables defined
according to the rules for list notation. When a variable list is used, the expression
is assigned to each variable in the list.
.ext is an optional variable extension to assign a function to the major nodes inside
a programmable device.
exp is an expression; that is, a combination of variables and operators.
345
PLD Design
input = [in3..0] ;
output = [out4..0] ;
input => output {
1=>01; 2=>02; 3=>03;
5=>05; 6=>06; 7=>07;
9=>09; A=>10; B=>11;
D=>13; E=>14; F=>15;
State Machines
A state machine, according to AMD/MMI, is a digital device which traverses through
a predetermined sequence of states in an orderly fashion. A synchronous state
machine is a logic circuit with flip-flops. Because its output can be fed back to its own
or some other flip-flops input, a flip-flops input value may depend on both its own
output and that of other flip-flops; consequently, its final output value depends on its
own previous values, as well as those of other flip-flops.
347
PLD Design
The CUPL state-machine model, as shown below, uses six components: inputs,
combinatorial logic, storage registers, state bits, registered outputs, and non-registered
outputs. HelveticaCondensed
Inputs
Non-Registered Outputs
COMBINATORIAL
LOGIC
STORAGE
REGISTERS
Registered Outputs
State Bits
Any combination of logic gates (usually AND-OR) that produces an output signal
that is valid Tpd (propagation delay time) nsec after any of the signals that drive
these gates changes. Tpd is the delay between the initiation of an input or feedback
event and the occurrence of a non-registered output.
State Bits
Storage register outputs that are fed back to drive the combinatorial logic. They
contain the present-state information.
Storage Registers
Any flip-flop elements that receive their inputs from the state machines
combinatorial logic. Some registers are used for state bits, others are used for
registered outputs. The registered output is valid Tco (clock to out time) nsec after
the clock pulse occurs. Tco is the time delay between the initiation of a clock
signal and the occurrence of a valid flip-flop output.
To implement a state machine, CUPL supplies a syntax that allows the describing of
any function in the state machine. The SEQUENCE keyword identifies the outputs of a
state machine and is followed by statements that define the function of the state
machine. The SEQUENCE keyword causes the storage registers and registered output
types generated to be the default type for the target device. Along with the
SEQUENCE keyword are the SEQUENCED, SEQUENCEJK, SEQUENCERS, and
SEQUENCET keywords. Respectively, they force the state registers and registered
outputs to be generated as D, J-K, S-R, and T-type flip-flops. The format for the
SEQUENCE syntax is as follows:
SEQUENCE state_var_list {
PRESENT state_n0
IF (condition1) NEXT state_n1;
IF (condition2) NEXT state_n2
348
OUT
out_n0;
DEFAULT
NEXT state_n0;
PRESENT state_n1
NEXT state_n2;
.
.
.
PRESENT state_nn statements ;
}
where
state_var_list is a list of the state bit variables used in the state machine block. The
variable list can be represented by a field variable.
state_n is the state number and is a decoded value of the state_variable_list and
must be unique for each PRESENT statement.
statements are any of the conditional, next, or output statements described in the
following subsections of this section.
var ;
var ;
349
PLD Design
DEFAULT
}
OUT
var ;
350
351
PLD Design
Meaning
EP
G
F
F
F
F
P
P
P
PLD
RA
For example, the device mnemonic for a PAL10L8 is P10L8; for an 82S100 the device
mnemonic is F100. For bipolar PROMs, the suffix is the array size; for example, the
device mnemonic for a 1024 x 8 bipolar PROM is RA10P8, since there are 10 address
input pins and 8 data output pins.
352
Virtual Device
The virtual device option allows the user to create digital designs for programmable
logic without regard to the target architecture. The virtual device is not a device at all.
It is simply a removal of the restrictions by the Compiler, allowing the design to
contain unlimited product terms and pins. With the virtual device, the Compiler allows
all register types to be used. The virtual device is useful for determining the resources
needed to implement your design.
When using the Virtual device the Compiler ignores the polarity in the pin declaration.
The pin number can be left out.
353
PLD Design
Compiler Options
The Options Tab of the Configure PLD dialog allows you to:
354
Option
Description
Keep XOR
Secure Device
Suppress product terms merging In IFL devices, each product term from the ANDgate array may be shared among any number of ORgate outputs. This option defeats this capability,
forcing identical product terms to be generated for
each output OR-array when required. The result is
reduced propagation delay from input to output. This
option will also force minimization to be performed
on each output individually (as opposed to
minimization on all outputs at once) when QuineMcCluskey or Expresso minimization is chosen.
One-hot-bit State Machines
355
PLD Design
Minimization Methods
The Minimization Methods are
the logic reduction algorithms the
compiler will use. There are four
minimization methods available:
Quick
Quine-McCluskey
Presto
Espresso
Minimization
levels
QuineMcCluskey and Presto will
perform
multiple
output
minimization in IFL devices.
This maximizes product term
sharing in these types of devices.
Selecting None defeats all
minimization
during
compilation. It is useful
working with PROMs, to
contained product terms
being eliminated.
logic
the
when
keep
from
Reduction
Efficiency
356
Quine-Mc
Presto
Expresso
Quick
Quine-Mc
Presto
Expresso
Quick
Quine-Mc
Presto
Expresso
Execution
Time
Quick
Memory
Usage
Expression
!0
!1
A&0
A&1
A&A
A & !A
A#0
A#1
A#A
A # !A
A & (A # B)
A # (A & B)
Result
1
0
0
A
A
0
A
1
A
1
A
A
Output Formats
The PLD Compiler can produce the following types of output files:
Output formats, which include formats for interfacing to third-party fitters and
error listings.
Description
HL
ASCII Hex
PALASM PDS
357
PLD Design
Expanded Macro MX
Berkeley PLA
XNF Xilinx
This can be used to create an input file for other logic design
tools and gate array fitters such as PDS2XNF from XILINX.
PDIF PDF
EDIF
358
Absolute ABS
The simulation listing file (filename.SO) contains the results of the simulation. It has
the same filename as the input test specification file.
The simulation listing is an ASCII file. All header information is displayed in the
listing file with any header errors marked appropriately. Each complete vector is
assigned a number. Any output tests that failed are flagged with the actual (simulatordetermined) output value displayed. Each variable in error is listed along with the
expected (user-supplied) value. Any invalid or unexpected test values are listed along
with an appropriate error message.
The simulation results can be displayed as a series of waveforms, by double-clicking to
open the .SO file with the PLD Waveform Editor.
The Simulator appends the test vectors to an existing JEDEC downloadable fuse link
file (filename.JED) created during compilation. Enable the JEDEC option in the
Formats Tab of the Configure PLD dialog to create this file.
359
PLD Design
Header Information
Header information which is entered must be identical to the information in the
corresponding CUPL logic description file (.PLD). If any header information is
different, a warning message appears, stating that the status of the logic equations
could be inconsistent with the current test vectors in the test specification file.
Following is a list of the keywords used for header information:
PARTNO
NAME
REVISION
DATE
DESIGNER
COMPANY
ASSEMBLY
LOCATION
DEVICE
FORMAT
The easiest way to begin creating a test specification file is to copy the header
information from the corresponding CUPL source file.
Specifying a Device
The Simulator accesses device information in the device libraries (LibraryName.DL).
The library describes the physical characteristics of each device including; internal
architecture, number of pins, type of registers available, the logical characteristics
(including registered and non-registered pins), feedback capabilities, register power-on
state and register control features.
Reference the target device using device mnemonics. Each mnemonic is composed of a
device family prefix and industry-standard part number suffix. The table below lists the
device mnemonic prefixes.
360
Prefix
Device Family
EP
G
F
F
F
F
P
P
P
PLD
RA
For example, the device mnemonic for a PAL10L8 is P10L8; for an 82S100 the device
mnemonic is F100. For bipolar PROMs, the suffix is the array size. For example, the
device mnemonic for a 1024 x 8 bipolar PROM is RA10P8, since there are 10 address
input pins and 8 data output pins.
The target device can be specified either in the test specification source file
(filename.SI), or selected in the Options Tab of the Configure PLD dialog.
Comments
Comments can be placed anywhere within the test specification file. Comments can be
used to explain the contents of the specification file or the function of certain test
vectors. A comment begins with a slash-asterisk (/*) and ends with an asterisk-slash
(*/). Comments can span multiple lines and are not terminated by the end of a line.
However, comments cannot be nested.
Statements
The Simulator provides the keywords, ORDER, BASE, and VECTORS to write
statements in the source file that determine the simulation output and how it is
displayed. The following sections describe how to write statements with the CUPL
keywords.
ORDER Statement
Use the ORDER keyword to list the variables to be used in the simulation table, and to
define how they are displayed. Typically, the variable names are the same as those in
the corresponding CUPL logic description file. Place a colon after ORDER, separate
each variable in the list with a comma, and terminate the list with a semicolon. The
following is an example of an ORDER statement:
361
PLD Design
362
Several ORDER statements can be defined in a single SI file. For example, if the file
TEST.SI has the following contents:
Name
Partno
Date
Revision
Designer
Company
Assembly
Location
Device
test;
XXXXX;
XX/XX/XX;
XX;
XXXXX;
XXXXX;
XXXXX;
XXXXX;
g16v8;
363
PLD Design
364
BASE Statement
In most cases, each variable in the ORDER statement (except for FIELD variables) has
a corresponding single character test value that appears in the test vector table of the
output file. Multiple test vector values can be represented with quoted numbers. Use
single quotes for input values and double quotes for output values. Enter a BASE
statement to specify how each quoted number is expanded. The format for the BASE
statement is:
BASE: name;
where
name is either octal, decimal or hex.
Follow BASE with a colon. Note that the base statement must be terminated by a
semicolon.
The default base for quoted test values is hexadecimal. The BASE statement must
appear in the file before the ORDER statement.
If the base is decimal or hexadecimal, quoted numbers expand to four digits; if the base
is octal, they expand to three digits. For example, a test vector entered as '7' is
interpreted as follows:
1 1 1
Base is octal
0 1 1 1
Base is decimal
or
or
0 1 1 1
Base is hex
More than one hexadecimal or octal digit may be entered between quotes. For
example, '563' expands to the following:
1 0 1 1 1 0 0 1 1
Base is octal
0 1 0 1 0 1 1 0 0 0 1 1
Base is decimal
or
or
0 1 0 1 0 1 1 0 0 0 1 1
Base is hex
Quoted values may also be used with all other test values. For example, if the base is
set to octal
"XX"
"LL"
"45"
expands to X X X X X X
expands to L L L L L L
expands to H L L H L H
365
PLD Design
used, the value is automatically expanded to the number of variables in the field. For
example, for the following address field
FIELD address = [A0..5] ;
A test value of
/*
A
A
A
A
A
A
5
4
3
2
1
0
--------------------------------*/
1
1
1
0
0
1
could be written using single test values, or'39' using quoted test values.
VECTORS Statement
Use the VECTORS keyword to prefix the test vector table. Following the keyword,
include test vectors made up of single test values or quoted test. Each vector must be
contained on a single line. No semicolons follow the vector. The following table lists
allowable test vector values:
Test Value
0
1
C
K
L
H
Z
X
N
P
R
*
''
""
366
Description
Drive input LO (0 volts) (negate active-HI input)
Drive input HI (+5 volts) (assert active-HI input)
Drive (clock) input LO, HI, LO
Drive (clock) input HI, LO, HI
Test output LO (0 volts) (active-HI output negated)
Test output HI (+5 volts) (active-HI output asserted)
Test output for high impedance
Input HI or LO, output HI or LO. NOTE that not all
device programmers treat X on inputs the same;
some put it to 0, some allow input to be pulled to 1,
and some leave it at the previous value.
Output not tested
Preload internal registers (value is applied to !Q
output)
Random input generation
Outputs only -simulator determines test value and
substitutes in vector
Enclose input values to be expanded to a specified
BASE (octal, decimal, or hex). Valid values are 0-F
and X.
Enclose output values to be expanded to a specified
BASE (octal, decimal, or hex.) Valid values are 0-F,
H, L, Z, and X.
/* test outputs HI */
/* test outputs LO */
The R vector can appear wherever a 0 or a 1 can appear. When encountered, a random
value ( either 0 or 1) is generated for the corresponding signal in that test vector.
An example of R in the SI file:
$repeat 10;
C
0 RRR 1RRRRRRR
********
C
C
C
C
C
C
C
C
C
C
0
0
0
0
0
0
0
0
0
0
000
000
110
111
101
101
010
000
001
001
10001011
11100111
10111101
11000100
10001011
10000110
10000001
10010000
11110100
10011110
HLLLHLHH
HHHLLHHH
HHHHLHHL
HLLLHLLH
LHLHHHLL
LLHHLHLL
LHHLLLLL
HLLHLLLL
LHHHHLHL
LHLLHHHH
Dont Care
Unlike many other simulators, the PLD Simulator treats the DON'T-CARE (state X) as
any other value. State X is not assumed to be 0 on input and N on the output. The X
state allows specific determination of which inputs affect the output value, according to
the rules listed in the truth tables below.
367
PLD Design
AND &
!A
A&B
0
1
X
1
0
X
0
0
0
1
1
1
X
0
1
X
0
1
X
X
L
L
L
L
H
X
X
A#B
A$B
0
0
0
1
1
1
X
0
1
X
0
1
X
X
L
H
X
H
H
H
X
0
0
0
1
1
1
X
0
1
X
0
1
X
X
L
H
X
H
L
X
X
OR #
XOR : exclusive OR $
Preload
Use the P test value on the clock pin of a registered device to preload internal registers
of a state machine or counter design to a known state, if the device does not have a
dedicated TTL-level preload pin. The device programmer uses a supervoltage to
actually load the registers. All input pins to the device are ignored and hence should be
defined as X. The values that appear for registered variables are loaded into the !Q
output of the register. These values (0 or 1) are absolute levels and are not affected by
output polarity nor inverting buffers. The following is an example of a preload
sequence for an active-LO output variable in a device with an inverting buffer between
the register Q output and device pin:
ORDER: clock, input1, input2 , !output ;
VECTORS:
P X X 1 /* reset flip-flop */
/* !Q goes to 1 */
/* Q goes to 0 */
0 X X H /* output is HI due to */
/* inverting buffer */
The Simulator can simulate and generate preload test vectors even for devices that do
not have preload capability. However, not all PLDs are capable of preload using a
supervoltage. Some devices have dedicated preload pins to use for this purpose. The
368
Simulator does not verify whether the device under simulation is actually capable of
preload because parts from different manufacturers exhibit different characteristics.
Before using the preload capability, determine whether the device being tested is
physically capable of supervoltage preloading.
Clocks
Most synchronous devices (devices containing registers with a common clock tied to
an output pin) use an active-HI (positive edge triggered) clock. To assure proper
Simulator operation for these devices, always use a C test value (not a 1 or 0) on the
clock pin. For synchronous devices with an active-LO (negative edge triggered) clock,
use the K test value on the clock pin.
Asynchronous Vectors
When writing test vectors for a circuit with asynchronous feedback, changing two test
values at once can create a spike condition that produces anomalous results. The circuit
shown below is a circuit with three inputs (A, B, and C), and an output at Y that feeds
back. HelveticaCondensed
A
B
C
A
0
0
1
B
0
1
0
C
0
1
1
Y
L
L
L
Because one of the inputs is 0 in each of the vectors, the AND gate defined by A, B,
and C produces a low output. The low value feeding back from the Y output keeps the
369
PLD Design
other AND gate low also. Therefore, the OR gate (driven by the output of the two
AND gates) and consequently the output at Y remain low for the specified test vectors.
However, when the programmer operates on the test vectors, it applies values serially,
beginning with the first pin. Because two test values change between vectors, the
programmer creates intermediate results (labeled "a" in the table below).
0001
0001a
0002
0002a
0003
A
0
0
0
1
1
B
0
1
1
1
0
C
0
0
1
1
1
Y
L
L
L
H
H
The intermediate result, [0002a], produces a high value for the output at Y. This high
value feeds back and combines with the "1" value specified for input C in vector
[0003] to produce a high output for the AND gate and consequently for the OR gate
and for the output at Y. This high value conflicts with the expected low value specified
in the third test vector, and the result is a spike condition.
By taking care to always change only one value between test vectors, the spike
condition described above can be avoided. Also, in the source specification file, it is
possible to specify a TRACE value of 1, 2, or 3 (rather than the default value of 0) that
instructs the Simulator to display intermediate results in the output file (see "TRACE"
in the following topic, Simulator Directives).
I/O Pin simulation
When writing test vectors for a design that has input/output capability and a
controllable output enable (OE), the test vector value placed at the I/O pin will depend
on the value of the output enable. If the output enable is active, the I/O pin needs an
output test value (L, H, *,...). If the output enable becomes inactive, a Hi-Z (Z) will
appear on the I/O pin. At this time, input test values (0, 1, ...) can be placed on the I/O
pin allowing that pin to behave as an input pin. When the output enable is activated
again, the test values for that pin will reflect the output of the macrocell.
A
Array
370
B
Macro
Cell
/* OE is ON */
/* OE is OFF */
/* a valid input value can be
placed on pin Y */
/* OE is ON again */
371
PLD Design
Simulator Directives
The Simulator provides six directives that can be placed on any row of the file after the
VECTOR statement. All directive names begin with a dollar sign and each directive
statement must end with a semicolon. The Simulator directives are:
$MSG
$SIMOFF
$REPEAT
$SIMON
$TRACE
$EXIT
$MSG
Use the $MSG directive to place documentation messages or formatting information
into the simulator output file. For example, a header for the simulator function table,
listing the variable names, may be created. The format is as follows:
$MSG "any text string" ;
In the output table, the text string appears without the double quotes.
Blank lines can be inserted into the output, for example, between vectors, by using the
following format:
$MSG "" ;
372
$REPEAT
The $REPEAT directive causes a vector to be repeated a specified number of times. Its
format is:
$REPEAT n ;
where
n is a decimal value between 1 and 9999.
The vector following the $REPEAT directive is repeated the specified number of
times.
The $REPEAT directive is particularly useful for testing counters and state transitions.
Use the asterisk (*) to represent output test values supplied by the Simulator. The
following example shows a 2-bit counter from a CUPL source file, and a VECTORS
statement using the $REPEAT directive to test it.
From the Compiler:
Q0.d = !Q0 ;
Q1.d = !Q1 & Q0 # Q1 & !Q0 ;
In the Simulator:
ORDER: clock, input, Q1, Q0 ;
VECTORS:
0 0 X X /* power-on condition */
P X 1 1 /* reset the flip-flops */
0 0 H H
$REPEAT 4 ; /* clock 4 times */
C 0 * *
The above file generates the following test vectors:
0
P
0
C
C
C
C
0
X
0
0
0
0
0
X
1
H
L
L
H
H
X
1
H
L
H
L
H
373
PLD Design
prints the intermediate results for any vector that requires more than one
evaluation pass to become stable. Any vector that requires more than twenty evaluation
passes is considered unstable.
Trace level 1
identifies three phases of simulation for designs using registers. The first
phase is "Before the Clock," where intermediate vectors using non-registered feedback
are resolved. The second phase is "At the Clock," where the values of the registers are
given immediately after the clock. The third phase is "After the Clock," where the
outputs utilizing feedback are resolved as in trace level 1.
Trace level 2
Trace level 3 provides the highest level of display information possible from the
Simulator. Each simulation phase of "Before Clock," "At Clock," and "After Clock" is
printed and the individual product term for each variable is listed. The output value for
the AND gate is listed along with the value of the inputs to the AND array.
Trace level 4 provides the ability to watch the logical value before the output buffer.
Using $TRACE 4, the Simulator only reports the true output pin values, and assigns a
"?" to inputs and buried nodes. For combinatorial output, trace level 4 displays the
results of the OR term. For registered outputs, trace level 4 shows the Q output of the
register. The following example uses a p22v10:
pin 1 = CLK;
pin 2 = IN2;
pin 3 = IN3;
....
pin 14 = OUT14;
pin 15 = OUT15;
....
OUT14.D = IN2;
OUT14.AR = IN3;
OUT14.OE = IN4;
374
$EXIT
Use the $EXIT directive to abort the simulation at any point. Test vectors appearing
after the $EXIT directive are ignored. This directive is useful in debugging registered
designs in which a false transition in one vector causes an error in every vector
thereafter.
Placing a $EXIT command after the vector in error directs attention to the true
problem, instead of to the many false errors caused by the incorrect transition.
$SIMOFF
Use the $SIMOFF simulator directive to turn off test vector evaluation. Test vectors
appearing after the $SIMOFF directive are only evaluated for invalid test values and
the correct number of test values. This directive is useful in testing asynchronously
clocked designs in which the Simulator is unable to correctly evaluate registered
outputs.
$SIMON
Use the $SIMON simulator directive to cancel the effects of the $SIMOFF directive.
Test vectors appearing after the $SIMON directive are evaluated fully.
Advanced Syntax
All the following commands must be placed in the test vectors section of the SI file,
after the VECTORS keyword.
Assignment Statement ($SET)
Syntax: $SET <variable> = <constant>;
<variable> = <single_sym> | <field> | <defined_variable>
<constant> = <quoted_val> | <tv_string>
<quoted_val> = numbers enclosed in single/double quotes representing inputs/outputs.
They will be expanded according to the base in effect and should not contain don't
care values.
<tv_string> = string of test vector values. The number of values must be equivalent to
the number of bits in the variable that they are assigned to.
Action:
It assigns a constant value to a symbol, field or variable. It takes effect immediately,
but affects only the user values of the variable; the last simulation results are
unchanged. Can appear anywhere in the test vector section.
Example:
375
PLD Design
Function
NOT
AND
OR
XOR
Precedence
1
2
3
4
Function
multiplication
division
addition
subtraction
Precedence
1
1
2
2
Logic Operators
Operator
*
/
+
Arithmetic Operators
The logical and arithmetic operators can be mixed freely in an expression. Normally
the logical operators have a higher precedence, however, this rule can be overridden by
using parentheses.
Action:
It evaluates the expression and assigns the result to the variable. The current values of
the operands (user values) are used in evaluating the expression. Takes effect
immediately, but affects only the user values of the variable; the last simulation results
are unchanged. Can appear anywhere in the test vector section.
Examples:
$COMP A = (!B + C) * A + 1;
$COMP X = (Z / 2) # MASK;
Generate Test Vector ($OUT)
Syntax: $OUT
376
Action:
Triggers the simulation for the current values of the symbols and generates a test
vector. It is useful when used after the $set and $comp command because it allows the
previously assigned values to take effect in vector evaluation.
Example:
The following set of commands in the SI file:
ORDER: _CLOCK, %3, _OE, %3, shift, %1, input, %2, output;
VECTORS:
0 0 'X' XXXXXXXX LLLLLLLL /* power-on reset state */
$set _CLOCK = C;
$set shift = '0';
$set input = '80';
$set output = "80";
$out;
0
0
XXX XXXXXXXX
000 10000000
LLLLLLLL
HLLLLLLL
377
PLD Design
Looping Constructs
FOR statement
Syntax: $FOR <count> = <n1>..<n2> :
<block>
$ENDF;
<count> = the counter of the FOR loop; it takes values between <n1> and <n2>
<n1>,<n2> = limits for <count> values; should be positive decimal numbers
<block> = any sequence of statements, including test vectors
Action:
Step 1. <count> is initialized with the first value, <n1>
Step 2. execute <block>
Step 3. if <count> = <n2> STOP;
otherwise <count> is incremented by 1 (if <n1> less than <n2>) or decremented by 1
(if <n1> greater than <n2>) then repeat steps 2 and 3.
WHILE Statement
Syntax: $WHILE <condition> :
<block>
$ENDW;
<condition> = same as IF condition
<block> = any sequence of statements
Action:
Step 1: Evaluate condition; if false then STOP
else continue with step 2
Step 2: Execute <block>
Step 3: Continue with step 1
DO..UNTIL Statement
Syntax: $DO:
<block>
$UNTIL <condition> ;
<condition> = same as IF condition
<block> = any sequence of statements
Action:
Step 1: Execute <block>
Step 2: Evaluate condition; if true then STOP,
else continue with step 1
378
IF
and
other
repetitive statements can
be nested; however, the
maximum number of
nested statements is 10.
/* Macro definition */
$CALL m1('0','80',********);
/* Macro call */
PLD Design
2. New way:
ORDER: _CLOCK, %3, _OE, %3, shift, %1, input, %2, output;
VECTORS:
0 0 'X' XXXXXXXX LLLLLLLL /* power-on reset state */
$set _CLOCK = C;
$set shift = '0';
$set input = '80';
$set output = "80";
$for i = 1..16 :
$out;
$if shift = '7':
$set shift = '0';
$set input = '7f';
380
381
PLD Design
3. The Output:
CSIM: CUPL Simulation Program Version
4.2a Serial# ...
CREATED Wed Dec 04 03:00:11 1991
LISTING FOR SIMULATION FILE: barrel22.si
1: Name Barrel22;
2: Partno CA0006;
3: Date 05/11/89;
4: Revision 02;
5: Designer Kahl;
6: Company ATI;
7: Assembly None;
8: Location None;
9: Device g20v8a;
10:
11: FIELD input = [D7,D6,D5,D4,D3,D2,D1,D0];
12: FIELD output = [Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0];
13: FIELD shift = [S2,S1,S0];
14:
15: ORDER: _CLOCK, %3, _OE, %3, shift, %1, input, %2, output;
16:
17: var X = Q7;
18: var Y = Q7..4;
19:
=======================================
_
C
L
O
_
C
O
shi
K
E
ft input
output
=======================================
0001: 0
0
XXX XXXXXXXX LLLLLLLL
0002: C
0
000 10000000 HLLLLLLL
0003: C
0
001 10000000 LHLLLLLL
0004: C
0
010 10000000 LLHLLLLL
0005: C
0
011 10000000 LLLHLLLL
0006: C
0
100 10000000 LLLLHLLL
0007: C
0
101 10000000 LLLLLHLL
0008: C
0
110 10000000 LLLLLLHL
0009: C
0
111 10000000 LLLLLLLH
0010: C
0
000 01111111 LHHHHHHH
0011: C
0
001 01111111 HLHHHHHH
0012: C
0
010 01111111 HHLHHHHH
382
0013:
0014:
0015:
0016:
0017:
C
C
C
C
C
0
0
0
0
0
011
100
101
110
111
01111111
01111111
01111111
01111111
01111111
HHHLHHHH
HHHHLHHH
HHHHHLHH
HHHHHHLH
HHHHHHHL
There is one thing the user must keep in mind when creating a simulation input file
using the new syntax:
If one or more $SET or $COMP commands are placed right before some conditional
statement (IF, WHILE, UNTIL) without any intermediate $OUT statement, the values
set by those commands (user values) will not affect the condition value, as the
condition is evaluated using the last simulation values of the variables involved.
For example, let's assume that we want to generate the following simulation output:
ORDER: _CLOCK,clr,dir,!_OE,%2,count,%1,carry;
var mode = clr,dir;
VECTORS:
C 100 LLLL L /* synchronous clear to state 0 */
C 000 LLLH L /* count up to state 1
*/
C 000 LLHL L /* count up to state 2
*/
C 000 LLHH L /* count up to state 3
*/
C 000 LHLL L /* count up to state 4
*/
C 000 LHLH L /* count up to state 5
*/
C 000 LHHL L /* count up to state 6
*/
C 000 LHHH L /* count up to state 7
*/
C 000 HLLL L /* count up to state 8
*/
C 000 HLLH H /* count up to state 9 - carry */
383
PLD Design
that is:
0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010:
C
C
C
C
C
C
C
C
C
C
100
000
000
000
000
000
000
000
000
000
LLLL
LLLH
LLHL
LLHH
LHLL
LHLH
LHHL
LHHH
HLLL
HLLH
L
L
L
L
L
L
L
L
L
H
^
[0019sa] user expected (L) for carry
This is because the value for count used in the evaluation of the IF condition for vector
10 was the current simulation value (that is the one displayed in vector 9) and not the
one set by $comp command.
The correct sequence is:
C 100 LLLL L
$set mode = '0';
$for i=1..9 :
$if count="8":
$set carry = H;
$endif;
$comp count = count + 1;
$out;
$endf;
384
Virtual Simulation
Virtual simulation allows you to create a design without a target device and simulate it.
It is possible, therefore, to get a working design before deciding what architecture it
will be targeted to. This will be especially useful for designs that will be eventually
partitioned.
Usage of the virtual simulator is transparent. You do not need to learn any new
commands or syntax. Just use the VIRTUAL device mnemonic when compiling and
simulating to take advantage of the Virtual simulator.
Virtual simulation is also used to simulate FPGA designs. When a full architectural
simulation is not possible due to the proprietary nature of the device internals or the
level of complexity of the internal logic resources, Virtual simulation is the next best
alternative for your design verification phase.
Fault Simulation
An internal fault can be simulated for any product term, to determine fault coverage for
the test vectors. The format for this option is as follows:
STUCKL n ;
or
STUCKH n ;
where
n is the JEDEC fuse number for the first fuse in the product term.
The documentation file (filename.DOC) fuse map lists the fuse numbers for the first
fuse in each product term in the device.
Format 1 forces the product term to be stuck-at-0.
Format 2 forces the product term to be stuck-at-1. The STUCK command must be
placed between the ORDER and VECTORS statements.
385
PLD Design
Strength - High Z
Strength - Supply
Strength - Resistive
Strength - Driving
Bus
The Time Base is displayed in the scale at the top of the waveform window. By default
a change of event in the simulation listing file occurs at 1 ns intervals on the waveform.
A vertical marker appears on the Time Base Scale, indicating the current cursor
position. The exact time value appears on the left hand end of the Status Line.
Signal Name
Signal names are extracted from the simulation listing file. The name can be edited and
the font changed. Double-click on a name to edit.
Signal Value
The Value column reflects the state of each signal at the current time position. The
current time position is the left hand edge of the Time Base Scale. As you scroll across
the waveform you will notice that the contents of the Value column changes.
Each Value consists of two characters, which have the following meaning:
L
H
386
D
S
R
xx
Signals are rendered differently, depending on their Strength. Refer to the figure on the
previous page for an example of how each Strength is rendered. Select the ViewLegend menu item for an example of each signal strength.
The strength of the displayed signal is determined from the signal type in the
simulation listing file.
Timing Marks
The Waveform Editor includes 10 timing marks which can be set at any point, select
the Edit-Set Timing Marks sub menu to set the Timing Mark of your choice. Use the
Edit-Jump sub menu to jump to the Timing Mark of your choice (shortcut: J, followed
by the timing mark number).
Creating a Bus
You can create a Bus from any set of adjacent signals. To do this:
Click and drag to select the signals that you wish to group as a Bus (they will
highlight in black).
Select the Insert-Bus menu item.
The Bus will be inserted just below the last signal in the selection. The Value column
will display the value of the Bus at the current time position. Each signal that was
included in the Bus represents one bit in the Bus, with the uppermost selected signal
representing the Least Significant Bit.
Editing a Signal
Use the scroll bars to scroll back and forth and up and down the waveform window.
Alternatively, use the arrow shortcut keys. To scroll up and down in larger steps, use
the PAGEUP and PAGEDOWN shortcut keys.
Zooming In and Out
You can change the Time Base Scale (zoom in or out) by selecting the View-Zoom In
(shortcut: +) or View-Zoom Out (shortcut: -) menu items. The Zoom In and Zoom Out
387
PLD Design
processes are relative to the current cursor position. Position the cursor prior to
pressing the shortcut keys.
Panning
Press the HOME key to pan across the waveform display. This shortcut key is also
relative to the current cursor position. Position the cursor prior to pressing the shortcut
key.
Creating Multiple Views
The Waveform Editor supports multiple views, allowing you to view different regions
of the waveform simultaneously. The view can be split vertically (to view different
points in time simultaneously) and horizontally (to bring together different signals that
cannot be viewed simultaneously). Refer to the previous figure for the cursor locations
used to split the view. Position the cursor as shown, then click and drag to split the
view.
The Waveform Editor Panel
Select the View-Panel menu item to display or hide the
Waveform Editor Panel. Use the Panel to step through the
transitions in the active signal and to hide and unhide signals.
The Active Signal
The box at the top of the Panel displays the name of the active
signal. The Jump Transition buttons allow you to jump (on the
active signal) to:
The First transition (shortcut: J, F)
The Previous transition (shortcut: J, P)
The Next transition (shortcut: J, N)
The Last transition (shortcut: J, L)
Hiding and Unhiding Signals
388
Take a close look at the design that is needed. Remember that the design can be
captured either as a schematic, or in CUPL. If you use CUPL then state-machine,
Boolean equations, and truth tables are available for the design. Try to determine
which type of syntax best suits the design.
Create the Compiler Source File
Use the template file provided and remove the sections that do not apply. Remember to
edit the header to reflect the new file that is being created.
Formulate the Equations
Equations must be written in CUPL syntax to specify the logic desired. This can be in
Boolean, state-machine, or truth table format.
Choose a Target Device
Make sure that there is a sufficient number of input pins. Check that the number of
registered and non-registered output pins is sufficient for the design. Ensure that the
device has three-state output control, if needed. Check that the device can adequately
handle the number of product terms required. Select the target device in the Configure
PLD dialog.
Make Pin Assignments
Assign the inputs and outputs of the design to the pins of the device. Make sure that the
device is being used properly by consulting the reference material available from the
manufacturer.
Ready to Compile
Decide which file formats will be needed for downloading and simulation. A choice of
four minimizers are available. You are now ready to compile your design.
389
PLD Design
RDY
RESET
ROM
D
CS
RAM1
A
D
PLD
R/W
CS
D
CPU_CLK
RAM2
D
R/W
CS
FFFF
3000
2FFF
390
RAM 1
2800
27FF
RAM 0
2000
1FFF
ROM
0000
Memory map
A7-A4 A3-A0
ROM (0000-1FFF)
RAM0 (2000-27FF)
RAM1 (2800-2FFF)
Because the ROM chip is slow, the PLD must also be designed to perform a wait state
generation that adds at least one CPU clock period to the ROM access.
The worm arrows on the timing diagram show signals affected or created by other
signals.
(1)
(2)
(3)
CPU_CLK
A15..11
IMEMR
WAIT1
WAIT2
!ROM_CS
READY
HI-Z
HI-Z
PLD Design
WAITGEN.PLD
Name
WaitGen;
Partno
P9000183;
Date
07/16/87;
Revision
02;
Designer
Osann;
Company
ATI;
Assembly
PC Memory;
Location
U106;
Device
; /* the device is selected later */
/******************************************************/
/* This device generates chip select signals for one */
/* 8Kx8 ROM and two 2Kx8 static RAMs. It also drives */
/* the system READY line to insert a wait-state of at */
/* least one cpu clock for ROM accesses
*/
/******************************************************/
392
393
PLD Design
decoded, and the MEMR data strobe is active. Therefore, enter the equation for the
three-state output by typing the following:
READY.OE = SELECT_ROM ;
While this equation determines when the three-state buffer actually drives its output
and leaves the high impedance state, it does not determine which logic level the signal
is driven to. The equation for READY determines the logic level to which the signal is
driven; the signal should remain inactive at READY until the completion of a wait
state period equal to one full CPU clock cycle. As this condition does not occur until
WAIT2 becomes set, type the equation for READY as follows:
READY = WAIT2;
The number of product terms required to implement the logic function for each
equation.
The smallest device with sufficient inputs and product terms is a PAL16R4, or
alternatively, a GAL16v8 could be used. The PLD package diagram below shows pin
assignments configured for this device.
PLD
A15
A14
2 I
3 I
A12
4 I
5 I
A11
6 I
!MEMW
!MEMR
7 I
8 I
!RESET
9 I
A13
I/O 19
I/O 18
!ROM_CS
RO 15
RO 14
WAIT1
11
394
WAIT2
I/O 13 !RAM_CS1
I/O 12 !RAM_CS0
OE
CPU_CLK
READY
Notice that in the pin assignments the three chip select signals are assigned to I/O type
pins, that should always be in the output drive mode. The READY pin, attached to the
READY signal on the CPU bus, is used in a controllable three-state mode. The two
flip-flops that are needed to implement the wait state generator have been assigned to
output pins that are internally connected to registers.
One of the registered outputs could be used to drive the READY signal directly, since
the logical function of READY is the same as that of the signal WAIT2. However, use
of the dedicated three-state output enable signal connected to pin 11 of the target
device would be required. Since pin 11 controls the three state outputs of all four pins
connected to internal registers, this defeats the ability to use the other two registered
output pins for any purpose other than wait state generation.
It is better to keep options open by not using the dedicated three-state control, since it
is difficult to predict all the changes that might be made during the evolution of a
design. Therefore, pin 11 is tied to ground, which always enables the three-state
outputs coming from the registers.
The PAL16R4 has at least seven product terms available on all outputs, which is an
adequate number for this application. Alternatively, a GAL16V8 could be used.
With WAITGEN.PLD as the active document select PLD Configure from the menus,
then press the Target Device Change button to pop up the Target Device dialog. Scroll
down and select GAL in the Device Type list, then click on g16v8 in the Device Name
list. Click OK twice to close both dialogs. The DEVICE line in the Header section of
the PLD source will now read:
Device
g16v8;
Inputs
1
=
[2..6] =
[7,8]
=
9
=
11
=
;
;
*/
*/
*/
*/
*/
*/
*/
395
PLD Design
Pin 15
= wait1
;
Pin 14
= wait2
;
Pin [13,12] = ![ram_cs1..0]
Outputs
19
=
18
=
15
=
14
=
[13,12] =
**/
!rom_cs; /* ROM chip select (active low)*/
ready
;
/* CPU ready
*/
wait1
;
/* Wait state 1
*/
wait2
;
/* Wait state 2
*/
![ram_cs1..0] ;
/* RAM chip select (active low) */
396
*/
*/
*/
;
;
Absolute ABS - Creates WAITGEN.ABS. This is the absolute file for later use by
the Simulator (This file is needed for step 8). It contains a condensed
representation of the logical function to be programmed into the device. The
Simulator compares this representation to test vectors in a user-created input file
to determine whether the response vectors in the input file are a correct response to
the stimulus vectors.
Fuse Plot in Doc File and Equations in Doc File - Creates WAITGEN.DOC. This
is the documentation file. It provides fully expanded product terms for both
intermediate and output pin variables, and a fuse plot and chip diagram.
Error List LST - Creates WAITGEN.LST. This is the list file. It is a recreation of
the description file, except line numbers have been added and any error messages
generated during compilation are appended at the end of the file.
397
PLD Design
The PLD - Compiling dialog will pop up. Press the Info button. The following
messages appear in the dialog, indicating how much time each Compiler module takes
for completion. The actual time will vary depending on the system being used.
The compiler will produce each of the output formats that have been enabled. If the
View Result option is enabled the LST, DOC and JEDEC files will be opened
automatically.
The list file, WAITGEN.LST, is essentially a recreation of the source file with line
numbers inserted and any error messages added to the end. The line numbers facilitate
the quick locating of error sources, if any are detected by the Compiler.
The documentation file, WAITGEN.DOC, includes the expanded product terms, the
symbol table, the fuse plot and a chip diagram detailing the pinouts.
398
A
READY
RDY
RESET
A !MEMR
!MEMW
RESET
ROM
D
CS
RAM1
A
D
PLD
R/W
CS
D
CPU_CLK
RAM2
D
R/W
CS
System diagram
A7-A4 A3-A0
ROM (0000-1FFF)
RAM0 (2000-27FF)
RAM1 (2800-2FFF)
Using the information in the table and the system diagram, we could write the
following general equations:
ROM_CS
RAM_CS0 = !A15 & !A14 & A13 & !A12 & !A11 & (!MEMR # !MEMW)
RAM_CS1 = !A15 & !A14 & A13 & !A12 & A11 & (!MEMR # !MEMW)
399
PLD Design
It is not possible to implement the RAM chip select equations directly as they contain a
mixture of ANDs and ORs, so we must first create intermediate signals.
From the table you will notice that all the chip selects require A15 and A14 to be low.
These can be combined using an AND2B2 from the Symbol library, giving the
following expression:
ADR_15_14 = !A15 & !A14
(when A15 and A14 are both low then assert ADR_15_14)
Both RAM selects require A13 to be high and A12 to be low. These can be combined
using an AND2B1, giving the following expression:
ADR_13_12 = !A13 & A12
(when A13 is high and A12 is low then assert ADR_13_12)
The memory read and write can also be used to create a memory request, which will be
used to qualify the 2 RAM chip selects. This is done with an OR2B2:
MEMREQ = !MEMR & !MEMW
(when either MEMR or MEMW is low then assert MEMREQ)
These intermediate signals can now be combined with the other address lines to create
the 3 chip selects. The circuit is shown below.
MEMR
U107
U102
INV
ROM_CS
MEMREQ
MEMW
NAND3
OR2B2
A15
U103
U108
ADR_14_15
A14
RAM_CS0
AND2B2
U104
NAND4
B
A13
U109
INV
U105
RAM_CS1
ADR_12_13
A12
NAND4
AND2B1
U106
A11
400
(2)
(3)
CPU_CLK
A15..11
IMEMR
WAIT1
WAIT2
!ROM_CS
READY
HI-Z
HI-Z
WAIT1 is required to respond to the assertion of the ROM_CS, by being set at the next
rising edge of the CPU clock. Before this is implemented using flip-flops, note that the
system diagram shows that the PLD must also be able to be reset by the CPU Reset
signal. The active-high Reset can be incorporated into the wait state generator, by
ANDing it with ROM_CS. The equation that expresses this is:
START_WAIT = !ROM_CS & !RESET ;
The wait state generator must ensure that the READY line is not asserted for at least
one full clock cycle. WAIT1 will become active on the first rising edge of the
CPU_CLK after ROM_CS asserts, we now want a signal that asserts on the next rising
edge of the CPU_CLK. This is achieved by feeding the output of the first flip-flop, into
the D input of a second flip-flop. This 2nd flip-flops output (WAIT2) will go high on
the next rising edge of the CPU_CLK.
Note that the timing diagram shows that the READY signal back to the CPU must be
Hi-Z after completion of the ROM access. To achieve this a three-state buffer is used,
whose output is enabled by the ROM_CS. The following circuit diagram shows how
the wait state generator is implemented:
WAIT
U100
RESET
START_WAIT
U10
D
U10
Q
WAIT2
U113
AND2B2
F
CPU_CLK
READY
BUFT
ROM_CS
401
PLD Design
LOC=PIN[9]
U15
WAIT1
U100
U9
U114
START_WAIT
IPAD
LOC=PIN[15
OPAD
U14
U115
WAIT2
LOC=PIN[14
OPAD
U113
AND2B2
FD
FD
READY
U1
CPU_CLK
LOC=PIN[1]
BUFT
IPAD
U7
LOC=PIN[7]
LOC=PIN[8]
U101
MEMR
LOC=PIN[2]
IPAD
U3
LOC=PIN[3]
U4
INV
ROM_CS
MEMREQ
NAND3
U103
U108
ADR_14_15
A14
RAM_CS0
LOC=PIN[6]
IPAD
LOC=PIN[12
NAND4
B
A13
U109
INV
U105
ADR_12_13
U13
LOC=PIN[13
OPAD
A12
IPAD
U6
U12
OPAD
AND2B2
U104
RAM_CS1
LOC=PIN[5]
LOC=PIN[19
OR2B2
A15
IPAD
U5
U19
OPAD
MEMW
IPAD
LOC=PIN[4]
U107
U102
IPAD
U2
LOC=PIN[18
OPAD
ROM_CS
IPAD
U8
U18
NAND4
AND2B1
U106
C
A11
INV
Notes:
402
The completed design is compiled in the same way as the CUPL-based version,
refer to Step 6 - Compiling the PLD Source File, for details.
All internal logic must have unique designators, there are no specific requirements
for assigning them.
Assigning net names to all internal nets can assist in debugging.
Internal net names must be unique, and cannot be the negated value of any other
net name.
You can find this circuit in the PLD examples.
WaitGen;
P9000183;
07/16/87;
02;
Osann;
ATI;
PC Memory;
g20v8;
/******************************************************/
/* This device generates chip select signals for one */
/* 8Kx8 ROM and two 2Kx8 static RAMs. It also drives */
/* the system READY line to insert a wait-state of at */
/* least one cpu clock for ROM accesses
*/
/******************************************************/
ORDER:
cpu_clk, %2, a15,
a13, %2, a12, %2,
!memw, %2, !memr,
%4, !ram_cs1, %2,
wait1, %2, wait2,
VECTORS:
/* 123456-leave six blanks to allow for numbers in .SO file
$msg "
Power On Reset
O X X X X X 1 1 1 0
H H H * * Z
$msg "
Reset Flip Flops
C X X X X X 1 1 0 0
H H H L L Z
$msg "
Write RAM0
0 0 0 1 0 0 0 1 0 0
H L H L L Z
$msg "
Read RAM0
*/
";
";
";
";
403
PLD Design
0 0 0 1 0 0 1 0 0 0
H L H L L
Write RAM1
0 0 0 1 0 1 0 1 0 0
L H H L L
$msg "
Read RAM1
0 0 0 1 0 1 1 0 0 0
L H H L L
$msg "
Begin ROM read
0 0 0 0 0 0 1 0 0 0
H H L L L
$msg " Two clocks for wait state, Then drive READY High
$repeat2;
C 0 0 0 0 0 1 0 0 0
H H L * *
$msg "
End ROM Read
0 0 0 0 0 0 1 1 0 0
H H H H H
$msg "
End ROM Read
C 0 0 0 0 0 1 1 0 0
H H H L L
$msg "
";
Z
";
Z
";
L
";
*
";
Z
";
Z
The source specification file contains three major parts: header information and title
block, an ORDER statement, and a VECTORS statement.
WAITGEN.SI must have the same header information as WAITGEN.PLD to ensure
that the proper files, including current revision level, are being compared against each
other. Save WAITGEN.PLD as WAITGEN.SI and delete everything in WAITGEN.SI,
except the header and title block. Below is the result.
Name
Partno
Date
Revision
Designer
Company
Assembly
Location
WaitGen;
P9000183;
07/16/87;
02;
Osann;
ATI;
PC Memory;
U106;
/******************************************************/
/* This device generates chip select signals for one */
/* 8Kx8 ROM and two 2Kx8 static RAMs. It also drives */
/* the system READY line to insert a wait-state of a */
/* least one cpu clock for ROM accesses
*/
/******************************************************/
In the ORDER statement, list the input and output variables from WAITGEN.PLD to
be included in test vectors. List the variables in the order in which they will be used in
test variables; that is, put the clock variable, CPU_CLK, first, followed by the other
input variables. Put the output variables to the right. Separate variables with commas.
Use the % symbol to insert spaces between the variables; put two spaces between each
variable, and four spaces between the last input variable in the list, !OE, and the first
output variable, !RAM_CS1. Type the ORDER statement as follows:
404
ORDER:
CPU_CLK, %2, A15, %2, A14, %2,
A13, %2,A12, %2, ALL, %2,
!MEMW, %2, !MEMR, %2, RESET, %2, !OE,
%4, !RAM_CS1, %2, !RAM_CSO, %2, !ROM_CS, %2
WAIT1, %2, READY;
Following the ORDER statement, enter a VECTORS statement that creates a function
table containing eleven test vectors. To make the vectors easier to understand, a header
for the test vectors is generated and placed in the .SO file right after the ORDER
statement. It consists of the symbol names that appear in the ORDER statement,
aligned in a manner that increases the readability of the vector section.
Now enter the test vectors. Create the vectors by assigning a value to each of the input
variables and an expected value to each of the output variables.
Refer to the topic Creating a Test Specification Source File in the chapter
Simulating the Design for more information on defining text vectors.
Use the $MSG directive to describe the device function tested by the function. The
ORDER statement above specifies the spacing when creating the test vectors. For
example, create the first vector, Power On Reset, by typing:
$msg " Power On Reset
";
0 X X X X X 1 1 1 0 H H H * * Z
Note that the output value (*) has been used for WAIT1 and WAIT2 to instruct the
Simulator to calculate the power-on state of the registers, since some devices power-on
to X and some to H or L. Using the asterisk gives a more universal simulation file.
Type in the rest of the test vectors, as shown below.
/* 123456-leave six blanks to allow for numbers in .SO file
$msg "
Power On Reset
O X X X X X 1 1 1 0
H H H * * Z
$msg "
Reset Flip Flops
C X X X X X 1 1 0 0
H H H L L Z
$msg "
Write RAM0
0 0 0 1 0 0 0 1 0 0
H L H L L Z
$msg "
Read RAM0
0 0 0 1 0 0 1 0 0 0
H L H L L Z
$msg "
Write RAM1
0 0 0 1 0 1 0 1 0 0
L H H L L Z
$msg "
Read RAM1
0 0 0 1 0 1 1 0 0 0
L H H L L Z
$msg "
Begin ROM read
0 0 0 0 0 0 1 0 0 0
H H L L L L
$msg " Two clocks for wait state, Then drive READY High
$repeat2;
*/
";
";
";
";
";
";
";
";
405
PLD Design
$msg "
$msg "
C
End
0
End
C
0 0 0 0
ROM Read
0 0 0 0
ROM Read
0 0 0 0
*
";
Z
";
Z
The $REPEAT directive in the test vectors causes the eighth vector to be repeated
twice. The asterisks in the eighth vector for WAIT1, WAIT2, and READY tell the
Simulator to compute the output based on the inputs and place the results in the output
file.
The value of the clock variable, CPU_CLK, is 0 in some vectors and C in others. A
value of 0 causes no clocking to occur. A value of C causes the Simulator to examine
the input values in the vector and also look back to the previous vector for any
registered outputs that would be fed back internally prior to the clock. Then, after a
clock is applied, the Simulator computes the appropriate expected outputs for
registered and non-registered variables.
After putting in the VECTORS statement, save the file. The next step is to run the
Simulator to perform the simulation.
406
407
PLD Design
! !
c
r r !
p
a a r
u
! ! r
m m o w w r
_
m m e
_ _ m a a e
c a a a a a e e s !
c c _ i i a
l 1 1 1 1 1 m m e o
s s c t t d
k 5 4 3 2 1 w r t e
1 0 s 1 2 y
____________________________
________________
Power On Reset
0001: O X X X X X 1 1 1 0
H H H X X Z
Reset Flip Flops
0002: C X X X X X 1 1 0 0
H H H L L Z
Write RAM0
0003: 0 0 0 1 0 0 0 1 0 0
H L H L L Z
Read RAM0
0004: 0 0 0 1 0 0 1 0 0 0
H L H L L Z
Write RAM1
0005: 0 0 0 1 0 1 0 1 0 0
L H H L L Z
Read RAM1
0006: 0 0 0 1 0 1 1 0 0 0
L H H L L Z
Begin ROM read
0007: 0 0 0 0 0 0 1 0 0 0
H H L L L L
Two clocks for wait state, Then drive READY High
0008: C 0 0 0 0 0 1 0 0 0
H H L H L L
0009: C 0 0 0 0 0 1 0 0 0
H H L H H H
End ROM Read
0010: 0 0 0 0 0 0 1 1 0 0
H H H H H Z
End ROM Read
0011: C 0 0 0 0 0 1 1 0 0
H H H L L Z
Compare WAITGEN.SO to the WAITGEN.SI file. Note that vectors 8 and 9 were
created as a result of the $REPEAT directive, and that the Simulator has replaced the
asterisks from WAITGEN.SI with the appropriate logic levels (H and L) for the
WAIT1, WAIT2 and READY signals.
Now that a successful simulation has been completed, test vectors can be added to the
JEDEC file created while running the Compiler (in step 6). Run the simulation again
with the JEDEC option enabled in the Configure PLD dialog.
The contents of WAITGEN.JED, which now contains both programming and testing
information.
WAITGEN.JED
CUPL
Device
Created
Name
408
4.XX
Serial# XX-XXX-XXXX
p16r4 Library DLIB-d-26-11
Thur Aug 20 09:52:02 1990
WaitGen
Partno
P9000183
Revision
02
Date
12/16/89
Designer
Osann
Company
ATI
Assembly
PC Memory;
Location
U106;
*QP20
*QF2048
*G0
*F0
*L00000 11111111111111111111111111111111
*L00032 10111011101111111111111110111111
*L00256 10111011101111111111111110111111
*L00288 11111111111111111111111011111111
*L01024 11111111111111111111111101111111
*L01056 01111111111111111111111111111111
*L01088 11110111111111111111111111111111
*L01120 11111111011111111111111111111111
*L01152 11111111111111111111111111110111
*L01280 11111111111111111111111101111111
*L01312 01111111111111111111111111111111
*L01344 11110111111111111111111111111111
*L01376 11111111011111111111111111111111
*L01408 11111111111111111110111111111111
*L01536 11111111111111111111111111111111
*L01568 10111011011110110111101111111111
*L01600 10111011011110110111111110111111
*L01792 11111111111111111111111111111111
*L01824 10111011011110111011101111111111
*L01856 10111011011110111011111110111111
*C4D50
*V0001 0XXXXX111N0HHXXXXZHN
*V0002 CXXXXX110N0HHLLXXZHN
*V0003 000100010N0LHLLXXZHN
*V0004 000100100N0LHLLXXZHN
*V0005 000101010N0HLLLXXZHN
*V0006 000101100N0HLLLXXZHN
*V0007 000000100N0HHLLXXLLN
*V0008 C00000100N0HHLHXXLLN
*V0009 C00000100N0HHHHXXHLN
*V0010 000000110N0HHHHXXZHN
*V0011 C00000110N1HHLLXXZHN
*3152
409
PLD Design
Summary
This chapter provided an example of how to move from a conceptual design, through
to a PLD source file (or schematic), compile the design, create a simulator test
specification file, and simulate the design. The important points were how to:
410
Example 2
Example 3
Example 4
Example 5
Example 6
The logic description file for each design is shown in parentheses. Any of these files
can be compiled to generate documentation or download files.
A corresponding test specification file (filename.SI) is provided for each logic
description file, so that the Simulator can be run to verify the designs.
411
PLD Design
Name
Partno
Date
Designer
Company
Location
Assembly
b
xnor
a
b
xor
/* Outputs:
412
nand
invb
nor
or
inva
/******************************************************/
/*
*/
/* This is an example to demonstrate how the PLD
*/
/* compiler compiles simple gates
*/
/*
*/
/******************************************************/
/*
Target Devices: P16L8, P16P8, EP300, and 82S153 */
/******************************************************/
define inputs to build simple gates
and
GATES.PLD
Gates;
CA0001;
07/16/87;
G Woolheiser;
ATI;
San Jose, CA.;
Example
/* Inputs:
Pin 1 = a;
Pin 2 = b;
*/
Pin
Pin
Pin
Pin
Pin
15
16
17
18
19
=
=
=
=
=
nand;
or;
nor;
xor;
xnor;
/* Logic:
inva = !a;
/* inverters
*/
invb = !b;
and = a & b;
/* and gate
*/
nand = !(a & b);
/* nand gate
or
= a # b;
/* or gate
*/
nor = !(a # b);
/*nor gate
xor = a $ b;
/*exclusive or gate
xnor = !(a $ b);
/*exclusive nor gate
*/
*/
*/
*/
The first part of the file provides archival information and a description of the intended
function of the design, including compatible PLDs. First, there is the Name line,
which the Compiler uses to name the output files by adding extensions. Partno
specifies the Companys proprietary part number, issued by manufacturing, for a
particular PLD design. The part number is not the type of the target PLD. Date is
used to specify the date of compilation. The date should be changed to the current date
as good documentation practice. Designer should be the designers name or the name
of the design team. Assembly is used to specify the assembly name or number of the
PC board on which the PLD will be used. Use the abbreviation ASSY if desired.
Location is supposed to be used to indicate the PC board reference or coordinate
where the PLD is located. The abbreviation LOC may also be used. This may be used
for other purposes.
Pin declarations are made corresponding to the inputs and outputs in the design
diagram. The gates in this example require two inputs, which are passed through the
gates as necessary. a and b are names for the input pins. Next, names are assigned
to the output pins. The names chosen are descriptive of the function being performed.
The use of descriptive names is encouraged, as it makes files easier to debug and
update at a later time.
In the Logic section of the file, equations describe each of the gates in the design.
Boolean syntax is used to specify each output pin as a function of the input pins a and
b.
For the PAL16L8 and PAL16LD8 devices, which contain fixed inverting buffers, the
Compiler applies DeMorgans Theorem to invert all outputs because they were all
declared active-HI in the pin list. For example, the Compiler converts the following
equation for an OR gate, on an output pin that has been declared as active-HI:
413
PLD Design
or = a # b ;
to the following single expanded product term (as shown in the documentation file):
or => !a & !b
The devices chosen for this design were selected because they fit the criteria, as
specified earlier, for choosing a device. They have an adequate number of pins, both
input and output. They have tri-state control. The number of registered and nonregistered pins fits our design, and the device can handle the number of product terms.
Compiling the Source File
In this section, the logic description file (GATES.PLD) is compiled. Files are created
for documentation, downloading to a device programmer and for later use by the
simulator.
To compile the file GATES.PLD:
Absolute ABS.
This will create the file GATES.ABS for later use by the
Simulator.
Jedec.
Press the Change button to specify the target device. In the Target Device dialog
highlight Device Type 19 and select device P16L8.
Press the Compile button on the PldTools toolbar to start the compile process.
The target device is a PAL16L8 and the source file is GATES.PLD. The output files
will be GATES.DOC, GATES.ABS and GATES.JEC.
After running the Compiler open the file GATES.DOC. GATES.DOC contains the
expanded listing generated. This shows how the Compiler expands the logic equations
when it compiles the design for the device chosen.
In order to see how the Compiler reports errors
414
Edit the source file GATES.PLD and remove the semicolon at the end of one of
the assignment statements.
To create an error listing file, enable the Error list LST format in the Configure
PLD dialog, then run the Compiler.
After the Compiler has finished, examine the file GATES.LST. Notice that an error
line appears next to the error, and there are line numbers at the beginning of each line.
Simulating the Design
In this section the GATES.PLD logic design is simulated with the PLD Simulator. Test
vectors are appended to the GATES.JED file created during compilation.
A test specification source file (filename.SI) is the input to the Simulator. For this
example, the file GATES.SI is included in the example designs. This file has a
description of the function of the device in the circuit. For more information about
creating a test specification file refer to the Creating a Simulation Test Vector File
topic in the PLD Simulation chapter.
Test vectors specify the expected functional operation of a PLD by defining the outputs
as a function of the inputs. Test vectors are also used to do functional testing of a
device once it has been programmed, to see if the device functions as expected.
The Simulator compares the input pin stimuli and output pin test values entered in the
GATES.SI file (as shown below), with the actual values calculated from the logic
equations in the CUPL source file. These calculated values are contained in the
absolute file GATES.ABS, which was created during Compiler operation.
To simulate do the following:
Make Gates.PLD the active document in the Design Explorer. The file Gates.SI
must be present in the current directory. Do not attempt to run the Simulator with
the .SI file as the current document.
415
PLD Design
/*
This is a example to demonstrate how the Compiler
*/
/*
compiles simple gates.
*/
/*
*/
/***************************************************************/
/*
Target Devices: P16L8, P16LD8, P16P8, EP300, and 2S153*/
/***************************************************************
/* Order: define order, polarity, and output
/* spacing of stimulus and response values */
Order:
*/
HHLHLHLH
HLLHHLHL
LHLHHLHL
LLHLHLLH
LXXXHLXX
XLXXHLXX
HXLHXXXX
XHLHXXXX
XXXXXXXX
Gates Simulator Input File (GATES.SI)
Below is the Simulator output file (GATES.SO). The inputs are listed with the
corresponding outputs.
1:Name
2:Partno
3:Revision
4:Date
5:Designer
6:Company
7:Location
8:Assembly
416
Gates;
000000;
03;
9/12/83;
CUPL Engineering;
ATI;
None;
None;
9:
10:/**********************************************************/
11:/*
*/
12:/*
This is a example to demonstrate how the Compiler */
13:/*
compiles simple gates.
*/
14:/*
*/
15:/**********************************************************/
16:/* Target Devices:P16L8, P16LD8, P16P8, EP300, and 82S153 */
17:/**********************************************************/
18:
19:
20:/*
21; * Order: define order, polarity, and output
22: * spacing of stimulus and response values
23: */
24:
25:Order: a, %2, b, %4, inva, %3, invb, %5, and, %8,
26:
nand, %7, or, %8, nor, %7, xor, %8, xnor;
27:
28:/*
29: * Vectors: define stimulus and response values, with header
30: *
and intermediate messages for the simulator listing.
31: *
32: * Note: Dont Care state (X) on inputs is reflected in
33: *
outputs where appropriate.
34: */
35:
===============================================================
Simulation Results
===============================================================
Simple Gates Simple Simulation
inverters and
nand
or
nor
xor
xnor
a a
!a !b
a&b !(a&b) a#b !(a#b) a$b !(a$b)
-
0001: 0 0
H
H
L
H
L
H
L
H
0002: 0 1
H
L
L
H
H
L
H
L
0003: 1 0
L
H
L
H
H
L
H
L
0004: 1 1
L
L
H
L
H
L
L
H
0005: 1 X
L
X
X
X
H
L
X
X
0006: X 1
X
L
X
X
H
L
X
X
0007: 0 X
H
X
L
H
X
X
X
X
0008: X 0
X
H
L
H
X
X
X
X
0009: X X
X
X
X
X
X
X
X
X
Gates Simulator Output File (GATES.SO)
417
PLD Design
As indicated by the arrows, the registers are clocked on the rising edge of the clock
signal.
Below is the CUPL source code that describes the two-bit counter design (refer to
FLOPS.PLD in the examples).
FLOPS.PLD
Name
Flops;
Partno
CA0002;
Revision
02;
Date
07/16/87;
Designer
G. Woolheiser;
Company
ATI;
Location
None;
Assembly
None;
/************************************************************/
/*
*/
/* This example demonstrates the use of D-type flip-flop
*/
/* to implement a two bit counter using the following
*/
/* timing diagram.
*/
/*
___
___
___
___
___
*/
/* clock |___|
|___|
|___|
|___|
|___|
*/
/*
_____
________
________
*/
/* q0
/// |_______|
|_______|
|__
*/
/*
_____
________________
*/
/* q1
/// |_______________|
|__
*/
/*
*/
/*
*/
418
/* reset
|___________________________________
*/
/*
*/
/************************************************************/
/*
Target Devices: PAL16R8, PAL16RP8, GAL16V8
*/
/************************************************************/
Pin 1 = clock;
Pin 2 = reset;
/* Outputs: define outputs and output active levels
Pin 17 = q0;
Pin 16 = q1;
*/
The first part of the file provides archival information and a description of the intended
function of the design, including compatible PLDs.
Pin declarations are made to correspond to each input and output in the design
diagram.
In the Logic section of the file, equations are written to implement the counter. The
equation for q0 is written to define when q0 asserts; that is, it defines the situation
immediately before the rising clock edge.
The !reset term is used in the equations for both q0 and q1 to initialize the circuit,
providing a synchronous reset. At power-on, the registers can be either high or low, as
indicated by the DONT CARE slashes in the timing diagram in the source file; the
reset signal is initially asserted. By ANDing !reset into the equation for each variable,
the conditions are not met at power-on, so the registers do not set. Because the reset
signal returns LO (false) after the power-on process is complete, !reset is then true and
does not affect the value of the registers at any other point in the circuit.
The .d extension in the equations specifies a D-type flip-flop. However, when an
output is used as feedback, the .d extension is dropped. For example, if q0 is fed back
to q1, an equation could be written as:
q1.d = q0 & !reset ;
not as:
q1.d = q0.d & !reset ;
or:
q1.d = q0.dq & !reset ;
419
PLD Design
CUPL SYNTAX
!COIN
Sequence LOCK {
LOCKED
Present LOCKED
If COIN
If COIN
Next OPEN
Next LOCKED
Present OPEN
If WALK_THRU Next LOCKED
Default
Next OPEN
Out CNT_PULSE
}
OPEN
CNT_PULSE
!WALK_THRU
The corresponding CUPL state machine code is included on the right, so that the
relationship between the code and the design diagram is easily understood.
420
/******************************************************/
/*
Target Devices: P16R4
*/
/******************************************************/
/* Inputs:
define inputs to Turnstile controller
Pin 1 = CLK;
Pin 2 = WALK_THRU;
Pin 3 = COIN;
*/
/* Outputs:
define outputs as active HI levels
...............................
*/
Pin 14 = CNT_PULSE;
Pin 15 = LOCK;
/* Logic: Subway Turnstile example expressed in CUPL */
$DEFINE LOCKED b0
$DEFINE OPEN b1
Sequence LOCK{
Present LOCKED
if COIN
if !COIN
Next OPEN;
Next LOCKED;
Present OPEN
if WALK_THRU Next LOCKED;
Default
Next OPEN;
Out CNT_PULSE;
}
TURNSTIL.PLD
421
PLD Design
Carry
Q0
Q1
Q2
Q3
Cir
Dir
Clear
OE
S0
S9
Carry
S1
S8
S2
S7
S3
S4
S6
S5
The input signal dir determines the direction of the count. When dir is high, the count
goes down one on each clock; when dir is low, the count goes up one on each clock.
The clr signal performs a synchronous reset.
422
The CUPL source code that implements the design is shown below (refer to
COUNT10.PLD in the examples).
Name
Partno
Revision
Date
Designer
Company
Location
Assembly
Device
COUNT10.PLD
Count10;
CA0018;
02;
07/16/87;
Kahl;
ATI;
None;
None;
p16rp4;
/***********************************************************/
/*
*/
/*
Decade Counter
*/
/* This is a 4-bit up/down decade counter with
*/
/* synchronous clear capability. An asynchronous
*/
/* ripple carry output is provided for cascading
*/
/* multiple devices. CUPL state machine syntax
*/
/* is used
*/
/***********************************************************/
/* Allowable Target Device Types: PAL16RP4, GAL16V8, EP300 */
/***********************************************************/
/** Inputs **/
Pin 1 = clk;
/* counter clock
*/
Pin 2 = clr;
/* counter clear input
*/
Pin 3 = dir;
/* counter direction input
*/
Pin 11 = !oe;
/* Register output enable
*/
/*
Outputs
*/
/* counter outputs
/* ripple carry out
*/
*/
*/
*/
423
PLD Design
$define S7 b0111
$define S8 b1000
$define S9 b1001
field node = [clr,dir];
up = mode:0;
down = mode:1;
clear = mode:[2..3];
/* Logic Equations */
sequence count {
/*
present S0
present S1
present S2
present S3
present S4
present S5
present S6
present S7
present S8
present S9
out
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
carry;
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
*/
next S1;
next S9;
next S0;
next S2;
next S0;
next S0;
next S3;
next S1;
next S0;
next S4;
next S2;
next S0;
next S5;
next S3;
next S0;
next S6;
next S4;
next S0;
next S7;
next S5;
next S0;
next S8;
next S6;
next S0;
next S9;
next S7;
next S0;
next S0;
next S8;
next S0;
/* assert carry output */
The first part of the file provides archival information and a description of the intended
function of the design, including compatible PLDs.
424
Pin declarations are made corresponding to the inputs and outputs in the design
diagram.
The Declarations and Intermediate Variable Definitions section contains declarations
that simplify the notation.
The name count is assigned to the output variables Q3, Q2, Q1, and Q0.
The $DEFINE command is used to assign names to ten binary states representing the
state machine output. The state name can then be used in the logic equations to
represent the corresponding binary number.
The FIELD keyword is used to combine the clr and dir inputs into a set called mode.
Mode is defined by the following equations:
up = mode:0;
down = mode:1;
clear = mode [2..3];
Mode represents the inputs clr and dir, so the three equations above are equivalent to
the following equations:
up = !clr & !dir ;
down = !clr & dir ;
clear = (clr & !dir) # (clr & dir) ;
The three modes are defined as follows:
up - Both the dir and clr inputs are not asserted.
down - The dir input is asserted and clr is not asserted.
clear - The clr input is asserted and dir is either asserted or not asserted.
The Logic Equations section contains the state machine syntax that specifies the
states in the counter. In the first line, the SEQUENCE keyword identifies count (that is,
Q3, Q2, Q1, and Q0) as the outputs to which the state values apply.
Conditional statements have been written to specify the transition from each possible
present state to a next state, for each of the three modes. For example, when the present
state is S4, if the mode is up, the counter goes to S5; if the mode is down the counter
goes to S3; or if the mode is clear, the counter goes to S0. As example 4 shows, one
advantage of the state machine syntax is that it clearly documents the operation of the
design.
In Example 4, state 0 (binary value 0000) is defined, because it is the result of the clr
signal. It is recommended that all designs have a valid 0000 defined to avoid being
stuck at state 0. For example, in this design, if a state that hasnt been defined occurs at
power-on, such as hexadecimal A-F, none of the conditions described in the equations
is met, so the state goes to state 0 (hex value 0000). If 0000 has not been defined as a
valid state, the counter stays at state 0.
425
PLD Design
Below you can see how this example could have been written as a virtual design. It is
the same file, but it has been modified where necessary to show the difference between
a virtual design and a device specific design.
Name
Partno
Revision
Date
Designer
Company
Location
Assembly
Device
COUNT10.PLD
Count10;
CA0018;
02;
07/16/87;
Kahl;
ATI;
None;
None;
VIRTUAL;
/***********************************************************/
/*
*/
/*
Decade Counter
*/
/* This is a 4-bit up/down decade counter with
*/
/* synchronous clear capability. An asynchronous
*/
/* ripple carry output is provided for cascading
*/
/* multiple devices. CUPL state machine syntax
*/
/* is used
*/
/***********************************************************/
/* Allowable Target Device Types: PAL16RP4, GAL16V8, EP300 */
/************************************************************/
/** Inputs **/
Pin = clk;
/* counter clock
*/
Pin = clr;
/* counter clear input
*/
Pin = dir;
/* counter direction input
*/
Pin = !oe;
/* Register output enable
*/
/**
Outputs
**/
Pin
Pin
= [Q3..0];
= carry;
/* counter outputs
/* ripple carry out
*/
*/
426
$define S7 b0111
$define S8 b1000
$define S9 b1001
field node = [clr,dir];
up = mode:0;
down = mode:1;
clear = mode:2..3];
/* Logic Equations */
sequence count {
/*
present S0
present S1
present S2
present S3
present S4
present S5
present S6
present S7
present S8
present S9
out
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
if
carry;
/*
/*
/*
/*
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
up
down
clear
*/
S1;
S9;
S0;
S2;
S0;
S0;
S3;
S1;
S0;
S4;
S2;
S0;
S5;
S3;
S0;
S6;
S4;
S0;
S7;
S5;
S0;
S8;
S6;
S0;
S9;
S7;
S0;
S0;
S8;
S0;
carry output */
427
PLD Design
Count10;
CA0018;
02;
07/16/87;
Kahl;
ATI;
None;
None;
VIRTUAL;
/***********************************************************/
/*
*/
/*
Decade Counter
*/
/* This is a 4-bit up/down decade counter with
*/
/* synchronous clear capability. An asynchronous
*/
/* ripple carry output is provided for cascading
*/
/* multiple devices. CUPL state machine syntax
*/
/* is used
*/
/***********************************************************/
/* Allowable Target Device Types: PAL16RP4, GAL16V8, EP300 */
/***********************************************************/
/**
Pin
Pin
Pin
Pin
Inputs
= clk;
= clr;
= dir;
= !oe;
**/
/**
Pin
Pin
Outputs **/
= [Q3..0];
= carry;
/*
/*
/*
/*
counter clock
counter clear input
counter direction input
Register output enable
/* counter outputs
/* ripple carry out
*/
*/
*/
*/
*/
*/
428
*/
*/
*/
*/
*/
*/
present 0
if up & !clear
next 1;
if down & !clear next 9;
if clear
next 0;
$REPEAT i=[1..9]
present i
if up & !clear
next {(i+1)%10};
if down & !clear next {(i-1)%10}
if clear
next 0;
$REPEND
In this variation, we removed the $DEFINE statements because we use the raw
numbers instead. The most significant change is that we used a $REPEAT loop to
define most of the states instead of defining each state individually. It is possible to do
this because all the states are identical except for the next state that each goes to.
Notice that we define state 0 by itself and then all the other states are defined in one
$REPEAT loop. The $REPEAT loop expands upon compilation to give a definition for
each state. Notice that the statement indicating the next state is given as a calculation
from the repeat variable i. In the loop, i represents the number of the current state.
The next state is therefore i+1. This will work for all states except the last state. In the
last state, the state machine must go back to state 0. To accomplish this, the formula to
calculate the next state is given as (i+1)%10. This means i+1 modulo 10. The
number 10 represents the number of states. Therefore, when in state 9 the next state is
calculated as 9+1 = 10 then modulo 10 which gives 0. A similar condition occurs in
calculating the previous state except that we subtract 1 instead of adding it. You might
have noticed that we defined state 0 separately. This was done because the $REPEAT
variables can only handle positive numbers. If we had defined state 0 in the $REPEAT
loop this would result in evaluating to next state -1 and the compiler would produce an
unexpected result.
429
PLD Design
rbi
a
D0
D1
D2
D3
e
f
g
rbo
a
f
e
g
d
b
c
The segments in the display, labeled a-g, correspond to the outputs in the diagram.
Below is the source code (HEXDISP.PLD in the examples):
HEXDISP.PLD
Name
Hexdisp;
Partno
CA0007;
Revision
02;
Date
07/16/87;
Designer
T. Kahl;
Company
ATI;
Location
None;
Assembly
None;
/**************************************************************/
/*
*/
/*
a
*/
430
/* This is a hexadecimal-to-seven-segment
----*/
/* decoder capable of driving common-anode
|
|
*/
/* LEDs. It incorporates both a ripplef|
|b
*/
/* blanking input (to inhibit displaying
| g |
*/
/* leading zeroes) and a ripple blanking output
----*/
/* to allow for easy cascading of digits
|
|
*/
/*
e|
|c
*/
/*
|
|
*/
/*
----*/
/*
d
*/
/*
*/
/**************************************************************/
/* Allowable Target Device Types: 32 x 8 PROM (82S123 or
*/
/* equivalent
*/
/**************************************************************/
/** Input group (Note this is only a comment)
**/
pin [10..13] = [D0..3];
pin 14 = !rbi;
/** Output Group
*/
*/
**/
*/
*/
*/
*/
*/
*/
*/
The first part of the file provides archival information and a description of the intended
function of the design, including compatible PLDs.
Pin declarations are made corresponding to the inputs and outputs in the design
diagram.
In the Declarations and Intermediate Variables section, field assignments are made to
group the input pins into a set named data and the output pins into a set named
segment. ON and OFF are defined respectively as binary 1 and binary 0.
431
PLD Design
/**
Logic
/*
segment =
/* 0 */
/* 1 */
/* 2 */
/* 3 */
/* 4 */
/* 5 */
/* 6 */
/* 7 */
/* 8 */
/* 9 */
/* A */
/* B */
/* C */
/* D */
/* E */
/* F */
Equations
a
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
[ ON,
[OFF,
[ ON,
[ ON,
[OFF,
[ ON,
[ ON,
[ ON,
[ ON,
[ ON,
[ ON,
[OFF,
[ ON,
[OFF,
[ ON,
[ ON,
**/
b
ON,
ON,
ON,
ON,
ON,
OFF,
OFF,
ON,
ON,
ON,
ON,
OFF,
OFF,
ON,
OFF,
OFF,
*/
ON,
ON,
OFF,
ON,
ON,
ON,
ON,
ON,
ON,
ON,
ON,
ON,
OFF,
ON,
OFF,
OFF,
ON,
OFF,
ON,
ON,
OFF,
ON,
ON,
OFF,
ON,
ON,
OFF,
ON,
ON,
ON,
ON,
OFF,
ON,
OFF,
ON,
OFF,
OFF,
OFF,
ON,
OFF,
ON,
OFF,
ON,
ON,
ON,
ON,
ON,
ON,
ON,
OFF,
OFF,
OFF,
ON,
ON,
ON,
OFF,
ON,
ON,
ON,
ON,
ON,
OFF,
ON,
ON,
OFF]
OFF]
ON]
ON]
ON]
ON]
ON]
ON]
OFF]
ON]
ON]
ON]
OFF]
ON]
ON]
ON]
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
The logic equations are set up as a function table to describe the segments that are lit
up by each input pattern. Comments create a header for the function table, listing the
output segments across the top and the input numbers vertically down the side.
Each line of the table describes a decoded hex value and the segments of the display
that the hex value turns on or off. For example, the line for an input value of 4 is
written as follows:
[OFF, ON, ON, OFF, OFF, ON, ON] & data:4
The function table format expresses the intent of the design more clearly than
equations; that is, the example above shows that an input value of 4 turns segment a
off, segment b on, segment c on, and so on.
432
inputs **/
= clk; /* clock signal for registers */
= load;/* load signal */
= !ClrFlag;
= [LoadPin0..3]; /* pins from which to load data */
433
PLD Design
*/
*/
*/
*/
*/
*/
*/
*/
Since this is a virtual design, pin numbering can be ignored. The signals to be used are
declared without any pin numbers.
When the load signal is asserted, the values at the load pins are fed into the state bit
registers. When the Clear signal is asserted, the state machine is forced to state 0.
The $REPEAT loop is defined as [0 ..15]. Inside the loop, the present state is defined
as h {i}. This causes the numbers to be evaluated as hex numbers. The expansion that
results from this is a state machine with 16 states ranging from 0 to F in hexadecimal.
If the h was left off, the states would have been expanded as 0 to 15 in decimal. The
compiler would have interpreted these as hex anyway and states A-F would not have
been defined. Additionally, State 10 in hex cannot exist with this number of statebits
since that would require 5 statebits but all that we have is 4.
Notice that all the IF statements are anded with !load. This was done because we
want to give loading the highest possible priority. Also this removes any possible
conflict that could occur if load and some other signal were asserted at the same time.
The next state is calculated as (present_state + 1) modulo 16. This causes the counter to
wrap back to the zero state when it is in the last state. We use modulo 16 because this
is the number of states in the state machine.
The last part of this design involves adding the load capability to our design. For this
we use the APPEND statement. The append statement causes the expression given to
be ORed to the variable specified. This entire state machine eventually becomes a set
of equations for each of the state bits. Out intent is to add another condition where the
registers are loaded with the value from a set of input pins. Remember that we used
!load in all the IF statements. That was to make sure that the equations generated by
those IF statements, would not conflict with the APPEND statement.
434
As an exercise, try to add up/down capability to this example. Also, try implementing
it into an actual device.
435
Section 6
PCB Design
PCB Design Feature Highlights
Setting up the PCB Workspace
Creating, Opening and Saving PCB Documents
Working in the PCB Design Window
PCB Editing Shortcuts
PCB Design Objects
PCB Component Footprints and Libraries
Defining the Board
Specifying the PCB Design Requirements
Component Placement Tools and Techniques
Understanding Connectivity and Topology
Manually Routing the PCB
Autorouting the PCB
Including Testpoints and Teardrops on the PCB
Verifying the PCB Design
3 Dimensional PCB Visualization
Printing to a Windows Printing Device
Generating the Manufacturing Files
Passing Design Changes Back to the Schematic
Interfacing to Third-Party Tools
439
446
460
461
487
492
509
521
526
563
576
583
599
605
609
618
620
626
642
644
437
PCB Design
438
This section of the Protel Designers Handbook explains how to use Protel 99 SEs
PCB Editor and Autorouter to carry out the printed circuit board layout and routing
phase of the design process. As you read this section you will find all the information
you need to get up and running with the PCB Editor, and learn how to use the basic
features required to layout and route a printed circuit board, perform design rule
checks, generate PCB fabrication files and print out design documentation.
This section of the Handbook also includes information on how to perform a signal
integrity analysis, directly from the PCB layout. You can set up design rules to test for
out of spec performance, including net impedance, overshoot, undershoot, slope and
flight time. You can also analyze the exact behavior of the routing by performing
reflection and crosstalk analyses, producing accurate waveforms of the results. Refer to
the chapter, Verifying the PCB Design, for more information.
439
PCB Design
Shape-Based Autorouting
Protel 99 SE includes an easy-to-use, powerful, high quality, shape-based autorouting
server, which is tightly integrated with the PCB Editor. Although it plugs in as a
separate server in the Design Explorer, the Autorouter is set up and run in the PCB
Editor, and routes directly in the PCB window.
Protel 99 SEs Autorouter uses a combination of new routing technologies, as well as
time-proven developments. The new technology consists of a suite of Neural utilities
including a Neural Net, Neural Costs and Neural Shapes utilities that have grown
from the development of Artificial Intelligence. The well-proven technologies include
a variety of time-tested routing algorithms, that have been greatly enhanced to support
the objectives of Protel 99 SEs Autorouter.
The Autorouter has three objectives: 100% completion, routing speed and quality of
routing - like that of a professional board designer. Once you start routing with Protel
99 SEs Autorouter you will wonder how you ever survived without it.
Design Capabilities
The PCB Editor is a complete PCB layout environment with many attractive features
for productive design work. When you use the PCB Editor in combination with Protel
99 SEs Schematic Editor, Circuit Simulator, and PLD Compiler, the PCB Editor
becomes the backbone of a fully-automated, integrated, end-to-end PCB layout system.
PCB layout differs from other drawing-oriented tasks in its requirement for extreme
precision. As a result, Protels PCB Editor is more of a placing environment than a
freehand drawing environment.
440
441
PCB Design
net classes, from-tos, from-to classes, components, component classes, layers, or user
definable regions.
On-Line and Batch Design Rule Checking
The on-line DRC flags design rule violations as you route. The batch DRC allows
comprehensive verification of the board layout to user-specified physical and logical
design rules.
Automatic Component Placement
The Protel 99 SE design system includes two high-performance auto component
placement features.
The first autoplacer uses a component clustering algorithm, that attempts to place
components first by their connectivity (creating clusters of components), then by the
component geometry. This placer is suited to boards with a lower component count
(less than 100).
The second auto component placement feature uses an AI-based methodology called
simulated annealing. It analyzes the entire design as it places, considering the
connection length, the connection density on the board and the alignment of the
components, all in accordance with the design rules. As this placer uses a statistical
algorithm it is more suited to designs with a higher component count (100 or more).
Unbreakable Connectivity
A key feature of the PCB Editor is the way logical and physical (or electrical)
connections between the elements in your design are recognized and managed. At all
times the PCB Editor monitors the state of the connectivity, adding and removing
connection lines as you place and delete tracks.
Sophisticated Gridless Manual Routing
With the ever-increasing variety of component packaging technologies it is difficult for
todays designer to manually route in a grid-based design environment. To keep pace
with the changing demands of manual routing, tracks can be routed gridless in the PCB
Editor.
Combine the electrical grid (which snaps objects together) with the avoid obstacle
mode and the six track placement modes (with look-ahead), and you can predictively
route tracks to any object without creating a violation.
Flexible Selection
Groups of items can be selected by layer, by physical connectivity or by designating an
area of the board. Individual items can be added to or removed from the selection. The
PCB Editor also includes a Query Wizard, allowing you to create complex selections
442
of different primitives, using standard query operators such as not equal to, less than,
and so on.
Selections can be manipulated using standard Windows Edit menu items like Cut,
Copy, Paste or Clear; moved; flipped on either axis or rotated in .001 degree
increments.
Powerful Global Editing Options
Attributes can be edited by double-clicking directly on the item to open a dialog. In the
PCB Editor changes made to one object can be globally applied across an entire design
using specific conditions to define the targets. For example, when editing tracks you
can change the track width, track layer or both the width and layer. These changes can
be globally applied to all tracks of the same width and/or layer; tracks which are not
the same width and/or layer; all selected tracks; all non-selected tracks. Similar global
options are provided for other design objects.
Linear and Circular Array Placement Options
Array placement allows selections to be placed in circular arrays, as well as straight
lines. Circular repeats are defined by radius and angular increment. Each repeated item
can be rotated around its own axis.
Undo and Redo
Multi-level Undo and Redo processes work for all physical changes to the board
layout. The designer can make multiple changes, backtrack using Undo, then reinstate
each Undo change with the Redo process.
Complete Component and Library Management
Multiple libraries can be opened simultaneously. Open libraries in the PCB Library
Editor while working on the board design in the PCB Editor. Over 300 component
patterns, including through-hole and SMD footprints are included in the standard PCB
design system library. Simultaneous multi-user library access is supported for network
installations.
The PCB Library Editor also includes a powerful component building Wizard. This
Wizard will ask a few questions and then build the component footprint for you, from a
simple two pin resistor, through to a Pin Grid Array with hundreds of pins.
Intelligent Polygon Planes
Solid or lattice polygon planes can be placed on any layer with optional automatic
connection to a specified net. The copper pours automatically, wrapping around all
placed objects, obeying any relevant design rules. Polygon shapes can be defined using
line or arc perimeters and vertices can be moved, added or deleted after the polygon is
443
PCB Design
generated. Polygons can be re-poured around new obstacles and you can redefine the
polygon parameters each time the polygon is re-poured.
Split Internal Power Planes
Internal power planes can be split to be shared between multiple power rails. Split
power planes are fully supported by the Design Rule Checker.
Thermal Relief Control
Where pins connect to polygons or power plane layers they can have thermal relief or
direct connections. Both the conductor path width and air-gap can be user-defined,
with a choice of 2 or 4 entry points.
Pad Stacks and Pad Removal
Multi-layer pads can be assigned independent size and shape attributes for the Top
(component side) layer, Mid layers (114) and Bottom (solder) side layer.
Unconnected multi-layer pads on Mid layers can be automatically removed when
printing or plotting artwork.
Blind and Buried Vias
Vias can either pass through the whole board or connect any two layers. Blind and
buried vias can be automatically placed during manual routing. Vias use layer colors to
indicate which layers are connecting. Blind and buried vias can also be used between
any two layers, supporting build-up fabrication technology.
Fractional Arcs
The PCB Editor has an arc placement resolution of .001 degree. Arcs can be placed on
any layer with full connectivity checking on signal layer arcs.
Component Rotation
Full rotation of components and their pads, down to .001 degrees. The same angular
resolution is available for the rotation of any selection.
Multiple Fonts
Three display fonts (default, Serif and Sans Serif) support vector plotting and
photoplotting.
Automatic Photoplot Generation
Fully-automatic Gerber plot file generation. Fully-automatic aperture file generation.
On-line aperture editing. Embedded aperture support for Gerber 274X format.
Composite photoplots of multiple layers. Automatically panelized plot files to
specified film size and border requirements.
444
The PCB Editor can import and display Gerber files, as well as batch load a set of
Gerber files, with each plot assigned to the appropriate PCB layer.
Windows Support for Printing and Pen Plotting
Dot matrix and laser printing, pen plotting and PostScript output are all controlled
from common Print options. Any device supported by Windows is available for output.
Plots or prints can either be panelized or generated as a composite of multiple layers,
with auto-centering on the sheet.
Automatic NC Drill File Generation
NC drill output is generated automatically without the need for user-defined tool files.
A report file is generated that lists each tool required, in both metric and imperial units,
and the travel distance for each tool. A fast sorting algorithm processes the NC drill
output file for efficient drilling.
Editable Drill Drawings
Drill drawings are fully user-editable with optional markers for each hole location,
including: coded symbol, alphabetical codes (A, B, C etc) or the assigned hole size.
Windows Display Options
Protels PCB design system allows full use of all 24-bit color graphics cards and
monitors supported under Windows. Zoom levels support the full 32-bit system
resolution (accurate to 0.0005 mils).
Import and Export DXF Format Files
Import DXF files (AutoCAD) and export PCB designs to DXF format files. Multilayer DXF files are supported.
Reports
The PCB Editor can generate the following reports; Bill of Materials (BOM); Back
Annotation files; NC Drill and Pick and Place reports for board fabrication and
assembly; a Netlist Status report; Engineering Change Order (ECO) reports and other
design reports.
445
PCB Design
446
Grids
The PCB Editor includes four user-definable grid systems. The first two are the snap
grid and the component grid, which control the placement of design objects in the
workspace. The third is the electrical grid, which defines a range of attraction within
which electrical objects attract to each other. The forth are the visible grids, which
provide a visual reference as you move around the workspace.
Snap Grid and Component Grid
The snap grid defines an array of points in the workspace which restrict cursor
movement and the placement of primitives, while the component grid restricts the
placement of components. When using the mouse to control the cursor, you will notice
that the cursor moves freely between snap grid points. If an edit function is being
performed, such as placing a component or selecting an object, a cross hair appears.
This cross hair will snap to the current snap grid for a primitive, or to the current
component grid for a component. When the cursor keys are used, the cursor always
snaps to the grid.
These grids can be changed at any time in the Options
Tab of the Document Options dialog (Design Options)
or via the Set Snap Grid button on the main toolbar
(shortcut: CTRL+G). Setting the snap grid to 100 mils will
mean the cursor can only be on points, 0.0 inch 0.1 inch
0.2 inch, etc. The snap grid can have a value between
0.0011000 mils (or 0.002525.0mm).
The snap grid and component grid setting define where objects can be placed in the
workspace. It is vital that these grids are set appropriately for good board design. They
are typically set to either a multiple of the component pin pitch, or a fraction of it. For
example, while placing components with a pin pitch of 100 mil, a component grid of
50 or 100 mil could be used. To route one track between the pins of these components
a snap grid of 25 mil could be used. Working with appropriate grids will assist in
orderly component placement and provide the maximum amount of routing channels.
Electrical Grid
To ease the placement of electrical objects, such as tracks
and vias, the PCB Editor includes an electrical grid. This
grid defines a range within which a moving electrical
object (such as a track, pad or via) will attract, or snap to,
another electrical object.
447
PCB Design
Visible Grids
Two visible grids are provided as a visual reference for placing and moving items. You
can set the sizes of these grids independently. For example, you could select one
visible grid to be fine and the other coarse, or even separate metric and imperial visible
grids.
The visible grid displays a system of coordinate lines (or dots) in the workspace
background. The display of the visible grids is constrained by the current zoom level, if
you cannot see a visible grid you are either zoomed too far out or zoomed too far in.
Setting the Grids and Units
All grids are set in the Options Tab of the Document Options dialog. This Tab also
allows you to toggle the units and the visible grid kind (dots or lines).
Set all the grids, toggle the units and enable the ECO feature in the Options Tab
448
Layers
The PCB Editor is a layered environment. You create
your board design by placing objects on these layers.
These layers are either physical layers, from which the
fabrication information is created, or system layers, such
as the Connect layer which displays the unrouted
connections. Physical layers include the signal layers,
internal plane layers, silkscreen, solder mask and paste
mask layers. Each of the layers can be assigned a unique
identifying color (select Tools Preferences to set the
color).
This concept of multi-layered design distinguishes the PCB Editor from many other
drawing or design applications. Although all the layers in your design can be viewed
simultaneously, you will need to select individual layers for some tasks, such as
placing an object which belongs to a single layer; typically tracks, polygons, fills or
text strings.
Enable the required layers in the Layers Tab of the Document Options dialog.
449
PCB Design
1.
Select the Layers Tab in the Document Options dialog (Design Options).
Note how the layers are grouped by layer type. For each of the layers there is a
check box next to the layer name, which you can click (LEFT MOUSE) to turn the
layer on or off. A tick in the check box indicates that this layer is active. Any
layers that you have activated will be active the next time you open this design.
2.
3.
A Tab for each active layer will appear at the bottom of the document window.
Click on a layer
tab to make that layer
the current layer, or
use the + and - keys
on
the
numeric
keypad to toggle
through all the active
layers. Press the * key
on
the
numeric
keypad to toggle
through active signal
layers.
Signal Layers
There are 32 signal layers for routing. Anything placed on
these layers will be plotted as solid (copper) areas in PCB artwork. As well as tracks,
other primitives (area fills, text, polygon planes, etc) can also be placed on these layers.
Signal layers are made available in the workspace by adding them in the Layer Stack
Manager dialog. These layers include:
Top
Mid Layers
Bottom
450
Internal Planes
Sixteen solid copper plane layers are available. Plane layers are made available in the
workspace by adding them in the Layer Stack Manager dialog. Nets can be assigned
and automatically connected to these planes and individual component pins can be
assigned to internal planes at any time. Special thermal relief pad shapes are an option
when plotting internal plane artwork. These planes are displayed (and printed/plotted)
in the negative for efficiency. In other words, placing any primitive on these layers will
create a void in the copper. These plane layers can also be split into two or more
regions for different nets, refer to the topic Creating a Split Power Plane in the
chapter, Manually Routing the PCB, for information on how to do this.
Silkscreen Overlay layers
Top Overlay and Bottom Overlay (or silkscreen) layers are typically used to display
component footprint outlines, and component text (designator and comment fields that
are automatically added to the footprint as it is placed from the Library). Component
footprints are normally built as Top Layer footprints in the PCB Library Editor. If the
component is placed or moved to the bottom layer, these items are automatically
mirrored and moved to the Bottom Overlay. You can also include other primitives,
such as free text strings, on the Overlay layers.
Mechanical Layers
Sixteen mechanical drawing layers are provided for fabrication and assembly details
such as dimensions, alignment targets, annotation or other details. Mechanical layer
items can be automatically added to other layers when printing or plotting artwork.
Mechanical layers are made available in the workspace by adding them in the Setup
Mechanical Layers dialog.
Mask Layers
Solder masks
Top and bottom masks are provided for photo or silkscreen solder masks. These
automatically generated layers are used to create masks for wave soldering, usually
covering everything except component pins and vias. You can control the expansions
for these masks when printing/plotting by including a Solder Mask Expansion rule.
Refer to the chapter, Specifying the PCB Design Requirements, for more information
on the Solder Mask Expansion rule. This chapter also includes tips on masking all the
vias. These layers are plotted in the negative, for efficiency.
Paste masks
Top and bottom masks are provided for photo or silkscreen masks of solder paste
locations for boards with surface mount devices (SMDs). You can control the
expansions (or contractions) for these masks by defining a Paste Mask Expansion
design rule. Refer to the chapter, Specifying the PCB Design Requirements, for further
information. These layers are automatically generated and are plotted in the negative,
for efficiency.
451
PCB Design
Drill Layers
Drill Drawing
Coded plots of board hole locations, typically used to create a manufacturing drawing.
Individual layer pair plots are provided when blind/buried vias are specified. Symbols
are plotted at each hole location. Three symbol styles are available; coded symbol,
alphabetical codes (A, B, C etc) or the assigned size. A table of symbols, metric and
imperial hole sizes and hole counts can be included in the plot. Refer to the Generating
Output chapter for more information.
Drill Guide
Plots of all holes in the layout sometimes called pad masters. Individual layer pair
plots are provided when blind/buried vias are specified. These plots include all pads
and vias with holes greater than zero (0) size. Refer to the Generating Output chapter
for more information.
Other Layers
Keep Out
This layer is used to define the regions where components and routes can validly be
placed. For example, the board boundary can be defined by placing a rectangular
perimeter of tracks and arcs, defining the region within which all components and
routes must be placed. No-go areas for mechanical objects can be created inside this
boundary by blocking off regions with tracks, arcs and fills. Keep outs apply to all
copper layers. The basic rule is; components can not be placed over an object on the
Keep Out layer and routes can not cross an object on the Keep Out layer.
Multi Layer
Objects placed on the multi layer will appear on all copper layers when output is
generated. The multi layer is typically used for through-hole pads and vias.
Connect
This option controls the display of the connection lines. The PCB Editor creates
connection lines on the connection layer when it locates part of a net that is unrouted.
DRC Errors
Controls the display of the two visible grids. Grids can be displayed as either dots or
lines (set in the Options Tab).
Pad and Via Holes
Controls the display of pad and via holes. To be able to distinguish pads from vias in
draft mode, pad holes are outlined in the current Pad Holes color (set in the Colors Tab
of the Preferences dialog).
452
Editing Options
Online DRC
Enables online checking to ensure that the object currently being placed in the
workspace does not violate the design rules. The design rules are defined in the
Design Rules dialog (select the Design Rules menu item). The rules that will be
tested for are selected in the On-line Tab of the Design Rule Check dialog (select
Tools Design Rule Check).
Snap to Center
Snaps to the center when moving a free pad or via, snaps to the reference point of
a component, snaps to the vertex when moving a track segment. The object will be
held at the cursor location if this option is disabled.
Extend Selection
Selection is cumulative with this option enabled. With it disabled all currently
selected objects are de-selected each time a new selection is made.
453
PCB Design
Remove Duplicates
With this option enabled a special pass is included when data is being prepared for
output. This pass checks for and removes duplicate primitives from the output
data.
Confirm Global Edit
Pops a dialog reporting the number of objects which will be altered by the global
edit and allows you to cancel.
Protect Locked Objects
If this option is enabled locked objects can not be moved, and are ignored if they
are part of a selection that you are moving.
Other
Rotation Step
When an object that can be rotated is floating on the cursor, press the SPACEBAR to
rotate it by this amount in an anti-clockwise direction. Hold the SHIFT key whilst
pressing the SPACEBAR to rotate it in a clockwise direction.
Undo/Redo
Set the stack size to specify how many of the previous operations can be undone.
Set the stack size to zero to empty the Undo stack.
Cursor Type
Set the cursor to small or large 90 degree cross, or small 45 degree cross.
Autopan Options
Style
If this option is enabled it is possible to autopan when the cursor includes a cross
hair. There are six Autopan modes:
Re-Center Re-centers the display around the location where the cursor touched
the Window edge. It also holds the cursor position relative to its location on the
board, bringing it back to the center of the display.
Fixed Size Jump Pans across in steps defined by the Step Size. Hold the SHIFT
key to pan in steps defined by the Shift Step Size.
Shift Accelerate Pans across in steps defined by the Step Size. Hold the SHIFT
key to accelerate the panning up to the maximum step size, defined by the Shift
Step Size.
Shift Decelerate Pans across in steps defined by the Shift Step Size. Hold the
SHIFT key to decelerate the panning down to the minimum step size, defined by the
Step Size.
Ballistic Panning speed is determined by the distance the cursor is moved
outside the workspace.
454
Adaptive Panning speed is set either as the number of mils per second, or pixels
per second.
Step Size
Specifies the amount the display should shift each time the cursor touches the
Window edge. The numerical value is in the current measurement units.
Shift Step Size
Specifies the amount the display should shift each time the cursor touches the
Window edge when you are using one of the Shift autopan options. The numerical
value is in the current measurement units.
Interactive Routing
Interactive Routing Mode
With this option enabled loops that are created during manual routing will be
automatically removed. Enable this whenever you need to reroute.
Plow Through Polygons
When this option is enabled you can route over the top of a polygon the polygon
is automatically repoured (depending on the Repour Polygon settings).
Component Drag
This option determines how tracks are dealt with when moving a component. The
Enclosed Tracks option will move tracks that pass under the component as well as
connected tracks. The Connected Tracks option will only drag tracks which
connect to the component.
455
PCB Design
Display Options
Convert Special Strings
Completely highlights the selected object in the current selection color. With this
disabled the selected object is outlined in the current Selection color.
Use Net Color For Highlight
Highlights the selected net in the net color (assigned in the Change Net dialog).
Use with the Highlight in Full option for better
results.
To redraw the
current layer only use
Redraw Layers
the ALT+END shortcut
Forces a screen redraw as you toggle through layers,
keys.
with the current layer being redrawn last.
456
Displays the current layer only. Provides a method of examining what will be
output on each layer. If the current layer is a signal layer, multi layer objects are
also displayed. Use the + and - keys to toggle through the layers, press END to
redraw the screen.
Transparent Layers
Gives layer colors a transparent nature by changing the color of an object which
overlaps an object on another layer. Allows objects which would otherwise be
hidden by an object on the current layer to be readily identified.
Show
Control the display of the pad numbers, net names, testpoint labels, the origin
marker and the Status bar info that appears when the cursor is held over a
workspace object.
Draft Thresholds
Tracks of this width or narrower will be displayed as a single line, tracks of greater
width will be displayed as an outline (when tracks are displayed in Draft Mode).
Strings which are this many pixels high or more (at the current zoom level) will be
displayed as text, text which are fewer pixels high will be replaced by an outline
box. Set these thresholds as required.
Layer Drawing Order
The PCB Editor allows you to control the order in which layers are redrawn. Press
the Draw Order button to pop up the Layer Drawing Order dialog. The order that
the layers appear in the list is the order they will be redrawn in. The layer at the
top of the list is the layer which will appear on top of all other layers on the screen.
457
PCB Design
Display Mode
The display mode sets how design objects will be displayed on the screen. There
are three possible modes; Final, where each object is displayed as solid; Draft,
where each object is displayed as an outline (influenced by the draft threshold);
and Hidden. Click to select the preferred display mode for each object type, or use
the All buttons to switch all simultaneously.
458
Refer to the PCB Design Objects chapter for details about setting the attributes of each
design object.
These defaults can be changed on-the-fly during object placement, by
pressing the TAB key while the object is floating on the cursor. The changes made
on-the-fly will not affect the defaults if the Permanent option is enabled in the
Default Primitives Tab.
459
PCB Design
460
board
outline
ZoomBox
461
PCB Design
The View Zoom Last menu item will return you to your last view of the screen
(shortcut: V, L). Repeatedly pressing V, L allows you to toggle back and forth between
views.
462
463
PCB Design
Jump to the absolute origin. This is the lower-left corner of the workspace. (shortcuts;
J, A or CTRL HOME)
Current Origin
Jump to the current (or relative) 0,0 origin (shortcuts; J, O or CTRL END). This origin is
specified by selecting the Edit Origin Set menu item.
New Location
Jump to the specified location. Edit Jump New Location pops up the Jump To
Location dialog. The X and Y location text fields will contain the current cursor
position. The cursor will jump to the specified location. (shortcut: J, L)
Component
Jump to the specified component. Edit Jump Component pops up the Component
Designator dialog. Type in the designator and click OK. If you do not know the
designator, type ? and press ENTER or click LEFT MOUSE to scan the board for all placed
components. Choose from the Components Placed dialog and click OK. The cursor will
jump to the reference point of the selected component. (shortcut: J, C)
464
Jump to a pin on the specified net. Type the net name in the Net Name dialog and click
OK. If you do not know the net, type ? and press ENTER or click LEFT MOUSE to scan the
board for all nets. Choose from the Nets Loaded dialog and click OK. The cursor will
jump to the nearest pin that belongs to the selected net (shortcut: J, N).
Pad
Jump to the specified pin on the specified component. Type the component designator
and pin number in the Jump to Pin Number dialog (eg U1-6) and press ENTER. The
cursor will jump to the center of the pin. (shortcut: J, P)
String
The cursor will jump to the named string. The system will perform three searches:
First for a string that matches the specified string in both case, characters and length.
Then for a string with same characters in it but perhaps having more characters.
Finally for a string with same characters but ignoring case.
For example, typing component would find the string component first. If no match
is found it would next find the string components and finally CompONENT. When
the string is found, the cursor will be relocated to the specified string. (shortcut: J, S)
Error Marker
Select this menu item to jump to the first DRC error marker. Repeating will jump to a
second error marker, and so on. Removing the violation will clear the error from the
Jump to list. Otherwise, repeating will continue to cycle through all errors in the
current document window.
Selection
Select this menu item to jump to the first selected object. Repeating will jump to a
second selected object, and so on. Repeating will continue to cycle through all selected
objects in the current document window.
Jumping around the workspace can be a very efficient way of working in the
PCB Editor, as it allows you to reposition your view of the workspace without
zooming. To speed the process even more, all the Jump process launchers can be
executed by using the shortcut keys to pop the dialog. For example, to jump to the
location 1000, 1000, press the J, L shortcut keys. When the Jump To Location
dialog pops up the X-Location text box will be highlighted. Highlighted text is
replaced by whatever you type, simply type the new X-location in. To move to the
Y-Location text box, press TAB. Type the new Y-Location in. Press ENTER on the
keyboard. The dialog will close and the cursor will jump to the location 1000,
1000.
465
PCB Design
466
object or a group of objects you must first identify the objects. This is done through
focus or selection.
In other Windows applications selection is a single concept, the process of choosing or
designating objects as a prerequisite for modification. A typical example would be
selecting one or more objects to be copied to the clipboard and then pasted to another
location. Often selected objects can be modified directly. For example, selected objects
can be moved or re-shaped in most graphical applications.
Unlike other Windows applications, the PCB Editor uses two independent methods for
accomplishing selection oriented tasks. These methods, selection and focus are used
repeatedly when creating or editing your PCB. Breaking selection into these two
independent processes allows you to perform complex modifications, which would be
either difficult or impossible using the simple selection method described above.
Focus and selection provide two distinct and independent methods for
changing objects in the workspace. These two methods distinguish Protel 99 SEs
PCB Editor from other Windows applications, where focus and selection are
normally merged into a single operation.
Focus
When you position the cursor over a design object and click the LEFT MOUSE button,
the object then has the focus, and the way it is displayed changes. This is similar to
the way you can change the focus in Windows by clicking on an open window to make
it active.
Only one object can be in focus at a time. You can tell which object is currently in
focus because its graphical editing handles and/or a focus cross-hair are displayed. For
example, if you click LEFT MOUSE over a fill a re-sizing handle will appear at each
corner and along each side, and a rotation handle will appear near the center. If you
click LEFT MOUSE over a via a focus cross-hair will appear. To move the focus to
another object click on that object. Click in a clear area of the workspace to release the
focus.
467
PCB Design
Graphical editing
When an object is in focus, you can move the object or edit its graphical
characteristics. For example, you can change the size or shape of a fill by dragging the
square re-sizing handles. Click LEFT MOUSE on the circular rotation handle to rotate a
fill or a string.
When you focus a track segment three editing handles appear, one at each end and one
in the center. Click on one of the end handles to move that end or click on the center
handle to break the original track segment into two segments.
Click anywhere on a focused object to move it. For strategies about moving or
dragging objects refer to the Moving and Dragging topic later in this chapter.
Focusing a Track Segment that Belongs to a Net
Summary
468
Selection
Selection provides a second, distinct method of
manipulating objects. Unlike focus, selection can be
used with both individual objects and with groups of
objects.
A handy feature of the PCB Editors selection options is the ability to click
without de-selecting objects that were previously added to the current
selection. This allows you to perform a wide variety of operations, without
effecting the current selection.
LEFT MOUSE
Selection in the PCB Editor can also operate in two modes. Selection can be
cumulative (extendible), where objects remain selected until specifically de-selected.
The other mode is non-cumulative. In the non-cumulative mode all currently selected
objects are de-selected when one of the Edit Select menu items is chosen. The extend
selection mode is toggled in the Options Tab of the Preferences dialog.
Selections are made in the following ways:
Direct selection, using SHIFT+LEFT MOUSE to add (or remove) individual items to
the current selection.
The click-and-drag-a-window-around shortcut.
Use the Edit Select and Edit DeSelect sub-menus to define a selection.
By using the Selection field in Change dialogs. This option allows you to use the
PCB Editors global editing feature to apply selection status changes to other
primitives in the current board window. Refer to the Global Editing topic in the
Working in the PCB Editor chapter for tips on global editing.
Care must be taken when manipulating selections to ensure that the current
selection includes only the desired objects. It is good practice to select Edit
DeSelect All from the menus (shortcut: X, A) to clear the current selection, prior to
making a new selection.
If something unexpected happens, select Edit Undo to restore the design to the
previous state. Multiple Undos can be performed.
469
PCB Design
Displaying Selections
Selections are outlined in the selection color specified in the Display Tab of the
Preferences dialog. There are a number of ways of affecting the visibility of a
selection.
Draft Mode
If the primitive has its display mode set to Draft, it will be outlined in the selection
color and displayed in Final mode when it is selected. This makes it very easy to
identify. Set the display mode in the Show/Hide Tab of the Preferences dialog.
Highlight In Full
To display the entire primitive in the selection color, enable the Highlight In Full
option in the Display Tab of the preferences dialog.
Use Net Color For Highlight
Nets can also be highlighted in their net color. Set the net color in the Change Net
dialog (set the Browse mode in the panel to Nets, select the net and press the Edit
button). This option works well in combination with the Highlight In Full option.
Enable the Use Net Color For Highlight option in the Display Tab of the
preferences dialog.
Making Selections
Direct Selection of an Individual Object
Direct selection is the most flexible way to select an individual object. To select one
object at a time:
1.
Hold down SHIFT and click LEFT MOUSE with the cursor positioned over an object.
The item will be redrawn, outlined in the Selection color (Tools Preferences).
You can do this repeatedly, each time adding another item to the current selection.
If you hear a beep or nothing appears to be selected, try zooming in closer (press
and make sure that the cursor is directly over the item you wish to select. To
select a component, position the cursor within the component outline.
Components, especially complex components can take a moment to select.
PGUP)
Hold down SHIFT and click LEFT MOUSE over another item.
To release individual items from the selection:
3.
When released, the item will be redrawn in its original colors. Other selected items
remain selected until they are either individually released (SHIFT+LEFT MOUSE) or until
an Edit DeSelect is executed.
470
Direct selection can also be performed on an area. To select all objects within an area:
1.
2.
3.
Drag the mouse diagonally away. Define the area with the selection rectangle and
release the LEFT MOUSE button.
Only objects that fall entirely within the rectangle will be selected. The selected
objects will highlight in the current selection color.
4.
This option selects everything outside the selection rectangle. The rules for inclusion in
the selection are the same as for Select Inside Area. The procedure for defining the
selection rectangle is the same as for Inside Area.
All
Selects everything placed in the document window. This includes all objects which
have their display state set to hidden or are not visible because their layer is off.
Physical Net
This selection will include all primitives (tracks, vias, fills) that are in physical contact
with the point where you click. It will not include any part of a net that is not
physically connected, that is, connected by a connection line.
To use this feature:
471
PCB Design
1.
2.
Position the cursor over any primitive within the desired net and press ENTER or
LEFT MOUSE.
The continuous physical net, extending from the selection point, will highlight in the
selection color.
All On Layer
This selection will include all primitives on the current layer. Multi layer items
(typically multi-layer pads and vias) are excluded from the selection.
Free Objects
This option selects all objects which are not part of a group (component, polygon,
dimension or coordinate). This feature is useful for stripping a routed, or partially
routed board back to its placed condition. Limit the selection by turning off layers
which contains objects you do not want selected.
All Locked
This will select all primitives and components that have their Locked attribute set.
Off Grid Pads
Choose Edit Select Off Grid Pads to select all component pads that do not fall on the
current snap grid. Use this prior to autorouting to check how many component pads are
off grid. Use the partner process, Tools Interactive Placement Move To Grid to bring
the components onto the current snap grid (shortcut: A, G).
Selecting PCB Components from the Schematic
To help in the process of working between the 2 views of your design the schematics
and the PCB you can directly select PCB components from the schematic. To do this
select the components on the schematic sheet, then choose Tools Select PCB
Components from the Schematic Editor menus. These components will be selected on
the PCB, and the PCB view zoomed to show the selection. With this set of selected
components you can now create a component class, which is described in more detail
on the following page.
Selecting from the Panel
As you manipulate your design one of the most commonly used tools is selection.
Selection can be used to move, copy or delete a group of objects, and is also a
convenient way of highlighting an object or a group of objects. As well as direct
selection (SHIFT+click) and selection from the menus, you can also select directly from
the Browse PCB Panel. The following selection operations are available:
472
Select the current net class, and any net in that net class
Select the current component class, and any component in that class
Select objects targeted by a design rule
Set the Extend Selection option in the Preferences dialog to create multiple selections,
disable it to always replace the current selection with the new selection.
Creating Classes from Selections
Like selection, classes are an
excellent tool for working on a set
of objects. The advantage of
classes over selections is that they
are stored and can be used at any
time. Classes can be used as the
scope of a design rule, and also as
a method of selection. Classes can
be created for components, nets,
pads, and from-tos.
A convenient way of creating a
class is to create it based on the
current selection. Select pads,
components, or nets using the
Creating a new pad class from the selected pads
standard selection strategies, or the
selection buttons in the Browse PCB Panel.
To create a class from a group of selected pads select Design Classes to pop up the
Object Classes dialog, then click the Add button on the Pad Tab of the dialog to add a
new class. In the Edit Pad Class dialog click the take-over-selected objects button to
transfer the pads currently selected on the board from the Non-Members list to the
Members list. Follow the same process for nets and components.
Stepping through Selected Objects
After selecting the objects you need to work on, use the Find
Selection toolbar to quickly move from one selected object to
the next. To display the toolbar press the B shortcut to pop up
the Toolbars sub-menu and choose Find Selections from the
menu.
The top row of buttons are used to step through the currently
selected primitive objects (tracks, pads, vias, arcs, fills and
strings), the bottom row of buttons are used to step through the selected group objects
(components, dimensions, coordinates and polygons).
473
PCB Design
The PCB Editor also includes a Selection Wizard, which you can use to create complex
sets of selections. This Wizard allows you to
Click on the Wizard
simultaneously select different types of primitives,
button in the Query
based on a set of user-definable selection criteria. For
Manager dialog to launch
example, you could select all pads and vias with a hole
the Selection Wizard.
size <= 0.5 mm, or all tracks whose width <> 8 mils.
Working with a Selection
The PCB Editor uses a special proprietary clipboard format that supports PCB data
such as connectivity and layer attributes of primitives. This internal Protel clipboard is
not the same as the standard Windows clipboard that allows you to move selections,
such as text, between various Windows applications. The Windows MetaFile (.WMF)
graphics format is not supported in the PCB clipboard.
Use the clipboard in the PCB Editor the same as you would in any Windows
application. The sequence is; select the objects to perform the operation on, cut or copy
the selection to the clipboard, then paste the clipboard contents to the desired location.
Notes on Using the Clipboard
474
Edit Copy
Edit Cut
Select Edit Paste to paste the selection back into any open PCB document.
clipboard.
clears the current selection from the workspace and copies it to the
clipboard.
Make sure that the selection includes only those items you wish to copy or cut. To
ensure that nothing is selected before making a new selection use the deselect all
shortcut: X, A.
Use the shortcut SHIFT+LEFT MOUSE to add or remove items from the current
selection.
The clipboard holds the last selection only, each time you select Cut or Copy you
overwrite the clipboard contents.
Select Edit Clear to delete the current selection from the workspace without
copying it to the clipboard (shortcut: CTRL+DELETE).
Paste Special allows you to control what happens to the attributes of the objects that
are in the clipboard when they are pasted back into the workspace.
To control the attributes as you paste the current clipboard contents:
1. Choose Edit Paste Special.
The Paste Special dialog will appear. Paste Special includes the following options:
If this option is disabled all single layer objects such as tracks, fills, arcs and single
layer pads keep their existing layer assignments. If this option is enabled then all
single layer objects are pasted onto the current layer.
Keep net name
If this option is enabled then all objects which have a net name will keep the
assigned net name. If this option is disabled the net attribute is set to No Net.
Duplicate designator
This option supports the creation of a PCB panel, where you wish to copy and
paste the entire design. Typically the Keep net name option would be disabled if
this option is enabled.
475
PCB Design
Pasted component(s) are added to the same class as the component(s) they were
copied from.
2.
3.
Position the selection in the workspace and click LEFT MOUSE or press ENTER.
Creating a Panel
The PCB Editor can be used to create a panel of PCBs. This panel could be multiple
copies of the same PCB, or be made up of different PCBs. To create a panel, first copy
the PCB to the clipboard. Then use the Paste Special feature to copy the PCB the
required number of times. If you have difficulty positioning accurately as you paste,
use the Jump Location process (shortcut: J, L) while the paste is floating on the cursor.
This allows you to position the paste without using the mouse. Remember, you can
move through fields in a dialog by pressing the TAB key (SHIFT+TAB to go back through
fields) and press ENTER instead of clicking OK.
When you paste a PCB that includes a polygon you will be prompted to repour
polygons generally there is no need to repour polygons as you have not modified
the polygon, or any of the objects that it is poured around. If you do repour the
polygons you will loose all the polygon connections unless you enabled the Keep
Net Names option in the Paste Special dialog this option should be disabled for a
multi-PCB panel to prevent the net data from the different PCBs being merged.
Pasting an Array of Objects
To paste an array of
the current clipboard
contents select Edit
Paste Special from
the menus. Set the
Paste Special dialog
Define the array criteria in the paste Array dialog
as required and press
the Paste Array button. The Paste Array dialog will appear.
476
This option is used for designators on pads and components. Setting this to 1
(default) will increment the designators in series, for example U1, U2, U3 etc.
Both alpha and numeric increments other than 1 are also supported. By setting the
designator of a pad prior to copying it to the clipboard and setting the Text
Increment field, the following types of pad designator sequences can be placed:
Numeric (1, 3, 5); Alphabetic (A, B, C); Combination of alpha and numeric (A1,
A2, or 1A, 1B, or A1, B1 or 1A, 2A, etc).
To increment numerically, set the Text Increment field to the amount you wish to
increment by. To increment alphabetically set the Text Increment field to the letter
in the alphabet that represents the number of letters you wish to skip. For example,
if the initial pad had a designator of 1A and the Text Increment field was set to C
(the third letter of the alphabet), the pads would have the designators 1A, 1D
(three letters after A), 1G (three letters after D), and so on.
Array Type
Circular
Repeat placements are made in a circular array using the rotation and spacing
values specified under Circular Arrays.
Linear
Repeated items are placed in a linear array, using the spacing values specified
under Linear Array.
Circular Array
Rotate Item to Match
Array items will be rotated by the same angular amount as their Spacing.
Spacing
Specifies the angular spacing between each pasted item. The PCB Editor has an
angular resolution of 0.001 degrees.
Linear Array
These values specify the X and Y distance between each item as it is placed.
Enter the desired values into the Setup Paste Array dialog and click OK. Follow the
prompts on the Status Bar to paste the array.
477
PCB Design
Global Editing
As well as being able to edit the attributes of a single object, the PCB Editor also
allows you to apply these edits to other objects of the same type. These may be other
objects in the current component or in the current document.
Additionally, you can further define conditions that either extend or restrict global
changes. For example, changes can be applied to all objects that are selected or all
objects that are not currently selected. If desired, you can create a complex set of
conditions for applying changes.
Virtually every attribute of an object can be globally edited. A simple example would
be changing the size of pads associated with a specific component. In another instance
you may wish to change the width of tracks for a particular net. These options (and
many more) are possible with global editing. The possible applications for global
changes are limited only by the imagination of the designer.
Each objects dialog may contain different options since each object type may have
unique attributes.
The large number of global change options may make this feature appear
somewhat complex at first. However, the principles of applying global changes are
reasonably simple, once understood. When mastered, this feature can be an
important productivity tool that can save a great deal of manual editing of a PCB.
Global Editing Strategies
While the presentation of global change options may appear differently in the various
object dialogs, the strategy used is always the same. This description will outline the
approach to global editing.
Current Attributes
When you double-click on an object, you are presented with the Change dialog for that
type of object. This dialog contains the current values or settings of the objects
attributes.
Change the attributes you would like to alter.
Pressing the Global button will extend the dialog. It will now contain three distinct
regions; Attributes, Attributes to Match By and Copy Attributes.
478
Note the three columns or regions each dialog has when the Global button is pressed.
Attributes to Match By
In the center of the dialog there will now be a column titled Attributes To Match By. In
the Attributes To Match By column you define how to identify the other objects in the
design which the global change is to apply to.
The Attributes To Match By column will contain either a choice field for each attribute
or a text field which you can type in.
The choice field has three options: Same (apply global changes if this attribute is
matched in the target object); Different (apply global changes if this attribute is not a
match in the target object) and Any (the default) which applies the change irrespective
of whether the attribute has the same value in both objects.
Use combinations of Match By attributes to define a particular set of objects to apply
the change to.
If the Match By attributes are all set to any, and the text fields contain the
wildcard symbol (*), then the global change will apply to all objects of this type.
Copy Attributes
The third column in the dialog is titled Copy Attributes. This column will contain
either a check box for each attribute or a text field which you can type in.
In this column you specify which of the attributes in the matched objects you want to
copy the changes to, and if the attribute has a text field what new text value to copy to
the matched objects.
479
PCB Design
Change Scope
The last parameter to set is the change scope. There are two options here; All
primitives or All FREE primitives. The PCB Editor identifies any primitive which
is not part of a group object as a free primitive.
Examples of Global Changes
The following examples will give you some idea of the potential scope of global
changes that can be performed on components and primitives:
Example 1 Swapping Track Layers
To move all Top layer tracks to the Bottom layer, regardless of track width or selection
status:
1.
Double-click on any Top layer track to open the Change Track dialog.
2.
3.
4.
Under Attributes to Match By set Layer to Same. All other attributes should be set
to Any.
This tells the PCB Editor to apply this change to all tracks on the same layer. Note
that the match by condition is based on what the Layer was, not what you just
changed it to.
5.
In the Copy Attributes column the Layer attribute will have been automatically
activated.
This tells the PCB Editor to copy the change made to the Layer attribute to all
tracks that meet the Match By criteria.
6.
Set the Change Scope to All FREE primitives. If your routing includes arcs then
enable the Include Arcs option. Click OK or press ENTER.
The initial track that was edited will be changed to the Bottom layer first. The
Confirm Global Change dialog will then pop up.
7.
If you wish to change a particular net to another layer, select the Edit Select Physical
menu item and click anywhere on the desired net. Now repeat the global edit
process as described, except in the Attributes To Match By column set the Selection
attribute to Same and all others to Any. Only the selected net will move to the Bottom
Layer.
Net
480
2.
3.
4.
Set all the Attributes To Match By to Any (all vias will be changed).
5.
In the Copy Attributes column the Diameter attribute will have been automatically
activated.
Leave the other attributes disabled.
6.
Set the Change Scope to All primitives and click OK or press ENTER.
The initial via selected will be redrawn with the new diameter and the Confirm
Global Change dialog will open.
7.
Click OK.
All vias in the document window will change to reflect the new size setting.
To prevent the autorouter from modifying a particular net that was manually routed,
lock it in place. To do this:
1.
Select the net. To select a net choose the Edit Select Physical Net menu item and
click on the net.
All the track segments that make up the net will highlight in the selection color.
2.
3.
4.
5.
6.
Set the Change Scope to All FREE primitives. If your routing includes arcs then
enable the Include Arcs option.
The global change will be applied to all selected track segments that are not part of
a group object.
7.
481
PCB Design
8. Click OK.
The initial track selected will be changed and the Confirm Global Change dialog
will open.
9.
Summary
The three examples above show the most basic application of the global change
options. With care and planning you will experience significant productivity benefits
from this powerful feature. However, the very power of these options can contribute to
some unanticipated results particularly when complex selections are globally edited.
When in doubt, its always safest to DeSelect All (X, A), then, rather than using the
global edit to change the target objects, set it up to simply select the target objects.
Visually confirm that the match by criteria has targeted the correct objects, then re-do
the global edit, using Selection as the match-by criteria.
Use the auto-backup feature included in Protel 99 SE, and always archive your design,
particularly if you intend to perform complex changes. Finally, remember that the
Undo/Redo features can allow you to recover several operations, if required.
482
The concept of dragging is only applicable when the objects are part of a net.
Move Shortcut
To select and move any object or selection:
1.
2.
3.
Drag Shortcut
To drag an object that is part of a net:
1.
2.
3.
4.
Dragging a Component
To drag a component:
1.
2.
Click on the component you wish to drag and move it to the new location.
The behavior of the tracks that connect to and pass under the component are influenced
by the Component Drag option in the Preferences dialog (Tools Preferences). Edit
Move Drag can also be used to drag any primitive object.
483
PCB Design
Selection Moves
Once selected, an individual item or a complex selection containing many items can be
moved as a single entity. Select Edit Move or press the M shortcut key to pop up the
Move sub-menu. This sub-menu includes:
Move Selection
This option allows you to select a new location for the selection, which will move as a
block (shortcut: M, L). When you invoke this process you will be prompted for a
reference point.
Flip Selection
This option flips the selection around the vertical axis. Pressing the X or Y keys during
a Move Selection can also be used to flip a selection.
Rotate Selection
Selecting this option will pop the Rotation Angle dialog. Enter the rotation angle,
which has an angular resolution of .001 degrees. You will then be prompted to select a
reference point, about which to pivot the rotation.
Selections can also be rotated during a Move Selection by pressing the SPACEBAR. The
spacebar rotation angle is set in the Options Tab of the Preferences dialog.
For Gerber plot final artwork, the target photoplotter may not allow rotated primitives.
Rotated rectangles (such as rectangular component pads) are automatically painted
using a round aperture during Gerber generation.
Moving Individual Items
The other Edit Move process launchers work with items that have not been previously
selected. Because these Move process launchers manipulate specified items, it is easy
to control the selection in a dense layout, where many items overlap.
Moving or deleting one or more items can leave a hole in the display under the
moved/deleted primitives. This is because the PCB Editor does not continuously
redraw the screen during moves or deletions, as this would significantly slow system
performance. Click the Redraw button on the Tool bar, or press END to refresh the
screen.
Rotatable objects, such as components, pads and text strings, can be rotated in
anti-clockwise steps during moves by pressing SPACEBAR, or in clockwise steps by
pressing SHIFT+SPACEBAR. The Rotation Step is set in the Preferences dialog.
Break Track
Break Track converts a single track segment into two connected segments. To break a
track:
1.
484
Choose the Edit Move Break Track menu item (shortcut: M, B).
Position the cursor over the track segment and press ENTER or click LEFT MOUSE.
The track will be displayed in draft mode.
3.
4.
5.
Select another track or press ESC (or click RIGHT MOUSE) a second time to quit
from the break track mode.
Polygon Vertices
The boundary of a polygon plane can be reshaped by moving the vertices. For
information on moving the polygon vertices refer to the Refer to the Polygons topic in
the PCB Design Objects chapter.
Deleting
Select the Edit Delete menu item to remove objects from the PCB workspace. Delete
differs from the Cut or Clear processes described previously. With Cut or Clear you
identified the objects first (selected them), then picked the action (Cut or Clear). To
Delete you pick the action first (Delete), then click on the object.
If more than one object is under the cursor when you click to delete, a pop up menu
will appear allowing you to choose exactly which object to delete.
Delete is also independent of selection. For example, when deleting individual tracks,
tracks that are part of the current selection will be left undisturbed.
All deletions can be restored by using Edit Undo (or ALT+BACKSPACE). If you have
deleted a series of items, they will be restored one-at-a-time starting with the last
deleted item. Edit Redo uses the same first-in/last-out logic. Redo reverses the Undo
operations, one-at-a-time.
485
PCB Design
Change the snap grid if you cannot accurately position the cursor at the required
points (shortcut: G).
You may need to temporarily disable the Electrical Grid if you find that the cursor
snaps to the center of electrical objects (shortcut: SHIFT+E to toggle the electrical
grid on and off).
Measure Primitives
As you are designing your PCB you will often want to know the clearance between
two primitives. The Measure Primitives feature provides a quick and easy way of
finding the shortest distance from the edge of one primitive to the edge of another
primitive.
Select Reports Measure Primitives, click on the first primitive, then click on the second
primitive. A dialog will report; the type, coordinates and layer of each primitive, and
the shortest distance between their closest edges.
486
Use the ALT+END shortcut keys to redraw the current layer only.
Mouse Shortcuts
As you read through this Handbook, you will notice several mouse and keyboard
shortcuts that are used to speed-up or simplify frequently performed operations. For
example, pressing P, P allows you to place a pad without having to go to the Place
menu and choose the Pad menu item. Using the left mouse button for ENTER and the
right mouse button for ESC will allow you to perform many operations without using
487
PCB Design
the keyboard. The opposite can also be done, press ENTER or ESC on the keyboard
rather than clicking OK or Cancel in a dialog. Sometimes keyboard actions provide the
only practical way of performing an operation when you do not wish to move the
mouse in the workspace, such as setting a new grid while placing an object, or
changing the zoom level while moving a selection.
You can also create your own custom shortcut keys. Refer to the Design Explorer
section for clues on creating your own shortcut keys.
If you double-click on any placed item, the Change dialog for that item will be
opened, allowing you to edit its attributes.
To move an item simply click and hold LEFT MOUSE, hold on the object and
drag the mouse to the new position.
To delete a primitive from the design, click on the primitive you wish to delete
to focus it, then press the DELETE key.
Slider Hand
The PCB Editor includes a powerful mouse shortcut for
changing your view of the workspace, the Slider Hand.
Click-and-hold the right mouse button, and the cursor
will change to a hand symbol. You can now slide your
view of the PCB design around in the window.
488
Keyboard Shortcuts
There are two ways of creating shortcuts invoked through the keyboard. The first is
through the Keyboard Shortcut Editor (Client menu Edit Shortcuts). These are known
as Keyboard Shortcuts. They launch a process directly. For example, pressing CTRL+G
will pop up the Snap Grid dialog, allowing you to change the snap grid.
Processes can also be launched through the keyboard via the menu keyboard shortcuts.
Underlined menu items which lead to a sub-menu will pop up that sub-menu,
underlined menu items which do not pop up a sub-menu will launch the process tied to
that menu item. For example, press P to pop up the Place menu, then press V to present
the current via on the cursor, ready for placing. Press T to pop up the Tools menu,
followed by R to pop up the Auto Route sub-menu.
If the same keyboard key has been assigned as a keyboard shortcut
and also as a menu shortcut the keyboard shortcut will take precedence.
Menu Shortcuts include:
A
B
D
E
F
G
H
I
J
M
N
O
P
R
S
T
U
V
W
X
Z
menu
menu
File menu
Snap Grid pop-up menu
Help menu
Interactive placement options sub-menu
Edit Jump sub-menu
Edit Move sub-menu
Netlist pop-up menu
Options pop-up menu
Place menu
Reports menu
Edit Select sub-menu
Tools menu
Tools Unroute sub-menu
View menu
Window menu
Edit DeSelect menu
Zoom pop-up menu
Design
Edit
489
PCB Design
PGDN
CTRL+PGUP/PGDN
SHIFT+PGUP/PGDN
HOME
View Pan
END
View Refresh
CTRL+HOME
CTRL+END
CTRL+ INS
Edit Copy
CTRL+DEL
Edit Clear
SHIFT+INS
Edit Paste
SHIFT+DEL
Edit Cut
ALT+BACKSPACE
Undo
Redo
Toggle Electrical grid on/off
Toggle single layer mode on/off
Cycle through the Routing Modes
Cascade Windows
Tile Windows
Toggle active signal layers
Next / previous active layer
Help Index
Move one snap grid point, vertically
Move 10 snap grid points, vertically
Move one snap grid point, horizontally
Move 10 snap grid points, horizontally
CTRL+BACKSPACE
SHIFT+E
SHIFT+S
SHIFT+R
SHIFT+F4
SHIFT+F5
*
+ or F1
UP, DOWN
SHIFT+UP, DOWN
LEFT, RIGHT
SHIFT+LEFT, RIGHT
490
SPACEBAR
SHIFT
SHIFT+SPACEBAR
N
CTRL
CTRL+SPACEBAR
Locating Components
Often you will know what component you wish to edit or move, but can not currently
see it on the screen. For example, you might want to place a particular component
where you are currently working but do not want to scroll or zoom to find it. Select the
Edit Move Move Component menu item (shortcut: M, C). Click somewhere in the
workspace where there is no component under the cursor and the Component
Designator dialog will pop up. If you know the designator type it in and click OK. If
the component is off screen the view will start to scroll so move the mouse to bring the
cursor and component into view.
When the Component Designator dialog pops up you can also leave the ? and click
OK. This will pop up the Components Placed dialog, allowing you to select any
component that is in the workspace.
491
PCB Design
492
A track is a layer-dependent object. Click on the required Layer Tab at the bottom of
the PCB workspace before you start placing tracks. To place track segments on the
current layer:
When you are already in track
1. Select Place Interactive Routing from
placement mode you can:
the menus (shortcut: P, T or click the
- Press * on the numeric keypad to
Track button on the PlacementTools
toggle signal layers
toolbar).
- Press the + or keys on the numeric
The prompt Choose start location is
keypad to toggle all layers
displayed on the Status Bar.
2.
Click LEFT MOUSE (or press ENTER) once to define a start point for the track.
The Status Bar will display the net assigned to this
track, the current segment length and the total
track length in brackets.
3.
current segment
being placed
look-ahead
segment
493
PCB Design
will toggle to 45 Degree Start, where the current segment is diagonal and the lookahead is vertical or horizontal. Press the SPACEBAR a second time to revert to the
45 Degree End mode.
4.
Move the cursor until the end of the solid track segment is
where you would like it, and click LEFT MOUSE (or press
ENTER) to place this first segment.
5.
6.
7.
If you make a
mistake
press
BACKSPACE
to
remove the last
track segment.
494
Press the SPACEBAR to toggle between the Start and End placement modes
while placing a track. Hold the SHIFT key and press the SPACEBAR to toggle through
the six different types of track placement modes.
Press the . shortcut key to increase the arc size in the with arc modes,
press the , key to decrease the arc size.
Placing Tracks to Route a Connection
When you place a track that starts on an object with a net name, such as a pad, you are
routing that net. The track you are placing will adopt the net name of the pad and the
design rules that apply to that net will be observed. Placing tracks to route a net is
supported by a number of features, such as the
track placement modes, that simplify this task. For
Click on the Whats This
a complete discussion of these refer to the chapter,
Help icon at the top of the
Manually Routing the PCB.
dialog for information on each
Changing Tracks
attribute in the Track dialog.
495
PCB Design
Tracks can be changed both individually and globally. Select the Edit Change menu
item to edit an existing track. Click on a track to pop up the Change Track dialog,
where you can change the attributes.
Default Track
The attributes of the track currently being placed can be changed during placement by
pressing the TAB Key. This will pop up the Track dialog, where you can edit the track
attributes. The default track attributes are set in the Defaults Tab of the Preferences
dialog. If the Permanent option in the Defaults Tab is not set, changes made during
placement become the new defaults.
Note: if the track is part of a net, you can only change the width between the Min and
Max values specified in the Width Constraint design rule that applies to that net.
Pads
Pads can be either multi-layer or placed on any individual layer. For example, surface
mount components and edge connectors have single layer pads on the Top and/or
Bottom layers. Pads shapes can be circular, rectangular, rounded rectangular (circular
with different X and Y sizes), or octagonal with X and Y size definable from 1 to
10000 mils. Hole size can range from 0 (SMD) to 1000 mils. Pads can be identified
with a designator up to 4 characters long.
On a multi-layer pad the Top layer, Mid layers and Bottom layer pad shape and size
can be independently assigned to define a pad stack. Pads can be used individually as
free pads, or they can be incorporated with other primitives into components.
Placing Pads
Free pads (pads that are not grouped in a library component) can be placed anywhere
in your design. Through-hole pads (and vias) are multi-layer objects which occupy
each signal layer of the PCB and can be placed without regard to the current layer
setting. Single layer pads can be placed on any layer.
Press TAB to change
To place a pad select Place Pad from the menus
the default pad attributes
(shortcut: P, P or click the Pad button on the
during placement.
PlacementTools toolbar).
Pad Designator
Pads can be labeled with a designator (usually representing a component pin number)
of up to four alphanumeric characters. Spaces are not allowed but the designator can be
left blank if desired.
Pad designators will auto-increment by 1 during placement if the initial pad has a
numeric designator. To set the designator prior to placing the first pad, press the TAB
key while the pad is floating on the cursor.
To achieve alpha or numeric increments other than 1, use the Paste Array feature. By
setting the designator of the pad prior to copying it to the clipboard and setting the Text
496
Increment field in the Paste Array dialog, the following types of pad designator
sequences can be placed;
numeric (1, 3, 5)
alphabetic (A, B, C)
combination of alpha and numeric (A1, A2, or 1A, 1B, or A1, B1 or 1A, 2A, etc).
To increment numerically set the Text Increment field to the amount you wish to
increment by. To increment alphabetically set the Text Increment field to the letter in
the alphabet that represents the number of letters you wish to skip. For example, if the
initial pad had a designator of 1A and the Text Increment field was set to C (the third
letter of the alphabet), the pads would have the designators 1A, 1D (three letters after
A), 1G (three letters after D), and so on.
Changing Pads
Default Pad
The attributes of the pad currently being placed can be set by pressing the TAB Key as
soon as you select the Place Pad menu item. The default pad attributes are set in the
Defaults Tab of the Preferences dialog. If the Permanent option is not set in the
Defaults Tab of the Preferences dialog then changes made during placement will
become the new defaults.
Vias
When tracks from two layers need to be connected vias are placed to carry a signal
from one layer to the other. Vias are like round pads, which are drilled and usually
through-plated when the board is fabricated.
Vias are either multi-layer, blind or buried, and can be any diameter from 2 to 10000
mils wide. Vias can be placed manually using the Via button on the PlacementTools
toolbar or by selecting the Place Via menu item; they can be placed automatically by
the auto via feature when placing tracks, or by the autorouter. The hole size can be set
from 0 to 1000 mils.
Via Type
Vias can be multi-layer, blind or buried. A multi-layer via passes from the Top layer to
the Bottom layer and allows connections to all internal signal layers. A blind via
connects from the surface of the board to an internal layer, a buried via connects from
one internal layer to another internal layer.
497
PCB Design
Blind and Buried Vias
Before using blind or buried vias it is important to establish the level of support
provided by the manufacturer. Most manufacturers support blind and buried vias
between what are termed layer pairs. Using this technology, a multi-layer board is
fabricated as a set of thin double-sided boards which are then sandwiched together.
This allows blind and buried vias to connect between the surfaces of these thin doublesided boards, which become the layer pairs. The layer pairs are defined by the layer
stack you configure in the Layer Stack Manager dialog. It is important to note that the
layers pairs are dependant on the layer stackup style read the chapter Defining the
Board, and contact your manufacturer to ensure you select the correct stackup style,
before you start designing with blind and buried vias.
Once you have established the correct stackup style, you should define the valid drill
pairs. Drill pairs are set up in the Drill Pair Manager dialog, click on the Drill Pair
button in the Layer Stack Manager dialog to open the Drill Pair Manager dialog. If you
define a drill pair for each layer pair in your design the PCB Editor will automatically
insert the correct via type (thru-hole, blind, or buried) as you toggle layers during
routing.
Default Via
The attributes of the via currently being placed can be set by pressing the TAB Key as
soon as you select the Place Via menu item. The default vias attributes are set in the
Defaults Tab of the Preferences dialog. If the Permanent option is not set in the
Defaults Tab of the Preferences dialog then changes made during placement will
become the new defaults.
Placing Vias
Vias can be placed by the Autorouter, by the Auto Via feature, or manually.
Autorouter Vias
The autorouter will obey the via defined by the Routing Via Style design rule
which has a scope set to board (select Design Rules). Refer to the chapter,
Specifying the PCB Design Requirements, for more information on design rules.
Auto Via Feature
If the * key is used to toggle to another signal layer when a track is being placed, a
via is added automatically. This via will obey the appropriate Routing Via Style
design rule and the drill pair definitions. The routing via style parameters can be
changed during routing by pressing the TAB key while routing.
Manually Placed Vias
To manually place a via select the Place Via menu item. The current default via
will appear on the cursor. Click to place a via in the workspace.
498
Like pads, vias automatically connect to a internal power plane layer that is assigned
the same net name. The via will connect in accordance with the applicable Power Plane
Connect Style design rule.
If you do not want vias to connect to power planes, add another Power Plane Connect
Style design rule with a connection style of No Connect. Refer to the topic Examples of
Using Design Rules in the Specifying the PCB Design Requirements chapter for an
example of how to set this rule up.
Fills
Fills (or area fills) are rectangles which can be placed on any layer. When placed on a
signal layer they become areas of solid copper and can be used to provide shielding or
to carry large currents. Fills of varying size can be combined to cover irregularly
shaped areas. They can be combined with track or arc segments and be recognized as
electrically connected when running the design rule check (DRC) feature.
Fills can also be placed on non-electrical layers. For example, place a fill on the Keep
Out layer to designate a no-go area for both autorouting and auto component
placement. Place a fill on a Power Plane, Solder Mask, or Paste Mask layer to create a
void on that layer.
Activity - Placing a Fill
1.
2.
3.
4.
5.
A fill will
adopt a net
name if the first
corner is placed
on an object
which has a net
name.
Changing Fills
To edit a fill, select the Edit Change menu item and click on the fill. The Fill dialog
will pop up, where you can edit the fill attributes.
Default Fill
The attributes of the fill currently being placed can be set by pressing the TAB key as
soon as you select the Place Fill menu item. The default fill attributes are set in the
Defaults Tab of the Preferences dialog. If the Permanent option is not set in the
Defaults Tab of the Preferences dialog then changes made during placement will
become the new defaults.
499
PCB Design
Arcs
Arcs are essentially circular track segments. They can be placed on any layer with a
radius between 0.001 to 16000 mil and width from 0.001 to 10000 mils wide. The
angular resolution is 0.001 degrees. Arcs can be placed using the Arc button on the
PlacementTools toolbar, the Place Arc menu items, or as part of a track using the
Place Track process. Arcs are also used when generating polygon fills.
Arcs have a variety of uses in PCB layout. For example, they can be used to indicate
component shapes on the Overlay layers, or on a mechanical layer to indicate the board
outline, cut outs, and so on. Arcs can be open, or closed to create a circle.
Arcs can also be placed on signal layers as part of a track. These arcs can be
generated on-the-fly while placing tracks if the Track Placement Mode is set to one
of the modes that includes arcs. Press SHIFT+SPACEBAR during track placement to
toggle through the placement modes. Once you have selected the desired arc mode,
press the SPACEBAR to toggle between the Start and End modes.
Activity - Place Arc (starting at the center)
To place an arc on the current layer using the arc center as the starting point:
1.
2.
3.
4.
5.
Position the cursor to set the center of the arc and click LEFT MOUSE. As you move
the mouse a highlighted arc will be displayed.
To render the
Position the cursor to set the radius and click LEFT
arc in the other
MOUSE.
direction, press the
Position the cursor to define the start point of the arc and
SPACEBAR
before
click LEFT MOUSE.
defining the end
point.
Position the cursor to define the end point of the arc and
click LEFT MOUSE.
If you are drawing a 360 degree arc, click to define the Start and End points
without moving the cursor.
6.
Start a new arc, or press ESC or RIGHT MOUSE to stop placing arcs.
To place an arc on the current layer starting at one of the arc end points:
500
1.
2.
Position the cursor to set the start point of the arc and click LEFT MOUSE once.
3.
Position the cursor to set the end point of the arc and click LEFT MOUSE.
4.
Start a new arc, or press ESC or RIGHT MOUSE to stop placing arcs.
You can also place an arc starting at an end point, of any angle:
1.
2.
Position the cursor to set the start point of the arc and click LEFT MOUSE once.
3.
Position the cursor to set the radius and the center point of the arc and click LEFT
MOUSE.
4.
Position the cursor to set the end point of the arc and click LEFT MOUSE.
5.
Start a new arc, or press ESC or RIGHT MOUSE to stop placing arcs.
2.
Position the cursor to set the center point of the circle and click LEFT MOUSE once.
3.
Position the cursor to set the radius of the circle and click LEFT MOUSE once.
4.
Start a new circle, or press ESC or RIGHT MOUSE to stop placing circles.
Changing Arcs
501
PCB Design
IBM extended ASCII character set that supports English and other European
languages.
All text strings (component designators, component comments, and free text strings)
have the same attributes, and can be moved and edited in the same way. Free text can
be placed on any layer. Component text is automatically assigned to the Top or Bottom
Overlay layer when the component is placed, but can be moved to any layer.
Free Text strings can be moved or edited like other primitives. Component text can be
moved independently of the component (Edit Move). If the component is moved,
component text will move relative to the component.
The PCB Editor includes Special Strings. These are strings which are interpreted
when output is generated. Special strings are discussed below.
Default String
The attributes of the string currently being placed can be set by pressing the TAB key as
soon as you select the Place String menu item. The default string attributes are set in
the Defaults Tab of the Preferences dialog. If the Permanent option is not set in the
Defaults Tab of the Preferences dialog then changes made during placement will
become the new defaults.
Activity - Placing a String
2.
3.
Type the string into the Text field or select one of the
special strings from the drop down list.
4.
5.
6.
While
placing a string
press the X or Y
keys to mirror
along these axes,
press
the
SPACEBAR
to
rotate the string.
Changing Strings
502
Special strings allow you to place generic, non-specific text which is interpreted when
printing, plotting or generating Gerber files. For example, the string .PRINT_DATE
will be replaced by the current date when output is generated. The available special
strings are:
.PRINT_DATE
.PRINT_TIME
.PRINT_SCALE
.LAYER_NAME
.PCB_FILE_NAME
.PCB_FILE_NAME_NO_PATH
.PLOT_FILE_NAME
.ARC_COUNT
.COMPONENT_COUNT
.FILL_COUNT
.HOLE_COUNT
.NET_COUNT
.PAD_COUNT
.STRING_COUNT
.TRACK_COUNT
.VIA_COUNT
.DESIGNATOR
.COMMENT
.LEGEND
.NET_NAMES_ON_LAYER
503
PCB Design
Group Objects
A group object is any set of primitives which has been defined to behave as an object.
These may be user defined, such as components and polygons, or system defined, such
as coordinates and dimensions. A group can be manipulated as one object they can be
placed, selected, copied, changed, moved and deleted.
Primitives
Polygons
Polygons are special areas of copper formed when you use the Place Polygon Plane
process. Polygon planes (or copper pours) can fill irregularly shaped areas of a board
and can connect to a specified net as they are poured.
Although polygons consist of tracks and arcs, polygons
can be manipulated as a unit. Polygon boundaries can be
re-shaped and polygons can be re-poured around new
obstacles after placement, and any of their attributes,
such as grid and track size, can be changed. By adjusting
the grid and track size, a polygon plane can be either
solid (copper) areas or a cross-hatched lattice.
When placed in occupied board space polygon planes
pour copper around any tracks, pads, vias, fills or text
while maintaining the clearances specified in the design
rules. If you are working with a netlist-based layout the Polygons pour around existing
in accordance with the
plane can automatically connect to any component pads objects,
design rules
on the specified net that are within the polygon plane.
Polygons can be poured to create a multi-sided shape on any layer. If a polygon is
placed on a non-signal layer it will not be poured around existing objects as these
objects are not assigned to a net and therefore do not belong to anything.
Activity - Placing a Polygon Plane
504
2.
3.
Continue to click at each vertex of the polygon until the boundary of the polygon
plane is defined. Press the SPACEBAR to change polygon boundary track placement
modes.
The polygon will pour when it is closed. If you do not actually close the polygon, when
you press ESC or RIGHT MOUSE the polygon will automatically be closed, from the last
vertex to the initial vertex.
If a netlist has been loaded, one of the nets in the netlist can be selected in the
Connect To Net drop down. If the polygon is being connected to a net, the other
two Net Options can be applied.
Pour Over Same Net
If the Pour Over Same Net option is enabled any existing tracks within the
polygon which are part of the net being connected to will be covered by the
polygon.
Remove Dead Copper
Dead copper is copper placed by the Place Polygon Plane process which can not
be connected to the selected net. Regions of dead copper are created when existing
tracks, pads and vias prevent the plane pouring as one continuous area. These can
be removed if desired. If this option is enabled and the polygon does not enclose a
pin on the selected net, the entire polygon is removed as it is all dead copper.
505
PCB Design
Plane Settings
Grid Size
This is the grid on which the tracks within the polygon are placed. To allow the
most effective placement of the polygon tracks this will ideally be a fraction of the
component pin pitch.
Track Width
This is the width of the tracks which are placed to form the polygon. If the track
width is smaller than the grid size the polygon will be hatched. If the track size is
equal to or greater than the grid size the polygon will be solid. For a solid plane set
the track width slightly larger than the grid size.
Layer
This is the layer the polygon is to be placed on. Polygons can be placed on both
copper and non-copper layers.
Hatching Style
90 Degree Hatch
Fill the polygon with tracks running both horizontally and vertically.
45 Degree Hatch
Fill the polygon with tracks running at 45 degrees (in both directions).
Vertical Hatch
Define all the outlines of the polygon but do not place any tracks inside the
polygon. Use this option if you want to place the polygon, but do not want it to
slow system performance. It can be re-poured later with the desired hatching.
Surround Pads With
Pads can be surrounded with either Arcs or Octagons. Octagons give smaller
Gerber files and faster photoplotting.
Minimum Primitive Size
Length
The length field allows you to limit the minimum size of primitives used in the
polygon. When polygons are poured they can contain many short pieces of tracks
and arcs, placed to create smooth shapes around the existing objects on the board.
By limiting the length of primitives used you will get faster pour times, screen
redraws and output generation. This will be at the expense of the smoothness of
the polygon edges.
506
To control how a polygon connects to pads when the Connect To Net option is used,
include a Polygon Connect Style design rule (select Design Rules). This rule allows
you to select between a direct connection and a thermal relief connection. It also allows
you to set the conductor width and connection angle if you select relief connection.
Refer to the chapter, Specifying the PCB Design Requirements, for more information
on the Polygon Connect Style design rule.
Activity - Re-pouring a Polygon
To re-pour a polygon select the Edit Change menu item. Click on the polygon you
wish to re-pour and the Place Polygon Plane dialog will pop up (shortcut: double-click
on the polygon). Change the attributes as desired and click OK. You will be asked if
you wish to re-pour the modified polygon. Click Yes to re-pour the polygon with the
new settings.
Activity - Changing the Shape of the Polygon Boundary
The boundary of a polygon plane can be reshaped by moving the vertices, deleting the
vertices, and breaking the boundary tracks.
To modify the shape of the polygon:
1.
2.
3.
4.
5.
Click RIGHT MOUSE or press ESC when you have finished modifying the polygon.
After modifying the polygon you will be asked if you wish to re-pour the modified
polygon. Click Yes to re-pour the polygon with the new settings.
Dimensions
Dimensions are special entities consisting of text and track segments. They are
automatically generated when you indicate the starting and ending points after
choosing the Place Dimension menu item. Imperial or metric units will be calculated,
depending upon the current Snap grid setting.
507
PCB Design
Activity - Placing a Dimension
1.
2.
3.
To modify a
placed dimension
select
Tools
Convert Explode
Dimension to Free
Primitives to convert
a dimension into a
set of tracks and
strings.
Changing Dimensions
Dimension attributes such as string height, font, etc, can be changed during placement
(press the TAB key), or after the dimension has been placed. Select the Edit Change
menu item and click on the dimension to pop up the Change Dimension dialog, where
the attributes can be edited.
Moving a Dimension
Dimensions can be moved, or adjusted, after they have been placed. To move or
adjust a dimension, click once anywhere on the dimension to bring it into focus (the
square focus handles will appear). A second click anywhere on the dimension moves
the dimension, a second click on a focus handle allows you to adjust the dimension. If
you re-size a dimension the distance will be automatically updated.
Default Dimension
The attributes of the dimension currently being placed can be set by pressing the TAB
key as soon as you select the Place Dimension menu item. The default dimension
attributes are set in the Defaults Tab of the Preferences dialog. If the Permanent
option is not set in the Defaults Tab of the Preferences dialog then changes made
during placement will become the new defaults.
To move the
coordinate
string
Coordinates
without
moving
the
Use a coordinate marker to indicate the coordinates of a
marker
select
Tools
specific point in the workspace. A coordinate marker
Convert Explode
includes a point marker (cross made of two tracks) and the
Coordinate to Free
X, Y coordinates of the position. They can be placed on any
Primitives to convert
layer.
the coordinate into
a pair of tracks and
Default Coordinate
a string.
The attributes of the coordinate currently being placed can
be set by pressing the TAB key as soon as you select the
Place Coordinate menu item, or press the button on the PlacementTools toolbar. The
default coordinate attributes are set in the Defaults Tab of the Preferences dialog. If the
Permanent option is not set in the Defaults Tab of the Preferences dialog then
changes made during placement will become the new defaults.
508
509
PCB Design
After locating the required Library Database, double-click on it to add it to the list. Double-click
on a Library Database in the Selected Files list to remove it.
Use the Look in field at the top of the dialog to browse to the folder where the Library
Databases are located. The Protel 99 SE PCB Library Databases are stored in the
\Program Files\Design Explorer 99 SE\Library\Pcb folder.
Libraries are stored in standard Protel 99 SE Design Databases, which means
you can easily create your own Library Databases. These databases can even be a
mix of schematic and PCB libraries.
To access components in libraries that are stored inside a Project Design
Database, simply add the Project Design Database to the Selected Files list in the
PCB Libraries dialog.
510
2.
3.
4.
5.
511
PCB Design
opposite layer. For example, when moving a Top layer component to the Bottom
layer, primitives on the Top Overlay layer will be automatically reassigned to the
Bottom Overlay layer. The orientation of the component will be flipped along the
x axis and the component overlay text will read from the bottom. Single layer pads
are also swapped between the Top layer and Bottom layer. You can extend this to
do global swaps of components from one layer to another.
Rotation
513
PCB Design
Three fonts are available. Click the Font button to choose the Default font, Sans
Serif font or Serif font.
Layer
Component text can be assigned to any layer. Click the Layer button to scroll the
selection bar through the layer options. The selected layer will be displayed in the
Layer box.
Rotation
Component text can be moved and rotated independently of the component. Click
and hold on the component text and drag the mouse to reposition the text. Press
the SPACEBAR to rotate the text while it is floating on the cursor.
X, Y Location
Location of the text in the workspace, relative to the current (relative) origin.
514
Hide
Component text can be displayed or hidden. Hidden text will not be printed.
Mirror
515
PCB Design
the component that you want to add the selected primitives to when you click on the
component the new primitives are added, and then deselected. When you have finished
adding primitives re-enable the Lock Prims option. Note that these changes only affect
this component, they do not affect the component footprint in the library.
Polygon primitives can also be included in a component footprint. To include polygon
primitives in a component footprint the polygon must be added in the PCB workspace.
The method of adding primitives to a component is described above. There is an extra
step in adding polygon primitives to a component after placing the polygon and
selecting it (shortcut: SHIFT+click), select Tools Convert Explode Polygon to Free
Primitives from the menus and click on the polygon to explode it. Now add these
polygon primitives as you would add any new primitive to a component.
Un-Grouping a Component
If necessary, a placed component can be converted back into the original set of
primitive parts. Select the Tools Convert UnGroup Component menu item. When you
launch this process you will be prompted, Select Component. The prompt Confirm
convert Component To Primitives will be displayed. If you click YES the component
designator and comment will be removed from the component and it will become a set
of primitives. This is a one-way process, it is not possible to re-group an un-grouped
component. Un-group has no effect on the component footprint stored in the library
only on the individual instance of the component placed in the document window.
516
The PCB Library Editor is the second PCB Document Editor provided by Protel 99
SEs PCB server. Where the PCB Layout Editor is used to design the printed circuit
board, the PCB Library Editor is used to create and modify the component footprints
used on those PCBs. It is also used to manage the PCB libraries.
The PCB Library Editor includes a complete set of processes for creating, editing and
placing library footprints. Custom libraries can be created and any number of
component libraries can be opened at the same time, limited only by available memory.
There is no limit to the number of component footprints that each library can hold.
Components generally include one or more pads (corresponding to component pins and
numbered accordingly) plus track and/or arc segments on the overlay (silkscreen) layer
to define the component body.
The Altium Library Development Center is constantly developing new
libraries check www.protel.com to download the latest PCB footprint libraries.
517
PCB Design
Libraries are opened in the PCB Library Editor in the same way all documents are
opened in the Design Explorer, by first selecting File Open to open the PCB Library
Design Database, then browsing through the database and opening the library for
editing. Each open library appears on a separate Tab in the integrated Design Window.
Creating a New Library
Before you create a new library you must open the Design Database that you want to
store the library in, then browse through the database and open the folder that you want
to create the library in.
To create the new PCB library right-click in the folder window, and select New from
the floating menu that appears. The New Document dialog will pop up, double-click on
the PcbLib icon to create a new library.
An icon for the new library will appear in the folder, with a name like Pcblib1. To
rename the new library click once to select the icon, then press F2 to highlight the
518
name, ready for typing. Type in the new name and press ENTER on the keyboard.
Double-click on the icon to open the new library.
Creating a Component Footprint with the Component Wizard
The PCB Library Editor includes a powerful component creation Wizard. This Wizard
will ask a few questions, and then build the component footprint for you, from a simple
two pin resistor through to a Pin Grid Array with hundreds of pins.
To launch the Component Wizard press the Add button on the Library Editor panel or
select the New Component menu item in the Tools menu.
Manually Creating a Component Footprint
Footprints are created in the PCB Library Editor using the same set of design objects
available in the PCB Editor. Anything can be saved as a PCB footprint, including
corner markers, phototool targets, mechanical definitions, and so on. The typical
sequence for manually creating a component footprint is:
1.
New component Open the desired library in the Library Editor. Select the Tools
New Component menu item. The Component Wizard will automatically start,
press Cancel to manually create a component. You will be presented with an
empty component footprint workspace, called PCBComponent_1. Select Tools
Rename Component to change this to the required name, of up to 255 characters.
2.
Place the pads place the pads according to the component requirements. When a
pad is floating on the cursor select Edit Jump Reference (shortcut: J, R) to
position the cursor at the workspace 0, 0 coordinate. Prior to placing the first pad,
press the TAB key to define all the pad attributes.
Always build surface mount footprints on the top layer. Use the L shortcut
key to flip them to the bottom layer during placement.
3.
Component outline Use the track tool to create the component outline on the
Top Overlay layer. Use the SPACEBAR to change between the Start and End
placement modes. Press SHIFT+SPACEBAR to change track placement modes.
4.
Save the library. You can now return to the PCB Editor and place this component.
Always build the component around the workspace 0,0 reference point. The
Reference is the point you will be holding the component by when you place it.
Use the Reference options in the Edit menu to move the Reference if it needs to be
changed.
The special strings, .DESIGNATOR and .COMMENT can be added to the
component in the Library Editor if you require control over their layer, location
and text attributes prior to placing the component. These will be in addition to the
standard designator and comment which can be hidden if required.
519
PCB Design
520
the board is
one of the
Mechanical
the
required
521
PCB Design
topic in the PCB Design Objects chapter for more information on track placement
techniques. It is good practice to design the physical board outline starting in the lower
left region of the workspace. One inch in, one inch up from the absolute origin is often
used as a position for the lower left corner of the board.
The content of any mechanical layer can be added to all output
layers during output generation use this feature to include common
information such as boundaries, dimensioning, photo tool targets and
a title block on each of the output layers.
The electrical layers are added and their order defined in the Layer Stack Manager right-click
on the image to copy it to the Windows clipboard and include in your documentation
The Menu button at the bottom of the dialog includes a number of pre-packed example
layer stacks. Note that these example layer stacks are not fixed, you can start with one
of these and easily modify it. Once the required layers have been added, use the Move
Up and Move Down buttons to configure the layer stack. New layers can be added at
any point in the design process.
There are a total of 32 signal layers available (top layer, bottom layer, and 30 midlayers) and 16 plane layers. Layer visibility is controlled in the Document Options
dialog (Design Options).
Selecting the Layer Stack-up Style
As well as the electrical layers, the stack-up includes the non-electrical insulation
layers. There are typically 2 kinds of insulation used in the fabrication of a PCB, these
are often referred to as core and prepreg layers.
The stack-up style refers to the order of the insulation layers through the layer stack.
Three default stack-up styles are supported layer-pairs, internal layer-pairs, and build
up. Changing the layer stack-up style changes the way that the core and prepreg layers
are distributed through the layer stack.
523
PCB Design
Select the preferred stack-up style at the top left of the Layer Stack Manager dialog.
Defining the stack-up style is only required if you plan to use blind and buried vias,
and for signal integrity analysis. If you are planning to use blind and buried vias you
must consult with your PCB manufacturer to ensure that that they can fabricate the
design, and that the correct stack-up style is selected.
Defining the layer properties
There are 3 kind of layers added to the layer stack in the Layer Stack Manager; signal
layers, plane layers and insulation (substrate) layers. The information in these dialogs
must be correctly specified if you intend to perform a signal integrity analysis (Tools
Signal Integrity).
Signal Layers
524
Wizard also enters text into the title block, and lets you specify the number of routing
layers and the track/pad technology. Start the PCB Wizard from the Wizards Tab of the
New Document dialog.
The Wizard includes an option to create a custom board. If you select this you define
the size and shape of the outline, and can also include cutouts. On the last setup page of
the Wizard there is a check box to save this board as a template if you do, this
template will appear at the bottom of the list of pre-defined templates the next time you
run the Wizard.
Use the PCB Wizard and select an industry-standard template, or create and save a custom template
If you enable the Save the Board as a Template option the board is saved in the
\Program Files\Design Explorer 99 SE\System\Templates.Ddb
design database. You can edit this PCB at any time to modify the template. You can
also include a custom bitmap for the template create the image as a 64x32 pixel (16
color) bitmap file, save it with the same name as the PCB template, then import it into
the \Boards folder in the Templates.Ddb design database.
525
PCB Design
526
Current rules in the lower half of the Design Rules dialog are
listed from the highest priority rule, down to the lowest priority rule.
527
PCB Design
Adding a Rule
Locate and select the rule you require in the Design Rules dialog and press the Add
button (shortcut: double-click LEFT MOUSE on the rule). After pressing the Add button a
dialog for that particular rule will pop up. This is where you configure the rule and set
the scope.
Note that each rule has a Rule Name, when a new rule is created it is assigned a default
name. The rule name is displayed in the panel when the Browse mode is set to Rules,
use the name to simplify the process of managing the rules.
528
This is the lowest priority scope available it targets all objects on the board that this
rule can be applied to.
Layer
Targets all objects on the specified layer. Note that objects are not targeted by this
scope. An Example of when this scope could be used includes defining different paste
mask openings for the top layer surface mount components from the bottom layer
surface mount components.
Object Kind
Targets the enabled object types. Examples of when this scope could be used include
when you need a different track to pad/via clearance, or when you need different
clearance for polygons from all other routing.
Footprint
Targets all components that use the specified footprint. An advantage of this scope is
that as new components that use the specified footprint are added to the design, they
are automatically covered by the rule. Examples of when this scope could be used
include footprint-specific rules such as mask and paste expansions, or the component
clearance rule.
Component Class
Targets all components that belong to the class. Examples of when this scope could be
used include grouping components for placement (using the Room Definition rule), or
for specifying allowable component orientations (Component Orientations rule).
Component
Targets the specified component. Examples of when this scope could be used include
solder and paste mask rules, and placement rules.
Net Class
Targets all the objects that belong to each of the nets in the class (including tracks,
arcs, fills, pads and vias). Examples of when this scope could be used include clearance
constraints and width constraints (applies to the tracks and arcs), as well as high speed
and signal integrity rules.
Net
Targets all the objects that belong to the net routing (including tracks, arcs, fills, free
pads and vias). Examples of when this scope could be used include clearance
constraints and width constraints (applies to the tracks and arcs), as well as high speed
and signal integrity rules.
529
PCB Design
From-To Class
Targets all pads that belong to the pad class. Examples of when this scope could be
used include mask expansions, polygon connection styles, plane connection styles, and
hole size constraints.
Pad Specification
Targets all the pads that satisfy the enabled pad criteria. Click the Specification button
in the Rule dialog to display the Pad Specification dialog. Each of the enabled
attributes is used in the scope, disable the attributes that are not required and configure
those attributes that will be used to test against. Examples of when this scope could be
used include mask expansions, polygon connection styles, plane connection styles, and
hole size constraints.
Via Specification
Targets all the vias that satisfy the enabled via criteria. Click the Specification button
in the Rule dialog to display the Via Specification dialog. Each of the enabled
attributes is used in the scope, disable the attributes that are not required and configure
those attributes that will be used to test against. Examples of when this scope could be
used include mask expansions, polygon connection styles, and hole size constraints.
Another example could be a power plane connection style rule, a via specification can
be used to prevent vias connecting to a power plane. Refer to the examples later in this
chapter for an example of how to do this.
Footprint Pad
This scope allows a design rule to target a specific pad (or pads if wildcards are used)
in the specified footprint.
Pad
Targets the specified pad. Examples of when this scope could be used include mask
expansions, polygon connection styles, plane connection styles, and hole size
constraints.
530
Targets a specific region of the board. The region is defined by clicking the small
Define button that appears on the rule dialog when you set the scope to region. An
object is considered to be within the region if any part of the objects bounding
rectangle (the smallest rectangle that could be drawn to completely encompass the
object) lies within the region. Examples of when this scope could be used include
polygon and power plane connection styles, and width constraints.
Unary and Binary Rules, and Setting Their Scope
There are two types of design rules, unary rules and binary rules. Unary rules apply to
one object, or each object in a set of objects. Binary rules apply between two objects,
or between any object in one set to any object in the second set.
An example of a unary rule is the solder mask expansion rule. This rule applies
individually to each pad identified by the rule scope. An example of a binary rule is the
clearance constraint, which applies between any copper object in the first set and any
copper object in the second set, as identified by the two rule scopes. When you
configure a unary rule you set up one rule scope, when you configure a binary rule you
set up two rule scopes.
Using Classes and Wildcards in the Rule Scope
There are many ways of using the design rules to satisfy your design requirements. To
help keep the set of rules manageable there are 2 powerful ways of defining rule scopes
that target sets of objects.
You can create user-defined sets of objects, referred to as Classes, and then configure
the design rule to target that class of objects. Supported classes include net class,
component class, pad class and from-to class. Refer to the Creating Object Classes
topic later in this chapter for details on how to create a class of objects.
PCB Design
Wildcards can also be used to define a set of objects. Both the any single character (?)
wildcard and the any characters (*) wildcard are supported. In the adjacent figure the
Width requirement for all the Data nets (starting with the letter D) is set to 10 mils. The
rule specifies that all nets, whose net name starts with the letter D, must have a width
of 10 mils.
Compound Rule Scopes
Sometimes you will need to target a set of objects that are a subset of what you can
target with a single rule scope. An example would be a net that must be routed at a
certain width, except on one layer, where it must be routed at a different width.
To allow more specific rules to be created, each design rule allows you to create a
compound rule scope for that rule. A compound scope is where you logically AND
together more than one scope, thereby narrowing down the set of objects that the rule
will target.
Using a compound scope to set the width of the GND net to 20 mils on the top layer
532
533
PCB Design
A violation of the rule is flagged as soon as the violation occurs during placement. It is
flagged by outlining the objects in violation in the current DRC color. The On-line
DRC feature can be disabled in the Options Tab of the Preferences dialog.
Batch DRC
Selecting the Tools Design Rule Check menu item will pop up the Design Rule Check
dialog. Enable those Rule Types you wish to test and press the OK button. All
instances of the enabled rule types will be tested.
Note that you can set the number of violations to report. Use this to keep the report
manageable.
During a Software Operation
Certain rules are monitored during a software operation including; polygon pour,
autorouting, autoplacement and output generation. Examples of these include; the mask
expansion rule which is monitored during output generation and the routing via style
rule which is monitored during autorouting.
Exported with the Design
Certain rules are included to support features in the SPECCTRA autorouter. The
requirements specified by these rules are exported with the design.
Refer to the Rule Definitions
later in this chapter for details on
when each rule is applied.
534
PCB Design
The Applicable Rules dialog details all rules that apply to the primitive(s)
The Applicable Rules dialog then appears, displaying all design rules that apply to this
primitive(s). Note that all current design rules that could be applied to the selected
primitive(s) are analyzed and listed in the Applicable Rules dialog. Each rule that is
listed in the dialog will have either a tick or a cross next to it. A tick indicates that this
is the highest priority rule out of all applicable rules, and is the rule being applied.
Lower priority rules of the same kind are listed with a cross next to them, indicating
that they are applicable but as they are not the highest priority rule they are not
currently applied.
On a more global level you can examine what objects each rule applies to by setting
the browse mode in the Panel to Rules, and then using the Highlight and Select buttons
to show which objects any rule applies to.
When you want to know why an object is flagged as being in violation right click on it
and select Violations from the floating menu. The Violation Inspector dialog will
appear, detailing which design rule(s) this object is not complying with.
536
Object Classes
A class is a set of objects that you wish to treat as a group. For example, you may wish
to group all the power supply components into a class, and the memory chips into
another class. You can then work with the entire group of components targeting the
class with various design rules, or selecting the class, then moving them to position
them on the board.
Uses
classes
to
Four types of classes can be defined; net classes,
easily identify a group of
component classes, from-to classes and pad classes.
objects. Classes make
Component classes and net classes can be selected
design rules easier to set
directly from the PCB Editor panel.
up and manage.
Classes are not mutually exclusive, an object can
belong to more than one class. This allows you to put objects in more than one class,
with each class being used for a different purpose. For example, you could have a
component in one class to identify it as belonging to a group of components that must
be placed in a certain region of the board (using a room definition), the same
component in a second class where it is grouped by footprint, where that class of
footprints have a rotation rule applied, and in a third class for a group of components
that have a specific solder mask expansion.
Creating a Class
All 4 types of classes are created in the same way in the Object Classes dialog (select
Design Classes from the menus). Click on the appropriate Tab at the top of the dialog
to select the type of class, then click the Add button at the bottom of the dialog. When
the Edit Class dialog appears select the required objects in the Non-Members list
(multiple selections are supported), then use the Arrow buttons to transfer the objects
to the Members list. Note that the dialog includes buttons to transfer objects that are
currently selected on the board.
Creating a pad class from pads that are currently selected on the board
537
PCB Design
Component Class
Component classes can be easily created with the assistance of the Component Class
Generator, which allows you to identify a set of components based on common
component attributes.
Press the Class Generator button in the Edit Component Class dialog to display the
Component Class Generator dialog. Use the filters on the left to identify components
by attribute, then click the > button to add all the components that have that attribute
value. Set the Class Name at the top of the dialog, then click OK to add this new Class.
538
Defines the minimum clearance allowed between any two primitive objects on a
copper layer. Use the Clearance Constraint to ensure that routing clearances are
maintained.
Connective Checking
Typically this would be set to Different Nets. An example of when Any Net could be
used is to test for vias being placed too close to pads or other vias on the same net, or
any other net.
How Duplicate Rule Contentions are Resolved
Specifies the corner style to be used during autorouting. The corner style can be a 45
degree chamfer or rounded (using an arc). The setback specifies the minimum and
maximum distance from the corner location to the start of the corner chamfer or arc.
How Duplicate Rule Contentions are Resolved
The order that duplicate rules are obeyed is; Rounded, 90/45 degrees, 90 degrees.
Rule Application
Export to SPECCTRA.
Routing Layers Rule
Definition
During autorouting.
539
PCB Design
Assign a routing priority from 0 to 100. 100 is the highest priority and 0 is the lowest.
The Routing Priorities are relative values which are used to set the order that the nets
will be autorouted.
How Duplicate Rule Contentions are Resolved
During autorouting.
Routing Topology Rule
Definition
This topology connects all the nodes to give the shortest overall connection length.
Horizontal
This topology connects all the nodes together, preferring horizontal shortness to
vertical shortness by a factor of 5:1. Use this method to force routing in the
horizontal direction.
Vertical
This topology connects all the nodes together, preferring vertical shortness to
horizontal shortness by a factor of 5:1. Use this method to force routing in the
vertical direction.
Daisy-Simple
This topology chains all the nodes together, one after the other. The order they are
chained is calculated to give the shortest overall length. If a source and terminator
pad are specified then all other pads are chained between them to give the shortest
possible length. Edit the pad to set it to be a source or terminator. If multiple
sources (or terminators) are specified they are chained together at each end.
540
Daisy-Mid Driven
This topology places the source node(s) in the center of the daisy chain, divides
the loads equally and chains them off either side of the source(s). Two terminators
are required, one for each end. Multiple source nodes are chained together in the
center. If there are not exactly two terminators a simple daisy topology is used.
Daisy-Balanced
This topology divides all the loads into equal chains, the total number of chains
equal to the number of terminators. These chains then connect to the source in a
star pattern. Multiple source nodes are chained together.
Star
This topology connects each node directly to the source node. If terminators are
present they are connected after each load node. Multiple source nodes are chained
together, as in the daisy-balanced topology.
How Duplicate Rule Contentions are Resolved
The rules are obeyed in the following order; Star, Daisy-Balanced, Daisy-Mid Driven,
Daisy-Simple, Horizontal, Vertical, Shortest.
Rule Application
During autorouting.
541
PCB Design
The preferred via attributes are used during manual routing when you press the *
shortcut key and toggle routing signal layers, or when you press the / shortcut key to
connect to a plane layer. The preferred settings can be changed on-the-fly during
manual routing by pressing the TAB key.
The autorouter also uses the preferred via attributes (board scope rule only). The
maximum and minimum via attributes are checked by the on-line and batch DRC.
SMD Neck-Down Constraint
Definition
Specifies the maximum ratio of the track width to the SMD pad width, expressed as a
percentage.
How Duplicate Rule Contentions are Resolved
Specifies the minimum distance from the center of the surface mount pad to the first
routing corner.
How Duplicate Rule Contentions are Resolved
Specifies the maximum routing length from the SMD pad center to the plane
connection pad/via.
542
Defines the width of tracks and arcs placed on the copper layers.
How Duplicate Rule Contentions are Resolved
The preferred setting is obeyed during manual and auto routing. It can be changed onthe-fly during manual routing by pressing the TAB key.
The minimum and maximum settings are obeyed by the on-line and batch DRC.
543
PCB Design
Specifies the minimum angle permitted at a track corner. Acute angles can be a
problem when manufacturing, resulting in over-etching of the copper at the corner.
How Duplicate Rule Contentions are Resolved
Specifies the maximum and minimum hole size, expressed either as exact numeric
values, or as a percentage of the pad/via size.
How Duplicate Rule Contentions are Resolved
The rule with the largest minimum and smallest range is obeyed.
Rule Application
This rule checks to ensure that the used layer-pairs match the current drill-pairs. The
used layer-pairs are determined from the vias and pads found in the board, one layerpair for each Start Layer-End Layer combination that is found.
How Duplicate Rule Contentions are Resolved
The first rule with the enforced layer pairs attribute enabled is obeyed.
Rule Application
Specifies the minimum annular ring allowed on a pad. The annular ring is measured
radially, from the edge of the pad hole to the edge of the pad.
544
The shape that is created on the paste mask layer at each pad site is the pad shape,
expanded or contracted radially by the Expansion specified in this rule.
How Duplicate Rule Contentions are Resolved
Specifies the style of the connection from a component pin to a polygon plane. Three
connection options are available; direct connections (solid copper to the pin), thermal
relief connections, or no connection.
If Relief Connect is selected you then define; how wide the thermal relief copper
connections are, the number of connections and the angle of the connections.
How Duplicate Rule Contentions are Resolved
Specifies the radial clearance created around vias and pads that pass through but are
not connected to a power plane.
How Duplicate Rule Contentions are Resolved
545
PCB Design
Specifies the style of the connection from a component pin to a power plane. Three
connection options are available; direct connections (solid copper to the pin), thermal
relief connections, or no connection.
If Relief Connect is selected you then define; how wide the thermal relief copper
connections are, the radial width of the expansion measured from the edge of the hole
to the edge of the air-gap, and the width of the air-gap. Note that power planes are
constructed in the negative, so a primitive placed on a power plane layer creates a void
in the copper.
How Duplicate Rule Contentions are Resolved
The shape that is created on the solder mask layer at each pad and via site is the pad or
via shape, expanded or contracted radially by the amount specified by this rule. To tent
a via set the Expansion to a negative value equal to or greater than the via radius. To
tent all vias when the design includes different size vias, set the Expansion to a
negative value equal to or greater than the largest via radius.
How Duplicate Rule Contentions are Resolved
Specifies the allowable physical parameters of pads and vias that are flagged as
testpoints.
The Find Testpoint feature and the Autorouter use the Allowed Side settings in the
following order of preference (highest to lowest):
546
Bottom thru-hole
Top thru-hole
This rule is obeyed by the Find Testpoint feature, the autorouter, and the on-line and
batch DRC. The on-line and batch DRC test all attributes of the rule except the
Preferred Size and Preferred Hole Size - these settings are used by the autorouter to
define the size of testpoint pads that the autorouter places.
Testpoint Usage
Definition
Specifies which nets require a testpoint. The DRC report is used to identify each net
that fails this rule, and the Testpoint report feature in the CAM Manager is used to
identify the location of valid testpoints.
How Duplicate Rule Contentions are Resolved
This rule is obeyed by the Find Testpoint feature, the autorouter, and the on-line and
batch DRC.
547
PCB Design
Specifies the maximum permissible stub length for a net with a daisy chain topology.
How Duplicate Rule Contentions are Resolved
Specifies the degree to which nets can have different lengths. The PCB Editor locates
the longest net (based on the scope) and compares it to each of the other nets specified
by the scope.
The Matched Length Rules dialog also allows you to specify how you would like to
match the length of nets which fail the matched length requirements. The PCB Editor
will add accordion sections to the nets to equalize their lengths.
If you would like the PCB Editor to attempt to match net lengths by adding accordion
sections, set up the Matched Length Rules dialog and then select the Tools Equalize
Nets menu item. The matched lengths rule will be applied to the nets specified by the
rule and accordion sections will be added to those that fail. The degree of success
depends on the amount of space available for the accordion sections and the accordion
style being used. The 90 degree style is the most compact and the Rounded style is the
least compact.
How Duplicate Rule Contentions are Resolved
548
Specifies the distance two track segments can run in parallel, for a given separation.
Note that this rule tests track segments, not collections of track segments. Apply
multiple parallel segment constraints to a net to approximate crosstalk characteristics
that vary as a function of length and gap.
How Duplicate Rule Contentions are Resolved
Specifies whether vias can be placed under SMD pads during autorouting.
How Duplicate Rule Contentions are Resolved
The rule which specifies that vias are not allowed is obeyed.
Rule Application
549
PCB Design
Specifies the minimum distance that components must be from each other.
The Check Modes are:
Quick Check use the components bounding rectangle to define their shape. The
bounding rectangle is the smallest rectangle that encloses all the primitives that make
up the component.
Multi Layer Check also uses the component bounding rectangle, but considers
through-hole component pads on a board with components on both sides, allowing
surface mount components to be placed under a through-hole component.
Full Check use the exact shape that encloses all the primitives that make up each
component. Use this option if the design includes a large number of circular or
irregular shaped components.
How Duplicate Rule Contentions are Resolved
On-line and Batch DRC (Quick Check and Multi-Layer Check modes). Also during
autoplacing with the Cluster Placer.
Component Orientation Rule
Definition
Defines which nets should be ignored during autoplacing with the Cluster Placer.
Ignoring power nets can assist in placement speed and quality. If the design has a large
number of two pin components that connect to a power net, ignoring the power net will
550
result in these components being clustered based on their other net, rather than the
power net.
How Duplicate Rule Contentions are Resolved
Specifies which layers components can be placed on during placement with the Cluster
Placer. The Cluster Placer does not change the layer a component is on, you must set
the component layer prior to running the placer.
How Duplicate Rule Contentions are Resolved
Specifies a rectangular region where components are either allowed in, or not allowed
in. Rooms can be placed by selecting Place Room from the menus. They can be
modified by clicking once to focus, then clicking on a handle to resize.
Components can be moved into their room by clicking on the Arrange Components
within Room button on the Component Placement toolbar. Once a component class is
assigned to a room all components in that class will move when the room is moved,
disable the Room Definition rule to stop this.
How Duplicate Rule Contentions are Resolved
On-line DRC, Batch DRC and during autoplacing with the Cluster Placer.
551
PCB Design
Specifies the minimum and maximum net impedance allowed. Net impedance is a
function of the conductor geometry and conductivity, the surrounding dielectric
material (the board base material, multi-layer insulation, solder mask, etc) and the
physical geometry of the board (distance to other conductors in the z-plane).
How Duplicate Rule Contentions are Resolved
Specifies the maximum allowable overshoot (ringing below the base value) on the
falling edge of the signal.
How Duplicate Rule Contentions are Resolved
Specifies the maximum allowable overshoot (ringing above the top value) on the rising
edge of the signal.
How Duplicate Rule Contentions are Resolved
552
The base value is the voltage that a signal settles to in the low state. Use this rule to
specify the maximum allowable base value.
How Duplicate Rule Contentions are Resolved
Flight time is the signal delay time introduced by the interconnect structure. It is
calculated as the time it takes to drive the actual input to the threshold voltage, less the
time it would take to drive a reference load (connected directly to the output) to the
threshold voltage.
This rule specifies the maximum allowable flight time on signal falling edge.
How Duplicate Rule Contentions are Resolved
Flight time is the signal delay time introduced by the interconnect structure. It is
calculated as the time it takes to drive the actual input to the threshold voltage, less the
time it would take to drive a reference load (connected directly to the output) to the
threshold voltage.
This rule specifies the maximum allowable flight time on signal rising edge.
How Duplicate Rule Contentions are Resolved
553
PCB Design
Signal Stimulus
Definition
Specifies the characteristics of the stimulus signal that is used in the signal integrity
analysis. This is the signal that is injected at each output pin on the net under-test. The
worst-case result is returned during design rule checking.
How Duplicate Rule Contentions are Resolved
The top value is the voltage that a signal settles to in the high state. Use this rule to
specify the minimum allowable top value.
How Duplicate Rule Contentions are Resolved
Falling edge slope is the time it takes for a signal to fall from the threshold voltage
(VT), to a valid low (VIL).
This rule specifies the maximum allowable slope time.
How Duplicate Rule Contentions are Resolved
Rising edge slope is the time it takes for a signal to rise from the threshold voltage
(VT), to a valid high (VIH).
This rule specifies the maximum allowable slope time.
How Duplicate Rule Contentions are Resolved
554
Specifies the maximum allowable undershoot (ringing above the base value) on the
falling edge of the signal.
How Duplicate Rule Contentions are Resolved
Specifies the maximum allowable undershoot (ringing below the top value) on the
rising edge of the signal.
How Duplicate Rule Contentions are Resolved
555
PCB Design
Include this rule to test for short circuits between primitive objects on the copper
(signal and plane) layers. A short circuit exists when two objects that have different net
names touch.
How Duplicate Rule Contentions are Resolved
The Un-Routed Nets Constraint tests the completion status of each net identified by the
scope. If a net is incomplete then each completed section (sub-net) is listed along with
the routing completion. The routing completion is defined as the (connections
complete)/(total number of connections) x 100.
How Duplicate Rule Contentions are Resolved
556
557
PCB Design
Create the fiducial mark as a component in the library. Use a single layer pad and
give the pad the designator name FID. Save the component with a name of your
choice.
2.
3.
Create a Fiducials component class, that includes all the fiducial components.
4.
Add a Solder Mask Expansion rule in the Design Rules dialog. Set the rule scope
Filter kind to Component Class, and select Fiducials in the Component Class field.
Set the appropriate expansion value in the attributes section.
This will ensure that all components in the Fiducials component class will have this
expansion applied to the solder mask. If you need a different expansion value for an
individual fiducial component, remove this fiducial component from the Fiducials
component class and apply another rule to just that fiducial component.
You will also need a Paste Mask Expansion rule for fiducials, to ensure that solder
paste is not applied to them. To close the opening in the paste mask:
558
5.
Add a Paste Mask Expansion rule in the Design Rules dialog. Using the same
approach as before set the rule scope to component class and select the Fiducials
class.
6.
Set the expansion value to a large negative number, greater than the radius of the
largest fiducial used in the design.
Using a negative number in the Expansion field instructs the PCB Editor to radially
contract the opening in the mask by this amount. As long as you supply a contraction
value greater than the radius of the largest fiducial, there will be no openings in the
paste mask at the fiducials.
559
PCB Design
Identify the critical parts of the net by defining From-Tos for those parts of the
net.
To create a From-To select the Design-From-To Editor menu item. Define the FromTos necessary to identify the critical parts of the net. For more information on defining
From-Tos, refer to the chapter, Working With a Netlist.
If there is more than one From-To required to identify all critical parts of the net, create
a From-To Class. Classes are created in the Object Classes dialog, select DesignClasses to pop up this dialog. Once you have identified the critical parts of the net you
are ready to add the design rule.
560
2.
3.
Set the scope Filter kind to From-To, or From-To Class if you created a class.
4.
Set the Clearance as required. This specifies the minimum distance allowed
between any object in this part of the net, to any other object on the board.
Disable all attributes in the via specification dialog for the rule to target no vias
561
PCB Design
562
When this is enabled components will be held by their reference point during a
move, with it disabled they will be held wherever the cursor is clicked. If the
component reference point is off-screen when it is selected, the cursor jumps to the
reference point if Snap to Center is on, otherwise it pulls the component to the
cursor if Snap to Center is off.
Protect Locked Objects (Preferences dialog)
If this option is enabled you can not move components that have their Locked
attribute enabled, any they are ignored during multiple-component moves. If the
option is not enabled you will be prompted to confirm moving a locked object.
Rotation Step (Preferences dialog)
Amount a component (or selection of components) will rotate when the SPACEBAR
is pressed during a component move.
Draft Thresholds (Preferences dialog)
The Strings threshold determines at what zoom level the component designators
will change from text to an outline rectangle. To display designators as text when
zoomed further out, set this to a smaller number.
563
PCB Design
These grids define the points in the workspace that the component reference point
will snap to as the component is moved.
Locking Components
Moving Components
To arrange the components manually, select Edit Move Component from the menus.
The Status Bar will prompt Select Component. Click on the component you wish to
move. The component will float on the cursor and can now be positioned on the board.
You can also click and hold to move a component.
Rotating and Flipping Components to the Other Layer
Components can be rotated in a number of ways. They can be rotated when they are
floating on the cursor. Press the SPACEBAR to rotate anti-clockwise, hold SHIFT while
pressing the SPACEBAR to rotate clockwise. The angle the component rotates is
specified in the Options Tab of the Preferences dialog.
To rotate a group of components, first select the components. The selection can be
rotated by choosing Edit Move Rotate Selection from the menus. This will first
prompt for a rotation angle, and then for a Reference Point about which to rotate the
selection. The selection can also be rotated by selecting the Move Selection process
launcher and then rotated with the SPACEBAR.
To flip a component so that it can be placed on the bottom of the board, press the L
shortcut key while the component is floating on the cursor. To flip a placed component,
double-click to edit the component and change the Layer attribute.
Dynamic Reconnect with Smart Connection Line Display
Your basic guide to selecting suitable positions for each component are the connection
lines from the moving component to the other components on the board. Ideally each
component is placed to minimize the overall length of the connection lines, helping
minimize the finished routing paths.
However, on a dense board it can be difficult to make sense of the maze of connection
lines, which are often referred to as the ratsnest. The other important fact to be aware
of is that as you move a component around the board, the connection lines may no
564
longer
accurately
reflect
the
connectivity, it could be that the
connection lines could connect to other
pins on the same net that are closer to
the new component location.
Protel 99 SE includes a dynamic
reconnect
feature
with
smart
connection-line display. When you
move a component, a group of selected
components or a union of components,
all connection lines are temporarily
hidden except for those that connect
from a moving component to a
component on the board. These nets
are analyzed and reconnected as you
move the components across the
board, making it easy to select the
appropriate placement location.
With this feature it is easier to hide all the connection lines, then as you move the
components the appropriate connection lines are automatically displayed and updated.
Connection lines can be hidden by selecting View Connections Hide All from the
menus.
Note that you can also temporarily hide all the connection lines during component
moves (including those normally displayed by the smart connection-line display
feature) by pressing the N shortcut key. Doing this temporarily disables the
connectivity analyzer.
As you move components the new dynamic connection length analyzer continually
assesses placement quality based on connection lengths, and displays a green (strong)
or red (weak) vector indicating current placement quality. The far end of the vector
indicates a location for the component(s) that would minimize overall connection
lengths.
Select View Connections Hide All from the menus to hide all connection lines.
565
PCB Design
566
567
PCB Design
Placement rooms are rectangular regions that assist in the placement of components.
Components are assigned to rooms and can be automatically moved into their room,
they also move with the room whenever the room is moved.
Room Definitions are part of the design rule system, and compliance with room
definition rules can be checked by the on-line and batch DRC. Rooms can also be used
by the cluster-based autoplacer, by selectively locking components you can also
autoplace on a room-by-room basis.
Creating Placement Rooms
Rooms can be placed from the Place menu, through the Placement Tab of the
Design Rules dialog, or the Place Room button on the PlacementTools
toolbar. Rooms can exist on the top or bottom layers, they are placed on the
top layer by default. Once a room has been placed its properties can be defined
by double-clicking on the room.
Assigning Components to a Room
The scope of the Room Definition design rule defines the set of components that are
assigned to that room. Edit the rule to set the scope and assign the components to the
room.
568
Using the left edge of the left-most component as a reference, slides the selected
components to the left, packed as tightly as the component clearance rule allows.
Align right edge of selected components
Using the right edge of the right-most component as a reference, slides the selected
components to the right, packed as tightly as the component clearance rule allows.
Align vertical centers of selected components
Places selected components in a single column, aligned by their vertical centers. After
clicking the button you are prompted to select a reference component, the other
selected components are placed above this component.
Align top edge of selected components
Using the top edge of the top-most component as a reference, slides the selected
components up, packed as tightly as the component clearance rule allows.
Align bottom edge of selected components
Using the bottom edge of the bottom-most component as a reference, slides the
selected components down, packed as tightly as the component clearance rule allows.
Align horizontal centers of selected components
Places selected components in a single row, aligned by their horizontal centers. After
clicking the button you are prompted to select a reference component, the other
selected components are placed to the right of this component.
569
PCB Design
Spacing Tools
Make horizontal spacing equal for selected components
The horizontal distance between the component reference points is increased by the
amount specified in the X component placement grid.
Decrease horizontal spacing of selected components
The horizontal distance between the component reference points is decreased by the
amount specified in the X component placement grid.
Make vertical spacing equal for selected components
The vertical distance between the component reference points is increased by the
amount specified in the Y component placement grid.
Decrease vertical spacing of selected components
The vertical distance between the component reference points is decreased by the
amount specified in the Y component placement grid.
Moving Tools
Move to Rectangle
This tool arranges the selected components within the defined rectangle. Click on the
button, then click once to define the first corner of the rectangle, move the mouse and
click a second time to define the opposite corner of the rectangle. The selected
components are arranged within the rectangle, working across and down.
Move to Room
This tool arranges the components that are assigned to a room within that room. Click
on the button, then click on the room the components associated with that room by
the rule scope are arranged within the room, working across and down.
Move to Grid
Move the components to the nearest point on the component placement grid. The
component X and Y placement grids are defined in the Options Tab of the Document
Options dialog. Locked components are not moved.
570
Selecting an Autoplacer
Protel 99 SEs PCB Editor has access to two autoplacement tools:
The Cluster Placer groups components into clusters based on their connectivity,
and then places these clusters geometrically. The algorithms in this autoplacer are
more suited to designs with a lower component count (less than 100).
571
PCB Design
If this option is enabled the Global Placer will go through all the components on the
board and group together those which are tightly connected. The main criteria for
grouping is the number of connections between components. The weight given to this
criteria is influenced by the number of pins these components have.
The system then performs a relative placement on each group. These groups are treated
as super components and their relative placement is kept untouched during the main
placement cycle.
Although this option is generally useful, it can be counter-productive if there is not
going to be enough space on the board. This is because the relative placement within
each group is not changed during the main placement cycle and space might be wasted
in order to accommodate the group.
Rotate Components
572
The PCB Editor also allows you to freely rotate components after placement to 0.001
degree accuracy, using the Edit Move, Edit Paste Array or the Rotation field in the
Change Component dialog.
Automatic PCB Update
The Global Placer will automatically pass the current component positions to the board
in the PCB editing window each time the optimization status is updated (approximately
every 10 seconds). You can also manually update at any time while the Placer is
running by selecting File Update PCB.
Placement Grid
This is the grid each component reference point will be placed on. It is typically set to a
fraction of the common component pin pitch, and/or a multiple of the intended routing
grid. The PCB Editor includes a tool to move all components to a new grid if the
component placement grid needs to be altered at a later stage (Tools Interactive
Placement Move To Grid).
Power Nets
Nets that are specified in the Power Nets fields are no longer considered by the
placement algorithm, which can greatly speed the placement process.
2.
To associate a bypass capacitor with each large component, specify the names of
the nets which the capacitors are across. For example, if your design uses the nets
VCC and GND as the power nets, enter VCC in the first field and GND in the
second. The Global Placer will attempt to associate a two pin component that is
connected across the specified power nets (VCC and GND) with each large
component (14 pins or more).
More than one power net can be specified in each text box. Separate net
names by a single blank space (total of 28 characters per line maximum).
The Global Placer Server displays the placement progress in its own window. This
includes the components and the keep-out areas.
The main menu for the Global Placer is very short. Options include: File, View,
Window and Help. As the Global Placer has its own data structure the PCB database is
not changed during the placement process. The File Update PCB menu item can be
used to pass the current placement back to the PCB Editor. This allows you to
periodically switch back to the PCB editing window to check the placement quality
and use the Density Map tool to examine the routability of the design.
573
PCB Design
The placement window has its own Status Bar, within which the following information
is available:
Elapsed time
There are a total of 70 cycles in any placement task. The first 40-50 cycles are
very fast as most moves are accepted. However, as the temperature decreases,
more and more moves are made in order to satisfy the requirements of a cycle.
This means the cycles get slower towards the completion. Optimization refers to
the percentage of completion toward an "ideal" set of costs. Refer to the Theory
topic at the end of this chapter for a discussion of optimization.
Number of Moves
The Number of Moves, displayed in the status bar, is the total number of times that
the system has moved a component to a new position in order to improve the
routability of the board.
During the placement process small purple squares will appear on the
board. The size of these squares reflect the connection density in that region.
Placement Results
The placement process will make smaller and smaller moves as it progresses towards
its optimal solution. It is not necessary to run it to completion. Select File Close to
terminate the placement process. You will be asked if you wish to update the PCB
before closing the placement window.
Tips for Better Autoplacement Results
Pre-Placing Components
You can pre-place any component before running one of the Autoplacers. Enable the
Locked attribute in the Component dialog to prevent these components from being
moved.
Apart from those components which have to be placed in certain locations on the
board, such as edge connectors, heat sinks, or a group of analog components, it can be
useful to pre-place components which need no restriction on their placement. For
example, it might be desirable to pre-place the memory chips. This could facilitate the
placement of the other components.
Use of Keep-Out Zones
To keep certain regions of the board free of components, create keep-out zones. These
could be placed next to connectors, or in regions which must be kept clear for
mechanical reasons. Place tracks, fills, arcs and polygons on the Keep Out layer to
create these keep-out zones.
574
Large nets can affect the speed and quality of the Autoplacers. The reason for this is
that the computation involved with rearranging a net is exponentially proportional to
the net size. An interesting observation is that large nets, such as power and ground,
can play an insignificant role in the overall placement process. Therefore, it can help
the placement process by instructing the Autoplacer to ignore these large nets.
To do this for the Cluster Placer you need to define a Nets to Ignore Design Rule in the
Placement Tab of the Design Rules dialog.
To do this for the Global Placer you must specify the nets in the Power Nets region of
the Auto Place dialog.
Remember, automatic component placement is a productivity tool not a
replacement for the judgment and experience of the designer. A little guidance
from the designer for example, pre-placing important components and locking
them, and realistic placement grids and clearances, can all go a long way toward
ensuring that the Autoplacer will both speed up and ease the design process.
Post Autoplacement Tools
The outcome of the Global Placer is a board in which the relative positions of the
components are optimal. Due to its global nature, the Global Placer often produces
boards which are not entirely polished. For instance, there could still be some
overlaps after the placement is completed, or some components might not be aligned
properly. The interactive placement tools are specifically designed to facilitate the
process of tidying up the placement. Refer to the Interactive Placement topics earlier in
this chapter for information on using the interactive placement tools.
575
PCB Design
576
U5
From-To
From-To
U6
U7
A net with one connection unrouted and the other partially routed.
When the Synchronizer loads components and connective information into the PCB
workspace, the PCB Editor displays the pin-to-pin connections in each net as a series
of thin lines. The line that connects each pin in the net to another pin in the net is called
a From-To going From one pin in the net To another pin. The complete set of FromTos are commonly referred to as the Ratsnest.
The pattern or arrangement of the From-Tos in a net is called the net topology. If a net
has not been assigned a user-defined topology, then the PCB Editor arranges the FromTos to give the shortest possible connection distances for the entire net, based on the
current arrangement of the components.
If the net has a topology applied, the From-Tos are added to maintain the topology.
When you route a net that has a topology applied, the From-To is shown as a dotted
line, indicating that the net should be routed between these two points to maintain the
topology.
A topology is applied to a net either through a Topology Rule, or by defining fixed
From-Tos. There is more information on net topology and fixed From-Tos later in this
topic. For more information on the Routing Topology design rule refer to the chapter,
Specifying the PCB Design Requirements.
577
PCB Design
Net Topology
When the components and connective information has loaded, the pin-to-pin
connections are displayed for each net. The arrangement, or pattern of the pin-to-pin
connections is called the net topology. By default, the PCB Editor arranges the pin-topin connections of each net to give the shortest overall connection length (this topology
is called Shortest). A different topology can then be applied to a net.
The topology of a net can be re-defined for a variety of reasons. High speed designs
require that signal reflections must be minimized. To achieve this the high speed nets
are arranged with a daisy chain topology, where all the pins are connected one after the
other, with the source pin at one end and a terminator pin at the other end of the chain.
Another requirement of your design may be that all ground pins in the ground net
connect back to a common point. A star topology could be applied to the ground net to
ensure this.
User-defined From-Tos
To give you total control of the arrangement, or pattern, of the pin-to-pin connections
in a net, the PCB Editor allows you to define your own set of From-Tos. A From-To
instructs the PCB Editor, I want to connect From this pin To that pin.
You can define one From-To for a net, a few From-Tos for a critical part of the net, or
specify the entire topology of the net by defining From-Tos for all the pin-to-pin
connections. If you create From-Tos for only part of a net the PCB Editor will set the
remaining pin-to-pin connections to the shortest topology.
As well as using From-Tos to create a specific net topology, From-Tos can also be
used as the scope for a design rule. The scope of a design rule designates exactly what
the rule is to apply to. Using a From-To as the scope allows you to apply a rule to an
individual pin-to-pin connection. This gives you total control over how rules apply to a
net. You could specify that a net be routed at 25 mils, except for one From-To which
you want to have routed at 40 mils. Refer to the chapter, Using Design Rules, for more
information about design rules and their scope.
578
Creating From-Tos
To specify From-Tos for a net select the Design-From-To Editor menu item. The
From-To Editor will be displayed.
Select the Net you wish to specify From-Tos for. All the pins in this net are displayed
in the graphical window to the right. Any existing From-Tos are displayed as a thin
line connecting the two pins in the graphical window, and they are also listed below the
net name. Below the graphical window there are tips on how to quickly add and
remove From-Tos.
Auto-Generated From-Tos
To quickly create a set of From-Tos for the entire net, use the Auto-Generate buttons at
the bottom of the From-To Editor. These buttons create a set of From-Tos for the entire
net, arranged in that particular topology.
Shortest
By default, the PCB Editor arranges the pin-to-pin connections in the net to give the
shortest overall connection distance. Pressing this button will remove any user or autogenerated From-Tos, instructing the PCB Editor to arrange the pin-to-pin connections
with the shortest topology.
579
PCB Design
Daisy-Simple
In a simple daisy chain topology all the nodes (pins) are chained together, one after the
other. The order they are chained is calculated to give the shortest overall length. If a
source and terminator pad are specified then all other pads are chained between them to
give the shortest possible length. Edit the pad (double-click on it) to set it to be a
source or terminator. If multiple sources (or terminators) are specified they are chained
together at each end.
Daisy-Mid Driven
In a mid driven daisy chain topology the source node(s) are placed in the center of the
daisy chain and the loads are divided equally and chained off either side of the
source(s). Two terminators are required, one for each end. Multiple source nodes are
chained together in the center. If there are not exactly two terminators a simple daisy
topology is used.
Daisy-Balanced
In a balanced daisy chain topology all the loads are divided into equal chains, the total
number of chains equal to the number of terminators. These chains then connect to the
source in a star pattern. Multiple source nodes are chained together.
Star
This topology connects each node directly to the source node. If terminators are present
they are connected after each load node. Multiple source nodes are chained together, as
in the balanced daisy topology.
580
Show/Hide the entire set of pin-to-pin connections for the selected net. When you
choose this option, a cross hair cursor appears. If you know the location of a pad
on the net, click on that pad. If you do not, click in free space and a dialog will pop
up, prompting for the net name. If you are unsure of the net name type ? and click
OK to list all loaded nets.
Component Nets
Show/Hide the entire set of pin-to-pin connections for all nets which connect to
the selected component.
All
To add or remove pads from a net, locate the net in the Nets in Class column, then
double-click on it to open the Edit Net dialog. Use the buttons in the center of the
dialog to add or remove pads from this net.
Update Free Primitives From Component Pads
Use this option when you have performed design changes on the schematic that change
the netlist. When you transfer the changes to the PCB, DRC violation may occur if the
routing net names no longer match the pad net names. When you select this option the
net attribute for each primitive is set back to no-net, then starting at each pad, the
routing is traced and the pad net name applied to all the routing primitives.
581
PCB Design
Note that this process is performed starting from every pad, if there is routing which
joins 2 pads that belong to different nets then the last pad that is analyzed will have its
net name applied to the routing. To control this behavior, delete a track segment to
break the routing from any pads that the net should not connect to.
Export Netlist from PCB
Export the internal netlist from the PCB to a netlist file. The internal netlist is the list of
nets displayed in the Netlist Manager dialog.
Create Netlist from Connected Copper
Analyze the connectivity created by the routing (copper) and create a netlist listing this
connectivity. If a net name is found on a pad this is used to name that net.
Compare Netlists
You will be prompted to select a netlist, then prompted again to select a second netlist.
The 2 netlists are compared, and nets are matched based on them having common
nodes. The report file details any differences found in the 2 netlists.
Compare Netlist File to Board
Performs a netlist compare on the internal PCB netlist against a user-selected netlist.
After performing a DRC to ensure that the routing matches the internal netlist, use this
option to confirm that the PCB matches the original schematic netlist.
Color
Hide Selectively hide the connection lines for this net, or combine with a global edit
to hide the connection lines for a number of nets.
The Layers Tab of the Document Options dialog includes a check box to
turn the Connect layer on or off. If this is off no connections are shown,
regardless of the Hide attribute of each net.
Identifying Nets
Comprehensive information about each object on the board, including the physical
parameters, and the net name, is displayed on the Status Bar when the cursor is
positioned over the object. This Status Into can be disabled in the Display Tab of the
Preferences dialog.
582
Place the tracks to create the connections where you choose, you do not have to
route the connections along the path shown by the connection lines. Route to a
different pin on the net, or create a T-Junction. When you terminate a track the net
is analyzed and connection lines are added and removed as required.
Electrical grid
To ease the accurate placement of electrical objects such as tracks and vias, the
PCB Editor includes an electrical grid. The electrical grid defines a range within
which a moving electrical object (such as a track, pad or via) will attract to another
electrical object. The electrical grid overrides the snap grid, allowing you to easily
connect to an off grid object.
Violation-free object placement
The PCB Editor includes a routing mode where you can only place primitives such
that they do not violate any clearance design rules. This feature allows you to route
hard up against existing objects, without fear of violating any clearance rules.
On-line Design Rules
Most of the design rules can be monitored as you route. Enable the rules that you
want monitored during routing in the On-line Tab of the Design Rule Check dialog
(select Tools Design Rule Check). Violations are flagged immediately.
Automatic Loop Removal
Existing tracks can be quickly re-routed. Simply route new track segments and the
redundant segments are automatically removed.
Multiple track placement modes with look-ahead
The track placement mode defines the way track corners are placed, and includes
arcs and 45 degree tracks. Each mode includes a look-ahead segment which you
can use to predict the placement of the next segment and accurately terminate the
current segment.
583
PCB Design
RD
U7-5
U6-32
U5-21
584
U5
From-To
U6
U7
After analyzing the net, the PCB Editor
adds the Broken Net Marker
If the net has a topology applied, the From-To is added to maintain the topology, and is
shown as a dotted line, indicating that the net should be routed between these two
points to maintain the topology.
A topology is applied to a net either through a Topology Rule, or by defining fixed
From-Tos. For more information on net topology and fixed From-Tos refer to the
Working With a Netlist topic and the Routing Topology design rule in the chapter,
Specifying the PCB Design Requirements.
If your design includes a large net with many nodes, or there are a large
number of primitives (tracks, vias, etc) on the net, you may find that the automatic
connectivity monitoring will take a long time to analyze this net. To disable the
connectivity monitoring for a particular net you can hide the net. When you
select View Connections Hide Net to hide the net connection lines, it is also
hidden from the connectivity checker.
585
PCB Design
Preparing to Route
Preparing the design for routing is an important part of the design process. Use these
tips to improve the routing process.
Setting the Grids
Traditionally PCBs were designed on a standard grid. The grid was calculated to allow
objects to be placed quickly and accurately, without the possibility of violating the
design requirements. For example; a design that used through-hole components with
pins spaced in multiples of 100 mils could be routed on a 25 mil grid. This allowed for
12 mil tracks, 13 mil clearances and one track to pass between the pins of an IC.
Changes in packaging technologies, where both imperial and metric pin spacing are
used, make it difficult for todays designer to specify a standard grid that fits all the
component and design requirements. This has become a major shortcoming of the
traditional grid-based PCB design environment.
The PCB Editor includes a number of features to aid the designer in overcoming this
limitation. These include: an electrical grid which allows one electrical object to snapto the hot spot of another electrical object, even if it is off grid; look-ahead track
placement, allowing you to predict where you want the next track segment to go and
accurately terminate the current segment; and violation-free object placement with
automatic clipping. With these features the PCB Editor behaves as a shape-based
manual router, allowing you to route quickly and accurately to any object, at any point
in the workspace.
While these features may initially sound complex, they are quite easy to work with. If
your design is not suitable for one of the traditional routing setups, or the density
requires you to pack the tracks and vias more tightly than a grid based routing model
allows, then set the snap grid to a small value, such as 5 mils or 1 mil. Continue
reading this chapter for an explanation of how to route in this mode.
For more information about setting the snap grid, component grid and the electrical
grid refer to the Grids topic in the chapter, Setting Up the PCB Workspace.
Move Components onto the Grid
To maximize the number of routing channels available, as many component pads as
possible should be on the snap grid. Check if the components are on grid by selecting
the Edit Select Off Grid Pads menu item (shortcut: S, G). To move all the components
onto the snap grid, select the Tools Interactive Placement Move To Grid menu item
(shortcut: I, G). The Component Move dialog will pop up allowing you to specify the
grid.
586
587
PCB Design
588
Press the Tab while routing to change the track width and via parameters
Routing Shortcuts
Use the following shortcuts to speed the routing process:
Press the BACKSPACE key to remove the last corner during routing.
Press the * key to toggle through the routing layers while routing and insert a via.
Use the SPACEBAR to change between the Start and End placement modes. Press
SHIFT+SPACEBAR to change track placement modes.
Press the CRTL+SPACEBAR to cycle through each connection line that connects to
the pad you just started routing from.
Press the END shortcut key to refresh the display while routing.
Press the SHIFT+E shortcut keys to toggle the electrical grid on and off.
Hold the ALT key to temporarily switch from Avoid Obstacle mode to Ignore
Obstacle mode.
Press the SHIFT+R shortcut keys to cycle through the 3 Interactive Routing modes.
589
PCB Design
Use the look-ahead feature to predict the next segment, and accurately position the current one
Use the look-ahead segment to work out where you intend to place the next segment
and to determine where you wish to terminate the current segment. When you click to
place the current segment, its end point will be positioned exactly where you need to
commence the next segment. This feature allows you to quickly and accurately place
tracks around existing objects and plan where the next track segment can be placed.
590
As you use the look-ahead segment to guide your routing, you will notice that the track
end does not always remain attached to the cursor. It avoids electrical objects that
belong to another net. This feature allows you to only place primitives where they do
not violate any clearance design rules, as shown in step 2 of the previous diagram. In
step 2 the cursor has been moved to the right of the pads, but the look-ahead segment is
clipped back to the point where no violations would exist. As soon as the cursor is
moved up to a point where the look-ahead segment can pass between the pads without
causing a violation, it extends across to the cursor. Routing Modes are discussed in
more detail in the next topic.
Consider another example of manual routing shown in the following diagram. You
wish to route horizontally across, and then diagonally down to a pad. Previously this
was a process of trial and error, judging exactly where to terminate the horizontal
segment and commence the diagonal one. The look-ahead segment allows you to bring
the cursor down onto the target pad, clicking once to terminate the horizontal segment,
then clicking a second time to terminate the new diagonal segment.
Remember, the segment displayed as an outline is the look-ahead segment, not
the segment you are currently placing. If you are trying to place a segment and
nothing happens when you click, you are probably trying to place the look-ahead
segment. This can happen when you have the placement mode set to End when it
should be Start, or it is set to Start when it should be set to End. Press the
SPACEBAR to toggle between the Start and End placement modes.
PCB Design
If the Plow Through Polygon option is enabled in the Preferences dialog you can route
over the top of a polygon when the Interactive Routing Mode option is set to Avoid
Obstacle.
When you finish routing the polygon automatically repours, depending on the settings
of the Polygon Repour options. The Repour option defines when a repour should
occur. If Threshold is selected, then polygons with more than the Threshold number of
primitives will prompt to confirm before performing the repour.
Push Obstacle
In this mode, the track you are placing pushes existing tracks out of the way as you
move the cursor. It can not push immovable objects, such as vias, pads and locked
tracks. If the track(s) that you are pushing can no longer move (because they have been
pushed up against an immovable obstacle) then the routing mode reverts to Ignore
Obstacle. This mode is ideal for rerouting. There may be a large number of changes to
the contents of the screen as you work in this mode press the END key on the
keyboard to refresh the display as you route.
592
Use the SHIFT+R shortcut keys to cycle through the modes as you are routing.
Re-routing
Re-routing is a normal part of the design process. Perhaps a new component has been
added, a footprint changed, or you are tidying up after autorouting. The PCB Editor
includes powerful features to assist in the process of re-routing tracks the Push
Obstacle routing mode, and automatic loop removal. Both of these options are
configured in the Options Tab of the Preferences dialog (Tools Preferences).
To re-route an existing track:
Loop removal
and
the
Push
Obstacle mode are
enabled
in
the
Options Tab of the
Preferences dialog.
1.
2.
Starting to reroute
593
PCB Design
3.
4.
Select the Design Layer Stack Manager from the menus to pop up the Layer Stack
Manager dialog.
Add a new plane to the layer stack (if one has not already been added) to do this
click in the picture on the layer name that you want the plane to be underneath,
then click the Add Plane button. Note that PCBs are fabricated from an even
number of copper layers (for example, you can not normally have a 3 layer
board), so you may need to add another signal or plane layer to return to an even
number of layers.
Double-click on the new plane layer to assign the net, you can also change the
layer name if you want to.
Close the Layer Stack Manager dialog.
All the From-Tos for that net will disappear. A small cross will appear at each pad on
the net, on the appropriate power plane layer. The cross will look like a + for a relief
connection, or an x for a direct connection.
The properties of the pad-to-plane and via-to-plane connections are controlled
by the Power Plane Connect Style design rule. Refer to the chapter, Specifying the
PCB Design Requirements, for information on using this rule.
Pins that Do Not Connect to a Power Plane
Pads not connecting to the plane are isolated from the plane by a region of no-copper.
This region of no-copper is specified as a radial expansion around the pad hole by the
Power Plane Clearance design rule. Refer to the chapter, Specifying the PCB Design
Requirements, for more information on using this rule.
594
2.
3.
expansion
air
gap
pad
hole
conductor
width
First assign the net with the greatest number of pins to the plane, refer to the topic
Connecting to an Internal Plane on the previous page for details on this.
595
PCB Design
2.
Make the internal plane the current layer by clicking on its layer Tab at the bottom
of the workspace.
3.
Select the Design Split Planes menu item to pop up the Split Planes dialog.
4.
To add a Split Plane press the Add button. The Split Plane dialog will pop up. Set
the Track Width, Layer and Connect to Net as required.
5.
Click OK when the Split Plane dialog is set up. The dialog will disappear and a
cross hair will appear on the cursor.
6.
Click to define each point on the boundary, coming back to the start to create a
closed boundary.
Once the boundary is closed the Internal Planes dialog will reappear. The new split
plane will appear in the Split Planes list, click on it to display the region.
Use the SPACEBAR to change between the different split plane
boundary placement modes. The boundary can also include arcs.
Splitting a Plane to Support More than Two Nets
If the plane is to connect to more than two nets, continue to add split planes to create
the other regions on the plane. Adjacent boundary tracks can be placed on top of each
other if desired. Typically they would be placed with the tracks overlapping by a small
amount to create a continuous no-copper region.
To define a split region within another split region, the outer split region must wrap
around the inner split region, as shown in the following figure.
A split region within a larger split region note how the larger region wraps around the inner
region. In this example there are now three nets sharing this power plane, the original net
associated with the plane, plus the two nets using these split regions. The boundary tracks
have only been made thinner to clearly show the two split regions, normally they would
overlap slightly.
596
To make the pads that you wish to encompass within each split plane easily visible, the
following is suggested:
1.
Display only a minimum of layers the Keep Out layer, the multi layer, any
mechanical layers needed and the power plane which is being used.
2.
Set the display mode of pads to draft mode in the Show/Hide Tab of the
Preferences dialog.
3.
Enable the Highlight In Full option and the Use Net Color For Highlight option in
the Options Tab of the Preferences dialog.
4.
Set the color attribute of each net on the split plane to a different color. To do this,
set the Browse mode in the Panel to Nets, select the net in the list and press the
Edit button to pop up the Change Net dialog.
5. Select the Edit Select Net menu item and click on one of the pads on the net.
Repeat this for the other net connecting to the plane. Extend Selection must be
enabled to select more than one net at a time (Options Tab of the Preferences
dialog). These two sets of pads will appear in different colors and should now be
easy to identify.
6. You are now ready to define the split region(s).
Assign the most common net to the internal plane,
then define a split region for each of the other nets
sharing the plane.
The boundary of a split plane can be modified after it has been defined. The following
modifications are supported:
1.
The boundary track width, the layer that the split plane is on, and the net that is
connected can all be changed. To change one of these attributes double-click
inside the boundary of the split plane to pop up the split plane dialog.
2.
The location of the boundary tracks can be changed. Select the Edit Move Split
Plane Vertices menu item. You will be prompted to Choose a Polygon (a split
plane is just an empty polygon), click inside the split plane to be modified. The
boundary track editing handles will be displayed. Click on an editing handle to
move the handle.
For more information on modifying a polygon (a split plane is an
empty polygon), and an activity which takes you through the steps of
modifying a polygon boundary, refer to the Polygons topic in the PCB
Design Objects chapter.
597
PCB Design
598
Setting Up to Autoroute
Protel 99 SEs Autorouter is tightly integrated with the PCB Editor. Although it is a
separate Design Explorer server, it routes your board in the PCB window. The
Autorouter will route the board in accordance with the current design rules.
Setting Up the Design Rules
Select Design Rules from the menus to set up the routing rules prior to running the
autorouter. The autorouter obeys most of the routing design rules, there are some rules
that are not obeyed with certain scope settings. Rule compliance is reported at the
bottom of the Design Rules dialog to check if a rule is followed by the router click on
the rule to select it, a message will appear stating if that rule will be followed by the
router.
Protecting Pre-Routes
Often you will want to manually pre-route certain nets, then autoroute the remainder of
the board. You can protect the pre-routes from being ripped up and rerouted by the
Autorouter by enabling the Lock All Pre-routes option in the Autorouter Setup dialog.
The board should be free of design rule violations before
autorouting. This means that all pre-routed tracks should be covered by
appropriate design rules. For example, if you have pre-routed the
ground net using a mixture of 20mil and 50mil tracks, your Width
Constraint for the ground net must have a Minimum Width of 20mils,
and a Maximum Width of 50mils.
599
PCB Design
Routing Passes
To set up the routing passes select Tools Autoroute Setup Autorouter to pop up the
Autorouter Setup dialog. Enable the required routing passes.
Unless you have good reason for so doing, we recommend that you always use the
default router pass setup, which runs all the algorithms. The description of each pass
includes notes about when it is better to not run all passes.
Memory
This pass selects all Memory or Memory-like nets on the board. This algorithm is both
Heuristic and Search. Always run it, even if you do not have memory components on
the board.
If you have a true memory bank on your board and are concerned with where
it should be placed, how the components should be oriented, and so on, select
Memory only to evaluate the memory pattern.
600
This pass is used to fan out or disperse vias from surface mount component pads. A
short segment of track is routed out from each surface mount component pad and a via
is placed at the end. The Fan Out pass is both Heuristic and Search and should always
be used if there are single-sided components on either top, bottom or both layers. Fan
Out fails are shown as a small yellow circle with an X in the center of the circle.
Very dense boards with SMD parts on both the top and bottom layers may
have difficulty during Fan Out. We suggest you make a trial run with only the Fan
Out pass active before you commit to autorouting the entire board. If you find that
about 10% of the total pins to be fanned out fail, then it is highly likely that 100%
completion will not be achieved. If this happens you should consider repositioning
the components in the area of the board where the Fan Out fails occurred.
Pattern
On virtually every board you can find connection patterns. The success in routing these
patterns depends upon the sequence that the connections are selected while routing the
pattern. The Pattern router has a collection of different algorithms, each addressing a
particular type of pattern. The Pattern router is a Search router. It should always be
utilized during autorouting.
Push and Shove
The Push and Shove router is the main routing pass within the Autorouter. It is
considerably advanced over the conventionally available Push and Shove routers, in
that it pushes and shoves on a diagonal, has no limits on how far it can push other
tracks, can hop over vias and pads, and in general, represents a new level of
sophistication and power in Push and Shove algorithms.
Rip Up
The Autorouter is a contention cleanup router. Upon completion of the Push and
Shove Pass there may be spacing violation contentions remaining. Contentions are
shown on the monitor as a small yellow circle. Generally, successive passes of the
various routing algorithms will remove these contentions. In very difficult boards there
may be contentions remaining after all the algorithms have been completed. The Rip
Up router is then used to rip up the routed tracks associated with the contentions and
reroute them so as to eliminate the contention.
Manufacturing Passes
These passes evenly space tracks, miter track corners and add testpoints to each nets.
They can be included in the initial router setup, in which case they will be run upon
completion of the primary routing passes. Alternatively, you can run only the primary
routing passes, examine the board and then activate the Manufacturing Improvement
Passes and run them.
601
PCB Design
Cleanup Passes
There are 2 cleanup passes the first runs during the routing sequence, at the end of
each routing pass, the second runs after all the routing passes are complete. The
cleanup passes are designed to be used in conjunction with the main routing passes,
they focus on straightening the routing connections and cleaning the pad entries.
Evenly Space Tracks
This pass is used to evenly space tracks between pads in the following situation. When
the routing parameters allow for two tracks between IC pads but only one track is
routed between two particular pads, it may be placed on a 20 mil channel near one or
the other of the IC pads. Running Evenly Space Tracks will shift this track to the center
of the space between the IC pads.
Add Testpoints
Enable this pass to instruct the autorouter to attempt to add a testpoint to each net.
Before adding any new testpoint pads, the board is scanned for existing pads/vias that
could be defined as testpoints. The autorouter will then attempt to place a test point pad
for any net that does not have a testpoint, in accordance with the Testpoint design
rules. Refer to the following chapter, Including Testpoints on the PCB for more
information on testpoints.
Autorouting Options
As well as being able to route the entire board, there are a number of other selective
routing options.
Autoroute All
To route the entire board with the current routing setup select Autoroute All.
Autoroute Connection
Autoroute Connection allows you to select the order in which you want the Autorouter
to route, on a connection-by-connection basis. Not all of the full Autorouter algorithms
are used by Autoroute Connection, so you may not want to attempt to route the entire
board with this option.
Autoroute Net
Select Autoroute Net, place the cursor over any connection in the net and click. All
connections in the net will be routed, using all the routing passes.
Autoroute Component
Select Autoroute Component. Click on a component pin and all connections
Starting/Ending on that component will be routed. Note that within a net, only the
connections starting and ending on the selected component will be routed.
602
Autoroute Area
Select Autoroute Area. Using the cursor, draw the area to be routed. All connections
starting and ending in the designated area will be routed.
603
PCB Design
This shorter track length provides considerably more flexibility in the placement of
parts, and together with fewer numbers of vias per connection, are important
considerations for High Speed Logic autorouting.
Additionally, an advantage of angled direction per layer for non-High Speed Logic
boards (as well as for High Speed Logic) is the increased probability of routing to
100% completion.
The choice of which direction to use per layer is entirely that of the designer and in
fact, may be limited to conventional horizontal/vertical, if desired. During the
autorouting sequencing, the sequencer selects those connections that most nearly match
each layer direction and routes the selected track in the selected direction on that layer.
The basic movement utilizes long 45o diagonal segments with incremental orthogonal
steps that bring the primary direction in alignment with the selected direction.
Contention Routing
The term contention is a new word in autorouting vocabulary and its significance is
as follows. All the routing algorithms included in Protel 99 SEs Autorouter are
contention routers. That is to say, it is permissible for the algorithm to place a track or
via in such a position that it will create a spacing violation with other tracks, vias and
pads. This spacing violation is a contention between an existing track, via or pad and
the location where the autorouter would like to place the track being routed.
A contention can be of the following form. A track segment crossing a track segment
of a different net, a track segment being placed on top of a track segment of a different
net, a track segment that violates space with an existing via or pad, or a via that
violates space with another via, pad or track segment.
When a contention is created, a small hollow circle is created at the point of contention
and maintained until the contention is cleared. Subsequent router passes will attempt to
remove the contention by either pushing and shoving or rerouting the track that caused
the contention while being routed, or else pushing, shoving or rerouting the existing
track where the contention was created. In those rare instances when there is simply
not enough room to push and shove or reroute a track to eliminate the contention, the
contention will remain at the completion of routing.
The number of contentions is shown on the Status line. At certain times the number of
green circles (contentions) on the screen may differ from the number shown on the
Status line. This is because the screen is updated instantly as a connection is routed,
while the Status line is updated after a major routing pass.
604
What is a Testpoint?
Both pads and vias can be used as testpoints, by enabling one or both of their testpoint
attributes. These attributes allow any pad or via to be nominated as a top layer
testpoint, a bottom layer testpoint, or as a top layer and bottom layer testpoint.
Keep the testing method in mind when you choose the side of the board that testpoints
will be allowed on will the board be probed from the bottom side only, or the top side
only, do some points need to be on the bottom for automated testing and others on the
top for infield testing, and so on.
Defining the properties of pads and vias that can be used as Testpoints is done by
configuring the Testpoint Style design rule.
605
PCB Design
The testpoint style design rule defines the properties of the pads/vias that can be used as testpoints
The Testpoint Style design rule specifies the allowable physical parameters of pads and
vias that are used as testpoints. The attributes of the rule include:
If this option is enabled testpoints are allowed under
a component, on the same side of the board that the component is mounted on.
Testpoints that are under a component, but on the opposite side of the board, are
always permitted. Normally the only time you would allow a testpoint under a
component would be when that testpoint is used for testing the board prior to assembly.
The Min and Max settings define the minimum and maximum pad/via diameter
and hole diameter of a valid testpoint. These settings are used by the Testpoint Find
feature, and by the on-line and batch DRC. The Preferred settings define the size of
testpoint pads placed by the autorouter. Set the Style settings to suit your testpoint
requirements.
Style
Allowed Side These options define the side of the board the testpoint must be on, and
whether the testpoint can be pads/vias with a hole, or single-sided pads. These settings
are used as preferences by the Testpoint Find feature when it searches for possible
606
testpoints, and by the Autorouter when it places testpoints. The Testpoint Find feature
and the Autorouter use the options in the following pre-defined order:
Bottom bottom layer surface mount pad
Top top layer surface mount pad
Bottom thru-hole bottom side of a via
Top thru-hole top side of a via
Bottom thru-hole bottom side of a pad with a hole
Top thru-hole top side of a pad with a hole
Each setting is only considered if it is enabled. The bottom thru-hole option enables
both bottom side thru-hole pads and vias (and likewise for the top thru-hole option)
they are listed separately to show that vias have a higher priority during testpoint
searching by the Testpoint Find feature.
Grid Size The grid is used by the Testpoint Find feature when it attempts to locate
possible testpoint sites.
607
PCB Design
Add teardrops to all vias, in accordance with the Selected Objects Only and
Force Teardrops options.
All Vias
Add Teardrops to selected pads and vias only. Use this option
when you need to teardrop some pads/vias, but not others. Use the global editing
feature to change the selection status of the pads/vias that need to have teardrops.
Force Teardrops
Create a report file which lists the number of pads and vias that
teardropping was attempted on, as well as each pad and via that was not teardropped,
or not completely teardropped.
Create Report
608
Online DRC
The online Design Rule Check feature is enabled in the Options Tab of the Preferences
dialog. Turn this on when manually routing to immediately highlight violations as you
work. You can configure the rules that are checked as you work in the On-Line Tab of
the Design Rule Check dialog (select Tools Design Rule Check).
If a rule is not available (appears grayed out) it means that you have not
created a rule of this type for the PCB Editor to test against. Select Design Rules
to configure the design rules.
609
PCB Design
If you are working on a design with large nets, which are routed using polygons and
power planes, you may find that the on-line connectivity checker takes a long time to
analyze these nets. To disable connectivity checking for these nets hide them from
the connectivity checker by selecting View Connections Hide Net. You will be
prompted to click on a point on the net.
Design rule checking validates both physical and logical layout integrity prior to artwork generation
Enable the set of rules that you wish to test. Refer to the Design Rules chapter for a
description of each rule.
Create Violations
Enable this to highlight primitives with clearance or parallel segment violations in the
current DRC Errors color.
You can set the Panel to browse by Violations. Use this
feature to quickly locate and correct violations.
610
This option works with the Unrouted Net Rule. Enable this option if you require subnet details.
The Unrouted Net Rule should only be enabled when all connections
have been routed, as a connection line is effectively an open circuit.
Stop When Found XX Violations
The PCB Editor will stop testing the design after finding this many violations.
Create Report File
Enable the Create Report File option to automatically create a DRC report file and
open it in the text editor. If no filename is specified the report will be created with the
name filename.DRC.
611
PCB Design
reference can be the component designator, the pin, an X Y location, or a string. The
cross probed object will appear centered in the PCB window.
Jump Quickly to Objects in the Workspace
Use the Jump shortcuts to quickly locate components, pads, nets, error markers and
specific locations. Press the J shortcut key to pop up the Jump menu.
Use the Browse for Violations Feature
Set the Browse mode in the panel to Violations. All the violations will be listed. Use
the Details button to pop up the Violations Details dialog, which includes information
about which rule has been violated, and the primitives that are causing the violation.
612
1.
2.
Press the Jump button to change the zoom level to show the entire net, then use the
Highlight button to flash the net.
3.
To clearly identify the entire net select Edit Select Net (shortcut: S, N) and click
on any point in the net.
4.
To identify one sub-net select Edit Select Connected Copper (shortcut: S, P) and
click on an object in the net.
You
must
include a Layer
Stack rule to be
able to perform a
signal
integrity
analysis.
613
PCB Design
The DRC tests are worst-case each net is simulated from all possible output
pins, and the worst result is used.
614
The Reflection and Crosstalk analyses are performed in the Protel Signal Integrity Analyzer
When the Protel Signal Integrity Analyzer appears it will include all the nets in the
design, listed on the left. To analyze a net, or set of nets (use the numbers in the figure
above to guide you):
1.
2.
3.
The net is listed at the top of the Simulation region, and each node in the net is
listed below. Note that if the net includes a number of potential pins that could be
driving the net (bidirectional pins), the first in the list is assumed to be driving. To
change a node direction, select the desired node and click the In <-> Out button.
Press the Reflection Simulation button to run a reflection analysis on this net.
To run a crosstalk analysis you need to Take Over at least two nets from the list of nets.
You then nominate one of these nets to be either the aggressor, or the victim. The
aggressor is the net that the stimulus pulse is injected in, the victim is the net that
receives the crosstalk. When this is done press the Crosstalk Simulation button.
615
PCB Design
When you press the Reflection Simulation button the net is analyzed, and the reflection
waveform displayed in the Protel WaveAnalyzer. You can perform a number of
measurements directly from the waveforms, simply click on a node in the list to the
right of the waveforms, and select an option from the Analyze menu.
If you find that the waveform does not seem to match the result given during
the design rule check (for example, the DRC gave an overshoot of 1.2 volts, but the
waveform has minimal ringing), it is because the Out node that was used for the
reflection analysis is not the worst-case node.
Running a Pre-analysis Net Screening
As well as running reflection and crosstalk analyses, you can also perform a
net screening for signal integrity effects such as overshoot, delay, impedance,
etc. Net screening produces a spreadsheet-like table of results, which can be
sorted to quickly identify problem nets. To run a net screening, Take Over as
many nets as required, and press the Net Screening button.
Refer to the On-line help and the Readme.txt file for further
information about the Signal Integrity Simulator.
616
Generating Reports
The PCB Editor can generate a number of reports that can help as you verify the status
of the design. The following reports are available:
Selected Pins
All the selected pins are listed in the Selected Pins dialog. This provides a convenient
way to verify the connections within a net. Use the Mask to narrow the list of pins
being displayed. Press the OK button to generate a report file.
Board Information
General Tab
This Tab includes a tally of each primitive type used in the design, the dimensions of
the board (based on the most distant primitives in the workspace), the total number of
pad and via holes and the number of clearance errors on the board.
Components Tab
Lists all components currently placed on both top and bottom layers. Includes
designator and comment, if any.
Nets Tab
Lists all currently loaded nets, by name. Includes a tally of nets loaded.
Pwr / Gnd
Press the Pwr/Gnd button to pop up the Internal Plane Information dialog. Each Tab
lists the nets connecting to that plane. Select a net to display the pins on that net which
are connected to this plane.
Netlist Status
For each net this report lists the layers used for routing, and the routed net length.
617
PCB Design
The 3D Viewer is a visualization tool that allows you to preview and print a 3D image
of your PCB. The 3D Viewer is built around an OpenGL-based rendering engine, a
standard graphics language supported by most graphics cards. It uses a run-time
component modeling algorithm that uses the component designator prefix, footprint
and outline shape to automatically select model and texture information and construct a
suitable component model. Components that can not be recognized are automatically
extruded.
Creating a 3D View of the Board
To create a 3 dimensional view of your board select View Board in 3D from the PCB
Editor menus. The board is analyzed and a 3D view is created in a new Window.
Changing the View of the Board
The 3D Viewer supports full rotational and zoom
control, making it possible to display the board at any
angle. The board can be rotated by clicking-anddragging in the MiniViewer window in the panel.
The standard PCB Editor display shortcuts are also
618
The
rendering
process can be canceled
at any time by leftclicking on the 3D
image as it is being
redrawn.
supported press the PAGEUP and PAGEDOWN keys to zoom in, the END key to redraw
the view, and right-click and drag on the 3D image to display the slider hand and slide
the 3D view around.
You can also selectively hide the components, silkscreen outlines, copper, and text
strings. These options can be enabled in the panel, or the Preferences dialog (select
View Preferences).
Use the display options in the panel to control what is shown on the board
The Browse PCB 3D panel also includes a highlight feature, click on a net name and
click the Highlight button to highlight that net on the board. There is also an Animate
option, which flashes the net that is being highlighted. The highlight color and the
animate feature are set up in the Preferences dialog.
Printing the 3D View
The 3D view can be printed by selecting File Print from the 3D Viewer menus. This
will print what is currently displayed in the 3D window.
Three print qualities are supported, Draft, Normal and Proof. The print quality is
selected in the Preferences dialog (select View Preferences).
619
PCB Design
An essential part of the design process is producing printed documentation about the
PCB design. This could include a manufacturing drawing detailing the fabrication
information, check plots for verifying the contents of each fabrication layer, and
assembly drawings detailing component location information and loading order.
In Protel 99 SE printed output is created by preparing a preview of the required
printouts, then printing them with the new Print/Preview feature. Using this approach
you can define precisely what mix of PCB layers you want to print, set the scaling and
orientation, and see exactly how it will look on the page before you print it.
Protel 99 SEs new print engine also supports printing the current screen area and
copying the current preview to the Windows clipboard, making it easy to include PCB
information in your documentation.
620
What is a Printout?
A Printout is a set of one or more PCB layers that will
be printed as a single print job. Depending on the
scaling, this may be on a single piece of paper, or tiled
(spread) over a number of pieces of paper.
Each printout is represented as a page icon in the
Browse PCBPrint panel.
This PPC
document
includes 2
printouts
621
PCB Design
1.
2.
Select the layer you would like to add in the drop down Print Layer Type list.
3.
Set the display mode for the primitives as required. Refer to the topic, Configuring
the Layer Properties, for more information on the primitive display mode.
4.
The new layer is added at the bottom of the layer list. This means that this layer will be
drawn first in the printers memory when the image is rendered. Each layer above is
then rendered on top in turn. Use the Move Up and Move Down buttons to change its
position in the render order.
As well as adding mechanical layers individually to a printout, you can also
automatically include them in all printouts. Enable the required mechanical layers
in the Mechanical Layers Tab of the Properties dialog.
622
623
PCB Design
Printing
Once the printouts are correctly configured in the preview window you are ready to
print. There are a variety of printing options available, click on the File menu to display
these different options. The options include:
Print All select this option to print all printouts in the current PPC document. Each
printout is sent to the printer as a separate print job, with the same name as the printout.
Print Job select this option to print all printouts in the current PPC document, with
all printouts sent in the same print job. The print job has the same name as the PPC
document.
Print Page print the current page. If the printout is tiled over a number of pages a
dialog will appear prompting you to type in the page number, or the page range. As a
reference, each page of a multi-sheet tile printout includes a small red preview page
number at the top left of the page. The numbers are not included on the printout, they
can also be turned off by disabling the Preview Page Numbers option in the
Preferences dialog.
Print Current print all pages in the current printout.
Printouts can be reordered by clicking and dragging the printout in the PrintPCB
Panel.
Tip:
Note:
624
Note:
Font Options
Each of the 3 PCB Editor fonts can be substituted for a different Windows font on each
printout. Use these options to specify the font that you want substituted for each of the
PCB Editors 3 fonts (Default, Serif, and San Serif).
Once the substitute fonts are specified and substitution is enabled, open the Printout
Properties dialog to enable font substitution for that printout.
Overlap for Tiled Print
This option defines the amount of printed information that is duplicated on adjacent
pages when a printout is tiled (printed over a number of pages).
Automatic Rebuild Option
Each time you change the setup options in one of the Print/Preview dialogs the data is
re-analyzed to ensure that the previews are accurate. Disable this option to stop
automatic rebuilding.
Select Tools Rebuild Preview (or click on the Rebuild Preview button in the panel) to
force a rebuild if you have changed a setup in one of the dialogs. Select Tools Process
PCB to force a rebuild if you have modified the PCB (or click on the Process PCB
button in the panel).
Mechanical Layers
As well as adding mechanical layers individually to a printout, you can also
automatically include them in all printouts.
625
PCB Design
All enabled outputs can be generated at any time with a single command. The output
files that are generated are written to a separate CAM Outputs folder, which can be
time-stamped if required. There is also an option to automatically export the CAM
outputs directly to a disk drive.
The CAM Manager supports the following output types:
Gerber files
NC Drill files
Testpoint reports
Pick and Place files
Bill of Materials (BOM)
Design Rule Check (DRC) reports
627
PCB Design
628
629
PCB Design
Once the PCB design process is complete and the design has passed all the design rule
checks, the Gerber files are generated, one for each layer needed in the fabrication
process. The Gerber language is the standard language format used to transfer PCB
layout data from the PCB design software to the phototool creation process. These
Gerber files are then sent to the manufacturer, who loads them into a photoplotting
machine and creates the phototools.
Each phototool is created by exposing the film to build up the image required for that
layer. The information needed to form the image includes the shape and size of the
objects on that layer, and the coordinates of these objects. The shapes are specified in
the Gerber file as apertures, and typically these apertures are created from the board
and included in each Gerber file, when they are referred to as embedded apertures. If
the apertures are not embedded then they must be stored in a separate aperture file and
supplied with the Gerber files.
Setting up the Gerber File Options
To include a Gerber setup in a CAM output configuration document select Edit Insert
Gerber from the CAM Manager menus to pop up the Gerber Setup dialog. Click on the
Whats This help icon at the top right of the dialog for detailed information about each
of the options in this dialog.
Note that when you enable the Embedded Apertures option in the Apertures Tab of the
Gerber Setup dialog the aperture list is created automatically, each time you generate
the Gerber files. The apertures are then embedded in the Gerber files, according to the
RS274X standard. This feature means that you do not need to worry if the current
aperture list includes all the required apertures unless your PCB manufacturer does
not support embedded apertures it is highly recommended that you use this option. For
more information on apertures refer to the topic What is Artwork? later in this chapter.
To ensure that the finished PCB meets your design and manufacturing requirements it
is important that you contact the fabrication house and discuss their requirements
before generating the Gerber files.
Some of the requirements you should discuss include:
Any apertures restrictions most modern photoplotters are raster plotters which can
accept any size aperture. Generally they also accept Gerber files with embedded
apertures. In this situation enable the Embedded Apertures option in the Apertures Tab
of the Gerber Setup dialog.
Mask expansions mask expansions are required for the solder and paste mask layers.
The solder mask layer defines where the manufacturer must apply a thin layer of solder
to the bare copper on the board, typically on component pads. The paste mask layers
define where solder paste is applied to the board during the assembly process, and is
normally only required for surface mount components. Solder and paste mask
expansions are specified in the Manufacturing Tab of the Design Rules dialog in the
PCB Editor.
630
Power plane clearances if the design includes internal power planes the
manufacturer will specify the clearance required for thru-hole component pads and vias
that do not connect to the plane. The physical connection parameters used for pads and
vias that do connect to a plane must be set to suit the requirements of the design. Power
plane clearances and connection styles are also set up in the Manufacturing Tab of the
Design Rules dialog in the PCB Editor.
The units and format of the Gerber files the units can be either inches or millimeters.
The format specifies the precision of the coordinate data, this must be selected to suit
the placement precision of the objects in the PCB workspace. For example, the 2:3
format has a resolution of 1 mil (1 thousandth of an inch). If your design has objects
placed on a sub 1 mil grid then this format will not be adequate. Conversely, the higher
precision formats may be more difficult and expensive to photoplot and manufacture.
If the plots should be centered on the film the Gerber data can be automatically
centered on the specified film by enabling the Center Plots On Film option in the
Gerber Setup dialog. Note that Gerber coordinates are referenced from the absolute
origin if the Center Plots on Film option is turned off.
The drilling requirements the drilling information is normally supplied in the form of
NC drill files, refer to the NC drill Output Setup topic for more information.
File Extensions used to Identify each Gerber File
When you generate the Gerber output a series of files are created, each one
corresponding to one of the layers enabled in the Gerber setup. These files are then
loaded into a Gerber photoplotter, which produces the necessary phototools for PCB
manufacture.
Each Gerber file is given the name of the PCB document, with a unique extension that
identifies that layer and plot type. For example, the Top Layer Gerber file for a PCB
called MyDesign will be saved as MyDeisgn.GTL, to indicate "Gerber Top Layer".
Because each design normally generates numerous Gerber files, these extensions help
identify each file.
We recommend that you follow this convention which conforms to general industry
practice. The following table shows the extensions that are used:
Top Overlay
Bottom Overlay
Top Layer
Bottom Layer
Mid Layer 1, etc
Power Plane 1, etc
Mechanical Layer 1, etc
Top Solder Mask
Bottom Solder Mask
Top Paste Mask
.GTO
.GBO
.GTL
.GBL
.G1, .G2, etc
.GP1, GP2, etc
.GM1, .GM2, etc
.GTS
.GBS
.GTP
631
PCB Design
632
Set up the Bill of Materials output requirements in the Bill of Materials Setup dialog
633
PCB Design
configuration document, or when you select Edit Insert Pick and Place from the CAM
Manager menus to add a new pick and place setup to the current CAM output
configuration document.
Pick and place files are used to program machines that automatically load components
onto the PCB during assembly. They are called pick and place because they pick the
required component from a feeder tube and place it in the correct location on the PCB.
Once a PCB has the components loaded it is then passed through another machine that
solders all the connections.
The pick and place file includes the following information for each component:
Designator
Footprint
Location - expressed in 3 formats; by geometric center, component reference
point, and pad 1 location
Side of board
Rotation
Component comment
Pick and place component location files can be generated in Spreadsheet, CSV and
Text formats, and in imperial or metric units. Pick and place coordinates are referenced
from the user-defined relative origin.
Setting the Pick and Place Options
Enable the output format that you want the Pick and Place file created in. More than
one format can be enabled, each of the 3 formats is given a different file extension.
Click on the Whats This help icon at the top of the Pick and place Setup dialog for
information on a specific feature in the dialog.
634
Testpoints can be defined manually, searched for by the Testpoint Find feature, or
placed by the autorouter. They are placed according to, and tested against, the
Testpoint Style and Testpoint Usage design rules. The Testpoint Style rule reports
testpoints that do not comply with the required physical parameters (size, etc), and the
Testpoint Usage rule reports those nets which have not had a testpoint correctly
assigned. Refer to the Design Rules chapter for information on setting up these rules.
The testpoint report is then used to find all pads and vias that have one or both of their
testpoint attributes enabled. The testpoint report includes:
Net name
Testpoint name
X and Y coordinates referenced from the user-defined relative origin
Side of board
Hole size
Testpoint type thru-hole or surface layer
635
PCB Design
Note:
What is Artwork?
Artwork is the name give to the pieces of film that are used by the PCB manufacturer
to fabricate the PCB. These pieces of film, one for each fabrication layer, are normally
created by a photoplotter, from the Gerber files generated from the PCB.
Artwork can also be generated by high-resolution Postscript imagesetters, that are
used by graphic design and typesetting bureaus. These machines are capable of
producing film positives at resolutions at 2540 dpi (dots per inch) or higher.
However, users should be aware that there are some limitations to using this approach
for PCB artwork. The resolution of these systems does not necessarily translate into
positional accuracy or linearity, particularly when measured over a large area. There
are also film size restrictions. Postscript output files can be generated by the PCB
Editors Power Print feature.
Photoplotted Artwork
Gerber format photoplotting provides the highest resolution output and is generally
considered the method of choice for production PCB tooling as it provides the best
quality artwork for board production. Photoplots will be required when the design is
either large in total area, or of high-density with fine line details. Gerber outputs are
generated by the PCB Editors CAM Manager.
About Photoplotters
Photoplotters are similar to pen plotters in many ways, the primary difference being
that photoplotters use light to plot directly onto photosensitive film. The many
advantages of this approach has led to the widespread adoption of photoplotting in the
electronics industry.
Because the etching of printed circuit boards is generally based upon photographic
techniques, the production of positive and negative photo-tools (or films) is an inherent
636
part of the process. When the original artwork is a pen plot, a number of intermediate
steps have to be performed to produce the final tools. Pen plots are generally plotted at
least 2:1 scale to achieve reasonable accuracy and then photographically reduced.
Photoplotters provide sufficient accuracy to generate a precision 1:1 plot in a single
operation. Photoplotting bureau services are widely available and all designers should
carefully consider its advantages. To make the best use of photoplotting, its helpful to
understand some key concepts.
Vector vs. Raster Plotters
PCB Design
off and so on. Coordinates define the position of the various flashes and strokes on
the plot. This information is stored as an ASCII text file.
The structure of Gerber files can vary due to a number of optimizations that have
been added to the format over time, to address the changing capabilities of plotting
hardware. Your photoplot bureau may need to know details regarding Protels use of
Gerber format, so we have described it in some detail below.
Protel Gerber files are divided into individual commands, followed by carriage return
code then a line feed code. Each record is terminated by the character *.
The records may refer to an absolute location or a draft code which changes apertures.
Thus a record might be X800Y775* which instructs the plotter to move to a
particular coordinate or D16* which is a draft code or command, such as a new
aperture selection.
Some plotters reserve draft codes D01D09 for uses other than aperture selection, for
example:
D01
Turns the light source on.
D02
Turns the light source off.
D03
Flashes the light source.
On some older plotters the special code G54 needs to be sent before each change of
aperture code. The last Gerber record is terminated by the special record M02*, which
is followed by another block, containing the character hex 08, then 509 spaces
(hex 20), then a carriage return and a line feed.
You can inspect any Gerber file with a text editor or word processor capable of loading
an un-formatted text file.
About Apertures
All Gerber format photoplotters use apertures. Apertures describe the available tools
used to draw on film. In the case of a vector plotter these apertures correspond to
various sizes and shapes of holes in an aperture wheel or slide. Light is projected
through these apertures onto the film emulsion.
Raster plotters are not limited to a set of specific aperture sizes and shapes. Raster
imaging systems interpret the aperture information in the generated Gerber file and the
entire plot image is synthesized and represented by a bitmap and plotted line-by-line,
not unlike a television image.
Using Apertures
The apertures that will be used to translate your PCB file into a set of Gerber files are
stored in a file with the extension .APT. Apertures can be regarded like plotter pens.
Aperture descriptions include a shape, such as a 50mm square, and use flash, stroke
or anything (either flash or stroke).
Before you can generate a Gerber file, you can either load an aperture file that matches
the capabilities of the target plotter, or you can let the PCB Editor automatically create
638
an aperture file, extracted from the primitives (tracks, pads, etc) in the current PCB file.
When targeting a vector plotter, the apertures in the .APT file must correspond to the
apertures available on the actual aperture wheel or slide to be used. The photoplotting
bureau will supply the aperture table to suit their vector plotter. Raster plotters use the
aperture file to translate draft codes directly into an image map. If the target plotter is
a raster device, you can generate the apertures from the PCB and supply the generated
aperture table with the Gerber files. Your photoplotting bureau will supply the required
file generation details.
When you use an existing aperture file, the PCB Editor scans the primitives (tracks,
pads, etc) in the PCB file and matches these with aperture descriptions in the loaded
.APT file. If there is no exact match of aperture to primitive, the PCB Editor will
automatically paint the primitive with a suitable smaller aperture. If there is no
aperture suitable to paint with, a .MAT match file will be generated listing the
missing apertures and Gerber file generation will be aborted.
If targeting a vector plotter, use primitives (track and pad sizes and shapes) for which
there is a matching aperture. If the designer is familiar with the aperture set supported
by the target photoplotter and tailors the choice of objects placed on a PCB design
accordingly, the photoplotter will be able to faithfully reproduce the file in the most
efficient manner.
Loading and Editing Apertures
Select
Aperture
the
Design
Library
menu
639
PCB Design
Postscript printers and imagers generally produce output between 300 and 2540 dpi.
Because of the high resolution obtainable from these devices, many users are interested
in producing artwork quality Postscript prints as a lower-cost alternative to Gerber
plots. However, there are a few limitations which should be considered before printing.
High-resolution laser imagers print directly onto film or sensitized paper. While these
devices are quite accurate horizontally, they do not always achieve consistent linearity,
particularly on devices where the film or paper moves off a roll, then through the
printing mechanism via a series of rollers.
Some typesetting / graphic arts bureaus now use Postscript imagers that use cut, rather
than roll film, mounted on a large drum. These imagers suffer much less from linearity
problems and may provide a suitable alternative to Gerber plots for non-critical
designs.
To test any Postscript device, create a file with vertical and horizontal tracks of known
length and carefully measure the output with a rule of known accuracy. This will allow
you to apply a correction factor scale setting to either axis, which should minimize the
problem. The amount of linearity error may not always be constant, so you should
check each final artwork print for accuracy before committing the art to fabrication.
Another problem with 300 or 600 dpi desktop laser printers is the overspray and
bleed effects created when the toner is fused to the paper. Small particles adhere to
the paper on either side of lines, etc, creating the potential for unwanted effects in your
artwork.
640
When designing for laser print artwork, you should keep the clearances generous, and
again, print at a reasonable scale to minimize scale and bleed effects.
The print quality obtainable with a laser printer is largely determined by the paper. A
number of special papers are currently available (primarily for the graphics arts trades)
which reduce this toner bleed into the paper, hence making the outline sharper. Some
of these special papers are slightly heavier and treated to resist the waxes and glues
used for paste-up, making them easier to handle. Be especially careful to keep these
paper laser prints clean.
Postscript compatible photo-typesetting equipment has the advantage of being able to
provide output at very high resolutions (up to 2540 dpi). These devices can also print a
direct film positive to A3 (or B) size.
However, the concern with linearity, described above, applies to these devices as well.
The problem of linear accuracy will already be familiar to imagesetting bureaus who
provide color separations to the graphics arts industry.
Some Postscript printers will time out and discard the current data when they do not
receive the end of page marker within a specified time. This can cause problems where
you seem to be missing pages from your plots. If you experience this problem using a
Postscript printer or any other printing device then you should go to the Control Panel,
select the printer icon, select the printer and click the Configure button. Change the
Transmission Retry to 500 seconds, or some larger number. This will allow the printer
sufficient time to catch up before the Print Manager gives up.
Pen Plotting
You can plot to a pen plotter via a Windows plotter driver. This should not be a
problem for newer devices that use raster, rather than vector plot routines, such as the
newer large format ink jet type plotters. There are also true vector plotter drivers
available, contact your plotter supplier for further information.
641
PCB Design
Select Design
Update
Schematic
and update the schematic component designators. There are no restrictions on how
many times you can re-annotate the PCB before updating the schematic. You can also
manually change the PCB designators if you wish, then update the schematic by
selecting Design Update Schematic.
As well as transferring designator changes, Protel 99 SEs Synchronizer can also pass
other design changes from the PCB, back to the schematic. The following changes are
fully supported:
Refer to the chapter,
Component designator changes
Transferring the Design
Component comment changes
Information to the PCB, in
Footprint changes
the Schematic Capture
Component deletions
section of the Handbook,
for complete details of the
When you select Design Update Schematic from the
menus the Update dialog appears, with the name of the
Synchronizer.
target schematic project in the title. Macros are created
for each design change that can be transferred back to the schematic. When you press
the Execute button any components on the schematic sheets that have their component
attributes changed are automatically updated.
The synchronizer passes design changes from the PCB, back to the schematic
643
PCB Design
Loading a Netlist
If you are doing both the schematic and PCB design in Protel 99 SE, you do
not need to use a netlist to transfer the design information. Protel 99 SE includes a
powerful design synchronization tool that automates the transfer of design
information from schematic-to-PCB, and from PCB-to-schematic. Refer to the
chapter, Transferring the Design Information to the PCB, in the Schematic Capture
section, and the chapter Passing Design Changes Back to the Schematic in the PCB
Design section of the Handbook for more details.
Netlists come in many different formats, but are usually generated as ASCII text files
which carry at least two types of information:
1.
2.
Some netlist formats combine both sets of data in a single description, Others,
including Protel, separate the two data into separate sections.
As straightforward text files, netlists are readily translated into other formats using a
simple, user-written program. Netlists can also be created (or modified) manually using
a simple text editor or word processor.
The PCB Editor can load Protel, Protel2 and Tango format netlists.
Locating the Netlist
To load a netlist select Design Netlist from the PCB
Editor menus. The Load/Forward Annotate Netlist
dialog will pop up. Press the Browse button, locate and
select the netlist, and click OK to return to the
Load/Forward Annotate Netlist dialog.
The PCB Editor will then analyze both the netlist, and
any PCB design data present in the workspace. For each
difference detected between the netlist and the existing
design data, a Netlist Macro is created. This Macro tells the PCB Editor what action
must be performed to update the design data to match the netlist.
644
If you are loading a netlist for the first time, Netlist Macros will be created for the
entire netlist. If you are forward annotating your design, Netlist Macros are created for
each design change.
Examine the Macros, and when you are satisfied that they will carry out the actions
you require, press the Execute button.
It is good practice to resolve any Macro errors prior to Executing the Macros.
Refer to the topic Resolving Netlist Macro Errors later in this chapter for tips.
Working with Netlist Macros
After the PCB Editor has analyzed the netlist and any PCB design data present in the
workspace, it will create the Netlist Macros and list them in the Load/Forward
Annotate Netlist dialog, in the order that they will be executed. The Macro Commands
include:
Remove Node
Remove Net
Remove Component
645
PCB Design
Add Component
Add Net
Change Net Name
Change Component Footprint
Change Component Designator
Add Node
Change Component Comment
As well as allowing you to examine exactly what will happen when you load a netlist,
you can also Add, Edit and Delete netlist macros.
Adding, Editing and Deleting Netlist Macros
Use these options when you wish to omit or include certain design changes. You can
also use them when you wish to modify the PCB netlist, without returning to the
schematic. Points to be aware of when editing Netlist Macros include:
Be consistent with the case of all text, such as Designators and Nets.
A netlist node is specified as the ComponentDesignator-PinNumber. An example
is J3-2. As per the PCB Library Editor requirements, the pin number can have a
maximum of four alpha/numeric characters with no spaces.
The footprint must match the name of a footprint in one of the libraries in the
current library list.
Refresh the screen after executing the Netlist Macros.
Validating Netlist Macros
After editing Macros you should always Validate them. This is particularly important if
you have manually created Macros. Pressing this button instructs the PCB Editor to
examine each Macro, check if it can be executed, and report any error condition.
Regenerating Netlist Macros
When you press Regenerate the PCB Editor will clear all existing Macros, then reanalyze the netlist and the PCB design data and create new Macros.
Resolving Netlist Macro Errors
Prior to executing the Netlist Macros it is good practice to resolve any errors or
warnings. Following is a description of each error/warning. The description includes
which Macro can report that error and what has caused the error.
Net not found
A Netlist Macro is attempting to: add or remove a node; remove a net; or change a net
name when that net can not be found in the PCB netlist.
Component not found
A Netlist Macro is attempting to: add or remove a node when the component
designator is incorrectly specified in the Macro or the component can not be found in
646
A Netlist Macro is attempting to: add or remove a node from a component which does
not have that pin; or remove a node which does not exist in the specified net.
Net already exists
A Netlist Macro is attempting to: add a net name when a net with that name already
exists in the PCB netlist.
Component already exists
A Netlist Macro is attempting to: add a component when a component with that
designator already exists in the PCB netlist.
New footprint not matching old footprint
A Netlist Macro is attempting to: change a component footprint when the used pins on
the old footprint do not match the used pins on the new footprint. This can occur if the
new component has fewer pins than the old, or if the pin numbering in the netlist
(which comes from the schematic component pin numbers) is different to the pin
numbering on the PCB component.
Footprint not found in Library
647
PCB Design
Summary
Most problems with loading a schematic netlist generally fall into two categories.
1.
2.
New footprint not matching old footprint the cause is usually that the pin
numbering on the schematic component differs from the pin numbering on the
PCB footprint.
Schematic libraries contain specific components and devices. The PCB libraries
contain generic footprints, which can belong to various specific components each
having different pin assignments.
For example, a transistor shape can represent various combinations of E, B and
C, each of which must be assigned to the correct pin number in the PCB Editor.
Diodes are a similar case, with pins often named A and K in the schematic.
You will need to either, modify the PCB footprint pin numbers to match the Schematic
pin numbers, or change the schematic component pin numbers to match the PCB
footprint.
Supported Netlist Formats
Protel 99 SEs PCB Editor can load Protel, and Protel2 format netlists. Refer to the
chapter, Interfacing to Third-Party Tools, in the Schematic Capture section of this
Handbook for details of the syntax of these netlist formats.
Netlists from schematic capture packages other than Protel usually have many
similarities to the Protel format. However, the order in which component or net
information is displayed may vary, and package names (eg DIP16), component
designators and pin identifiers may require editing to match the PCB Editor field
restrictions. Often, translation of the netlist is an option in the schematic package.
Netlists created using either a Protel or Tango output option will usually be fully
compatible with Protel 99 SEs PCB Editor.
Netlist Parameter Restrictions
648
PCB Design
Full support for DWG/DXF import/export to the PCB editor, all versions from 2.5
to R14.
User-definable layer mapping on import. The Import from AutoCAD dialog will
appear during the import process, where the layer mapping is defined.
Import from AutoCAD model space or paper space.
Automatic import scaling if the import data is larger than the PCB workspace.
Component to block and block to component translation.
Supports metric or imperial units.
Use the Help button and Whats This help in the dialogs for more details on the
import/export options.
Orcad Layout to Protel PCB Interface
Protel 99 SE can import binary format Orcad Layout V9.x design files. Select File
Import from the PCB Editor menus and set the file type to MAX at the bottom of the
dialog.
Summarizing the Layout Importer features:
Directly load Orcad Layout (V9.x) PCBs into the PCB editor.
User-definable layer mapping in the Orcad Layout Importer dialog. This dialog
appears during the import process.
Comprehensive, multi-level import reporting.
Import Layout (*.LLB) libraries into Protel 99 SEs PCB Library Editor.
Import a library directly from a Layout PCB file.
Use the Help button and Whats This help in the dialogs for more details on the import
options.
650
Index
Index
.
.IC................................................................... 210
.NS ................................................................. 210
3
3D PCB view ................................................. 618
A
Absolute ABS ................................................ 358
absolute PCB origin ....................................... 446
ABSTOL ........................................................ 257
AC analysis
setting up and running ................................ 188
access codes ....................................................... 7
ACCT ............................................................. 259
acute angle constraint..................................... 544
ADCSTEP...................................................... 260
adding PCB layers.......................................... 522
adding project sheets ...................................... 124
address range
PLD design................................................. 343
align
PCB components........................................ 569
schematic objects ......................................... 91
analog simulation
definition .................................................... 178
Analog simulation
running ....................................................... 182
analyses
setting up the circuit simulator ................... 183
analysis window
using ........................................................... 211
analyzing nets
switching off............................................... 581
angled routing ................................................ 603
annotation
backward .................................................... 642
forward ....................................................... 146
reassigning designators in PCB.................. 642
Index
652
connectivity ..................................................60
creating connectivity ..................................100
bus entry
about...........................................................100
BYPASS.........................................................259
C
CAM Manager
BOM setup .................................................633
DRC setup ..................................................635
Gerber setup ...............................................629
NC drill setup .............................................632
pick and place setup ...................................633
testpoint report setup ..................................634
using ...........................................................626
capacitor
simulation ...................................................237
change
PCB object .................................................466
schematic object ...........................................78
changing the layer of a PCB component ........564
checking the schematic...................................136
CHGTOL........................................................257
child sheet.......................................................130
circuit
will not simulate .........................................252
circuit design
about.............................................................57
circuit simulator
features .......................................................177
class
creating from a selection ............................473
classes
creating from the schematic........................566
creating PCB classes ..................................537
clearance design rule ......................................539
clipboard
adding template to ........................................65
PCB ............................................................474
working with in schematic............................83
comment
PCB component..........................................514
compatibility
working with an older Protel design.............29
Index
compile
PLD design................................................. 351
compiler options
PLD design................................................. 354
compiling SimCode........................................ 265
complex hierarchy.......................................... 131
complex to simple .......................................... 131
component
creating for simulation ............................... 247
finding for simulation................................. 236
component
aligning PCB components.......................... 569
changing pads in......................................... 497
changing PCB footprint.............................. 515
color, changing........................................... 113
copying....................................................... 120
copying between libraries........................... 520
copying from the PCB to a library ............. 516
creating a PCB footprint............................. 519
creating a schematic component................. 117
default footprint.......................................... 119
finding in a PCB library ............................. 511
finding in schematic libraries ..................... 109
flipping and rotating ................................... 564
grouping ..................................................... 119
including routing in the footprint ............... 516
jump to in PCB........................................... 464
listing on board........................................... 617
locating....................................................... 491
modifying on the PCB................................ 515
orientation .................................................. 113
part type field ............................................. 112
PCB attributes ............................................ 512
PCB comment ............................................ 514
PCB component union ............................... 567
PCB designator........................................... 514
PCB placement........................................... 563
PCB project library .................................... 520
positioning on the board............................. 564
return to PCB primitives ............................ 516
schematic attributes .................................... 111
selecting a PCB component from the
schematic................................................ 566
sharing a common graphic ......................... 119
sheet path....................................................112
sheet path field ...........................................132
simulation-ready.........................................235
special PCB strings.....................................503
specifying footprint in schematic ...............111
text fields ....................................................113
updating the PCB footprint.........................520
component clearance constraint .....................550
component grid, PCB .....................................447
component orientation rule.............................550
component placement toolbar ........................569
component text
about...........................................................111
components
about.............................................................58
accessing in PCB ........................................509
accessing in schematic................................107
associating schematic to PCB.....................150
moving onto grid ........................................586
PCB ............................................................509
schematic....................................................106
where are the PCB components..................509
where are the schematic components .........107
conditional PLD simulation............................377
confirm global edit .........................................454
connection lines
displaying ...................................................452
hiding..........................................................581
connections
inter-sheet ...................................................125
wiring ...........................................................59
connectivity
about.............................................................59
between sheets............................................125
displaying ...................................................577
logical...........................................................60
physical ........................................................60
rules for ........................................................60
understanding in PCB.................................576
CONVABSSTEP ...........................................259
conventions
document ........................................................8
convergence
troubleshooting...........................................253
653
Index
654
Index
655
Index
656
download file
PLD design.................................................357
draft code
about...........................................................637
draft thresholds...............................................457
drag
orthogonal in schematic................................64
PCB object .................................................483
PCB shortcuts.............................................483
schematic object ...........................................93
tracks with component................................455
draw order of layers........................................457
DRC
about...........................................................609
enabling online ...........................................453
errors, display of.........................................452
jump to error marker...................................465
online..........................................................609
report ..........................................................611
resolving violations ............................611, 612
setting up for...............................................610
setting up the DRC in the CAM Manager ..635
drill drawing
layer............................................................452
drill guide
layer............................................................452
drill pairs, PCB...............................................524
drive capacity
simulation ...................................................260
simulation override.....................................260
DRIVEMNS ...................................................260
DRIVEMXS ...................................................260
drivers
about, plotter ..............................................641
DRVMNTYMX .............................................260
DXF/DWG
import/export to PCB .................................649
schematic import/export .............................169
E
EDIF...............................................................358
editing
a document ...................................................21
PCB net attributes.......................................582
Index
field
PLD keyword .............................................343
file
README .......................................................7
fill
about...........................................................499
changing .....................................................499
placing ........................................................499
find and replace
schematic text...............................................89
fit on page option, schematic..........................156
flat design .......................................................128
flipping a PCB component .............................564
focus
PCB Editor .................................................466
Schematic Editor ..........................................79
folders
using .............................................................14
font
changing system font....................................68
component text ...........................................111
fonts
rotating .......................................................155
schematic system font ................................105
using in Schematic Editor...........................105
footprint
component default ......................................119
creating .......................................................519
creating with the PCB Wizard....................519
specifying in schematic ..............................111
updating......................................................520
format, Gerber ................................................637
forward-annotation .........................................146
Fourier analysis
setting up and running ................................202
frequency and phase, viewing ........................216
frequency controlled voltage source...............231
frequency modulation simulation source........228
From-To
about...........................................................578
creating .......................................................579
using in a design rule..................................560
fuse
simulation ...................................................243
657
Index
658
Index
Index
660
simulation override.....................................260
LOADMNS ....................................................260
LOADMXS ....................................................260
location
jump to on sheet ...........................................74
marking on the sheet.....................................74
locking
locking a design document ...........................28
logic equation
PLD design.................................................338
logic reduction
PLD compiler .............................................356
logical connectivity
about.............................................................60
loop removal
enabling ......................................................455
lossless transmission line................................245
lossy transmission line....................................245
M
macros ..............................................................50
mask
solder and paste ..........................................451
master sheet
about...................................................123, 124
matched net lengths design rule .....................548
mathematical analysis and plots .....................206
MAXEVTITER..............................................259
maximize product term sharing ......................356
maximum via count design rule .....................549
MAXOPALTER.............................................259
measurement cursors
using ...........................................................218
measuring distance in PCB.............................486
mechanical layer
about...........................................................451
menus
about.............................................................36
MESFET
simulation ...................................................241
messages
errors and warnings ....................................255
metric units
changing PCB to.........................................446
Index
mils
toggling PCB units ..................................... 446
MINBREAK .................................................. 259
minimization
individual ................................................... 355
memory vs speed vs efficiency................... 356
none............................................................ 356
minimization methods
PLD compiler ............................................. 356
minimum annular ring design rule ................. 544
MiniViewer, using.......................................... 461
mm
toggling PCB units ..................................... 446
mnemonic
device ......................................................... 352
mode
track placement .......................................... 494
model
simulation................................................... 235
modular design ............................................... 131
Monte Carlo analysis
setting up and running ................................ 194
morphing .......................................................... 88
MOSFET
simulation................................................... 240
move
break track.................................................. 484
PCB component reference point................. 453
PCB object ................................................. 483
PCB primitive............................................. 484
polygon vertices ......................................... 485
schematic object ........................................... 92
moving
object reference point ................................... 65
multipliers
problems with............................................. 253
simulation................................................... 181
multi-sheet design
managing.................................................... 123
methods of structuring................................ 127
multi-sheet projects
about........................................................... 122
N
Navigation Panel
using .............................................................13
NC drill, setting up .........................................632
net
identifying ..................................................582
jump to in PCB...........................................465
listing loaded ..............................................617
matched lengths design rule .......................548
power plane assignment .............................594
routed length constraint ..............................548
topology, about...........................................578
net identifier
scope...........................................................126
Sheet Symbols/Port Connections ...............130
net identifier scope
Net Labels and Ports Global.......................129
Ports Only Global.......................................128
Net Identifier Scope
setting for netlist creation ...........................170
net identifiers
about.............................................................59
net label
about...........................................................100
connectivity ..................................................61
creating connectivity ..................................125
negating ......................................................126
Net Labels and Ports Global...........................129
net topology
about...........................................................578
specifying ...................................................578
netlist
about...........................................................169
changing and updating................................581
character limits ...........................................648
creating .......................................................169
exporting.....................................................649
formats........................................................170
generating ...........................................170, 649
loading........................................................644
macros ........................................................645
Protel 2 format............................................172
Protel format...............................................172
661
Index
662
generating ...................................................626
output drive capacity
simulation ...................................................260
Output drive capacity
simulation override.....................................260
output options
PLD design.................................................357
output options
Absolute ABS.............................................358
ASCII HL ...................................................357
Berkely PLA...............................................358
EDIF, PLD compiler ..................................358
error list LST ..............................................358
expanded macro MX ..................................358
Hex .............................................................357
Jedec...........................................................357
Palasm PDS ................................................357
PDIF PDF...................................................358
XNF............................................................358
overlay
layers ..........................................................451
overshoot
specifying for signal integrity.....................552
P
pad
about...........................................................496
changing .....................................................497
designator, incrementing ............................496
display of holes...........................................452
displaying pad info .....................................457
jump to .......................................................465
placing ........................................................496
rotated, limitations......................................484
pad numbers
showing ......................................................457
Palasm PDS....................................................357
pan
PCB slider hand..........................................488
setting up autopanning................................454
panel
creating a PCB panel ..................................475
Panel
MiniViewer ................................................461
Index
panning
PCB ............................................................ 463
schematic...................................................... 72
parallel segment constraint............................. 549
parameter sweep analysis
setting up and running ................................ 198
parent sheet .................................................... 130
part
default footprint.......................................... 119
footprint...................................................... 111
in schematic component ............................. 112
orientation .................................................. 113
placing on sheet.......................................... 110
schematic attributes .................................... 111
sheet path.................................................... 112
text fields.................................................... 113
part type
schematic.................................................... 112
partial derivatives, simulation ........................ 259
parts
about component .......................................... 58
parts list
setting up in PCB ....................................... 633
paste
creating a PCB panel .................................. 475
PCB array................................................... 476
schematic array............................................. 84
special in PCB ............................................ 475
paste mask
expansion design rule ................................. 545
layer, about................................................. 451
pattern
component default...................................... 119
specifying in schematic .............................. 111
PCB
3D view ...................................................... 618
adding layers .............................................. 522
back-annotation .......................................... 642
CAM Manager ........................................... 626
components and libraries............................ 509
copying from PCB to the Windows clipboard
................................................................ 624
defining ...................................................... 521
drill pairs .................................................... 524
663
Index
664
connecting to pads......................................507
defining a copper plane ..............................598
moving vertices ..........................................485
PCB ............................................................504
placing ........................................................504
plowing through .........................................455
repouring ....................................................507
polygons
plowing through .........................................592
port ...................................................................59
about...........................................................101
connectivity ..................................................61
creating connectivity ..................................125
cross referencing.........................................128
Ports Only Global...........................................128
Postscript printing
PCB ....................................................636, 640
tips ..............................................................640
power plane
clearance design rule ..................................545
connect style design rule ............................546
connecting a net to......................................594
connecting vias to.......................................595
defining a split plane ..................................595
listing pins assigned to ...............................617
using ...........................................................594
viewing .......................................................595
power port
about...........................................................100
creating connectivity ..................................126
power print .....................................................620
preferences
layers tab ....................................................449
PCB default primitives ...............................459
PCB layers tab ............................................449
setting .........................................................453
show/hide tab..............................................458
pre-routes
protecting....................................................599
previewing prints/plots ...................................156
primitive
arc, PCB .....................................................500
fill ...............................................................499
line..............................................................493
Index
Q
quick copy schematic object.............................88
R
RAMPTIME...................................................259
random value
PLD simulation ..........................................367
raster photoplotters.........................................637
ratsnest
display of ....................................................452
README file.....................................................7
read-only fields, simulation............................247
Redo
PCB ............................................................491
schematic......................................................98
redraw
canceling in PCB ........................................487
canceling in schematic..................................95
PCB layers..................................................456
re-entrant editing
PCB ............................................................487
schematic......................................................95
registration, software ..........................................7
relative PCB origin.........................................446
relay
simulation ...................................................244
RELTOL ........................................................258
remove duplicates...........................................454
removing a corner in a wire..............................80
removing project sheets..................................124
report
board information .......................................617
measure distance in PCB ............................486
netlist status ................................................617
project hierarchy.........................................158
schematic Bill Of Materials........................158
schematic component .................................121
schematic component rule check................121
schematic library ........................................121
selected PCB pins.......................................617
reports
netlist compare ...........................................158
Reports ...........................................................158
665
Index
666
Index
667
Index
668
SPICE variables..........................................256
troubleshooting convergence......................252
using measurement cursors.........................218
viewing frequency and phase .....................216
virtual PLD.................................................385
voltage sources ...........................................219
warnings .....................................................255
simulation results window..............................211
SIMWARN ....................................................260
single layer mode ...........................................457
singular matrix error
resolving .....................................................260
sinusoidal simulation source ..........................220
size
schematic sheet.............................................66
Smart Technology
about.............................................................32
SmartDoc
about.............................................................34
SmartTeam
about.............................................................35
SmartTool
about.............................................................32
SMD
PCB components ........................................509
placing pads................................................496
SMD neck down design rule ......................542
SMD to corner design rule .........................542
SMD to plane design rule ...........................542
snap grid
PCB ............................................................447
Schematic Editor ..........................................67
software
registering.......................................................7
solder mask
expansion design rule .................................546
layer, about .................................................451
source
equation-defined.........................................233
exponential .................................................226
frequency modulation.................................228
linear dependent .........................................230
non-linear dependent ..................................233
periodic pulse .............................................222
Index
sub-sheet
about...................................................123, 124
adding.........................................................124
supply current
simulation ...................................................260
simulation override.....................................260
suppress product terms merging.....................355
sweep results
interpreting .................................................218
synchronizer
errors, resolving..........................................152
using ...........................................................146
warnings .....................................................146
synchronous
PLD simulation ..........................................369
syntax
highlighting ..................................................49
system font, schematic ...................................105
system requirements ...........................................6
T
team
creating a team member ...............................25
sharing a Design Database............................25
teardrops
adding.........................................................608
TEMP .............................................................258
temperature sweep analysis
setting up and running ................................201
template
about.............................................................68
adding to clipboard.......................................65
changing .......................................................71
creating a schematic template.......................69
identifying current ........................................67
removing.......................................................71
setting preferred............................................71
updating........................................................71
testpoint
about...........................................................605
clearing all ..................................................608
finding ........................................................607
including on the PCB .................................605
placing automatically .................................607
669
Index
670
placement mode..........................................494
placing ........................................................493
polygon.......................................................506
routing width design rule............................543
TRANMNS ....................................................259
TRANMXS ....................................................260
transfer function analysis
setting up and running ................................203
transformer
simulation ...................................................244
transient analysis
setting up and running ................................185
Transient Analysis
troubleshooting failures..............................255
transistor
simulation ...................................................239
transition time
simulation ...................................................259
simulation override.....................................260
transmission line
simulation ...................................................244
transparent layers............................................457
Troubleshooting
SPICE convergence....................................252
TRTOL...........................................................258
TRYTOCOMPACT .......................................258
TTMNTYMX.................................................260
TURBO bit .....................................................341
tutorial
breaking a wire .............................................80
creating a custom template ...........................69
finding and replacing schematic text ............89
global editing in PCB .................................480
placing a wire ...............................................75
removing a wire corner.................................80
select schematic by area ...............................82
selecting an individual schematic object ......82
U
UIC option......................................................210
enabling ......................................................187
specifying ...................................................210
un-connected pin constraint............................556
undershoot
Index
view menu
PCB options ...............................................461
violations
finding ........................................................612
virtual device ..................................................353
virtual PLD simulation ...................................385
visible grid
Schematic Editor ..........................................67
visible grids
display of ....................................................452
PCB ............................................................448
VNTOL ..........................................................258
voltage controlled current source ...................230
voltage controlled sine source ........................231
voltage controlled square wave source...........232
voltage controlled triangle wave source .........232
voltage controlled voltage source...................230
voltage-controlled switch ...............................241
W
warning messages...........................................255
displaying at run time .................................260
waveform analysis window
using ...........................................................211
waveforms
single cell, all cells .....................................215
waveforms
displaying ...................................................211
displaying data points.................................217
displaying together .....................................215
identifying ..................................................217
scaling ........................................................212
using measurement cursors.........................218
window
splitting.........................................................15
Windows
plotter drivers from.....................................641
wire
about...........................................................100
auto wire placement mode............................76
auto-junction.................................................77
breaking........................................................80
connectivity ..................................................60
placement modes ..........................................76
671
Index
672
X
XNF................................................................358
XOR gates ......................................................354
XSpice ............................................................262
XSpice ............................................................246
Z
zoom
PCB ............................................................461