当前位置:首页 > 智能硬件 > 智能硬件
[导读]针对当今电子系统对高速大容量内存的需要,本文阐述了使用DDR控制器IP核来设计实现DDR内存接口的方法。

摘  要: 针对当今电子系统对高速大容量内存的需要,本文阐述了使用DDR控制器IP核来设计实现DDR内存接口的方法。该方法能使设计尽可能简单,让设计者更专注于关键逻辑设计,以便达到更高的性能。该设计经过仿真显示,完全符合要求。
关键字:DDR内存  IP核  地址产生逻辑  FIFO

1.引言
    在当今的电子系统设计中内存被使用的越来越多,用来存放数据和程序。并且对内存的要求越来越高,要求内存读写速度尽可能的快,容量尽可能的大。面对这种趋势,设计实现大容量高速读写的内存显得尤为重要。

    本文结合笔者承担的T比特路由器项目,对其中的大容量高速DDR内存接口的设计实现进行了详细阐述。本文第2节对与DDR内存相关的知识做了简单的介绍,从总体上对DDR内存有个认识;第3节阐述了DDR内存接口模块的整体设计;第4节对整个设计中的关键设计地址产生逻辑进行了详细阐述;最后总结全文。

2.DDR内存相关知识介绍
    DDR SDRAM是双数据率同步动态随机存储器的缩写。它能够在一个时钟周期内传送两次数据,也就是说数据速率是时钟频率的两倍,可以达到很高的数据读写速度。此外它通过对地址线的分时复用,可以做到很大的容量。比如我们设计实现的DDR内存时钟频率可达到150MHz,数据速率为300MHz,容量达到1M x 72bit。

    DDR内存为了更精确的同步使用若干对差分时钟;它还有一个独特的数据脉冲信号(DQS)。DDR内存就是根据DQS来分割一个时钟周期内的两次数据。更需要注意的是:DDR内存没有一个信号是发送读或写的明确命令的,而是通过芯片的可写状态来达到读/写的目的。具体为:片选信号(CS),行地址有效信号(RAS),列地址有效信号(CAS),写允许信号(WE)。它们都是低电平有效,它们的不同组合构成了对DDR内存的不同命令。比如CS,CAS有效,RAS无效,WE无效,表示从现在地址线指示的存储单元处读出一个数据放到数据线上;再如CS,CAS有效,RAS无效,WE有效,表示将数据线上的数据写入现在地址线指示的存储单元处。

    DDR内存可以支持突发读写,并能根据不同的需要选择不同的突发长度(BL);位宽也可以选择,并能利用掩码技术灵活的选择每次读写的有效数据宽度(以8bit为单位);此外由于DDR内存读写时需要先激活(Active)将要读写的存储单元行,然后再读写,但DDR内存任何时候只能有一存储行是打开的(处于激活态),因此在需要读写不同存储行时,要先关闭前已打开的存储行,才能打开现在将要读写的存储单元行,这一操作被称为预充电(precharge)。另外由于DDR内存是动态存储器,需要对存储体进行周期性的刷新(refresh)。

    从上面的介绍中可以看出DDR内存的性能虽然好,但接口控制很复杂。为了快速实现DDR内存接口,缩短设计周期,我们使用已经成熟的商业化内存控制器 IP 核对DDR内存进行控制。我们使用的是Altera公司的DDR Controller IP核,版本为2.2.0,使用的开发工具为Quartus II 4.1,使用VHDL语言进行描述。

3.独立内存接口模块整体设计
    为了将内存接口模块设计成相对独立的模块,也为了调整不同模块之间的时钟相位差,使数据稳定输入输出,我们给DDR内存接口模块前端增加了一个入口FIFO,出口增加了一个出口FIFO。我们的功能需求是根据出口FIFO的状态确定是否将数据送往DDR内存条中进行缓存,并且设计中必须充分考虑DDR内存条存储器带宽的利用效率,设计成批量读写的模式,减少读写切换工作的开销。该内存模块具体完成以下功能:
1)使用DDR控制器IP核完成对DDR内存的初始化配置,产生读写命令和其他各种控制信号;
2)根据出口FIFO状态产生对DDR内存接口的读写请求;
3)并且整个系统对数据的缓存处理应该公平,不能有系统差别,也就是说要保证在任何情况下读出的数据都是有效的数据,写入的数据不覆盖DDR中的原有效数据;DDR内存接口模块主要功能由DDR控制器IP核完成,对DDR内存进行初始化配置,产生读写命令和其他各种控制信号。DDR控制器有两个接口:DDR-interface和local-interface。DDR-interface直接与DDR内存条相连,不需要干预。local-interface就是根据不同需要输入不同信号,可以增加自己的逻辑。我们需要设计的逻辑就是产生读写请求信号和对应的地址信息送给DDR控制器,DDR控制器把这些请求转换为对DDR内存的数据读写。因此DDR内存接口模块的重点是对地址产生逻辑的设计。我们的内存模块设计框图详见图1。 

  

图1  DDR内存接口模块设计框图

4.内存读写地址产生逻辑的FPGA设计实现
     根据本模块的功能需求,在出口FIFO的状态为忙时,要将数据送往DDR内存条缓存,当出口FIFO的状态为非忙时,要将数据从DDR内存条读出送到出口FIFO。并且设计必须充分考虑DDR内存条存储器带宽的利用效率,设计成批量读写的模式,减少读写切换工作的开销。出口FIFO的状态能由门限信号th1和th2反映出来,从而根据th1和th2反馈控制地址产生逻辑。

    此外还要注意数据的次序,要保证对数据的公平处理,不能对数据造成系统差别,因此整个DDR内存逻辑上是一个循环队列。还要保证:DDR内存满时,不应再写DDR内存;DDR内存空时,不应再读DDR内存。DDR内存的空满对地址产生逻辑也有重要影响。

    从上面分析中看出:对地址产生逻辑有影响的信号是出口FIFO的状态指示信号th1和th2,DDR内存的空满信号;输出信号为对DDR内存的读请求rd_req和写请求wr_req,地址addr。规定:th1=1表示出口FIFO几乎空,出口FIFO状态为非忙,可以对DDR内存发出读请求,直到th2=1为止;th2=1表示出口FIFO几乎满,出口FIFO状态为忙,可以对DDR内存发出写请求,直到th1=1为止。

    DDR内存的空满由读写地址的比较得出,并且要提前几个时钟周期置出。非空标志由这样的地址比较得出:rdaddr/= wraddr-2 and rdaddr/= wraddr-1 and rdaddr/=wraddra;非满标志由这样的地址比较得出:  wraddr+2/=rdaddr and wraddr+3/=rdaddr and rdaddr/= wraddr+1。
读请求rd_req产生条件是: ①DDR内存非空,DDR内存满且th2=0;
    ②DDR内存非空,DDR内存非满且th1=1至th2=1。
写请求wr_req产生条件是:①DDR内存非满,DDR内存空;
    ②DDR内存非满,DDR内存非空且th2=1至th1=1。
    DDR内存模块的地址产生逻辑使用VHDL语言在Quartus II 4.1上实现,最后编程例化到Altera公司的Stratix GX系列FPGA中物理实现。具体仿真波形详见图2。


 
                   图 2  DDR内存模块地址产生程序的信号仿真波形
    仿真说明:输入时钟为150M,复位信号高有效,ready为DDR控制器准备好信号,th1=1表示出口FIFO几乎空,在DDR内存非空时,应该读DDR内存;th2=1表示出口FIFO几乎满,在DDR内存非满时,应该写DDR内存;输出数据为读请求信号rdreq,写请求信号wrreq,输出地址信号ddraddr(为仿真方便,仿真时的地址位宽设定为5bit)。

    通过仿真从Quartus II 4.1的报告中可以看到如此设计的时钟可以最高达到162.92MHz,符合设计要求的150MHz。其它功能要求也能满足。

5.结束语
    本文根据电子系统对高速大容量内存的需要,使用成熟商业化DDR控制器IP核来设计独立的DDR内存接口模块,不仅能从控制的细节中解脱出来,专注于系统的关键功能设计,并且能够获得更高的性能,完全满足我们的功能性能需要。经测试该设计性能稳定,整个工作流程简单实用,符合设计要求。

参考文献
1 stratix_GX_datasheet. Altera公司,2003
2 Double Data Rate(DDR)SDRAM Handbook.Micron公司,2004
3边计年,薛宏熙.用VHDL设计电子线路[M].北京:清华大学出版社,2000

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

据韩联社报道,上周三星电子发布业绩报告显示,随着芯片价格反弹,预计今年第一季度营业利润同比骤增931.25%,为6.6万亿韩元(当前约合人民币354.6亿元),已经超过了2023年全年营业利润6.57万亿韩元。

关键字: 内存 三星

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存

Apr. 04, 2024 ---- TrendForce集邦咨询针对403震后各半导体厂动态更新,由于本次地震大多晶圆代工厂都位属在震度四级的区域,加上台湾地区的半导体工厂多以高规格兴建,内部的减震措施都是世界顶尖水平...

关键字: 晶圆代工 内存

美光坚持多元、平等、包容的企业文化,携手社区推行公益

关键字: 内存 存储 美光

今天,小编将在这篇文章中为大家带来虚拟内存的有关报道,通过阅读这篇文章,大家可以对虚拟内存具备清晰的认识,主要内容如下。

关键字: 内存 虚拟内存

在这篇文章中,小编将对虚拟内存的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: 内存 虚拟内存

以下内容中,小编将对物理内存的相关内容进行着重介绍和阐述,希望本文能帮您增进对物理内存的了解,和小编一起来看看吧。

关键字: 内存 物理内存
关闭
关闭