Home / Hardware design / 4 STEPS How to verify DDR3 memory layout of your board – using a software

4 STEPS How to verify DDR3 memory layout of your board – using a software

What is the best way to test DDR3 interface by running a memory test?

STEP 1: Do DDR3 calibration

Before you start with any testing, be sure you did DDR3 calibration. Every layout is different and needs specific settings in DDR3 controller registers. Run a calibration tool (often provided by chipset / cpu chip manufacturer). Here are screenshots of running diagnostic tools for an AMD design (from BIOS) and for Freescale design (an calibration utility):

The calibration tool basically goes through different memory settings from when they dont work – through when they work – and then when they dont work again. Based on the measurement, the tool suggest the correct values for DDR3 registers.

STEP 2: Do Basic testing

Run your board with a memory test in your lab for couple of days. For all boards (x86 and ARM boards) I use standard memory test and its variants: memtest86, memtester, … These software run some preprogrammed patterns to stress the memory interfaces to maximum. If there is a problem, this software will find it.

STEP 3: Do Extended testing

Place several boards (minimum 5 is recommend) in an environmental chamber. Run memory test for at least 48h. Change temperature in cycles between -40 + 60 (or what is your board maximum temperature). There must be no errors.

STEP 4: Do Long run test

Leave your board running memory test for weeks (months). Be sure you backup your main power source in case of electricity interruption (otherwise you will need to start again).

Summary

  • if your board passes 1 loop of running memory test – that means nothing
  • if your board passes 2h of running memory test – that means nothing
  • if your board passes 24h of running memory test – that looks promising
  • if your board passes 1 week of running memory test – that looks good
  • if 5 of your boards passes 2 days of running memory test in environmental chamber changing temperature in cycles – your layout is good

Other methods of DDR3 testing

There are two other most obvious methods of verifying DDR3 memory layout, but these may not be an option for smaller companies:

Simulation
You need an expensive software and you need someone who understand it (who understand how to set it up, how to simulate and who can interpret the results). Possibly you can outsource the simulation, but it still cost a lot of money. Also, I have seen a board with great results from simulation and …. DDR3 problems.

Measurement
You need an expensive tool and layout which will support the measurements.

How do you verify DDR3 interface? Leave a comment …


Learn Advanced PCB Layout ONLINE

You will learn how to do Advanced PCB Layout (DDR3, PCIE, SATA, Ethernet, etc.).

How to register for this online course?

Step 1: Register & Login at FEDEVEL Academy website – Click here
Step 2: Select your course (you will need to be logged in) – Click here

Find out more about this course in this short introduction video


Learn Advanced Hardware Design ONLINE
Starting next week. Don’t miss. Register here >>
Special offer THIS WEEK ONLY: Sign up for Advanced Hardware Design Course and Get FREE Altium Essentials Online Course Register here >>

This course will show you how you can design boards more effectively and produce professional results. It provides you tips and tricks to help you to design boards that work the first time.

The course is practically based and will teach you everything by actually doing it. Anyone who is interested can work on his/her own project during the course. By the end of the course you will have learnt how to create professional manufacturing output which you can then use to build your own board.

How to register for this online course?

Step 1: Register & Login at FEDEVEL Academy website – Click here
Step 2: Select your course (you will need to be logged in) – Click here

Find out more about this course in this short (2 minutes) introduction video

Check Also

hdmi fi 1

How to Draw Schematic & Tips to Improve Schematic – Visual Improvements (Part 1)

Pointing out the things what you may need to be careful about, what to improve …

  • Sabry Freh

    Hi Robert, thans for the article. I was wondering if you ever used a high bandwitch digital scope to make the debugging and validation of your layout. The memory test software is of course minimum requirment before going into production but when you end up with your board failling the test, how do you debug to check the signal integrity on the board itself?
    Thanks for your time.

    Sabry

    • http://www.fedevel.com Robert Feranec

      No, I have not measured the signals as I do not have the expensive tool. The best is try to design it correctly. Once the board is failing it may be difficult (imposible) to fix it. You may try to change some memory & memory controller settings, but if there is something wrong in the design, even the measuring the signals may not really help (just confirm it is wrong). Of course, it may be very helpful to see the signals, but you always need to be sure, that buying the expensive tools will pay off (e.g. if you are designing very special boards of FPGA systems, maybe in these cases it could be useful).

  • Bash

    Hi Robert,

    Thanks for this article.
    When doing testing on my ddr3 design, I noticed that 70% are passing with no failures under soak testing (haven’t done temperature stress testing), and the remaining 30% are exhibiting issues specifically with DDR3. Played with the calibration/ddr3 controller settings without getting that to work.
    I even tried reducing the speed of ddr3 memories to less than 100MHz with no change in the results of these 30%.
    Curious if you had ever come up with something like that? could it be a build issue, what more testing can be done to evaluate the layout or at least check the difference. I have done alot of checking on assembly mistakes such as wrong component etc but can’t seem to find any difference between the boards.

    • http://www.fedevel.com Robert Feranec

      It could be hardware or software issue. Hardware: usually bad layout, power problems, etc … Software: wrong controller settings. Try to fit exactly same type of memories what are on reference design and use same settings from the software for reference design. That is what I usually do to verify hardware.