- 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控制器设计
摘要 本文运用FPGA技术来实现SDRAM控制器的设计,采用模块化设计方法,将控制器分为四个主要模块:SDRAM控制器模块、控制接口模块、命令模块和数据传输模块。SDRAM控制器模块调用其他三个模块并将设计整合,为SDRAM提供了一个同步控制接口和多个控制寄存器,可实现的功能:初始化SDRAM;将SDRAM复杂的读写时序简单化;产生周期性的自刷新命令。控制器通过了MAX+plusⅡ软件的仿真,仿真结果表明通过控制器接口可使得对SDRAM的操作变得异常简单。此外用Verilog硬件描述语言编程实现的电路设计,参数可以灵活修改,使电路设计的通用性和可移植性大大增加。
关键词 FPGA;SDRAM;控制器
中图分类号:TP333 文献标识码:A 文章编号:1671—7597(2013)041-024-02
在信息处理中,特别是在实时视频图像的处理中,需要大量使用SDRAM实现数据缓存,但SDRAM复杂的控制逻辑,严格的时序要求,令使用很不方便。为使用户能很方便地操作SDRAM,本文介绍了一种基于FPGA的通用SDRAM控制器软核的Verilog设计,几乎包括SDRAM的所有操作模式,故用户只要根据器件的参数进行修改,就可实现自己对特定SDRAM的特定工作模式的利用。
1 SDRAM简介
在本次设计中,采用Hynix公司的4Banks×1M×16bit HY57V641620作为控制目标,其工作时钟能达到133MHz,是一种高速存储器。HY57V641620的管脚分为三类:控制信号:片选(CS_N)、同步时钟(CLK)、时钟有效(CKE)、读写选择(WE_N)、数据有效(DQM)等;地址信号:行地址选择(RAS_N)、列地址选择(CAS_N)、行/列地址线(SA0~SA12)分时复用、Bank块地址线(BA0~BA1);数据信号:DQ0~DQ15,双向数据。其使能受DQM控制。
通常一个SDRAM会有多个Bank,在进行寻址时先通过BA的值来确定是哪个Bank,然后再在这个选定的Bank中选择相应的行与列进行寻址,在对Bank进行读写前,必须激活行选通信号。SDRAM在上电以后,对其进行其他操作之前,必须先对其进行初始化。
2 SDRAM控制器的FPGA设计
本设计采用Altera公司的FPGA CyloneⅡ EP2C5-208芯片实现SDRAM控制器的设计。SDRAM控制器采用模块化设计,由四个主要模块组成:SDRAM控制器模块(顶层模块)、控制接口模块、命令模块和数据传输模块。顶层模块调用三个较低的模块并将设计整合在一起。控制接口模块(和主机的内存地址相连)接收命令,对命令进行解码并把命令请求传输给命令模块。命令模块接收控制接口模块的命令和地址并对SDRAM发出合适的命令。数据传输模块在写和读命令时控制数据的传输。SDRAM控制器块图如图1所示。
2.1 控制接口模块
控制接口模块对主机命令进行解码并注册命令,将已解码的命令传输给命令模块。此外控制接口模块还包含对SDRAM模式寄存器的设置,可以设置SDRAM的突发读写长度和预充电周期,寄存器设置值是在SDRAM初始化时通过接口模块输入的。
2.2 命令模块
命令模块接收来自控制接口模块已解码的命令,接收来自刷新控制逻辑的刷新请求,并对SDRAM产生命令。该模块包括一个简单的仲裁器,该仲裁器对来自主机接口的命令和来自刷新控制逻辑的刷新请求进行仲裁。来自刷新控制逻辑的刷新请求比来自主机接口的命令有较高的优先权。如果从自主机来的命令和刷新请求同时到达或在隐藏的刷新操作命令中到达,仲裁器将会等到隐藏的刷新操作完成后再对主机命令应答。如果从主机来的操作命令正在进行时,将会等到主机操作命令完成后再对隐藏的刷新操作命令应答。
仲裁器从主机接收一个命令后,该命令将会被传输到命令模块的命令发生器部分。在SDRAM发出的命令之间,命令模块通过三个可替换的寄存器进行定时。第一个替换寄存器用来控制ACTIVATE命令的定时;第二个用来控制WRITEA和READA命令的配置;第三个用来记录命令的持续时间,该命令让仲裁器确定是否最后被请求的操作已被完成。
命令模块执行SDRAM的复用地址命令。在ACTIVATE(RAS)命令期间,行地址输出有效,该命令把行地址输出给SDRAM的A[11:0]引脚。在READA(CAS)或WRITEA命令期间,列地址输出有效,该命令把列地址输出给SDRAM。
输出信号OE(被命令模块产生)是在数据传输模块的数据输入线路的最后阶段用来控制三态缓冲器的。
2.3 数据传输模块
数据传输模块为SDRAM和主机之间提供了数据接口。WR
文档评论(0)