欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOC文档下载  

    基于FPGA的SDRAM控制器的设计和实现.doc

    • 资源ID:138472       资源大小:114KB        全文页数:6页
    • 资源格式: DOC        下载积分:9积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的SDRAM控制器的设计和实现.doc

    基于FPGA的SDRAM控制器的设计和实现0引言随着电子技术在工业、医疗、商业等领域的发展,人们对数据传输率的要求越来越高,传统的单片机早已不能满足这种高速数据传输的要求。与此同时,可编程的逻辑器件FPGA/CPLD以其强大的功能,开发过程投资小、周期短,可反复编程修改,开发工具智能化等特点,成为当今硬件设计的潮流;相比而言,FPGA即现场可编程门阵列,它的集成度高,可完成极其复杂的时序与组合逻辑电路功能,更适用于高速、高密度的高端数字逻辑电路设计领域1。SDRAM即:同步动态随即存储器,与传统的DRAM有很大区别。它可以与系统总线以同频率工作,用同一个CPU时钟周期即可完成数据的访问和刷新,进而大大的提高了数据传输率,其速度远大于DRAM。因而,SDRAM常作为数据缓存应用于高速数据传输系统中。目前,许多嵌入式设备的大容量、高速度存储器都采用SDRAM来实现,而且大多都是用专用芯片完成其控制电路,这不但提高了设计成本,而且使系统的硬件电路变得复杂。随着FPGA在嵌入式系统中的广泛应用,如果我们能够结合具体的需要,利用FPGA来设计自己的SDRAM控制器,这些问题就迎刃而解了。然而,SDRAM的控制逻辑复杂、时序要求严格,常常困扰设计人员。有很多文章2,3,4,5详细的介绍了SDRAM的工作原理、控制时序和指令特点,以及基于FPGA的SDRAM控制器的实现方法,但是并没有详细的给出控制器内部结构和指令时序的控制问题。因此。本文将介绍一种基于FPGA的通用SDRAM控制器,并着重介绍设计方案中各模块的功能和实现方法。该控制器用VHDL语言程序实现,完成了SDRAM指令状态转换、信号仲裁判断,并巧妙的用三个移位寄存器解决了指令的逻辑和时序的问题。1.SDRAM简介SDRAM具有空间存储量大、读写速度快、价格相对便宜的特点。但其控制逻辑复杂,需要周期性刷新操作、行列管理、不同延时和命令序列等。1.1SDRAM地址结构SDRAM的存储地址分为页(bank)地址,行(row)地址和列(column)地址。例如一个8MByte的SDRAM,被分为4个bank,即1个bank为2MByte,每个bank包括12行8列。1.2SDRAM的指令SDRAM的一系列指令如表1所示,每个指令最终都是通过控制RAS、CAS、WE信号来实现。通常对SDRAM的操作过程如下:表1SDRAM命令(1)SDRAM初始化操作:上电后至少等待100ns,然后至少执行1条空操作;对所有页执行预充电操作;向各页发出两条刷新操作指令;最后执行SDRAM工作模式的设定LMR命令用来配置SDRAM工作模式寄存器,SDRAM工作寄存器如表2所示。其中A11A10是用户保留位;A9用来配置写突发模式;A8A7是操作模式,通常为“00”,代表标准操作模式;A6A4设置CAS延迟时间;A3决定突发操作模式是顺序还是间隔型;最后的三位A2A0用来配置突发长度。表2SDRAM工作寄存器A11A10A9A8A7A6A5A4A3A2A1A0ReserveWriteburstmodeOperatingmodeLatencymodeBursttypeBurstlength(2)SDRAM读、写操作:根据实际应用的需要,发出读、写指令。SDRAM可实现突发式读写,支持的突发长度可配置为1个、2个、4个、8个数据周期或者页模式。并且突发的模式可以配置为顺序或者间隔型。对SDRAM进行访问的最主要操作就是读RD和写WR操作。SDRAM在进行读写操作时,必须要先进行页激活ACT操作,以保证存储单元是打开的,以便从中读取地址或者写入地址,关闭存储单元通过预充电PHC命令实现。在进行写操作时,内部的列地址和数据就会被寄存;进行读操作时,内部地址被寄存,等待CAS延迟时间(通常为13个时钟周期)后,读出的数据出现在数据总线上,具体时序详见SDRAM数据手册,此处不再赘述。(3)操作终止:当SDRAM接收到读、写指令后,开始进行顺次的读写操作,直到达到突发长度或者突发终止指令BT出现。2SDRAM控制器方案SDRAM控制器【6】针对SDRAM的指令操作特点,为SDRAM提供同步命令接口和时序逻辑控制,下面将以ALTERA公司的Cyclone系列FPGA为例,主机系统时钟为100MHz,使用三星公司的K4S641632E,8MByteSDRAM【7】,介绍SDRAM控制器的具体设计方法。图1为SDRAM控制器的接口原理图。图1SDRAM控制器接口原理图接口信号介绍:(1)与主机接口信号:CLK:系统时钟信号;RESET::系统复位信号;CMD2:0:译码指令,如表3所示;CMDACK:指令应答信号,通知主机命令已被SDRAM执行;ADDR:地址线,根据具体情况确定位数,本例中为22位,A21、A20代表页地址BA1,BA0;A19A8代表行地址;A7A0代表列地址;DATAIN/DATAOU:输入、输出数据总线;DM:数据掩码;(2)与SDRAM接口信号:SADDR:12位地址线,在读、写操作时,地址线分时复用为行地址和列地址;BA:页地址,BA0,BA1;CS:片选信号;CKE:时钟使能信号;RAS、CAS、WE:命令控制信号;DQM:SDRAM数据掩码;DQ:双向数据线;SDRAM控制器作为顶层模块,由3个主要模块组成:接口控制模块、命令生成模块、数据路径模块。下面将详细的介绍各个模块的功能和关键设计的VHDL实现方法。表3CMD命令字2.1接口控制模块接口控制模块主要实现的功能包括:将CMD2:0翻译成接口指令和对刷新计数器的控制,如图2所示。首先通过状态机来完成对CMD2:0的翻译,在VHDL程序中声明一个用户自定义类型states,根据CMD2:0输入来决定状态的转移,完成对CMD2:0的解码,如下所示:typestatesis(nop,reada,writea,refresh,precharge,load_mode);signalstate:states;casecmdiswhen"011"=>state<=refresh;when"111"=>state<=nop;SDRAM需要周期性刷新操作以保持数据,数据手册中通常会给出在一定的时间T内,SDRAM至少刷新X次,如果用户使用频率为FrMHz的时钟,则刷新周期Tf可以通过下面的公式计算出:Tf(T*Fr)/X。例如,本例中数据手册要求64ms内至少刷新4096次,系统时钟周期为100MHz,则刷新周期为(64ms*100MHz)/4096,得出结果等于1562.5,所以至多1562个时钟周期的时间就必须对SDRAM刷新一次。刷新控制在程序中通过一个计数器来完成,当到达规定的计数周期,就向SDRAM发出REF_REQ刷新请求,直到SDRAM完成刷新操作,发出REF_ACK刷新应答信号,计数器才重新赋值开始下一次的计数。图2接口控制模块2.2命令生成模块图3是命令生成模块,主要实现了对输入的指令请求进行仲裁判断,并将仲裁后要执行的指令解码成SDRAM需要的RAS、CAS等信号,从而实现对SDRAM的控制。图3命令生成模块之所以需要仲裁机制,是因为在指令执行之前可能会发生以下情况:其它指令和刷新请求同时到来;刷新请求到来时,其它指令正在执行。仲裁机制实现方法如下:(1)SDRAM在每一刻只有一个指令在执行;(2)先到的指令先执行,即:如果刷新请求到来时,其它命令正在执行中,要等到当前命令执行完成后,才能执行刷新指令;(3)其它指令和刷新请求同时到来时刷新操作先执行。经过仲裁判断后,指令将传入命令生成器。命令生成器不仅要把指令解码成可控制SDRAM的信号,同时还要用三个移位寄存器对命令执行的延迟时间进行控制。第一个为指令延时寄存器,用来保证SDRAM有充足时间完成最终指令。例如,如果命令的执行需要8各时钟周期的时间,则指令延时寄存器com_delay的初值设为“11111111”,同时声明一个内部信号com_done,作为指令执行完成的标志的。在指令执行期间,每一个时钟上升沿到来时,移位寄存器向右移位一次,com_delay0的移入com_done,同时“0”移入最高位com_delay7。当com_done为“0”时,就说明指令的延迟时间已到,即通过com_done的值,就可以判断当前指令是否执行完成。要注意的是:移位寄存器的位数和初值,应该根据SDRAM的数据手册中命令完成需要的时间和系统的时钟周期来确定。下面得例程仅供参考。if(do_state=refreshordo_state=readaordo_state=writeaordo_state=prechargeordo_state=load_mode)thencommand_delay(7downto0)<="11111111";-移位寄存器初值command_done<=1;elsecommand_done<=command_delay(0);-移位操作command_delay(6downto0)<=command_delay(7downto1);command_delay(7)<=0;endif;当输入的指令为writea和reada指令,将引发一系列指令的执行,和其它指令相比需要附加时间。所以,声明第二个移位寄存器rw_shift,来计算这两个指令的附加时间,其工作原理和第一个移位寄存器是一样的。最后一个移位寄存器oe_shift用来为数据通道生成oe,即数据输入、输出使能信号。对于非页模式的读写来说,oe保持有效的时间取决于突发长度。并且oe有效的起始时间对读操作和写操作时不同的:读操作时,oe有效的起始时间取决于CAS延时时间,而对于写操作时则在写指令开始时oe就是有效的。23数据路径模块数据路径模块主要是在writea和reada命令期间处理数据的路径操作。模块的结构图如图4所示。DQ是双向数据线,用来传输从SDRAM读出数据和向SDRAM写入的数据。无论是数据在读出还是写入时,都是在oe有效,即oe为高电平时才能进行传输。DM是由主机输出的数据掩码,通过DQM输出到SDRAM的LDQM和UDQM管脚,进而控制SDRAMI/O缓冲的低字节和高字节。图4数据路径模块3总结本文结合SDRAM控制指令的特点,详细的介绍了一种基于FPGA的通用SDRAM控制器的设计方案。本文所介绍的指令状态的转移、仲裁机制的实现和移位寄存器控制指令延迟时间的方法,提供了一种SDRAM控制器的设计思想,由于SDRAM的控制机制比较复杂,具有多种突发读写的工作模式,我们可以根据实际应用中的需求情况来编写程序,实现最基本的读写和刷新操作,不必要顾全到每一种情况。SDRAM作为高速数据缓存,在基于现场可编程门阵列FPGA的控制下,将在高速、高密度、高端的数字电路领域中得到更加广泛的应用。参考文献1王诚,吴华,范丽珍,等.AlteraFPGA/CPLD设计(基础篇).人民邮电出版社,2005,7.2田丰,邓建国,李巍,贾治华.SDRAM的设计与VHDL实现.电子技术应用,2003,(31)2:74-77.3刘云清,佟首峰,姜会林.利用FPGA实现SDRAM控制器的设计.长春理工大学学报.2005,28(4):47-50.4宋一鸣,谢煜,李春茂.基于FPGA的SDRAM控制器设计.电子工程师,2003,29(9):10-13.5周正昆.基于FPGA的SDRAM控制器设计.现代电子技术,2003,13:63-65,77.6SDRSDRAMcontrollerwhitepaper.,ALTERAcorporation,2002,8.http:/www.altera.com/literature.7K4S641632EDATASHEET,SAMSUNGcorporation,2003,2.http:/www.sumsung.com/prod-ucts/Semiconductor/Sync_AsyncDRAM/SDRSDRAM/Component/64Mbit/K4S641632E.htm

    注意事项

    本文(基于FPGA的SDRAM控制器的设计和实现.doc)为本站会员(2****)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!