Spectra Tutorial
Spectra Tutorial
Thomas Kladensky
Sternhaussiedlung 5A
8793 Trofaiach
Pers. Kennz. : 0410254092
Wien, 24.01.2006
EIDESSTATTLICHE ERKLÄRUNG
Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen
Prüfungsbehörde vorgelegt und auch nicht veröffentlicht.
Wien, 24.01.2006
1
Table of contents:
1. INTRODUCTION 3
3. ESSENTIAL COMMANDS 7
5. LITERATURE 19
Abstract
This thesis gives a short introduction how to design a professional printed circuit
board (PCB) using the PCB Software SPECCTRA. It is focused to design a board
with the main routing rules. The first chapter presents the basics of SPECCTRA. The
next few chapters give information about crosstalk, calculating the right wire width,
the most important information about bus systems and high frequency techniques.
After working through this thesis you should be able to design your own PCB with
SPECCTRA.
2
1. Introduction
This is a short tutorial for using the SPECCTRA Autorouter. In this tutorial you will
learn the basics to use and handle SPECCTRA. You will learn about:
SPECCTRA works on using the shape based technology. SPECCTRA differs from
traditional grid-mapped systems in modelling pins, pads, wires, and vias as true
shapes. Grid-mapped systems define these shapes as grid points. Each pin, pad, wire,
and via is defined in terms of the grid points it occupies.
Fig.: 1 shows the basic difference between the Shape Based system and a grid-
mapped system.
3
1.2. Proceeding of SPECCTRA Autorouter
SPECCTRA extends the PCB CAD system by adding automatic and interactive
placement and routing tools.
File Types: Each PCB layout system stores design information in a unique format!
All files that are read and written by SPECCTRA are plain text files, which are
shown in the following.
design .dsn Contains PCB boundary data, layer definitions, padstack definitions,
component data, netlist, preroutes and design rules
session .ses Contains a pointer to the original design file
routes .rte Contains route data that can be translated to your layout system
wires .w Contains route data that can only be read by SPECCTRA
Autoroute Tools: During the first routing pass, the Autorouter allows conflicts to
route every connection. After the first routing pass, the cost for creating these
conflicts increases with each pass. So SPECCTRA reduce the conflicts
automatically! The conflicts are shown in Fig.: 3.
4
Do file: SPECCTRA can be controlled either using a GUI or a text-based “do file”.
Do File Example:
bestsave on $\layout_v3.wir
Setup,
status_file $\layout_v3.sts
File management
unit mil
rule pcb (clearence 7)
Routing filter 5
delete conflicts
write wire $\layout_v3.w
spread
miter
5
Interactive routing: The interactive tools use the same Shape Based technology and
gridless environment as the AutoRoute tools.
You can use the interactive tools for:
You set the interactive routing and editing environment by choosing “Setup”
from the Interactive Routing menu. The Interactive Routing menu is displayed,
by pressing the right mouse button in the work area. You can use the Interactive
Routing Setup dialog box to define grids, set global (PCB) clearance and wire
width rules, and to set the interactive routing environment in three different
categories:
x General
x Bus
x Style
Status report:
Overview report:
#SPECCTRA ShapeBased Automation Software V9.0.3 made 2000/03/24 at
16:48:18
#Host
#ROUTING STATUS <<< C:\4_LAYER\Logikplatine.dsn >>>
Start Time: Wed Nov 30 15:34:27 2005
Report Time: Wed Nov 30 15:42:17 2005
Nets = 133 Connections = 437
Current Wire = 9 Reroute wires = 9
Completion = 98.17% Unconnections = 3
6
Routing Pass Information:
Summary Information:
#WIRING STATISTICS===========================================================
PCB Area=39005150.650 EIC=46 Area/EIC=847938.058
Components=131 SMDs=100
Signal Layers=2 Power Layers=2
Wire Junctions=79, at vias=49 Total Vias=431
Conflicts=4 Crossovers=2, Clearances=2, Crosstalk=0, Length=0
Manhattan length=462656.560 Horizontal=230518.290 Vertical=232138.270
Routed length=547007.044 Horizontal=278752.930 Vertical=268254.700
Ratio Actual / Manhattan= 1.1823
Unconnected length=11780.000 Horizontal= 3930.000 Vertical= 7850.000
Layer Direct Pins Vias TJs Conflicts Length Horizontal Vertical
Top Horz 442 431 26 2 289947.104 207062.580 82885.110
Bottom Vert 389 431 4 2 257059.940 71690.350 185369.590
3. Essential Commands
Circuit Command:
Example:
circuit class AdrBus (match_net_length on (tolerance 10))
7
Class Descriptor: A class is a convenient way to manage more than one net at the
same time. You can assign a certain number of nets to a class. So you can edit the
properties of those nets.
Layer Rule Descriptor: With the Layer Rule descriptor you can set PCB rules
for the entire routing process.
Length Descriptor: The length descriptor sets a circuit rule that controls
maximum and minimum routed wire lengths.
Route Descriptor: The route command starts the Autorouter. You can use route
without a pass number to run a single Autorouting pass, or you can specify a
number of Autorouting passes.
You use the route command to:
Example: route 25
Standard routing passes are 25 or 50. The numbers of routing passes are
dependent on the degree of difficulty.
Shield Descriptor: The shield descriptor sets a circuit rule which controls
whether shielding is applied to wires.
8
You can use three keywords:
x Parallel
x Tandem
x Coax
Width Descriptor: The width descriptor sets a rule that controls the wire width.
Smart Route: The easiest way to route your PCB is to use the command
“smart route”. SPECCTRA will use the default settings and route it without any
rules, but this is at the most times not really helpful. If you click Autoroute Æ
route, a little checkbox will open! Click to the check box smart route. Here you
can only change the minimum grids, the fanouts, generate testpoints and miter
after routing. There are already two ways to start smart route. The first is to tip
9
the command in the command bar and press enter. SPECCTRA will use the
default settings of:
Click on Autoroute Æ Route and a little dialog box will open! In this Dialog box
you can change the default settings! For example Miter after Routing should be
on, because all wires have to be in a minimum 45° angel!
Miter: The command “miter” checks the PCB for 90° angled wires and rounds them
out! Click ok and SPECCTRA Autorouter will perform your whole PCB!
Fanout: The command “fanout” escapes SMD pads and through-pins to a via. Click
autoroute Æ pre route Æ fanout and you can change your settings or leave it to
the defaults!
Clean: The command “clean” rips up and reroutes your connections. Adding new
conflicts is prohibited.
Bus routing: To accomplish the command bus routing can also be done in two ways.
First is already to tip the command in the command bar. Here are two different
commands possible:
x bus diagonal
-- SPECCTRA uses diagonal wire segments
x bus orthogonal
-- SPECCTRA uses orthogonal wire segments
The other way is to click on the button Autoroute Æ Pre Route Æ Bus Routing
and select the desired command.
10
Crosstalk: We talk about Crosstalk when the spacing between the traces is too
narrow and the electromagnetic fields of the signals traveling along the adjacent
traces interfere. Crosstalk is shown in Fig. 9.
electromagnetical field
wire
preprec
To set these spaces with SPECCTRA is very simple! First you have to decide
where on your board should be increased the spacing between traces!
To calculate the minimum Distance you have to:
For short sections, where wires come to a minimum distance together, the
phenomenon “ Crosstalk” can be disregard, because “Crosstalk” does not have
time to develop.
11
Daisy Chain or Starburst wiring: Nets are usually ordered for starburst routing.
Starburst is the most efficient one because SPECCTRA orders and routes
starburst nets with minimum wire lengths.
Different between Daisy Chain and Starburst:
To select other nets you need the command “order” and “assign”.
The net sig1 is ordered for daisy-chain routing. When two or more pins on a net
are assigned the same property, they are chained together. Source pins will chain
to loads and load pins chain to terminators. cf. Fig. 11.
x Type
x Height
x Power dissipation
12
To add, change, or remove component properties in SPECCTRA you have to
click Define Æ Properties Æ Component and SPECCTRA will open the
Define/Forget Component Properties dialog box.
Used Commands: define (room r1 (rect bottom 1.550 4.890 7.630 9.750)
(height 0.5 -1))
room_rule memory (include U1 U2 U16 (type hard))
(exclude remain (type hard))
13
Reducing or enlarging wire width: With the “pin width taper” rule you can
reduce or enlarge the wire width during the routing process. Before
SPECCTRA will connect the wire to the pad, he enlarge the wire width as the
same diameter of the pad. For example, to enlarge all wire segment widths to
the same as the connecting pin, add the following command to your do file.
Setting global width rules: To set a global width rule of 10 mils between all
object types, add the following commands to your do file.
Fig.: 12 Left: pin width taper rule, Right: virtual pin rule
Setting via to via clearance: If the clearance between vias is too small,
SPECCTRA can’t create copper planes over the whole size of those two vias,
cf. Fig.13. You can set a global pcb rule for the clearance between vias. This
rule is called via-to-via clearance. Add the following command to your do
file.
rule pcb (clearance 50 (type via_via))
14
Fig.: 13 Via Clearance
Setting a SMD-to-via clearance rule: You can set a global pcb level that is
called SMD-to-via clearance rule to control the minimum distance between
SMD pads and vias. For example, to set a clearance of 25mil between SMD
pads and vias on the same net, add the following command to your do file.
Setting global clearance rules: It is very useful to set global clearance rules,
because manufacturer can only print the board with a minimum required
distance between wires, vias and all other printed images on your board. To
set a global clearance rule of 10 mils between all object types, add the
following command to your do file.
Placing a guard ring for high sensitive signal wires and high datarate signals:
You can shield critical nets with a power or ground net on the same layer
(parallel shielding) or on adjacent layers (tandem shielding). Coax shielding
combines parallel and tandem shielding. You can control the shield wire width
and the gap between shield and signal wires in parallel shielding, and the
overhang width of tandem shield wires.
For Example circuit net sig1 (shield on (type coax) (use_net GND))
rule net sig1 (tandem_shield_overhang 5)
rule net sig1 (shield_width 12)
15
rule net sig1 (shield_gap 10)
In this example net sig1 will be shielded by a coaxial shield. The first line
describes the net sig1 with a coax shield. The used net for the shield is net GND.
In the next 3 lines you define some rules for net sig1:
Result:
x Clock circuits
x Transmit and receive circuits
16
Used Commands:
rule class CLASS1 (tjunction on)(junction_type
supply_only)
The last command describes two planes (split – plane, cf. Fig. 15)
Preventing rerouting particular wires: In the routing phase, a bus should be routed
first and after it should be protected. Use the following command.
17
These Commands are very useful, if you won’t change the position of the bus,
testpoint, or fanout!
Manage the length on bus systems: The most important thing if you ever route a
bus is to manage the length on all wires of your bus. The length of all wires of
your bus should have the same length. Use the following command.
define (class BUS1 ADR0 ADR1 ADR2 ADR3 ADR4 ADR5 ADR6
ADR7 ADR8 ADR9 ADR10 ADR11 ADR12 ADR13 ADR14
ADR15)
circuit class BUS1 (match_net_length on (tolerance
10))
Manage the maximum and minimum length: Sometimes the length of a wire must
have a restricted length. For example, to assign actual maximum and minimum
length rules to net SIG3 and assign maximum and minimum ratio rules to SIG4,
add the following commands to your do file.
When, the maximum bus length should be 3 cm, use the following command!
18
5. Literature
19