- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SDRAM的初始化.
SDRAM的初始化
先引一个图说明一下SDRAM的初始化过程吧,这样来的直观一些:
这便是SDRAM在开机时的初始化过程,上电后要有200us的输入稳定期,在这个时间内不可以对SDRAM的接口做任何操作;200us以后就是要对所有L-Bank预充电,再往后给SDRAM 8次的刷新命令;最后就是要对SDRAM的模式寄存器进行设置。上面的这些步骤就是SDRAM在上电后的全部初始化过程。在进行完了初始化过程以后就可以正常的对SDRAM进行读写了,当然了,在每隔一段时间后就要对SDRAM进行一次预刷新操作以防止数据丢失。
下面就来解析下时序控制模块里的部分关于SDRAM初始化的verilog程序(sdram_ctrl.v):
//-------------------------------------------------------------------
//上电后200us计时,计时时间到,则done_200us=1
//-------------------------------------------------------------------
wire done_200us; //上电后200us输入稳定期结束标志位
reg[13:0] cnt_200us;
always @ (posedge clk or negedge rst_n)
if(!rst_n) cnt_200us = 14d0;
else if(cnt_200us 14d10000) cnt_200us = cnt_200us+1b1; //计数
//200us定时到,则done_200us=1
assign done_200us = (cnt_200us == 14d10000);
当200us计时时间结束以后,SDRAM的初始化进入第二步,所有L-Bank预充电状态,如何预充电呢?在这之前我们得先把SDRAM的各个端口的作用搞清楚了。看下图,K4S641632的datasheet中PIN的定义。
在我的设计中,吧CKE,CS_n,RAS_n,CAS_n,WE_n这五个信号端口打包作为SDRAM的命令了。如下定义:
// FPGA与SDRAM硬件接口
output sdram_cke; // SDRAM时钟有效信号
output sdram_cs_n; // SDRAM片选信号
output sdram_ras_n; // SDRAM行地址选通脉冲
output sdram_cas_n; // SDRAM列地址选通脉冲
output sdram_we_n; // SDRAM写允许位
reg[4:0] sdram_cmd_r; // SDRAM操作命令
assign {sdram_cke,sdram_cs_n,sdram_ras_n,sdram_cas_n,sdram_we_n} = sdram_cmd_r;
关于命令部分其实主要是在命令控制模块里赋值的。这里还是回到正题预充电,预充电其实只要给SDRAM的操作命令sdram_cmd_r赋一个相应的命令,只要保持一个时钟周期,然后sdram_cmd_r回到NOP命令,预充电大概需要保持1个时钟周期就行了(根据datasheet里的时间参数)。
看看时序图吧:
第一根粗黄线是预充电命令,可以看到这时候sdram的cs,cke,ras,cas,we都是和它前一个时钟周期(处于NOP命令)是不同的,只是保持了一个时钟周期,又回到了NOP命令,这样在第二条黄线处就算完成了预充电,往后进行的是预刷新操作。
说到这,再补充一下关于SDRAM的时钟问题,SDRAM有一个输入始终引脚sdram_clk,它是SDRAM的工作时钟,而不是FPGA的工作时钟,在我的程序里,sdram_clk = ~clk;也就是说它和FPGA的系统时钟是反向的。这样以来,在FPGA时钟的上升沿可以对SDRAM的各个命令端口赋值,然后过了半个时钟周期正好是sdram_clk的上升沿,此时SDRAM锁存相应的数据地址或者命令。
反向的时钟如下:
预充电完成了就要连续进行八个预刷新,时序如下:
从第一根黄线开始到第二根黄线为止,正好是八次的预刷新操作。从图上不难看出预刷新操作需要的等待时间要比预充电长的多,大约需要6个时钟周期(也有的资料说要9个时钟周期,这和系统时钟有关吧,应视具体情况而定)。
发送一次预刷新命令,然后回到NOP命令等待完成,前后八次。
在往后是模式寄存器设置,看下图:
上图直观明了我就不多废话了。和前面不同的是在这一步,不仅要送命令,还要给BA0-BA1以及A0-A11端口送数据,也就
您可能关注的文档
- SAWBAW和无线的未来.docx
- Sb2Te3拓扑绝缘体材料的第一性原理计算..doc
- SBH11液压站..doc
- SBS与聚氯乙烯防水卷材施工工艺..doc
- SBS改性沥青混凝土下面层分项开工报告..doc
- SBS防水交底..doc
- SBS防水卷材防水维修施工方案..docx
- SBS改性沥青防水卷材施工方案2..doc
- SBW三相电力补偿式稳压器技术参数..docx
- SC200施工升降机基础施工方案..doc
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
最近下载
- 理财教材《小狗钱钱》.pdf
- 护理品管圈问题解决型之提高慢性肾功能不全患者饮食指导知晓率.pptx VIP
- 复旦投毒案林森浩(详细的参考资料整理).docx
- Axure RP原型设计图解微课视频教程(Web+App)(刘刚)PPT全套完整教学课件.pptx
- 2024年国家电网招聘之财务会计类题库附参考答案(轻巧夺冠).docx
- 1精益管理倡导者培训.pptx
- 整本书阅读 《朝花夕拾》(同步课件) 七年级语文上册(统编版2024).pptx
- 2024-2029年中国房地产投资行业发展分析及投资风险预警与发展策略研究报告.docx
- 文旅融合背景下的文化遗产活化措施.pptx VIP
- 非物质文化遗产活化策略PPT.pptx VIP
文档评论(0)