您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

采取FPGA IP实现DDR的读写控制的计划与验证

发布日期:2011-05-09

 媒介
 
 随着高速处理惩罚器的不绝生长,嵌入式体系应用的范畴越来越遍及,数字信号处理惩罚的范围也越来越大,体系中RAM范围不绝增长,比如视频监控、图像数据征求等范畴,图像处理惩罚的及时性对RAM带宽的请求不绝增长,传统的SDRAM在带宽上已经渐渐无法餍足应用请求,DDR SDRAM(双倍速率SDRAM)采取在时钟CLK信号的上升和降落沿,双沿做数据传输;比传统的SDRAM只在时钟上升沿传输的方法,传输带宽增长了一倍。DDR RAM已开始遍及应用于嵌入式体系中,正渐渐代替传统的SDRAM。
 
 DDR RAM操纵速率的进步,对计划者来说,对控制时序的计划有了更高的请求;并且,DDR内存采取的是支持2.5V电压的SSTL-Ⅱ标准,不再是SDRAM利用的3.3V电压的LVTTL标准。在很多的处理惩罚器上面并不带有DDR RAM控制器,这对计划者来说,利用DDR RAM难度增长。每每必要在计划中插入控制器实现微处理惩罚器或DSP对存储器的控制。
 
 现场可编程门阵列(FPGA)已遍及应用于嵌入式体系中。如今很多FPGA都提供了针对DDR SDRAM的接口特性:其输入输出引脚与SSTL-Ⅱ电气特性兼容,内部提供了DDR触发器、锁相环等硬件资源。利用这些特性,可以比较容易地计划性能可靠的高速DDR RAM控制器。本文针对这一题目,先容一种采取Lattice FPGA与IP来实现DDR RAM控制和验证的要领。
 
 LatticeXP
 
 LatticeXP器件将非易失的FLASH单位和SRAM技能组合在一起,支持刹时启动和无穷可重构的单芯片办理方案。FLASH单位阵列中生存用户配置文件。上电时,配置文件在1毫秒内从FLASH存储器中被发送到配置SRAM中,完成瞬时上电。
 
 器件内部分为:PIC (可编程的I/O单位),非易失的FLASH MEMORY,SYSCONFIG配置端口,PFU(可编程成果单位),PLL(模仿锁相环),PFF(非RAM/ROM成果可编程逻辑单位),EBR(嵌入式RAM块),JTAG口等几部分(见图1)。

图1 LatticeXP内部布局图
 
 DDR controller IP的天生
 
 IPExpress是Lattice开辟软件中天生IP模块的东西,可根据用户设置的参数天生IP模块,利用非常方便。
 
 点击启动IPexpress进入天生界面(见图2)。在左边选取DDR SDRAM工程,在右边设置工程名称和文件生存地点。

图2 IPexpress界面
 
 点击下一步,开始进入参数设置(见图3)。这内里举行设置DDR RAM的行、列的参数,以及Bank。这些参数都是根据DDR RAM芯片手册举行设置。本文中采取的DDR RAM颗粒是当代公司的HY5DU561622,16M x16,4bank颗粒。

 
图3 DDR RAM的行、列的参数配置
 
 下一步,举行时序延时上面的设置(见图4)。

 图4 DDR RAM颗粒时序参数配置
 
 在这里设置tRAC(行访问周期,RAS Access Cycle/Delay)、tCAC(列访问周期,CAS Access Cycle/ Delay)等参数。这些参数,在DDR RAM颗粒芯片的手册中都有细致的列表。必要分外指出的是,由于芯片提供商会针对差别的DDR标准,比方DDR400,DDR333等,给出差别的延时参数,会因此ns为单位的几个差别的列表,必要根据计划的差别,参考差别的表格。
由于IP天生器中采取的是单一参数设置,单位采取了CLK为单位,这就必要根据计划标准以及时钟频率来转换一下,举行设置。本文采取的是DDR266标准,时钟为133MHz,映射的时钟周期为1/133MHz,约莫为7.5ns。如许,芯片在DDR266标准的TRCD为20ns(最小值),映射到IP的参数中便是3。其他参数也是雷同的换算。
 设置完毕以后,点击generate,可以天生IP代码文件,如图5。

 
图5 IP天生
 
 DDR controller IP的利用与验证
 
 天生的DDR Controller IP的接口布局如图6所示。

 
图6 DDR Controller接口
 
 RAM接口根据信号的定义,映射DDR RAM接口信号。另一端是用户接口,包括复位、时钟、地点、数据、读写、状态信号等。数据通过用户接口送入,通过IP控制时序送到DDR RAM对用的地点当中。
 对IP的测试,采取数据写入与读出举行校验的方法来实现。测试框图如图7所示。

 
图7 测试原理框图
 
 在FPGA内部做两个RAM地区,用于数据的生存。这里利用FPGA内部的RAM块,做了两块256×32b大小的RAM存储区。编写FPGA代码,做一个大略的伪随机序列产生器,通过大略的异或算法,孕育产生32位随机数据序列。孕育产生的数据存入此中一块RAM当中,同时也送到IP的用户接口端,写入DDR RAM。
 
 在256深度的存储地区写满以后,开始从DDR RAM回读数据。并把读取的数据送到FPGA内部别的一块RAM当中。两块RAM中对用地点的数据作比较。要是数据同等,阐明DDR RAM读写正常;要是差别,阐明DDR RAM读写操纵有错误。
 
 由于本计划采取的是DIMM内存条512Mb容量,因此测试时,数据地点采取基址加变址的方法。每一次测试256×32b的数据完成后,循环进入下一次测试时,将肇始基地点加256,再举行数据操纵。如许终极完备可以扫描512M的数据地点空间,使测试越发完备。这种测试的要领,采取小块地点,多次操纵,可以淘汰FPGA内部RAM的利用量。
 
 本文中编写的测试代码采取Verilog语言编写,逻辑如图8。

 
图8 测试代码逻辑状态机
 
 硬件测试结果
 
 本实行是在Lattice的XP advanced版demo板上举行的。
 
 采取的FPGA为LFXP10C-5F384,内存条为Kingston 512M条记本内存条,RAM颗粒为当代HY5DU561622。测试DDR266连续运行2小时,数据无非常,DDR读写操纵完全正常。
 
 结语
 
 在嵌入式体系中应用DDR RAM的越来越多,在计划当中采取FPGA,不但计划机动,并且还可以将周边的数字器件综合计划进入FPGA,大大进步体系计划的性价比。
 
 参考文献:
 1. 胡为,DDR SDRAM在嵌入式体系中的应用,单片机与嵌入式体系应用,2006.3
 2.LatticeXP family handbook. Lattice semiconductor Co.,2006.6
 3.Lattice DDR1/2 controller user guide.Lattice semiconductor Co.,2006.6