RTP DDR2 DDR3 PCB
RTP DDR2 DDR3 PCB
RTP DDR2 DDR3 PCB
Abstract
This presentation will discuss the layout challenges of
implementing DDR2 and DDR3 interfaces on a Printed Circuit
Board using best practices and design rule setup within Cadence
Allegro.
A brief overview of DDRx will be discussed as a point of general
background on the interfaces to build the foundation for the
presentation.
Signal Integrity strategies for DDR2 and DDR3 interfaces will
also be discussed but the main intent is to guide PCB Designers
in configuring the Allegro design and Constraint Manager to
route these interfaces effectively.
As there are many different types of DDRx configuration (DIMM,
SODIMM, On-Board, etc.), this presentation will focus on
On-Board memory configuration only.
3
Agenda
DDRx Memory Interfaces Overview
Interconnect Topologies
Placement and Pre-Route Techniques
DDRx Design Rules
Functional Groups
(Controller)
Data
Route Groups
(Memory)
DQ[7:0], DQ[15:8], DQ[16:23],DQ[31:25],
BYTELANE0
BYTELANE1
Data Mask
BTYELANE2
BYTELANE3
Data Strobe
(differential _P & _N)
BYTELANEn
Address and
Command
Address and
Command
Control
Control
Differential Clock
CK_P, CK_N
Differential Clock
DQS_P0,
DQS_P1,
DQS_P2,
DQS_P3,
DQS_Pn,
DQS_N0
DQS_N1
DQS_N2
DQS_N3
DQS_Nn
Data Bytelane 0
DDR2
SDRAM 0
T
Data Bytelane 1
Processor
(Controller)
DDR2
SDRAM 1
100
Differential Clocks
DDR2
SDRAM 2
T
Data Bytelane 3
DDR2
SDRAM 3
VTT
Data Bytelane 2
Processor
(Controller)
VTT
Data Bytelane 0
DDR3
SDRAM 0
Data Bytelane 1
DDR3
SDRAM 1
Processor
(Controller)
Data Bytelane 2
DDR3
SDRAM 2
Data Bytelane 3
DDR3
SDRAM 3
VTT
100
9
Clock Termination
100ohm Differential
terminator at last DDR3
device in the chain.
VTT
Differential Clock
Differential Clock
VTT
Processor
(Controller)
Differential Clock
Differential Clock
VTT
Propagation Delay
Normally not constraint controlled as it is driven by placement of the memory
ICs, which should be placed as close to the Controller as possible, normally
between 750 1000mils between Memory ICs. Package type is also a
driving factor, ICs vs. DIMM Connector.
Disclaimer: The above rules are for reference only and should
be treated as such. The only tried and true way to determine
interface design rules is with Pre/Post Route simulations
11
Propagation Delay
Normally not constraint controlled as it is driven by placement of the memory
ICs, which should be placed as close to the Controller as possible, normally
between 1500 1750mils from the Controller to the first memory IC and
650 750mils between Memory ICs.
Disclaimer: The above rules are for reference only and should
be treated as such. The only tried and true way to determine
interface design rules is with Pre/Post Route simulations
12
Stripline
Dual Striplines
13
Stripline
Dual Striplines
14
Reference Plane
Signal Layer
Signal Layer
Reference Plane
15
16
17
Placement Techniques
Component Placement
Careful planning of Memory chips or DIMM connectors placement to
allow the best possible path for routing.
Reserve space for pin escape (fanout), termination resistors as well as
termination power supplies.
For DDR2 interfaces:
Spread out Memory chips to accommodate for tree routing, via t-point area
for Address, Command and Control routes.
Approximate spacing between Memory chips should be no less than 300mils
18
Placement Techniques
Pin Escaping (Fanout)
Spread vias out to allow routing of at least two traces between
vias, where possible, while maintaining reference to adjacent
plane layers. (avoid routing thru via voids in the plane)
Keep in mind the interconnect topologies of the pins that you are
escaping.
Share vias to form a t-point for the address bus remembering to have room
to match them on the surface of the board.
19
20
21
22
23
24
25
Placement Techniques
Pre-Route planning
Pin and Gate Swapping
Pin Swapping: Data bits (DQ[63:0])can be swapped within a
Bytelane to improve routing.
Excludes Data Mask (DM[7:0]) and Data Strobe(DQS[7:0])
26
Placement Techniques
27
Pre-Route Techniques
Optimize Rat-Ts (Route > PCB Router > Optimize Rat Ts)
28
Pre-Route Techniques
Optimize Rat-Ts (Route > PCB Router > Optimize Rat Ts)
How it works:
Routine actually goes into Allegro PCB Router (Specctra) to perform
the updates.
Earlier versions of Allegro had unexpected results but as of v16.3
this functionality has greatly improved.
29
Pre-Route Techniques
Ratsnest and Virtual Rat-Ts prior to running Optimizing Rat-Ts
30
Pre-Route Techniques
Virtual Rat-Ts now snapped to via so delay reports accurate results
31
Pre-Route Techniques
Maintain Design Integrity / Alert User / Workaround Issue
Creating an alias to generate a popup describing the issue and
what should be done first prior to running this command.
alias optimize_ts 'skill axlUIConfirm(" ## WARNING ##
Before running Optimize Rat-Ts, you MUST fix all nets
except the nets that you would like the Rat-Ts
optimized. This command may remove stitch vias during
optimization and the only workaround is to fix all other
nets first. When you have fixed all other nets you can
bypass this message by typing OPTIMIZE_TS_NOW on the
Allegro Command Line to run the optimization")'
alias optimize_ts_now "\optimize_ts"
These two entries can be added to your local env file or added to
site configuration in the site.env
32
Pre-Route Techniques
Maintain Design Integrity / Alert User / Workaround Issue
Creating an alias to generate a popup describing the issue and
what should be done first prior to running this command.
alias optimize_ts 'skill axlUIConfirm(" ## WARNING ##
Before running Optimize Rat-Ts, you MUST fix all nets
except the nets that you would like the Rat-Ts
optimized. This command may remove stitch vias during
optimization and the only workaround is to fix all other
nets first. When you have fixed all other nets you can
bypass this message by typing OPTIMIZE_TS_NOW on the
Allegro Command Line to run the optimization")'
alias optimize_ts_now "\optimize_ts"
These two entries can be added to your local env file or added to
site configuration in the site.env
33
Design Rules
Design Rules
Design Rules
Import an incremental netlist to add PIN_DELAY (Import > Logic Other Tab)
$PINS
$A_PROPERTIES
PIN_DELAY <Delay> ; <Ref Des.Pin#>
37
Constraint Management
What is a XNET?
eXtended Net through passive devices such as a resistor or
capacitor which allows electrical design rules to be applied
from IC Pin to IC Pin.
< NET >
Net Name:
Member of XNet:
Member of Bus:
Pin count:
Via count:
Total etch length:
Total manhattan length:
Percent manhattan:
Pin
--U1.F3
RP1.8
38
Type
---BI
UNSPEC
2
2
1313.598 MIL
1396.252 MIL
94.08%
SigNoise Model
-------------CDSDefaultIO_2p5v
RNX0008300_50
Net Name:
Member of XNet:
Member of Bus:
DDR_DQ23
DDR_DQ23
DDR_BYTELANE2
Pin count:
Via count:
Total etch length:
Total manhattan length:
Percent manhattan:
Pin
--U2.4
RP1.1
Type
---BI
UNSPEC
2
0
313.647 MIL
365.938 MIL
85.71%
SigNoise Model
-------------CDSDefaultIO_2p5v
RNX0008300_50
Database Setup
Accurate Design Stack-up
Define PCB Stack-up based on PCB Fabricator
recommendations (Setup > Cross Section)
Include dielectric layer/thickness between each of the Conductor
layers, Conductor layer thickness, Dielectric Constant and Loss
Tangent based on PCB board material called out.
Z Axis delay relies on an accurate stack-up to properly check rules
when including the via in delay calculations.
Used by the Field Solver to provide accurate transmission line
modeling of traces.
Used to determines trace characteristics such as Impedance,
Inductance, Capacitance, Propagation Delay and Resistance.
(Display > Parasitics)
Impedance calculations may not match the data provided from the
PCB Fabricator but the trace width recommendation should always
be based on the Fabricator stack-up.
39
Database Setup
Allegro Cross Section vs. Fabricator Stack-up Model
40
Database Setup
Identify DC Nets Voltage (Logic > Identify DC Nets..)
Required to accurately generate XNETS for the design.
The Voltage property is what tells Allegro where the XNET ends and without
it the XNET will include all of the pins on the Power/Ground Nets.
41
Database Setup
Verify Components are setup correctly (Logic > Part Logic..)
In general, component device information should be setup in the
library correctly to avoid any assignment issues.
Allegro supports 3 device classes
IC is used for active components
IO is used for identifying connectors
DISCRETE is used for passive components (Resistors, Capacitors, Inductors)
Selecting a component in the layout will select it in the form or just select
Device type in the form to make the appropriate adjustment or to verify.
42
Database Setup
Verify Components are setup correctly
Device CLASS and Symbol pin PINUSE are closely related, the
following are the supported PINUSE for each CLASS:
IC
= IN, OUT, BI, NC, GROUND, POWER, TRI, OCA or OCL
IO
= UNSPEC
DISCRETE = UNSPEC
XNET Generation
Model Assignment (Analyze > Model Assignment..) SI Audit
Assigning ESpice models to the passive components will
combine the nets to form XNETS by running Model Assignment.
Model Assignment will run a SI Audit which analyzes all the nets in the
design to determine which nets it considers to be Power/Ground (DC Net)
then reports the nets which are missing the Voltage property.
44
XNET Generation
Model Assignment (Analyze > Model Assignment..) SI Audit
You can select the net(s) in the SI Design Audit form to resolve
the errors and add the Voltage Property.
To select multiple rows hold the Ctrl Key or use the Shift Key to pick start and stop
All or Selected buttons will generate a Voltage value based on the net name.
Manually button will allow you to enter the Voltage value for each net name.
45
XNET Generation
Model Assignment (Analyze > Model Assignment..) SI Audit
XNET Generation
Model Assignment (Analyze > Model Assignment..) SI Audit
You can also select the net(s) in the SI Design Audit form that
are not Power/Ground and set them to Ignore so they are not
reported again.
All button will ignore all nets reported the next a SI Audit is ran.
Selected button will ignore the selected nets the next time SI Audit is ran.
47
XNET Generation
Signal Model Assignment
Once all Voltage errors are resolved or ignored you will be
presented with the Signal Model Assignment form.
Selecting a component in the layout will select it in the form
or just select reference designator or device type in form
then press the Create Model button.
Optionally, you can select the Auto Setup button to create
ESpice models for all components which have been
classified as DISCRETE.
These models are generated and stored internally in the
database.
Also models are written to the devices.dml file in the same directory
as the database.
48
XNET Generation
Signal Model Assignment
Once all Voltage errors are resolved or ignored you will be
presented with the Signal Model Assignment form.
Selecting a component in the layout will select it in the form
or just select reference designator or device type in form
then press the Create Model button.
Optionally, you can select the Auto Setup button to create
ESpice models for all components which have been
classified as DISCRETE.
These models are generated and stored internally in the
database.
Also models are written to the devices.dml file in the same directory
as the database.
49
XNET Generation
Manual ESpice Model Generation examples
50
52
53
54
CopyTransmission
a Transmission
line
Two
lines
will
in SigXplorer
form
a T-pointtoingenerate
Allegro a
T-Point in Allegro
55
Inside the Set Topology Constraints form you can select the t-points or
pins in the form or on the canvas to quickly define the pin to pin or pin
to t-point rules. (Also can be done in Constraint Manager)
56
57
58
60
61
62
Pin
Assign
Pairs
ECSET
generated
to Address
to support
Bus new
Net Class
match group constraints
63
Relative
Assign
Pin
Pairs
ECSET
Propagation
generated
to Address
toDelay
support
Bus
match
new
Netgroups
Class
match are
group
created
constraints
64
mapping mode
-----------------------------Approximate Refdes & Pinnumber
Refdes & Pinnumber
Refdes & Pinnumber
Refdes & Pinnumber
65
mapping mode
-----------------Approximate Pinuse
Refdes
Refdes
Refdes
66
67
68
69
70
71
72
73
74
75
76
77
78
Conclusion
This presentation only scratched the surface on what can be done in
Cadence Allegro to expedite and manage constraints effectively.
Doing the upfront design setup will make the process go that much
smoother and allow for simulations to be easily performed throughout
the design cycle.
It is possible to generate XNET constraints inside of Constraint
Manager without utilizing SigXplorer but the amount of time would be
greatly increased on designs with several complex buses.
Electrical Constraint Sets (ECSETs) can be generated without the use
of a Topology but using SigXplorer gives you a visual representation of
the circuit to provide a higher level of understanding of what needs to
be done.
ECSETs with or without a Topology can be saved off and reused on
other designs to maintain a consistent rule base for similar interfaces
and circuitry.
79
80