特权同学sdram源程序分析

特权同学sdram源程序分析

ID:38524680

大小:205.84 KB

页数:9页

时间:2019-06-14

特权同学sdram源程序分析_第1页
特权同学sdram源程序分析_第2页
特权同学sdram源程序分析_第3页
特权同学sdram源程序分析_第4页
特权同学sdram源程序分析_第5页
资源描述:

《特权同学sdram源程序分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、特权同学SDRAM-测试程序程序分析知识点:sdram控制器,时序约束,测试文件第一部分:基本模块Sdram测试包括外部数据产生模块,fifo模块,sdram控制器,uart-RS232传输模块。Sdram控制器模块分块三块:控制模块,命令模块,数据传输模块具体来说,1.为什么要用FIFO模块呢?是因为外部数据与SDRAM控制器接收的速率不匹配,外部数据产生速率是FPGA系统时钟(25MHz),而SDRAM是100MHz;同样,把SDRAM中数据通过串口传输出到上位机时,也会有一个速率匹配问题,所以就有两个FIFO,

2、其中一个写FIFO,一个读FIFO。2.Sdram控制器中控制模块完成初始化,自刷新,读写控制。命令模块有两个状态机,一个是初始化状态,另一个是工作状态。第二部分:各个部分详解1.Sdram控制模块输入引脚有:读、写请求,输出引脚有:写应答(表明正在写),读应答,忙信号(表明正在工作),初始状态,工作状态,计数时钟(用于定义时间段,与数据传输模块紧密联系)因为要用到好多时间参数,就直接建立一个参数文件。这个参数文件不是一个模块,所以不能用moduleendmodule来表示,里面所有参数有`define来开始,只是最

3、后命名为.v文件。要用这个文件参数必须要前面加个“`”。`defineend_trpcnt_clk_r==TRP_CLK,其中cnt_clk_r与控制模块中cnt_clk_r一致。(这点是新学的)初始化过程分为200us等待,所有L-band预充电,8个预刷新,模式寄存器设置。//------------------------------------------------------------------------------//上电后200us计时,计时时间到,则done_200us=1//--------

4、---------------------------------------------------------------------reg[14:0]cnt_200us;always@(posedgeclkornegedgerst_n)if(!rst_n)cnt_200us<=15'd0;elseif(cnt_200us<15'd20_000)cnt_200us<=cnt_200us+1'b1;//计数assigndone_200us=(cnt_200us==15'd20_000);//条件满足则done_20

5、0us=1,此后一直保持高电平,因为计数器保持不变,这不同于一个脉冲信号//------------------------------------------------------------------------------//SDRAM的初始化操作状态机//------------------------------------------------------------------------------这个时间是怎么计算的?主要分析一个这个时间计算相当于用一个计时开关,这个开关就是cnt_rst_n

6、(低电平计数器复位)。在参数文件中,`defineend_trpcnt_clk_r==TRP_CLK。cnt_clk_r在启动时就一直递增,而达到TRP_CLK时,也就是end_trp成立,完成标志,关闭开关cnt_rst_n.always@(posedgeclkornegedgerst_n)if(!rst_n)cnt_clk_r<=9'd0;//计数寄存器复位elseif(!cnt_rst_n)cnt_clk_r<=9'd0;//计数寄存器清零elsecnt_clk_r<=cnt_clk_r+1'b1;//启动计数

7、延时//计数器控制逻辑always@(init_state_rorwork_state_rorcnt_clk_r)begincase(init_state_r)`I_NOP:cnt_rst_n<=1'b0;`I_PRE:cnt_rst_n<=(TRP_CLK!=0);//预充电延时计数启动`I_TRP:cnt_rst_n<=(`end_trp)?1'b0:1'b1;//预充电计数正好是TRP_CLK,计数结束,清零计数器//-----------------------------------------------

8、-------------------------------//15us计时,产生自刷新请求。//每60ms全部4096行存储区进行一次自刷新,一行刷新时间是15us,这是一直在循环//(存储体中电容的数据有效保存期上限是64ms)//------------------------------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。