groundplaneStart a project

DDR length matching calculator

Converts a DQ to DQS skew budget into allowed length mismatch on your routing layer, and checks up to eight DQ nets of a byte lane against their strobe.

Units
Presets
ps
From the memory controller layout guide. The default is an example, not a spec.
For Known Er,eff, enter Er,eff here.
mm
The strobe pair length for this byte lane.
mm
Enter 0 for unused nets. Add package delay as equivalent length if your SoC vendor publishes it.
mm
mm
mm
mm
mm
mm
mm
Allowed length mismatch for ±10 ps
1.463mm
Each DQ against its DQS, on this layer.
Delay per length
6.836 ps/mm
Effective Er
4.2
Nets over budget
1 of 8: DQ5
Worst skew to DQS (DQ5)
-12.3 ps
Spread across DQ nets
17.77 ps
Byte lane: delay and skew against DQS
NetLength, mmLength, milDelaySkew to DQSStatus
DQS (strobe)30.001181.1205.08 psreference
DQ029.601165.4202.35 ps-2.73 psWithin budget
DQ130.201189.0206.45 ps+1.37 psWithin budget
DQ230.501200.8208.50 ps+3.42 psWithin budget
DQ329.901177.2204.40 ps-0.68 psWithin budget
DQ430.801212.6210.55 ps+5.47 psWithin budget
DQ528.201110.2192.78 ps-12.30 psOver budget
DQ630.101185.0205.76 ps+0.68 psWithin budget
DQ730.301192.9207.13 ps+2.05 psWithin budget
Method

How this is calculated

tpd = √Er,eff / c                      s/m, c = 299 792 458 m/s
allowed mismatch = skew budget / tpd
skew(DQn) = tpd · ( L(DQn) − L(DQS) )
Skew budget
You enter it. It comes from the memory controller vendor layout guide for your SoC and memory type, and differs between LPDDR4, LPDDR4X, LPDDR5 and DDR4 and between data rates. This tool does not supply vendor tolerances.
Layer
Stripline uses the laminate Er. Microstrip uses the Hammerstad and Jensen Er,eff from trace width, height and copper thickness, with no solder mask; a field solver result can be entered directly as Known Er,eff.
Check
Each DQ against the DQS of its byte lane: |skew| must not exceed the budget. Spread is the largest minus the smallest DQ delay.
Not covered
Package pin delay, via barrels and layer changes. Add them as equivalent length per net if your SoC vendor publishes package delays.
Sources
FAQ

Questions

From the layout guide of the memory controller, which is the SoC vendor. It is usually given per byte lane as DQ to DQS, separately from the address and command group to clock. Each SoC vendor sets its own figures for each memory type and data rate, so use the ones for your exact SoC, memory and speed grade.

Signals travel at different speeds on different layers. In Er 4.2 stripline 10 ps is 1.46 mm of trace; on a 0.1 mm microstrip over 0.1 mm of the same laminate with 1 oz copper, about 1.79 mm. A lane routed partly on each layer can match in length and still miss in time.

Yes, when the SoC or memory vendor publishes it. Pin to die lengths inside a BGA package differ from ball to ball. Convert each published package delay to equivalent length and add it to that net before checking the lane.

No. It checks static timing skew from trace length. Crosstalk, reflections, via stubs and power noise also close the eye, and an LPDDR4X or LPDDR5 interface at full speed should be checked with the controller vendor models.

Related
Next step

Designing around a Rockchip SoC? We do the whole board.

Get a board designed