FPGA外挂SDRAM操作调试摘记
0赞1. SDRAM的读周期
ACTIVE------Read Command------CAS Delay-------Data Out--------Auto Precharge-------Idle
2. SDRAM的写周期
ACTIVE------Write Command------Data In--------Auto Precharge-------Auto Refresh-------Idle
3. SDRAM操作特点
1). 行列地址复用,地址线在不同的命令下提供不同的地址;
2). 需要定时刷新;
3). 读写时,需要先激活行。换页读写时需要预充将关闭的行,然后再激活新的行读写;
4). 正常工作之前配置模式寄存器。
4. SDRAM控制器要用到的几个关键时间参数
1)、tRCD,行地址有效(即ACTIVE命令)延时tRCD时间后才能发生读写命令(美光规定至少18到20ns);
2)、tRP,发送完预充电命令Pre,要延时tRP时间后才能发送其他命令(不包括NOP)(Micron规定至少18到20ns);
3)、tMRD,发送设置模式寄存器命令后要延时tMRD才能发生其他命令(不包括NOP)(Micron规定至少2个时钟周期);
4)、tREF,两个自动刷新命令之间的最大间隔。目前公认的标准是,存储体中的电容的数据有效保存周期上限是64ms(当然不能页大小会不同,可以查手册获取该刷新周期),需要注意的是在自动刷新模式下,每发送一次刷新命令,芯片内有个行计数器,会自动加1,故实际设计中可以设计一个自循环模块来给存储器进行循环地刷新以保证数据不丢失;
5)、tRFC,在发送自动刷新命令后,要延时tRFC时间才能发送其他命令(Micron给定最小60到70ns);
6)、CAS Latency(CL),只有在读的情况下采用,表示发送完读命令后,再延时CAS Latency,SDRAM就出数据;
7)、tRAS,这个其实是ACTIVE命令和PRECHARGE命令之间的时间间隔要求,美光给出最小37到44ns,最大不能大于120us。这个时间要求在突发模式下很容易满足,所以一般操作关注较少,但是在single read或者single write操作模式(即burst len=1)下必须十分注意这个参数(Keep it in mind that tRAS should not be violated)。
8)、tWR,写恢复时间(write recovery time),即写的最后一个数据和PRECHARGE命令之间间隔时间,同tRAS这个参数一样在single write操作的时候必须格外注意,Micron规定至少1clk+6ns到1clk+7.5ns或者12到15ns。
5. 在实际产品应用中必须用到single operation模式,所以调试的时候遇到些问题和通常的SDRAM操作模式不太一样。实际应用中,在上述的读周期中也有加入Auto Refresh,并讲Auto Precharge均改为Manual Precharge,即如上述二图所示。
6. 调试结果
1)、Single Read(连续多个,实际产品应该是随机-Random读)
2)、Single Write