How to Route DDR3 Memory and CPU fan-out

April 12, 2016 Robert Feranec

It's becoming more and more inevitable that board designers have to do High edge rate (high speed) PCB designs when working with microcontrollers. With the power of CPU's like the Freescale iMX6 multi-core ARM device family, but at very low "cost per MIP", it's more and more desireable to use devices like this to enable rich software and user experiences in your product. But using these super-microcontrollers bares with it the challenges of high speed, dense memory interfaces with DDR3. In this guest blog, Altium user Robert Feranec of Fedevel Academy, shows us some highly valuable tips on DDR3 memory routing, based on his open-source hardware design of the iMX6 Rex, a compact and powerful Single Board Computer development kit. Read on and find the links in the blog to download the design as well.

DDR3 memory is so pervasive; it’s almost inevitable that professional PCB designers will face a board they must route using it. This article gives you tips to properly fan-out and route DDR3 interfaces, even in very high density and tightly packed board designs.

DDR3 Design Rules and Signal Groups

Everything starts with the recommended high speed design rules for routing DDR3 in groups. During DDR3 layout, the interface is split into the command group, the control group, the address group, as well as data banks 0/1/2/3/4/5/6/7, clocks and others. It is recommended that all the signals which belong to the same group should be routed “the same way” ie. using the same topology and layer transitions.

Figure 1: All signals in the DATA 6 Group are routed “the same way”, using the same topology and layer transitions.

As an example, consider the routing sequence shown in Figure 1. All the DATA 6 group signals go from Layer 1 to Layer 10, then to Layer 11 and after that to Layer 12. Every signal within the group makes the same layer transitions and generally takes on the same routing distance and topology.

One of the advantages of routing the signals this way is that during length tuning (a.k.a. delay or phase tuning) the z-axis length in the vias may be ignored. This is because all the signals routed the same way will have exactly the same via transitions and lengths through vias.

Creating DDR3 Groups

Altium Designer supports a simple way of creating the necessary signal groups. This step is done in the project’s schematic. First, a blanket is placed around each set of nets that groups are being created from. Then a net class PCB directive is attached to the edge of the blanket to apply a net class to the group. An example of this is shown in Figure 2.

 Figure 2: Blankets and PCB directives are used to create net class groups for DDR3 routing.

Assigning colors to a group

After we import the new Net classes to our PCB (through the Engineering Change Order (ECO) underDesign » Update PCB Document...), it is very useful to assign different colors to each group, to make routing easier to mentally follow. Go to the PCB panel, right-click on the group (net class) you would like to assign a color to, and choose Change Net Color from the popup menu, as shown in Figure 3.

Figure3.png

 Figure 3: Assigning different colors to each group can make routing easier to mentally follow.

Once you have chosen a color, right click on the net class or net again and choose Display Override » Selected ON. This ensures that the net color you selected overrides the layer color of whatever layer is currently used by objects of that net.

If you haven’t turned on the Net Color Override, the nets will not have the color you selected. In this case, press toggle the View » Net Color Override Active option or use the F5 key to enable this setting globally (for all the nets). Now you are ready to fanout the DDR3 interface of the CPU.

Do you plan ahead when working on CPU DDR3 fanout? 

Choosing the correct via style for a particular memory group and deciding on how PCB layers will be used can make DDR3 layout a lot easier. Assigning different colors to each memory group helps to visualize the interface.

Figure6.png

Figure 4: Choosing a correct via size can help save space for more tracks.

A microvia (μVia) takes less space compared to a Through Hole Via. This allows us to fanout more tracks in the same area. Microvias also save space on the other layers. The free space can be used for tracks.

Why use microvias for Address, Command, and Control signals?

The Address, Command, and Control group have the highest number of signals from the memory groups. If we chose Through Hole Vias, we would use a lot of space on all the layers. By choosing microvias, we only need the space on Layer 3 and because a microvia is smaller in diameter, we also have more space to fanout the signals on Layer 3.

Figure4.png

Figure 5: Two or three tracks can fit between microvias, in the same space needed for one track

between Through Hole Vias.

Why use Through Hole Vias for the “closest groups” to the Address, Command, and Control Group?

Some signals of the Address, Command, and Control group will need the space below the “closest groups”.

ClosestGroups.png

Figure 6: Some of the Address, Command, and Control tracks have to be routed under the pads

of the “closest groups”.

When the Address, Command, or Control signal group is routed through microvias on Layer 3, there will be free space left under this group on Layer 10. This space can be used to fanout the “closest groups”.

Figure5.png

Figure 7: Free space left under groups routed with microvias can be used to fanout the “closest groups”.

Why do the “outside groups” use microvias?

From the picture above, it’s clear that there will not be space left on the Layer 10 to fanout the “outside groups”. So placing the “outside groups” on layer 3 and using microvias is the result of the fanout planning.

Note: The same Layer / via / microvia “fanout planning technique” can be applied on the other interfaces too (e.g. PCI, ISA, … ). This way, even really packed and very dense designs can be routed.

Conclusion

By a bit of care and planning ahead, routing and length tuning DDR3 fanouts can be a stress-free process, even on the most compact and densely packed designs. The iMX6 Rex is a terrific example of this care and planning, designed in part as a tool for showing how it’s done. By following Robert’s plan and steps any DDR3 design can be completed in far less time and with much greater likelihood of designing it right the first time.

A complete Altium project with the DDR3 layout from the screenshots can be downloaded at:http://www.imx6rex.com/.

Robert Feranec is an advanced Altium Designer user and professional contract design engineer. Robert’s web site has more information is you want to get in touch with him to discuss this and other open source hardware projects. Visit http://www.fedevel.com for more info.

Category: 

About the Author

Biography

More Content by Robert Feranec
Previous Post
Altium
Altium

Learn how PCB designers like you can automate high speed design with our free resource about XSignals. http...

Next Article
Announcements: Altium Designer 15.0

On behalf of the Altium Development team, I’m excited to announce the release of Altium Designer 15.0. Alti...

×

...or download the PDF to keep learning offline

First Name
Last Name
Country
Thank you!
Error - something went wrong!