如题,使用的内存型号为MT41K256M16HA-125IT,这是个镁光DDR3 1600内存
按照datasheet,填写《DDR3 Register Calc v4.xlsx》如下
因为在官方文档《TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Silicon Revision 1.0, 2.0 Silicon Errata》(sprz334h.pdf,p63)中提到不支持1600数据速率:
Usage Note 14 DDR3 Performance Limited to 1333MT/s Usage NoteRevision(s)
Affected: 1.0, 2.0
Details: The DDR3 interface is currently limited to a maximum transfer rate of 1333MT/s. It canbe configured to operate at any rate from 800MT/s to 1333
因此将《DDR3 Register Calc v4.xlsx》和《DDR3 PHY Calc v11.xlsx》里的时钟填为666.67MHZ(上图里的参数值是800Mhz下的值,改为666.67M之后这些值有的会变化。),实际配置DDR时钟也是666.66MHZ(示波器确认),使用两个表格里计算的寄存器值做leveling之后,内存测试不通过(读写值不同)
只有将《DDR3 Register Calc v4.xlsx》和《DDR3 PHY Calc v11.xlsx》里的时钟填为800MHZ,实际配置DDR时钟仍是666.66MHZ时,内存测试才能通过。
这是为什么呢?前一种配置才是和实际情况一致的,为什么反而不行呢?
Shine:
DDR3 PHY Calc是否有根据您板子布线的参数做修改?
枕水:
回复 Shine:
修改了
fly-by布线
DQS和CLK都是差分线,取的平均值
Microstrip length (inches) Stripline length (inches) Delay (ps)
DQS0 0.000 1.336 223
CK_0 0.000 2.608 436
DQS1 0.000 1.205 201
CK_1 0.000 2.608 436
DQS2 0.000 1.171 196
CK_2 0.000 3.090 516
DQS3 0.000 1.094 183
CK_3 0.000 3.090 516
DQS4 (C665x DQS0) 0.000 1.252 209
CK_4 (C665x CK_0) 0.000 4.066 679
DQS5 (C665x DQS1) 0.000 1.159 194
CK_5 (C665x CK_1) 0.000 4.066 679
DQS6 (C665x DQS2) 0.000 1.391 232
CK_6 (C665x CK_2) 0.000 4.543 759
DQS7 (C665x DQS3) 0.000 1.385 231
CK_7 (C665x CK_3) 0.000 4.543 759
DQS_ECC 0.000 0.997 166
CK_ECC 0.000 3.574 597
Shine:
回复 枕水:
这个一般是由信号完整性和PHY的不正确配置引起的,请看一下是否按照附件KeyStone I DDR3 interface bring-up Application Report (SPRACL8) 文档配置的?spracl8.pdf