这段时间接触了一下DDR和nandflash,板子总出现问题,不能正常的跑起来,感觉时DDR或nandflash出了问题,但又对他们不熟,找不出来。
花了一点时间看了一下,有了一点基本的了解。
关于DDR:
RAS:row address Strobe
CAS:column address Strobe
DQS:数据选取脉冲.
DQS是数据Strobe,源同步时钟,数据的1和0由DQS作为时钟来判断。CLK/DQS要严格等长,地址线组内等长,CLK的差分
线最好控制在5mil以内,超频的有效窗口变大
对DDR的理解:
DDR是通过行地址和列地址共同选取寄存器单元的。DDR的总容量确定,row address 决定了page的大小,也就是说有多少行,就有多少page,DDR的一行对应一个page。column address对应了同一行内不同的寄存器地址。row address确定时,column address 的变动只是同一page内的不同寄存器的寻址,所以读数据时 cas 延迟很重要,它的大小决定了读取数据的快慢,因为读数据时经常是在同一page内读的;关于cas延迟,有人这样叙述,"CAS延迟(或简称为延迟)是存储器响应命令所需要的时间。狭义地说是指存储器接到读数据命令与存储器传送第一个数据之间的时间间隔。"。
对于以上原理,网上有一段话讲的很好,摘抄如下:
"内存延迟时间有个专门的术语叫“Latency”。要形象的了解延迟,我们不妨把内存当成一个存储着数据的数组,或者一个EXCEL表格,要确定每个数据的位置,每个数据都是以行和列编排序号来标示,在确定了行、列序号之后该数据就唯一了。内存工作时,在要读取或写入某数据,内存控制芯片会先把数据的行地址传送过去,这个RAS信号(Row Address Strobe,行地址信号)就被激活,而在转化到行数据前,需要经过几个执行周期,然后接下来CAS信号(Column Address Strobe,列地址信号)被激活。在RAS信号和CAS信号之间的几个执行周期就是RAS-to-CAS延迟时间。在CAS信号被执行之后同样也需要几个执行周期。"
关于nandflash:
nandflash是串行存储器件,其中由一个8bit或16bit的数据口,然后有几个控制信号线,如下:
CE (Flash Chip Enable),
RE (Read Enable for read operations),
WE (Flash Write Enable),
CLE (Flash Command Latch Enable),
ALE (Flash Address Latch Enable)
通过数据口和控制线,完成了数据的读取或存储。