- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
特权同学sdram源程序分析
特权同学SDRAM-测试程序程序分析知识点:sdram控制器,时序约束,测试文件第一部分:基本模块Sdram测试包括外部数据产生模块,fifo模块,sdram控制器,uart-RS232 传输模块。Sdram控制器模块分块三块:控制模块,命令模块,数据传输模块具体来说,为什么要用FIFO 模块呢?是因为外部数据与SDRAM 控制器接收的速率不匹配,外部数据产生速率是FPGA 系统时钟(25MHz),而SDRAM 是100MHz;同样,把SDRAM 中数据通过串口传输出到上位机时,也会有一个速率匹配问题,所以就有两个FIFO,其中一个写FIFO,一个读FIFO。Sdram控制器中控制模块完成初始化,自刷新,读写控制。命令模块有两个状态机,一个是初始化状态,另一个是工作状态。第二部分:各个部分详解1. Sdram控制模块输入引脚有:读、写请求,输出引脚有:写应答(表明正在写),读应答,忙信号(表明正在工作),初始状态,工作状态,计数时钟(用于定义时间段,与数据传输模块紧密联系)因为要用到好多时间参数,就直接建立一个参数文件。这个参数文件不是一个模块,所以不能用module endmodule来表示,里面所有参数有`define 来开始,只是最后命名为.v 文件。要用这个文件参数必须要前面加个“`”。`defineend_trpcnt_clk_r==TRP_CLK, 其中cnt_clk_r与控制模块中cnt_clk_r一致。(这点是新学的)初始化过程分为200us 等待,所有L-band 预充电,8 个预刷新,模式寄存器设置。//------------------------------------------------------------------------------//上电后200us 计时,计时时间到,则done_200us=1//-----------------------------------------------------------------------------reg[14:0] cnt_200us;always @ (posedgeclk or negedgerst_n) if(!rst_n) cnt_200us = 15d0; else if(cnt_200us 15d20_000) cnt_200us = cnt_200us+1b1; //计数assign done_200us = (cnt_200us == 15d20_000);//条件满足则done_200us=1,此后一直保持高电平,因为计数器保持不变,这不同于一个脉冲信号//------------------------------------------------------------------------------//SDRAM 的初始化操作状态机//------------------------------------------------------------------------------这个时间是怎么计算的?主要分析一个这个时间计算相当于用一个计时开关,这个开关就是cnt_rst_n(低电平计数器复位)。在参数文件中,`defineend_trpcnt_clk_r==TRP_CLK 。cnt_clk_r在启动时就一直递增,而达到TRP_CLK 时,也就是end_trp成立,完成标志,关闭开关cnt_rst_n.always @ (posedgeclk or negedgerst_n)if(!rst_n) cnt_clk_r = 9d0;//计数寄存器复位else if(!cnt_rst_n) cnt_clk_r = 9d0;//计数寄存器清零else cnt_clk_r = cnt_clk_r+1b1;//启动计数延时//计数器控制逻辑always @ (init_state_r or work_state_r or cnt_clk_r) begin case (init_state_r)`I_NOP:cnt_rst_n = 1b0;`I_PRE:cnt_rst_n = (TRP_CLK != 0);//预充电延时计数启动`I_TRP: cnt_rst_n = (`end_trp) ? 1b0:1b1; //预充电计数正好是TRP_CLK, 计数结束,清零计数器//------------------------------------------------------------------------------//15us 计时,产生自刷新请求。//每60ms 全部4096 行存储区进行一次自刷新,一行刷新时间是15us,这是一直在循环// ( 存储体中电容的数据有效保存期上限是64m
您可能关注的文档
最近下载
- 装修材料品牌清单(主材、辅材、门窗等).docx VIP
- 道法人教版(2025)8上2.4.2《遵守规则》课件.pptx
- 2025-2026学年人教版(2024)小学体育与健康二年级(全一册)教学设计(附教材目录).docx
- 气调库工程项目可行性研究报告.docx
- 2025年二级矿井维修电工(技师)技能认定理论考试题库资料(含答案).pdf
- 功能性食品学 课件 第8章 益生菌及其活性代谢物.pptx
- 实验室质量管理体系文件.docx VIP
- 电工高级技师实操考试试卷.pdf VIP
- 初中阶段初阶词汇初级-如何记单词.docx VIP
- 中文版安德森吞咽困难量表的信效度和临床应用评价.pdf VIP
文档评论(0)