专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
FPGA
【开源骚客】《轻松设计SDRM控制器》连载⑥
2020-02-02 13:03
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
FPGA
9489
1
1
本帖最后由 OpenSoc 于 2017-5-10 13:25 编辑
SDRAM写模块讲解
第五讲介绍完仲裁机制之后,相信很多朋友都在想,仲裁模块写好了,那写模块、读模块等与SDRAM相关操作的模块应该怎么写代码呢?
是的,在学习完仲裁机制之后只是相当于给SDRAM控制器建立了一个框架,这个框架中的内容还没完成。
在本节内容中,我们将会把如何设计SDRAM的写模块一点一点详细的分享出来。在完成写模块之后,相信你很快就可以根据写模块的设计思路将读模块也设计出来。
本节主要内容如下:
★
SDRAM
器件工作原理;
★
SDRAM
写模块状态机讲解;
★
SDRAM
写模块时序设计。
一、
SDRAM
器件工作原理
为了让我们更好的设计SDRAM控制器,我们必须明白SDRAM器件的工作原理。当然,我们这套教程所讲的SDRAM控制器也是根据官方datasheet提供的资料进行设计的。Kevin也在此提醒大家,不要害怕看datasheet,看懂datasheet是你在编写代码之前的一项必不可少的工作。
该状态图就是SDRAM器件本身工作的流程图了,该图开始于“Power On”状态,即SADRAM上电完成的状态。
在看这个状态图时,需要注意的一个地方是右下角的说明:
粗线表示自动跳转,细线表示需要执行相应的命令才会跳转到下一个状态。
大家可以仔细看下这个状态图,对于掌握SDRAM
的工作流程是非常有帮助的。
在这个状态图中,我们需要重点关注
从
“IDLE”
状态跳到“WRITE”
状态的路线,以及从“WRITE”
状态跳到“IDLE”
状态的路线
。
IDLE
状态到WRITE
状态:
★
在IDLE状态需要先给ACT命令激活某一行,此时处于Row Active状态;
★
在Row Active状态之后,给Write命令则会进入WRITE状态;
★
在WRITE状态后,再给一次Write命令,就可以继续写入数据。
WRITE
状态到IDLE
状态:
★
在WRITE状态给PRE命令,则SDRAM将跳出WRITE状态进入Precharge状态;
★
在Precharge状态后,就会自动进入IDLE状态了。
要从WRITE状态跳到IDLE状态的一个原因是,我们需要进行刷新操作,进入刷新操作,必须从IDLE状态进入。
另外一点,可能有些朋友看到了WRITE状态下边还有一个WRITEA状态,的确,但是细心的你有没有发现当处于WRITEA状态时,它会自动的进入到Precharge状态。也就是说WRITEA比在WRITE状态的工作效率要低很多,所以在某些对数据交互速度较快的场景中,我们使用WRITE状态。在本套教程中,我们也只讲WRITE状态。速度快的都能搞定,那速度慢的操作也是不在话下的。
二、
SDRAM
写模块状态机讲解
在这之前,我们先看下datasheet中提供的SDRAM写时序图:
该时序图与之前datasheet提供的工作状态图是完全吻合的,对于时序图中的参数,大家也可以在datasheet中找到。
虽然现在我们已经明白了SDRAM写操作的相关原理,但是这还远远不够,我们还需要考虑更多的事情。
假设我们现在需要往SDRAM中写入两行数据,那什么时候可以退出仲裁状态机的写状态:
★
数据已经写完;
★
SDRAM需要进行刷新操作;
★ 数据未写完,需要激活下一行继续写。
见图(3)
这是我们SDRAM控制器写模块使用到的状态图,这样可以完美解决我们担心的问题。
三、
SDRAM
写模块时序设计
对于这两个时序图,Kevin在此不做介绍,SDRAM写模块的代码编写,也是根据这两个时序图来进行的。
当然好学的你,也可以先尝试着参考着两个时序图来编写SDRAM的写模块。
如在设计SDRAM写模块时有疑惑,可以观看与本教程电子书配套的视频教程。视频教程中的所有代码均为现场编写,现场调试。
转载请注明:邓堪文博客 » 【开源骚客】《轻松设计SDRAM控制器》第六讲—SDRAM写
发送
看不清?
0条回答
一周热门
更多
>
相关问题
如何用FPGA驱动LCD屏?
5 个回答
请教一下各位专家如何用FPGA做eDP接口?
6 个回答
FPGA CH7301c DVI(显示器数字接口)没有数字输出
7 个回答
100颗FPGA的板子,开开眼界
6 个回答
求教自制最小系统版
10 个回答
基于FPGA的X射线安检设备控制器
2 个回答
CycolneIVGX核心板,可扩展PCIE,光纤接口,大家来鉴赏一下
6 个回答
关于VHDL或Verllog程序稳定性的问题
11 个回答
相关文章
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
Xilinx的FPGA开发工具——ISE开发流程
0个评论
基于FPGA的详细设计流程
0个评论
干货分享,FPGA硬件系统的设计技巧
0个评论
一种通过FPGA对AD9558时钟管理芯片进行配置的方法
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
FPGA
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>