This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6670 DDR3 Leveling Results

We have a custom board with 2 6670 (rev 2.0) DSPs w/ 2GB of memory (Micron MT41J256M16RE-125).  On the boards, the 2 DSPs are laid out exactly the same (just rotated 180 degrees).  We are having problems w/ reliably reading/writing the DDR3.  We basically have a brute force data read/write to all of the memory, and are experiencing random read/write errors.  We have 3 boards, and on all 3 one DSP has read and/or write issues, and the other seems to be fine.  On one board, the DSP w/ issues has random read and write problems, when that happens, it is usually in blocks, and always on byte lanes 0, 1, and 3.  On another board it only has random read errors (usually isolated single reads) happening on the lower 4 lanes (0-3).  On the third one, it also initially had random read errors, however once we implemented the Workaround 3 for the read eye training from the erratta, it seems to work fine (had no effect on the other boards).

My main question is, is there a way we can see the auto leveling results other than if any of the leveling times out in the STATUS register?  Is there a way we could see what any of these "Autoleveling" values are, so we can compare the read eye training or gate training between DSPs or boards.  I could not find any documentation on what the values are once the autoleveling is complete.  We think having this information could help us determine if there is something in the initialization we doing wrong, or if there was some sort of board fabrication error.  We're kind of taking shots in the dark as to what the issue could be.

Any information on this or other suggestions on how we could resolve this issue would be greatly appreciated.

Erick

  • I've noticed that DDR3_CONFIG_1, DDR3_CONFIG_11, DDR3_CONFIG_13, and the lower 24 (or 27) bits of DDR3_CONFIG_12,  are not documented or stated as reserved.  Playing around more w/ the initial config register settings (mainly the delay per inch setting in the "DDR3 PHY Calc v8.xlsx" spreadsheet), it seems as if some of these registers give some sort of feedback as to how the leveling was done.  Is there any internal documentation as to what these register values are and what they mean?

  • Hi Erick,

    The autoleveling values are not accessible form the memory map of the C6670.  Can we step back and get some additional information on what you're seeing? You stated that you have two DSPs on the board with identical layout but rotated 180 degrees.  Are you seeing the failures on all of the DSPs?  Is there any consistency to the lanes that are failing?  Can you provide the spreadsheet for the register calculation with your values entered?  Can you provide the details of the trace lengths for all of the DDR signals? 

    This is where we generally start with these debug sessions.

    Regards, Bill

  • Hi Bill,

    The spreadsheet values we use are attached, the added sheet1 has all of our etch reports. The dielectric constant of the board should be 3.0 (although we're tried using 180 and 160 ps/inch values with similar/same results).

    Whatever the case is, DSP1 (P1) seems to always be fine, memory tests run over night w/o any failures.

    DSP0 (P0) works for a while, but we then run into random read and/or write errors, usually on byte lanes 2 and 3, although sometime it also happens on lanes 0 and 1.  lanes 4, 5, 6, and 7 seem to always be fine.

    Erick

    DDR3 PHY Calc v8.zip
  • Hi Erick,

    Based on your description and the numbers in the spreadsheet I doubt this is a leveling error.  The more likely scenario is something on the PCB that is close to routing for lane 2&3 that is adding some instability to the signals.  Have you been able to probe any of the signals on the failing lanes and compare them to the passing lanes so see if there is any interference on the lines?  Is that memory close to a noise source such as the power supply or is it routed over a plane break that doesn't exist for the other DSP?

    Regards, Bill