- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
特权同学SDRAM-测试程序程序分析
知识点:sdram控制器,时序约束,测试文件
第一部分:基本模块
Sdram测试包括外部数据产生模块,fifo模块,sdram 控制器,uart-RS232传输模块。
Sdram控制器模块分块三块:控制模块,命令模块,数据传输模块
具体来说,
1. 为什么要用FIFO模块呢?是因为外部数据与SDRAM 控制器接收的速率不匹配,外部数
据产生速率是FPGA 系统时钟(25MHz),而SDRAM 是100MHz;同样,把SDRAM 中数
据通过串口传输出到上位机时,也会有一个速率匹配问题,所以就有两个 FIFO,其中一个
写FIFO,一个读FIFO。
2. Sdram 控制器中控制模块完成初始化,自刷新,读写控制。命令模块有两个状态机,一
个是初始化状态,另一个是工作状态。
第二部分:各个部分详解
1. Sdram 控制模块
输入引脚有:读、写请求,
输出引脚有:写应答(表明正在写),读应答,忙信号(表明正在工作),初始状态,工
作状态,计数时钟(用于定义时间段,与数据传输模块紧密联系)
因为要用到好多时间参数,就直接建立一个参数文件。这个参数文件不是一个模块,所以不
能用module endmodule 来表示,里面所有参数有`define 来开始,只是最后命名为.v 文件。
要用这个文件参数必须要前面加个“`”。`define end_trp cnt_clk_r= =TRP_CLK, 其 中
cnt_clk_r与控制模块中cnt_clk_r一致。(这点是新学的)
初始化过程分为200us 等待,所有L-band预充电,8个预刷新,模式寄存器设置。
//
//上电后200us 计时,计时时间到,则done_200us=1
//
reg[14:0] cnt_200us;
always @(posedge clkornegedge rst_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(低电平计数器复位)。在参数文件中,`define end_trp cnt_clk_r= =TRP_CLK 。
cnt_clk_r 在启动时就一直递增,而达到TRP_CLK 时,也就是end_trp 成立,完成标志,关
闭开关cnt_rst_n.
always @(posedge clkornegedge rst_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 orwork_state_rorcnt_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,这是一直在循环
//( 存储体中电容的数据有效保存期上限是64ms )
//
这怎么与行选通配合呢?应该是在15us 内进行了一次行有效跳转。
刷新操作分为两种:自动刷新(AR)和自刷新(selfrefresh,SR),不论是何种刷新方式,都
不需要外部提供行地址信息,因为这是一个内部的自动操作。对于AR,SDRAM 内部有一
个行地址生成器(也叫刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中所
有存储体进行,所以无
您可能关注的文档
- 下班抓紧谈恋爱剧情介绍(1.doc
- Factor-oracle,-Suffix-oracle-(extended-abstract).pdf
- 有孩子看一看吧.doc
- 羽毛球步伐攻略——回动.doc
- 高中英语必修五Unit-05-C.ppt
- 怎样能够完成一次驾车环球旅行.doc
- 高大上深圳欢乐谷新年倒数活动只要66元,劲多嗨爆活动限量50份~.pdf
- 大连欧联雅思培训—雅思听力高频核心词同义词替换.docx
- 高中英语课件freedom-fighters-warming-up.ppt
- 旅游美联英语-拉斯维加斯.docx
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
文档评论(0)