Specctra: User's Reference
Specctra: User's Reference
Version 7.0
User’s Reference
Trademarks
SPECCTRA is a registered trademark of Cooper & Chyan Technology, Inc.
Adobe and Acrobat are trademarks of Adobe Systems, Incorporated and
may be registered in certain jurisdictions.
DEC, Alpha, OpenVMS, and ULTRIX are trademarks of Digital
Equipment Corporation.
FLEXlm is a registered trademark of GLOBEtrotter Software.
HP, HP-UX, and VUE are registered trademarks, of Hewlett-Packard
Company.
IBM is a registered trademark, and RISC System/6000 and AIX are
trademarks, of International Business Machines Corporation.
Motif and OSF/1 are registered trademarks of Open Software Foundation,
Inc. in the USA and other countries.
MS-DOS is a registered trademark, and Windows and Windows NT are
trademarks, of Microsoft Corporation.
Silicon Graphics and IRIS are registered trademarks, and IRIX is a
trademark, of Silicon Graphics, Inc.
Solaris is a registered trademark, and Sun, SunOS, SunView, and
OpenWindows are trademarks, of Sun Microsystems, Inc.
SPARC is a registered trademark of SPARC International, Inc. Products
bearing the SPARC trademark are based on an architecture developed by
Sun Microsystems, Inc. SPARCstation is a trademark of SPARC
International, Inc. licensed exclusively to Sun Microsystems, Inc.
UNIX is a registered trademark of UNIX Systems Laboratories, Inc. in the
USA and other countries.
Windows and Windows NT are trademarks of Microsoft Corporation.
X and X Window System are trademarks of the Massachusetts Institute of
Technology.
Version
SPECCTRA 7.0
Publication Date
December 1996
Table of Contents
Audience
This manual is written for SPECCTRA users who are familiar with the
current methods and practices used to design a PCB.
Product Features
The following table describes the icons used in this manual to identify
features that are available in various product options.
Icon Feature
Special Terms
The following special terms are used in this manual.
• The word enter used with commands means type the command and
press [Enter].
“Enter the command grid wire 1” means
1. Type grid wire 1.
2. Press [Enter].
• Click means press and release the left mouse button.
• Click-middle means press and release the middle mouse button.
• Click-right means press and release the right mouse button.
• Drag means press and hold the left mouse button while you move
the pointer.
• Drag [MB]means press and hold the middle mouse button while you
move the pointer.
• Double-click means press and release the left mouse button twice in
rapid succession.
• Click twice means click twice on the same place in the SPECCTRA
workspace.
• Select in SPECCTRA means a mechanism you use to identify
individual objects, such as wires, nets, or components, for exclusive
processing by routing or placement commands. When you select
wires, nets, components, or other objects before using a command,
SPECCTRA operates only on the objects that you have selected.
• Switch refers to one or more characters that you can use with an
operating system command, such as the command you use to start
SPECCTRA. A hyphen (-) precedes each command line switch.
If you need information about SPECCTRA design file syntax, use your
Acrobat Reader from Adobe System, Incorporated to read the
SPECCTRA Design Language Reference manual
Chapter content
How SPECCTRA Works
Placing Components
Editing and Routing Interactively
Autorouting
This chapter explains the PCB design process using SPECCTRA, and
provides information on how the SPECCTRA automatic and interactive
tools work. It also includes an overview of the following SPECCTRA
products.
• AutoPlace, which places components interactively and automatically
• EditRoute, which edits wires and vias interactively
• AutoRoute, which routes component connections automatically
1-2 How SPECCTRA Works
Uses the exact dimensions of shapes Maximizes the use of available space
and accommodates mixed pin
pitches and mixed size components
Routes gridless or with submil wire and Maximizes the use of the PCB routing
via grids area, which can reduce signal layers
With each pass, the autorouter gathers information and “learns” about the
problem areas where conflicts exist, and uses this information to reach its
goal of eliminating all conflicts and completely routing the PCB.
Even though it sometimes uses a large number of routing passes, the
autorouter achieves a high completion rate because it uses the conflict
information from each pass to guide it toward an overall solution.
The SPECCTRA design file is an ASCII text file that contains the netlist,
boundary outlines, keepout areas, and component libraries you need to
place and route your PCB. It also contains any rules you set in the layout
system to establish design specifications for placement and routing.
Placing Components
The AutoPlace product provides automatic and interactive tools for
placing and adjusting components on the PCB. It includes the following
capabilities.
Automatic capabilities
• Setting placement rules for manufacturability
• Grouping components by connectivity or net connections
• Defining a component floor plan
• Performing initial placement
• Placing decoupling capacitors in patterns
• Interchanging components to improve placement
• Rotating components
• Swapping gate and pin connections to reduce Manhattan lengths
• Generating histograms
• Analyzing component density
• Generating reports
Interactive capabilities
• Drawing rooms for a component floor plan
• Preplacing critical components
• Locking components in place
1-6 How SPECCTRA Works
Autorouting
The AutoRoute product is used to automatically route a PCB design. You
apply rules and control routing by using menu commands or a command
file for batch operation. The AutoRoute product includes the following
capabilities:
• Rip-up and retry with push and shove routing for maximum
completion rates
• Routing with or without grids
• Definable via grid
• Definable wire grid
• Automatic route improvement for manufacturability
• 45-degree recornering
• Hierarchical rules-based routing
How SPECCTRA Works 1-7
Chapter content
Using the Startup dialog box
Using Command Line Switches
Using SPECCTRA Batch Scripts
Understanding SPECCTRA Startup Options
When you click a browse button, a file browser dialog box appears. You
can use the mouse to select a file or change directories, or use the
keyboard to edit or enter any part of a path or filename.
If you know the paths and filenames for the files you want to specify, and
understand the startup switches, you can bypass the Startup dialog box
and start SPECCTRA from the command line. The specctra command line
syntax is
• specctra {[<switch>]} [<design_or_session_file>]
The <design_or_session_file> is the name of the design file, if you are
starting a new session, or the name of the session file, if you are
restarting a previous session.
• A <switch> is one of the optional SPECCTRA command line switches
explained in "Understanding Startup Options" later in this chapter.
If a file is not located in the current directory, you must specify a path
with the filename.
See "Understanding Startup Options" later in this chapter. for explanations
of all the SPECCTRA startup options.
The following example shows a batch script for UNIX and Windows NT
systems.
specctra design1.dsn -do des1.do -quit
specctra design2.dsn -do des2.do -quit
specctra design3.dsn -do des3.do -quit
specctra sample.dsn -do sample.do -quit
Because of limitations in Windows 3.1, you must use DOS, and disable
Windows entry password protection, to start multiple SPECCTRA
sessions on a Windows system. The following example shows a batch
script for Windows 3.1 systems.
win specctra design1.dsn -do des1.do -quit
win specctra design2.dsn -do des2.do -quit
win specctra design3.dsn -do des3.do -quit
win specctra sample.dsn -do sample.do -quit
In these examples, the specified design files and do files are located in the
current directory, and the SPECCTRA installation directory is included in
the path variable.
In the following examples, the design files and do files are not in the
current directory. You can use the $/ symbols on UNIX systems (\$/. in a
C shell), or the $\ symbols on Windows and Windows NT systems, if the
do file is in the same directory as the design file.
specctra /samples/sample.dsn -do \$/sample.do -quit
specctra c:\samples\sample.dsn -do $\sample.do -quit
win specctra \samples\sample.dsn -do $\sample.do -quit
Before running a batch script on a UNIX system, use the shell chmod
command to make the script an executable file
chmod +x <filename>
Starting SPECCTRA 2-7
The SPECCTRA .ini file causes you to exit Windows when you quit
SPECCTRA. If you want to use SPECCTRA interactively without running
a batch script, rename the SPECCTRA .ini file or set ExitWindows = 0.
• ExitWindows = 1 forces Windows to exit to DOS at the end of the
SPECCTRA session.
• ExitWindows = 0 does not force Windows to exit at the end of the
SPECCTRA session.
The base name of the SPECCTRA .ini file must be the same as the name of
your SPECCTRA executable. For example, if your executable is named
spxx.exe, the default fonts file must be named spxx.ini.
Message Output File -o <file> Redirect the output messages to the file
you specify.
Color Mapping File -c <file> Specifies the color map file that defines
the display colors and patterns for design
objects and graphical features in the
work area. The default filename is
color.std in the current directory. If you
do not provide a color map file,
SPECCTRA uses colors and patterns
defined in the design file, or uses internal
defaults.
2-10 Starting SPECCTRA
The following table describes additional startup options you can set using
the specctra command on a UNIX system.
Switch Description
Feature Description
Switch Description
-geometry [WxH] [[+|-]x [+|-]y]] Sets the size and position of the SPECCTRA
window. You can specify the width (W) and
height (H) of the window, and the number of
pixels horizontally (x) and vertically (y)
between the top left corner of the window
and the top left (+) or bottom right (-) corner
of the screen.
2-12 Starting SPECCTRA
Evaluating Component Placement
Chapter content
Using the Placement Status Report
Correcting Placement Violations
Using the Autorouter to Evaluate Placement
This chapter explains how to detect and correct placement violations and
how to achieve the best placement you can by using built-in analysis tools.
SPECCTRA provides reports and graphical analysis tools to help you
evaluate your placement results. You can also use the SPECCTRA
autorouter to evaluate component placements.
3-2 Evaluating Component Placement
U8
U9
You can review the conflicts report to determine the type of placement
violation for a particular component.
Eliminating violations
The solutions for eliminating certain types of violations are obvious. If a
component is marked as a violation because it lies outside the PCB
boundary, you must move it within the boundary to remove the violation.
Other types of violations can require more analysis to determine a
solution.
3-4 Evaluating Component Placement
A simple method for analyzing spacing violations uses the Measure mode.
You can zoom-in and use the pointer to measure distances between
components that are involved in spacing violations. If the spacing between
components is only slightly less than the spacing rule, you can move the
component to a different location or consider relaxing the rule to eliminate
the violations.
The PCB spacing, permitted side, and permitted orientation rules are set
through the Rules ð PCB menu. You can review the global (PCB) rules
settings by viewing the rule report.
You can also use the report facilities to determine which rules are being
violated. When you generate a component report, both the properties
assigned and the applicable rules are included in the report.
Chapter content
Placing Components Effectively
Controlling SMD-to-Via Escape
Wiring Forbidden on External Layers
Optimizing Design Rules
Autorouting Two-Layer Designs
The techniques described in this chapter can help you autoroute printed
circuit boards that are designed with SMD components. Many of the
techniques are from expert users who frequently apply the autorouter to
difficult benchmark PCBs.
Layouts designed with SMD components are often more difficult to
autoroute than those designed with through-hole components. One
difficulty is that SMD pads can be accessed on only one layer. Accessing
an SMD pad from another layer of the PCB requires a via. For this reason,
most techniques that address SMD autorouting involve improving via
access to SMD pads.
4-2 Meeting Advanced Technology Design Requirements
(a) (b)
Discrete
Note: You also can use the smart_route command, which automatically
generates SMD-to-via escapes and routes your design.
Escape wire
via_at_smd on
Conflict
Conflict
(a)
(b)
Via Grid can (a) Create a Barrier of Fanout Vias or (b) Allow Routing Between Pads
Without Conflicts
Escape areas
All sides of the escape area are equal in length to twice the smd_escape
distance. The default smd_escape distance is 0.25 inches (0.635 cm). You
can set the smd_escape distance to a different value by using the change
command. For example, if you wanted to change the escape distance to
0.125 inches, you would use the command:
change smd_escape 0.125
Optimizing Design Rules 4-9
wire_smd rule
You should set the wire_pin and wire_via rules to allow two wires
between adjacent vias where possible. The following figure illustrates a
good wiring pattern that results when the wire_via rule is properly set.
wire_wire rule
wire_via rule
Pads on
grid
Channels between
pads can’t be used
due to conflicts
caused by poor
choice of wire grid
Note: Before you edit a design file, familiarize yourself with the
SPECCTRA file structure and the design language syntax by referring to
the Design Language Reference. Use your Acrobat Reader from Adobe
Systems, Incorporated to view this manual.
A-2 Troubleshooting the Design File
The exact location of keepouts within the file is important. For example,
when you're reworking a completed design (already placed and routed)
that has keepouts defined globally in the structure section of the design
file, if you unplace the components, the keepouts remain behind on the
PCB. When you automatically place the components, the components'
locations are different and the keepouts are in the wrong positions.
To correct this, the keepouts must be moved from the structure section to
the images in the library section of the design file to make them part of the
image definitions. The process can be a little tedious, since keepout
regions defined in the structure section of a design file use absolute
coordinates; a keepout region attached to an image must be defined
relative to the image's origin.
The following example shows how a 0.250 square via_keepout definition
(in bold type) appears in the structure section of a design file.
Appendix A A-3
(PCB demo8
(structure
(grid via 0.025)
(boundary (rect pcb .450 .050 1.85 1.6))
(boundary (rect signal 0.550 0.150 1.75 1.5))
(Via v25 (spare testpt1 testpt2))
(rule (width .008) (clearance .008 ))
(layer s1 (type signal)
(direction horizontal))
(layer p1 (type power)
(use_net +5V GND))
(layer s2 (type signal)
(direction vertical))
(via_keepout (rect s1 0.7 0.3 0.95 0.55))
(grid wire 0.000 s1)
(grid wire 0.005 s2)
)
.
.
.
If you transpose this keepout to the lcc20 image in the library section of
the file, it appears as shown in the following example:
(library
(image lcc20
(pin p25x75 1 0.0000 0.1500)
(pin p25x50 (ARRAY 2 3 1 0.0500 0.1500 0.05 0.0))
(pin p25x50 (rotate 90) (ARRAY 4 8 1 0.1500 0.1000 0.0 -
0.05))
(pin p25x50 (rotate 180)(ARRAY 9 13 1 0.1000 -0.1500 -
0.05 0.0))
(pin p25x50 (rotate 270)(ARRAY 14 18 1 -0.1500 -0.1000
0.0 0.05))
(pin p25x50 (ARRAY 19 20 1 -0.1000 0.1500 0.05 0.0))
(via_keepout (rect s1 -0.125 -0.125 0.125 0.125))
)
The coordinates for the rectangular via_keepout region in the previous
example are relative to the image's origin, which in this example is the
component center.
A-4 Troubleshooting the Design File
Maximum
Length
Minimum
edge to edge
gap
parallel_segment Crosstalk
B-2 Crosstalk and Coupled Noise Concepts
Layer 1
Maximum
Length
Layer 2
Minimum
edge to edge
gap
tandem_segment Crosstalk
Appendix B B-3
900
800
700
600
Limit (Length)
500
400
300
200
100
10 20 30 40 50 60
Gap
Parallel Segment and Gap Combinations to the Left of the Curve are Violations
B-4 Crosstalk and Coupled Noise Concepts
TTL
1000
900
ECL
800
700 Length
Gap TTL ECL TTL to ECL
600
Limit (Length)
10 25 25 25
500 25
20 100 75
400 TTL 30 300 150 25
to ECL
300 40 500 225 100
50 700 325 200
200
60 1000 800 300
100
10 20 30 40 50 60
Gap
Some nets are noisier than others because of the circuit technology used or
due to circuit function, but any net in a design is a potential noise source.
Each noise transmitting net must have one or more weights assigned that
correspond to the amount of noise transmitted as a function of the
distance to a parallel receiving net.
SPECCTRA allows you to specify these factors in global (PCB) rules, by
class, by net, and by fromto. The autorouter can reduce or eliminate both
inter- and intra-layer coupled noise. The relationship between gap, wire
length, layer factor, and total noise coupled onto a net is shown by the
following coupled noise expression:
NoiseR = Σ (L * weight (gap) * layer_factor)
where:
NoiseR = the sum of all coupled noise components in a receiving net
L = the measured wire length over which coupling occurs
weight(gap) = the factor proportional to noise generated by
transmitting net per unit length, at a specified gap
layer_factor = the inter or intra-layer value depending on PCB
characteristics; you can specify multiple values in a layer matrix.
The coupled noise expression shows how noise is computed for a
receiving net where one or more noise transmitting nets exist. The
additional term, not included in this expression but used by SPECCTRA to
determine where routing violations occur, is the maximum noise rule
(noise budget) for the receiving net.
SPECCTRA computes the noise that intrudes onto a receiving net from
neighboring wires. The computation is made for each transmitting wire by
multiplying its noise weight by its parallel or tandem length. The weight-
times-length product is multiplied by the layer_factor to adjust the noise
value as a function of the routing layer. Contributions from all
transmitting nets are accumulated for a receiving net and the sum is
compared to the maximum noise budget for the receiving net. When
coupled noise accumulation on a net exceeds the maximum noise rule, the
condition is a violation.
The following figure illustrates a coupled noise violation where the
accumulated coupled noise on net CLK1 equals 819.6 millivolts while the
max_noise rule for the net is 600 millivolts.
B-6 Crosstalk and Coupled Noise Concepts
gap
l3
4.5"
t1
.010
t2
l1 .005
3.9" CLK1
.011
.005
t3
l2
4.2" gap
Note:
t1, t2, t3 are noise transmitting nets
CLK1 is the noise receiving net
Commands:
unit inch
rule pcb (parallel_noise (gap .010) (weight 25)) (parallel_noise (gap .005) (weight 83))
Computation:
NoiseR = (l1 * 25) + (l2 * 83) + l3 * 83)
= (3.9 * 25) + (4.2 * 83) + 4.5 * 83)
= 819.6 millivolts
SPECCTRA uses default fonts and colors to display the menu bar, dialog
boxes, tool bar, and other elements of the GUI. On UNIX systems you can
change the colors and fonts. On Windows and Windows NT systems, you
can change the fonts.
Note: The colors used by the SPECCTRA menu bar, dialog boxes, tool
bar, and other components are specified differently from the PCB objects
displayed in the work area. The colors of PCB objects are specified by
using the SPECCTRA color map file. See the write command in Chapter 6
for details.
Value Color
#ff0000 red
#00ff00 green
#0000ff blue
#000000 black
#ffffff white
The fonts that are available on your X server are determined with the
xlsfonts command. See your X Window System documentation for further
details.
You must add the string "=ascii" to the end of the font name. The default
values for the resources you can set for SPECCTRA are listed in the
following tables.
Resources Color
cct_da*idleColor: green
cct_da*busyColor: red
cct_da*interruptibleColor: orange
cct_da*pausedColor: yellow
cct_da*modalFormUpColor: #a020f0
cct_da*stopColor: red
cct_da*dofileColor: pink
Appendix C C-3
3. Save the modified .Xdefaults file and exit the text editor.
4. Execute the UNIX command
xrdb load .Xdefaults
C-4 SPECCTRA Colors and Fonts
When you start SPECCTRA, the menu bar and other window text should
be larger. If you want to change the font for other SPECCTRA resources,
add additional lines to your .Xdefaults file to include the X resource and
font values listed in the previous table.
Font group Where it’s used in Font Used (Face Height Width Weight Display
SPECCTRA Name) Resolution
Cell height and width are relative values, expressed in logical units, that
define a square area around the font. If the width is zero, Windows and
Windows NT matches the aspect ratio of the physical device against the
digitization aspect ratio of the available fonts to find the closest match,
which is determined by the absolute value of the difference.
Appendix C C-5
A font’s weight value determines its thickness. Weight values range from
zero to 900. The common values for the font weight are listed in the
following table.
Value Description
0 Don’t care
100 Thin
300 Light
400 Normal/Regular
500 Medium
600 Semibold
700 Bold
900 Black/Heavy
SmallTextFontWeight = 600
See "Creating a SPECCTRA .ini file" in Chapter 2 for details about creating
a SPECCTRA .ini file.
Index
F M
fanout Manhattan length
pins without fanout, 4-6 placement status report, 3-2
rip-up and retry option, 4-6 measure mode, 3-4
fanout command, 4-5, 4-6 multiple crosstalk rules, B-3
files
design, 2-1, 2-4 N
placement, 2-2
routes, 2-2 network section, design file, 1-4
session, 2-2, 2-4 no_fanout
wires, 2-2 highlight command, 4-6
fonts -noclean switch, 2-9
changing defaults in Windows and -nog switch, 2-8
Windows NT, C-5 noise coupling, B-4
changing on UNIX systems, C-3 -nowire switch, 2-8
UNIX defaults, C-3
used by SPECCTRA, C-2, C-4 O
FST (fast circuit rules), 1-7
-o switch, 2-9
G P
-geometry switch, 2-11
-p switch, 2-9
grid smart command, 4-7, 4-8
parallel_segment crosstalk, B-1
PCB
H four or more signal layers, 4-6
-help switch, 2-9 multilayer designs, 4-6
HYB (hybrid design), 1-7 pin escape. See fanout
pins without fanout, 4-6
-place switch, 2-8
I placement
-ignore_net switch, 2-10 automatic capabilities, 1-5
interactive routing, capabilities, 1-6 interactive capabilities, 1-5
placement file, 2-2
L placement rules
violations, 3-2
layer_factor, B-5 placement section, design file, 1-4
-lf switch, 2-9 placement status report, 3-2
library section, design file, 1-4 products
-lr switch, 2-10 AutoPlace, 1-5, 1-6
AutoRoute, 1-6
EditRoute, 1-6
Index-3
W
-w switch, 2-8
warning messages, placement, 3-2
wildcards
overview, 1-5
wire grid
setting, 4-10
wires file, 2-2
X
X resources file, C-1, C-3
Xdefaults file, C-3