Hi all,
The latest revision of our DM8169 design uses four x16 memory ICs (MT41K128M16JT-125). It appears that because of the nature of my layout there might be a little too much variance in the lengths of the byte lanes for the code composer leveling program to find matches that suit all lanes. (Note: All net classes are routed to within 1 mil. The guidelines in the datasheet were followed in the design).
EMIF 0 has the following lengths:
Trace Length (inches) | ||||
Byte 0 | Byte 1 | Byte 2 | Byte 3 | |
CLK trace | 2.803 | 2.803 | 2.332 | 2.332 |
DQS trace | 1.537 | 1.32 | 1.348 | 1.142 |
EMIF 1 has the following lengths:
Trace Length (inches) | ||||
Byte 0 | Byte 1 | Byte 2 | Byte 3 | |
CLK trace | 2.887 | 2.887 | 2.42 | 2.42 |
DQS trace | 1.675 | 1.46 | 1.493 | 1.35 |
As you can see, in both cases lanes 1 and 3 are quite a bit shorter than lanes 0 and 2. I think the Excel spreadsheet's averaging of all values is producing seed values that are hitting between higher area and lower areas that don't converge, particularly in EMIF 0 where the variance is most extreme. I have found some values that work at 796.5Mhz, but the windows appear tight and I'm worried that the board will be unstable across the temperature range.
Do you have any suggestions on how I might get some better seed values. I've tried to just get one lane to pass at a time, and while that works somewhat, it appears to confuse the tool a bit.
Thanks,
Tate