Altium Designer25 Tutorial
Altium Designer25 Tutorial
1. Introduction
This tutorial is targeting complex high-speed digital circuit board designs with Altium Designer release 2024. There are different
grades of high-speed designs from the microcontroller boards up to the server computer motherboard and data center line card designs,
so the methodology here to be suitable for all, is based on the high-end and scalable down.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Altium Designer 25 Tutorial _____________________1 4. Design Rules _______________________________ 5
1. Introduction _______________________________1 5. Constraint Manager ________________________ 6
2. Basic PCB Design ___________________________1 6. Interactive High-Sp Route ____________________ 8
2.1. Projects and Editor _________________ 1 7. Signal Integrity_____________________________ 9
2.3. PCB Library ________________________ 2 8.1. PCIe Gen4 SERDES bus design ________ 10
2.4. Schematics ________________________ 2 8.2. DDR4 Memory-Down design ________ 10
2.5. PCB Design ________________________ 3
2.6. Design Reuse ______________________ 4
3. High-Speed Signal Objects ____________________4
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Altium also has several side panels for browsing and editing
objects. They appear depending on file type, and whether we
2. Basic PCB Design enabled them from the „Panels” button in the lower right corner.
We can dock them to the left or right side of the screen, they can
2.1. Projects and Editor be set to stacked, static, auto hide. When they hide a tab label is
In a project folder we have multiple files. One is the main shown. The projects panel shows the tree structure of our project,
project file .PRJPCB, then we have a layout file .PCBDOC, several we can open files from there. Keep these panels always visible:
schematic pages in separate .SCHDOC files, library files like Projects, PCB, Properties, List.
.SCHLIB and .PCBLIB, a folder for manufacturing When right clicking in the editor on empty space, a big menu
„ProjectOutputs”. All files open in the main window design opens with lots of settings and actions, dependent on what file we
explorer, but the menus are dependent on which file type was open. are editing, what mode we are in.
A top tab can be used to select which of the open files to edit. All Most companies have managed and released shared libraries,
drawings allow CTRL+scroll for zooming. but one-person companies can keep library files edited within
New project: file>new>project, give name, enable CM projects. We have to add existing company libraries to be
(whether we want to use constraint manager) then “create”. Create accessible by the project. Either Project>Add Existing, or on the
new files for the project on the projects panel, by right clicking the Components Panel> > Libraries Preferences> Installed>
PRJPCB and then >add new to project > schematic, or PCB or Install> select file type and browse.
library file...
2.2. SCH Library
To make our own schematic symbols, we have to create/open a
SCHLIB file on the projects panel by right clicking the PRJPCB
and then >add new to project >Schematic Lib. The schlib panel
opens, click Add, then enter name, select the new component it in
the schlib panel. In heterogenous split components the top level is
called component, the sub symbol is called a “part”. They appear
under the component name on the schlib panel. To add pins to the
single part component or to the first part of a heterogenous
1
component: select component on schlib panel, then Tools > 2.4. Schematics
Symbol Wizard, set number of pins, then fill out the table or
import from Excel. We can prepare pin tables in Excel in a Every page is a separate SCHDOC file. Once we added
matching format like below, then select data (not header), then enough SCHDOC files, in each we click Properties Panel>
CTRL+C to copy, then in Altium upper/left cell CTRL+V to paste. Sheet Size drop down to set a larger page size.
For single-part-comp or first part we press Place> Symbol, for Multi-page schematics can be hierarchical with PORT
heterogenous sub-component-parts press Place> New Part. We (Place>Port) connections in the module and SHEET
SYMBOL in the top level schematic. The sub-module symbol is
can manually add more parts to a component by the button.
created by: design>create sheet symbol from sheet. We can
also design flat schematics with no top-level, then we have to use
Place> Off Sheet.
We can place components from the „Components” panel, but
first the SCHLIB file is selected on the top drop-down, then the
component, doubleclick and move to desired location on
schematic. Part rotation with SPACE key while moving it.
Doubleclick on a part and we can see/edit properties, but don’t edit
On the properties panel we have to enter parameters like part here, rather in the released library. For example, have a separate
number and value. We have to add company-specific properties, library item for a 1k resistor than a 10k resistor.
for example if we work at ACME-inc., then ACME_PN, A component can be do not populate DNP, to leave it out of
ACME_DNP, MFR_PN… We also need to add a footprint using the purchase BOM and pick&place file. Either to design for
add> footprint> browse. debugging (to swap a PU/PD on the prototype without trace
The signal length (Package Length PL or PinDelay A to B on cutting), add possible future features or product variants. We can
diagram) within large BGA packages have to be entered for do it in different ways depending on company; we could use a DNP
accurate length tuning later. When we are editing the schematic property in all components and NO means in place and Yes means
symbol, we have to do this separately for each sub-symbol (part). DNP, or overwrite the part number with “DNP”, then delete these
Prepare the PL data in excel (same unit as the tool, mils) for each rows from the BOM manually, or we can use variants. We could
subsymbol, sorted by pin number, select the length data only, have a base design (add text next near all planned DNPs as “DNP”
CTRL+C to copy. In Altium select all pins in the subsymbol the in red), and a production variant associated with the board part
drawing, but make sure the rectangle is not selected. Then open the number. In this variant we mark the DNPs. First we annotate
SCHLIBlist panel, in the PinDesignator column sort, then in the refdes, then we create variants in Project>Variants>Add Variant,
Pin/PckLength column click the first item, CTRL+V to paste. Close. Then in the projects panel select the variant to edit by double
Save. clicking. In the schematic on a component (sub-part-A if split part)
rightclick> Part Actions> Variants> In the column named after
our variant click the […] button, select “NotFitted”. All other edits
should be done on the default “NoVariations” variant double-
clicked in the Projects panel.
Once components are placed, we wire them with . We can
place power symbols with . For non-GND nets we have to
2.3. PCB Library place this first, then select it, then on the Properties panel select
Style=Circle, add a net name like P1V0_FPGAC, then we need to
To make our own footprint symbols, we have to create/open rotate it upside-down by moving and pressing TAB twice. We add
a PCBLIB file on the Projects Panel> PRJPCB> rightclick net labels with Place> Net Label. We can draw buses with
>add new to project >PCB lib. The pcblib panel opens. To “signal harnesses”. We can place parameter set directives with
add a new footprint: Tools> IPC Compliant Footprint Wizard , then Add>NetClass or Rule… In older versions of Altium we
(or just the basic Footprint Wizard), fill in the parameters. Once had to place diffpair symbols in the schematic (Place>
done, we can edit it, by moving/deleting pins, Place>Pad, Directives> Diffpair), but in AD24 we should define diffpairs in
editing pads (click, then Properties panel edit, padstack, X/Y- the PCB CM or PCB-panel. Either way diffpair nets must be
size), drawing on silkscreen. named with _P and _N suffixes. Nets and ports are local, Off-
For large BGAs with irregular pattern, we should import sheet-connectors and power symbols are global on all pages. If we
from Allegro or Excel. In allegro open the reference design, use off-sheet or port then we don’t need net labels.
export libraries, then open the footprint, reports> symbol pin
report, then copy (pin number and X/Y coordinates) it into
excel. We can also create this spreadsheet manually based on
the datasheet in Excel. Organize the excel file to have the same Once done, we annotate refdes (designator in Altium) to all
columns as the Altium PCBLIBlist panel table has. In Altium, components with Tools > Annotation> Force Annotate All.
footprint library, create a package with the same number of pins Then export a BOM with Reports> Bill Of Materials, and if we
using the wizard. Copy cells from Excel to Altium’s used variants or variant-based DNPs then we select the correct
PCBLIBlist XY coordinates columns. Make sure they were variant from the drop-down. Error checking with project>compile
sorted the same way on both ends of the copy. document. We also export a PDF schematic with File>
SmartPDF.
2
2.5. PCB Design Object Coloring: Nets can be displayed either in layer color,
or net color. On the PCB panel find and select the nets, then
Start: Project> Add New> PCB, save. The old versions had rightclick>Change Net Color. Enable Color Override for each net
a board wizard, that is now gone. Then we need to get a DXF file using the checkbox next to its name. Set solid coloring in Tools>
from our mechanical engineer, that contains the board outline, Preferences> PCB editor> Board Insight Color Overrides.
external connector outlines and mounting holes, and import it into The new Altium supports object filtering, like Allegro. Before
a mechanical layer. File> Import> DXF, then set up scale and layer moving or deleting objects, we can disable others on the
(mechanical-1). Set up View> Grids> Set Up Global Snap Grid Properties panel> Selection Filter, to avoid affecting them.
to be coarse/accurate, View> Board Planning Mode. Then Measure distance: Reports> Measure Distance
Design>Redefine Board Shape, then redraw it, then View> 2D Find items and zoom to them: Press “J”, then select component
Layout Mode, then set the grids again to 10mils for placement. Set or net, then type in the refdes or net name. To display info about an
the origin Edit>Origin>Set on the board near the lower left corner. object: left click, the Properties panel will display relevant data.
Once the board is set up: we have to import netlist from Component placement is, really just moving from the auto
schematic: design> import changes from [...prjpcb] validate, placed (when imported changes from SCH) area to the board
execute, close. This will place all parts next to the board. design. Before placement we make inner layers hidden, so we can
Stackup Layers: Design> Layer Stack Manager. Add select components instead of planes. Click on one comp, hold and
layers, define their thicknesses, signal/plane type order. Also move. If it doesn’t work then select the small area enveloping the
define via types like BB, microvia depths. Layers are not component then click/move. Rotate with SPACE, or move to
categorized as class/subclass like in Allegro. We use the bottom side with “L”. Move refdes as if it was a component. We
mechanical layers for all manufacturing comments and fab notes. can also select a few comps on the sch, if cross select mode is
To enable backdrilling, click the button, select backdrills, a enabled in tools, then in the layout move them. If the refdeses are
lower tab appears, click it, then add as many BD layer pairs as we too large, then we can select one, rightlcik> Find Similar
want to use with the [+Add] button, then editing the layers on the Objects> Refdes = same, OK, then on the Properties panel we
Properties panel. BD always starts from (Top or) Bottom, and ends change the text height. How close we can pack them is set in a
one layer away from our routing MNC layer. On the via types tab, constraint: CM> AllR> Placem> CompClearance.
we define normal via sizes, and layer pairs for microvias or BB. We can place footprints for floorplanning from the
Panels: Enable/disable panels from the lower/right Panels components panel. We can also place mounting holes and
button. During PCB design we use many panels, the most fiducials from it, although using schematic is preferred. MNT holes
important one is the PCB panel, with a drop-down list on the top to can also be placed as pads (Place> Pad then assign GND net).
select signal object type. In the PCB panel we can specify from a Design rules: When the PRJPCB is created we have to decide
drop-down list what should happen when we select an object: either whether we will be using the legacy design rules editor (DRE), or
no effect („Normal”), or highlight („Dim”), or highlight and the constraints manager (CM). DRE opens from Design>Rules.
disable editing of other objects („Mask”). It is cancelled by CM opens from Design > Constraint Manager, and stored in
pressing the „Clear” button in the bottom-right corner. The View constraints.xml file. We should set up at least some basic rules like
Configuration panel is needed to show/hide layers. The Properties clearance, width, solder mask, via style, plane connect/clr, diffpair
panel changes content depending on what we are doing. rules before any fanout or routing. See chapters on CM/DRE.
Interactive routing starts with the icon. Set the grids to
about 1mil for routing (View>Grids). Active layer is selected by
clicking the bottom tabs. Routing mode can be controlled from:
tools> Preferences> PCB> Interactive Routing in advance, or
from the properties panel during editing, for example push/shove.
We can just click on traces to slide/edit them; we don’t have to
select a specific mode first like in allegro.
Add Vias: press “+” click while routing. Ground stitching vias
can to be placed from Place>via, then assign the net name on the
Properties panel. The size is set in CM> Allr> Routing> Routing
Via Style (All, not net class) or DRE> Route> RoutViaSt.
Altium likes to create vias with soldermask opening, but modern
complex boards are made with all VIPPO (state in fab drawing
Connection Lines: View> Connections> Show/Hide… notes) and complete tenting (no opening) on both sides. Cheap
Layer colors and visibility can be changed: First enable the boards without VIPPO need complete tenting on top (especially
Panels>View Configuration panel at the lower/left panels button. under BGAs) and a small opening on bottom (for outgassing). So,
Then we can change colors and temporarily enable/disable specific we can select a via, rightclick> find similar > ok, then on the
layer visibility as needed, by single clicking on the eye icon . Properties Panel > Solder Mask Expansion = manual =
In Altium everything that is on a layer (pads, vias, traces) are tented. Or set a rule before use: CM> Allr> Mask> SolderMExp
visible or invisible in the same time. The active layer being edited create a new rule, Object Match = “IsVia”, then click checkbox for
is selected on the bottom/lower labs under the PCB: tenting. To use microvias, we have to create them in the Layer
Stack Manager, based on the layer-pairs form the vendor stackup.
Fanout: Set the constraints like width, clearance, SM
expansion and routing via style, as shown above. Then set up
3
fanout behavior with CM> Allr> Routing> Fanout Control. Then Thieving cannot be applied in Altium, but we could use
select Route> Fanout> Component, click component. polygon pours with crosshatched pattern or rely on our PCB fab.
Draw Power Shapes: (polygon pour) on signal layers, for Preparing for manufacturing: Every layer should have text
power delivery or VRM circuit power nets. Doubleclick to add net. outside of the outline about layer name, layer number, whether it is
upside-down (mirrored), company info and design part numbers.
Voids can be drawn with rightclick on the button and select
On one mechanical layer meant for fab drawing, we place tables
. with Place> Drill Table and Place> Layer stack table, then we
Keepout shapes: place> keepout> fill, then on the Properties manually add text about technology statements, materials, surface
panel select object type to keep out (via, pad, trace…). For finish, coupons, impedance and loss tables. We also create an
example, via keepout on a routing layer. assembly drawing on another mechanical layer, for verifying the
We can specify areas where different rules would apply build, by using a dimensioned DXF from our ME. Once all done
locally. These areas are called „Rooms” and can be placed from the we fab-out: File> Fabrication Outputs> Gerber Files, and also
Design > Rooms > Place Rectangular Room menu. Then on NC Drill. We send a 3D model to our ME, to verify system fit:
the Properties panel they can be named and specify which layer to File> Export> Step3D. We generate additional documents: File>
be used on. Then they can be referenced in the design rules or CM Assembly> Pick & Place and Assembly drawing, and File>
(based on room name), so the rule will only apply within the area Smart PDF. Or all this in a more complicated way: Projects
covered by the Room. In the CM>Physical at the bottom of the Panel> PRJPCB> rightclick> Add New> Output Job file.
table AllRooms/name we can enter new width/via constraints. This We can export data reports from the PCB panel. Select the
is good for example for BGA breakout neck down, or smaller via desired object type (xSignals, Components), then select all classes
pads to implement “CLASS-3 with exception”. It doesn’t work for and all objects with CTRL+A, then rightclick>Report>Export.
plane clearance, so use class-based clearance rules.
Power plane layers: Altium supports negative planes, so they
need to be set in the stackup. On negative plane layers we place 2.6. Design Reuse
divider lines, enable the visibility of the layer on the ViewConf Design-reuse with a project is done using multi-channel
panel, then select the layer on the bottom tabs, then (Place >Line), hierarchical designs, with multiple instances of the same sch sheet
then doubleclick an area and select net. There is also a thick symbol. Each will create a "room" in the PCB, then we manually
outline layer to pull back from edge cuts. place&route one channel, then copy the work over to the other
Plane voids: All signal vias passing through planes will have channels: Design> Rooms> Copy Room Formats. Reusing
an antipad. Altium automatically removes all non-functional pads designs from other projects can also be done: File> New> Reuse
(NFPs) on plane layers, but leaves them on signal layers. That also Block, it will have both a schematic (single page) and a PCB file,
shrinks the antipads on the plane layers to AP= drill+2*CL we edit both and save, then on the Project panel "save to server".
clearance rule value, while keeping them larger AP= pad+2*CL on In our new project schematics Place> Reuse Block, the Design
signal layer power shapes. Most signals are fine with tight APs Reuse panel opens, we find out block, place button> rightclick>
around their via barrels, based only on etching clearance, but Place As Sheet Symbol.
SERDES signals need enlarged pads for via-impedance control and
backdrilling. BD requires a large BD-antipad AP= BD +
2*drillclearance. The drill clearance is usually 5…8mil on each 3. High-Speed Signal Objects
side, depending on our fab. The BD tool size is usually 6…12 mil The connection objects define the signals, or groups of signals.
larger in diameter than the via drill size, also depending on the fab. They can be browsed on the PCB panel. Categories:
So, we need to create two rules under CM> AllR> Plane> Plane Net: created using net labels in schema.
Cl, one for all signals with 5mil clearance, and one for the net or Bus: create using bus symbols in schema, it uses indexed
DP classes that belong to 8Gig+ SERDES difffpairs to force a large net names, like ABC1_[7..0] ABC1_0. For serdes-
AP. Clearance= (AP-viadrill)/2. Signal layers also need a route links, it is better not to use buses, unless hierarchical.
keepout circle the same size as the BD antipad on planes. Diffpair (DP): Create them in the CM Physical tab with
rightclick > diffpair > Create Diffpairs From Nets, or
in the PCB panel’s “Differential Pair Rule Wizard” both
objects and rules get created. Or graphically in the sch.
Dual-voids are required Net Class (NetC): A group object. In PCB using
for high-speed diffpairs on Design> Classes window (add new). Used for all same
plane layers. Select GND type (non-DP) signals on a bus, for length rules. Also
layer on bottom tabs, then used on trace width (impedance) rules for single-ended.
Place> Arc(center) on the Diffpair Class (DPC): Similar to net class, create in the
pins then Place> Fill between. Either a small rectangle and 2 arcs, PCB Design>Classes editor. We need two rules for our
or a large rectangle to envelop them. If the clearance rule-driven DP class: a width and a diffpair rule (phase tol, gap,
void is large enough then we don’t need extra arcs. We copy these uncoupled). We need one for lane-to-lane matching.
on all planes. We can also copy this to the route keepouts, to help From-To: Same as the Allegro PinPair, but obsolete.
backdrilling and prevent signals passing between p/n vias. xSignal (XS): Same as the Allegro PinPair, preferred.
DRC check: Tools> Design Rule Check. The list of DRC This is to control propagation delay from a pin to another
violations should be worked down to zero by interactive layout pin. On a DDR4 fly-by address bus, on every address net
editing, except a few items that are reviewed and accepted/waived. we would have an xSignal from CPU-DRAM0, another
4
from CPU-DRAM1... They should be created with
Design> xSignals> Create xSignals, or with a wizard.
Xsignals also connect nets through res/cap.
xSignal Class (XSC): Similar to a matched group of
PinPairs in Allegro. We create one XSC for all the
xSignals of all DDR4 address nets between CPU-
DRAM1. Then create a length matching constraint/rule
for that XSC. Another XSC and a rule for CPU-DRAM2.
XNET: They can be created in the CM, XNETs are for
two nets passing a series passive part.
Classes are used to group signals before adding them to a rule.
We can have net classes, DP classes, xSignal classes. Classes are
created in the „Object Class Explorer” at Design>Classes, by 4. Design Rules
selecting a category, rightclick> Add Class, then add items to it. In Altium Designer in the traditional flow we normally specify
Diffpairs should be put into DP classes only, not net classes, to PCB design rules in the Design Rules editor (DRE), in the
avoid double definition of width when using the CM (not DRE). Design> Rules... menu item, instead of using a constraint
manager. For a PCB design, we have to set up various general
design rules, PCB fabricator-driven rules, as well as high-speed
design related trace length and impedance-driven width rules. In
every category there is a default rule, and several user created ones
that only apply to specific objects.
Trace length measurement still has bugs in AD25. It might fail
to measure xSignal lengths accurately, which case we have to
delete and reroute it. Either little trace segments overlap with
others, or a segment is not counted at all.
Xsignals and xSignal classes, as well as their associated design
rules could be created through the xSignal wizard: Design>
xSignals> Run Xsignals Wizard. The other way is through
Design> xSignals> Create xSignals (select source, load, nets,
then analyze, OK, redo for the next lane or chip), which better
shows exact parts. The XS names will end with “_PP1…N”, where
N is the Nth chip on the bus. A third way is in the
CM>Electrical>Nets tab, click on any nets, then the Topology
columns, then in the drop-down select “custom”. In the Design>
Classes> xSignal Classes we have to create XSCs so we can
apply rules to them later in the CM. Use the search with “*” to get
for example “MEM0_A*PP1” for address at DRAM1. We create
XS for point to point buses also, so we can match them in XSCs.
6
The AllRules tab: This shows a tree of many rule types, similar
to the old DRE, mainly for basic rules. Check the DRE section for
detailed explanations! Here we can create new rules by rightclick>
Add Custom Rule, then enter ObjectMatch ([…]> Open Query
Builder for classes or object types) and numbers. In the
In the Physical tab we can see most signal objects types in a CM>AllRules > Mask> SolderMask category create a rule for
tree hierarchy browser view, like Class/DP/nets, and specify trace vias with scope=”IsVia”, and set tenting on top and bottom. The
width and via style/size to them. The PolygonConnect column default rule for all other pads should be 2mil expansion and no
should be set “DirectConnect” for “IsVia”. We can auto create all tenting. CM>AllRules > Routing> Routing Via Style sets the via
diffpairs here: rightclick > diffpair > Create Diffpair From Nets. pad and drill diameters. CM> AllRules > Routing> Fanout Contr
The editor will find them all from name suffixes _P/_N. sets pattern (auto, out, away, centered). The plane via connection
style (DirectConn), and plane layer clearance have to be set in
CM> AllRules> Plane> Power Plane Connect Style, and
clearance. The plane clearance should be set to achieve a desired
antipad size AP=BD+12mil= drill+2*CL. The CM> AllRules>
HighSpeed> Parallel Segment is good for crosstalk control
spacing that is only checked if it runs long (past limit). If we need
max length rules on xSignals, like on a synchronous multi-master
In the Electrical tab we can view/edit trace length related rules. PCI bus, se set up a rule under CM> AllRules> HighSpeed>
We enter values into an existing table, instead of creating rules. The Length. A multi-lane differential SERDES link requires lane-to-
Electrical tab has three different sub-tabs: Nets, DP and lane matching, with the CM> AllRules > HighSp> Matched
xSignals. Each shows object types in a hierarchy/tree browser. On Length. Backdrilling is defined by max stub length and oversize
the Nets sub-tab, we can create XNETs, and we can enter numbers (each side of hole) in CM> AllRules> HighSpeed> BackDrilling.
for max total length (for synchronous buses and loss-driven BD also requires definitions in the Layer Stack Manager.
SERDES links) and max via stub length constraints (for 8G+ Placement spacing: CM> AllRules > Placem> CompClearance.
SERDES links). On the Diffpairs sub-tab we can define diffpairs,
and we can enter numbers for diffpair width, gap, uncoupled length
and phase tolerance of the diffpairs.
The xSignals sub-tab at CM> Electr> xSignals tab doesn’t
allow object creation, so we have to do that in the Design>
xSignals> Create xSignals menu. When we first create XS/XSC
objects, the CM> Electr> xSignals tab seems to be read-only, so
we have to save, close Altium, reload Altium, and open CM, now
we can enter values. XSC-based rules in Altium were made for For diffpairs in the DRE we specify 4 rules, a width, a diffpair
trace length matching rules, so we have to enter tolerance in +/- rule, a matching rule for tolerance and a matching rule between
5mils or something, and click Target and open a drop-down menu lanes. In the CM we enter values for diffpairs on the CM> Electr>
to select which member of the XSC will serve as a target length for Diffp sub-tab, and on the CM> AllRules> HighSp> Matched
all other members. If we need max length rules on xSignals, like Length sub-tab also for lane matching (rightclick> add custom
on a synchronous multi-master PCI bus, then we have to use the rule, Object= InDifferentialPairClass(‘NAME’), then select
AllRules tab instead of the Electr> xSignals tab. The CM will “group- matched”). Altium25 seems to define width and gap rules
display the length measurements for each object as “Actual Value”, in two places, so to avoid using the wrong values in routing, we
or the matching rule deviation as “Margin”. The PCB panel also should set the same at both: CM> Physical and at CM> Electr>
displays these measurements. Diffp. Most values are entered to the rows of the DPCs. If we have
two multi-lane PCIe links, then each will be in a different DPC.
Maximum Length constraint values for SERDES buses come
from insertion loss budget calculations. The dB/inch loss data,
specific to a fabricator and material combination, comes from VNA
measurements on Delta-L test boards, then the max trace length is
calculated as L<budget/dBpi. The total budget comes from the
relevant standards like IEEE802.3xx, or SFF8418. For
synchronous, asynchronous, source-synch and clock forwarding
buses the rule values are either obtained from the chip vendor’s
datasheet or design guide document, or we calculate them using a
pre-layout timing analysis calculator spreadsheet, like this one:
https://www.buenos.extra.hu/iromanyok/PCB_Timing_analysis.xls
7
Differential Pair point- •DP • CM> Physical (DPC) routing. We can manually route traces by right clicking the routing
to-point signal •DPC • CM> Electr> Diffp (DPC) mode button , select interactive routing, then clicking a pad, then
• CM> AllRules> HighSpeed>
Parallel Segment. (DPC) pulling the trace. For diffpairs we have to rightclick on the
• CM> AllRules> HighSpeed> button, then select Interactive Differential Pair Routing option .
BackDrilling (DPC, if >8Gbps) First we route all traces with plenty of spacing, then we tune them
Single-ended Sync/ •NetC • CM> Physical (NetC) later. Before routing starts, we should lock down large components
Async point-to-point • CM> AllRules> HighSpeed> by clicking on them, then Properties panel location clock the
bus with min/max len. Length (NetC) button. We can select objects in the schematic, then auto
• CM> AllRules> HighSpeed> highlighted in the PCB by tools> Cross Select Mode=on. We
Parallel Segment. (NetC) might want to hide most connection lines (ratsnests), to see clearly:
Single-en Source-sync •NetC • CM> Physical (NetC) View> Connections> Hide All, then select a few nets on the PCB
point-to-point bus •XS • CM> Electr>xSignals (XSC) panel, rightclick> Show.
with matched lengths •XSC • CM> AllRules> HighSpeed>
Parallel Segment. (NetC)