SDRAM仿真.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SDRAM仿真

SDRAM的工作过程: 上电后进入200us的输入稳定期,空操作(NOP) 向SDRAM发送1次(1个时钟周期)预充电(precharge)命令,然后保持N个时钟周期NOP操作 向SDRAM发送8次刷新(refresh)命令,具体发送过程后面会介绍 设置SDRAM工作模式寄存器 初始化完毕,可以开始读写操作 模式寄存器: 模式寄存器设置值为: 0x0,对应到上图可以看出,我的选择为: 操作模式:突发读/突发写 潜伏期:个时钟周期 突发传输方式:顺序 突发长度: SDRAM的命令 RAS_N CAS_N WE_N 空操作(NOP) 1 1 1 预充电(PRE) 0 1 0 刷新 0 0 1 行有效 0 1 1 开始读 1 0 1 开始写 1 0 0 模式寄存器设置 0 0 0 CKE变高,片选信号CS_变低,SDRAM开始动作, SDRAM启动后的命令为111,即NOP操作,这一过程要持续近20us,称之为输入稳定期 2、预充电,对应命令010 注意每个命令之后都有执行一段时间的NOP操作,这使得SDRAM有时间执行命令。 ,对应命令001。 注意每个命令之后都有执行一段时间的NOP操作,这使得SDRAM有时间执行命令。 ,对应命令000。 从波形图可以看到,加载模式寄存器命令为000,此时0x037,与设置的相符。从这幅图中应该可以很清楚的看到,SDRAM时钟频率为100Mhz,同时与FPGA的SDRAM控制器的100MHZ时钟存在相位差,这是必要的。因为,在SDRAM控制器的时钟上升沿,产生命令,然后在随后的SDRAM时钟上升沿,命令已经稳定了,这样就方便了SDRAM顺利的取得命令。数据传输也是同样的道理。 从图中可以看出,首先SDRAM控制器发出了行有效命令(011),选中了第0个逻辑块的第0行,然后在个时钟周期后,发出了写命令(100),列地址为0,同时不加延迟的把第一个数据放在了sdram的数据总线上,该命令执行一次,可以看到写入了个16bit数据,这也就对应了前面所说的突发长度。 在写命令时,地址线的值为 0x400,其中的4对应 A10,给它设置1,表示允许自动预充电。SDRAM在每次读取操作后,逻辑为1的数据被读取后会放电,很有可能会导致其逻辑值变为0,故,需要再写入数据,保证读取后值不丢失。所以,自动预充电还是蛮必要的。 写完256个数据之后发送一次预充电命令(010)关闭激活的行。 5、读数据。 当读FIFO中数据个数据小于256时则发送读命令。从图中可以看出,首先SDRAM控制器发出了行有效命令(011),选中了第0个逻辑块的第行,然后在个时钟周期后,发出了写命令(10),列地址为0,…… 、512。在读完最后一个数的前两个时钟时发送预充电命令(010)关闭当前行。 读0x001行。 读第0x002行,

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档