(微电子学与固体电子学专业论文)ddr2+sdram控制器的设计与验证.pdf_第1页
(微电子学与固体电子学专业论文)ddr2+sdram控制器的设计与验证.pdf_第2页
(微电子学与固体电子学专业论文)ddr2+sdram控制器的设计与验证.pdf_第3页
(微电子学与固体电子学专业论文)ddr2+sdram控制器的设计与验证.pdf_第4页
(微电子学与固体电子学专业论文)ddr2+sdram控制器的设计与验证.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 d d r 2s d r a m 作为新一代存储器,有着价格低廉,容量大,且速度快等优 点,但是也有本身的局限性。d d r 2s d r a m 的读写操作十分复杂,参数非常多, 这些参数在操作的过程中都必须满足,才能保证s d r a m 的稳定工作。由此诞生 了d d r 2 c ( d d i 毪c o n t r o l l e r ) 。d d r 2 c 主要是为了隐藏复杂的d d r 2 操作时序, 从而使设计的模块仅需要通过一组简单的控制接口就能实现对d d r 2s d r a m 的 访问。 本文重点研究实现操作简便、带宽高的d d r c 设计方法。主要内容包括如 何简化对d d r 2s d r a m 的操作和最大限度的提高d d r 接口的带宽。为此采用 了轮询四个b a n k 的操作方法,将激活b a n k 和读写交叉进行,从而掩盖激活 b a n k 所需要的时间;同时采取固定周期操作,并在每个读写操作周期的后面启 动自动预充电的命令,从而省去了操作前的预充电命令,提高带宽利用率。预期 的控制器工作频率为2 0 0 m h z ( 对于目前中等f p g a 芯片的工作频率) ,外部对接 1 6 b i t 位宽的d d r 2s d r a m 芯片的时候,总带宽能达到3 5 g b p s 以上。 关键词:d d r 2s d r a m控制器 a b s t r a c t a b s t r a c t t h el a t e s tg e n e r a t i o nm e m o r y , d d r 2s d r a m ,i sc h e a p ,s p e e d ya n dw i t hl a r g e c a p a c i t y h o w e v e r , i th a ss o m ef a t a ld e f e c tb yi t s e l f t h ed d r 2s d r a mh a sal o to f p a r a m e t e r sw h i c hm u s tb ec a r e f u l l ym a t c h e dw h e no p e r a t e d f o rs o l v i n gt h i sp r o b l e m , t h e r ec o m e st h ed d r c ,d d r s d r a mc o n t r o l l e r d d r 2 ch i d e st h ec o m p l e x o p e r a t i n gt i m i n ga n dm a k e si tp o s s i b l ef o rac h i pt oa c c e s st h ed d r 2s d r a mb ya g r o u po fs i m p l ei n t e r f a c e t h i sp a p e rw i l ls t u d yt oi m p l e m e n tad d r 2 cw i t hh i 曲e rb a n d w i d t ha n dm o r e e a s i l yo p e r a t i n g t h ec o n t e n ti n c l u d e sh o w t os i m p l yt h ed d r 2s d r a m o p e r a t i o na n d h o wt oi m p r o v et h eb a n d w i d t ho fd d r 2i n t e r f a c em a x i m a l l y t h e r e f o r e ,t h ec o n t r o l l e r o p e r a t e st h ef o u rb a n k sw i t hr o u n dr o b i ns e q u e n c e ,a n di n t e r c r o s s e st h ea c t i v eb a n k c o m m a n dw i t ht h er e a d w r i t ec o m m a n d a tt h es a m et i m e ,i tr u n si naf i x e dp i p e l i n e c y c l ew i t ha u t op r e c h a r g ec o m m a n dd u r i n gt h el a s tt h r e ec l o c kc y c l e s t h e s et w o m e a s u r e si m p r o v et h eb a n d w i d t hu t i l i z a t i o ng r e a t l y t h ed d r 2 cd e s i g n e di nt h i s p a p e rc a nr u na t2 0 0 m h zs t a b l yi nc u r r e n tm e d i u mp e r f o r m a n c ef p g ac h i p w h e n c o n n e c tt o16 b i tw i d t ho fd d r 2s d r a m c h i p ,t h i sd e s i g nc a na c h i e v et h eb a n d w i d t h o f3 g b i t k e y w o r d :d d r 2 s d r a mc o n t r o l l e r 声明尸明 学位论文创新性声明 西安电子科技大学 独创性( 或创新性) 声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在导师 指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢 中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含 为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:扬烽艰 日期:沙尹罕;日r 回 关于论文使用授权的说明 西安电子科技大学 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在 校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论 文的复印件,允许查阅和借阅论文:学校可以公布论文的全部或部分内容,可以允许 采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究 课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:范绎,稠 导师签名: 纠k 日期:力砷7 绎;问f 目 日期: - z , 仲9 ;占 第一章绪论 第一章绪论 存储器是电子系统的记忆设备,用于存放程序和过程数据。存储器是推动整 个电子产业发展的重要因素。目前,发展最快,使用最广泛的存储器是以半导体 材料作为介质的r a m ( r a n d o m a c c e s sm e m o r y ) 存储器。r a m 按照内部结构 不同又可以分为动态r a m ( d r a m ) 和静态r a m ( s r a m ) 两种。 s r a m 一般由双稳态电路组成的,其特点是速度快,功耗低,只需要地址译 码电路,不需要其他辅助电路,但是需要使用较多的晶体管。s r a m 中存取l b i t 数据大概需要6 - - 8 个晶体管,因此价格比较昂贵,无法大规模使用。d r a m 一 般采用电容作为存储单元,其特点是面积小( 1 b i t 数据仅需要1 个晶体管) ,价格 便宜,而且容易大规模集成。但是由于存在漏电流,需要定时刷新存储单元,因 而功耗较大,且需要用于存储单元刷新控制的额外逻辑。 s r a m 操作速度非常快,通常都与芯片工作在同一个时钟下。因此将其放置 在芯片内部用于存放数据量较小的实时数据。目前通信类的芯片,无可避免的要 使用较多的f i f o 和表项,大部分芯片中的s r a m 面积已经占用芯片面积5 0 以 上,并呈现上升的趋势,s r a m 已经成为芯片成本的一个重要组成部分。对涉及 到报文乱序重组一类的协议处理芯片,需要存放大量的临时数据的情况,就只能 将临时数据放置在外部缓存上。 d r a m 由于其容量大,价格便宜等特点,常常作为芯片的外部缓存使用。近 年来,由于计算机,通信设备的迅速发展,推动了d r a m 存储器的发展。从早期 的s d r a m ( s y n c h r o n o u sd y n a m i cr a n d o ma c c e s sm e m o r y ) 到前些年的d d r ( d o u b l ed a t ar a t e ) s d r a m ,再到当前主流的d d r 2s d r a m ,d r a m 经过一 代又一代的发展,其容量和速度不断提高,反过来也推动着电子产业的快速发展。 为此,文章重点介绍d d r 2s d r a m 存储器的特点和技术规格,并在此基础 上完成d d r 2 控制器的设计。 1 1 论文研究方向 s d r a m 对数据采用单沿( 上升沿或下降沿) 采样,也就是说每一个时钟周 期操作一个数据。d d rs d r a m 在此基础上,采用上、下沿同时采样的技术,也 就是说每一个时钟周期能操作两个数据,数据速率是其核心工作频率的两倍。 d d r 2s d r a m 使用4 b i t 预存取技术,在使用双沿采样技术同时,将数据时钟提 d d r 2s d r a m 控制器的设计与验证 高一倍,使得数据速率变为核心工作频率的4 倍,进一步提高了数据带宽。 采用4 b i t 预存取技术只是d d r 2s d r a m 的一个技术点,实际上d d r 2 s d r a m 比起第二代d d rs d r a m 产品有了很大改进。d d r 内存通常采用t s o p 芯片封装形式,这种封装形式可以很好的工作在2 0 0 m h z 上,当频率更高时,它 过长的管脚就会产生很高的阻抗和寄生电容,这会影响它的稳定性,同时制约了 其频率的提升。这也就是d d r 的核心频率很难突破2 7 5 m h z 的原因。而d d r 2 s d r a m 均采用f b g a 封装形式,这种封装提供了更好的电气性能与散热性,为 d d r 2s d r a m 的稳定工作与未来频率的发展提供了良好的保障。d d r 2s d 删 采用1 8 v 电压,由于电压较低,因此能获得更小的功耗。 除了以上所说的区别外,d d r 2 还引入了三项新的技术。 o c d ( o f f - c h i pd r i v e r ) :也就是所谓的离线驱动调整,d d r 2 通过o c d 可 以提高信号的完整性。d d r 2 通过调整上拉( p u l l u p ) 、下拉( p u l l d o w n ) 的电阻 值使两者电压相等。使用o c d 可以通过减少d q 到d q s 的倾斜来提高信号的完 整性并通过控制电压来提高信号品质。 o d t :o d t 是指内建终端反射电阻器。在使用第二代d d rs d r a m 的时候, 电路板上为了防止由于数据线终端反射信号引起的信号质量下降的问题,需要大 量的终端电阻。这大大增加了电路板的制造成本。同时,不同的d d rs d r a m 对 终端电阻的要求是不一样的,终端电阻的大小决定了数据线的信噪比和反射率。 终端电阻小,数据线信号反射低,但是信噪比也较低;终端电阻高,数据线的信 噪比高,但是信号反射也会增加。因此板上的终端电阻并不能非常好的匹配d d r s d r a m ,甚至还会在一定程度上影响信号品质。d d r 2 可以根据自身的特点开启 内建终端电阻,这样可以保证最佳的终端反射电阻匹配,又能降低电路板成本。 p o s tc a s :它是为了提高d d r 2s d r a m 的利用效率而设计的。在p o s tc a s 操作中,c a s 信号( 列选通信号) 能够被插到r a s 信号( 行选通信号) 后面的 一个时钟周期,c a s 命令可以在附加延迟( a d d i t i v el a t e n c y ) 后面保持有效。原 来的t r c d ( r a s 到c a s 和延迟) 被a l ( a d d i t i v el a t e n c y ) 所取代。由于c a s 信号放在了r a s 信号后面一个时钟周期,因此a c t ( 激活b a n k 命令) 和c a s 信号永远也不会产生碰撞冲突。 这些新技术,使得d d r 2s d r a m 较前代的s d 洲产品在性能上有了极大 的飞跃。然而,作为s d r a m ,d d r 2s d r a m 无法避免的有着参数繁多,操作复 杂的缺点。,为了隐藏复杂的操作过程,使得外部芯片能更容易的访问d d r 2 s d r a m ,d d r 2 c ( d d r 2c o n t r o l l e r ,d d r 2 控制器) 便产生了。d d r 2 c 作为一 个接口模块,一边连接着d d r 2p h y ( d d r 2 物理接口) ,一边连接着b a ( b u f f e r a s s i g n m e n t ) 将b a 模块汇聚的访问请求翻译成复杂的d d r 2s d r a m 指令送给 d d r 2p h y 。本文的研究方向主要放在d d r 2 c 的实现上,并结合主流的验证语 第一章绪论 言对设计进行全面的测试。 1 2 论文主要的研究工作与创新 论文的主要工作是围绕在d d r 2s d r a m 芯片的规格上进行的。在论文工作 期间,作者仔细阅读了d d r 2s d r a m 的技术规范文档。首先熟悉了d d r 2 s d r a m 的内部结构和工作原理,并在此基础上学习d d r 2s d r a m 内部操作流 程。经过详细的分析,从上千种参数中提炼出2 0 多个需要重点关注的时序参数, 这些参数在d d r 2s d r a m 的操作中必须严格遵守,才能保证数据的正确性。为 了设计出合理的d d r 2 控制器,作者参考了多个d d r 2 控制器的方案,并比较这 些控制器在实现上的优缺点。其中值得一提的是华为海思半导体公司内部文档 h d d r 2 c l op 设计方案。受该文档设计方案的启发,将d d r 2 控制器的读、 写操作设置为固定的流水周期,这样既简化了设计,又能确保有较高的操作效率。 经过仔细的分析,初步制定了d d r 2 控制器的实现方案。在将设计方案转化 成代码设计的过程中,使用主流的硬件描述语言v e r i l o gh d l 语言进行编码。 v e r i l o g 语言有着类似c 语言的描述方式,比较容易入门。但是作为硬件描述语言, 它又有着自身的特点。为了尽快熟悉编程工具,作者参考了大量关于v e r i l o g 语 言的编程指导书,其中比较实用的是超大规模集成电路与系统导论。该书几乎 囊括所有v e r i l o g 编程的技术和一些典型电路( 如状态机编码等) 的代码实现,为 后面d d r 2 控制器的状态机编写打下坚实的基础。 设计代码完成之后,重点工作在于如何验证代码的正确性。当今流行的验证 语言有v e r a ,s y s t e m c ,s v ( s y s t e mv e r i l o g ) 等。主要半导体软件公司推荐使用 s y s t e mv e r i l o g 语言配合v m m 架构搭建验证环境。为此,作者快速学习了s v 语 言,并了解了v m m 验证的基本架构。在编码完成之后迅速搭建验证环境,对设 计结果进行测试。 本文所设计的d d r 2 控制器主要应用在通信设备协议处理芯片中。由于协议 数据块大小相对固定,所以对d d r 2 控制器的研究重点放在固定流水周期的操作 上。流水周期固定之后,进一步考虑如何安排激活命令和读、写命令的顺序,以 获得较高的操作效率。文中突破性的使用了激活命令和读、写命令交叉的操作方 式,并在每个流水周期的最后三个时钟周期启动自动预充电命令。这样,激活命 令与读、写命令之间的时间间隔要求就被掩盖在对下一个b a n k 的激活命令之 中;同时,由于在每个流水周期中启动自动预充电命令,省去了每次操作b a n k 前的预充电命令操作。这两项措施使得d d r 2 控制器的操作效率大大提高。 d d r 2s d r a m 控制器的设计与验证 1 3 论文的章节安排 本论文共分为四章。 第一章主要介绍存储器的发展情况,从而引出d d r 2 控制器的产生原因。并 在此基础上介绍了论文中实现d d r 2 控制器的设计所作的研究和主要的创新技术 点,最后介绍整篇论文的章节安排。 。 第二章主要介绍d d r 2s d r a m 的内部结构和工作原理。并针对d d r 2 s d r a m 的特性设计出符合时序要求而又能获得较大带宽的d d r 2 控制器。 第三章根据验证平台仿真的结果,通过波形工具v e r d i 分析了各种操作下的 波形,确保d d r 2 控制器设计的正确性 第四章阐述了各种情况下d d r 2 控制器的性能。通过仔细分析,找出制约性 能提升的因素,并对应两种特殊的情况给出解决的方案。 最后结束语阐述了作者的创造性工作和在本研究领域的地位和作用,并对当 前设计所存在的问题和不足应给予客观的说明。 第三章d d r 2 控制器的设计 第二章d d r 2 控制器的设计 本章开头简单的介绍了d d r 2s d r a m 的结构和特性,随后设计出满足这些 特性的d d r 2 控制器。控制器的主要操作被划分为初始化,读、写操作和刷新操 作等等。对控制器的设计重点放在四个命令信号的实现与b a n k 地址b a 和行、 列地址a d d r 的映射上面。所有的操作都通过波形示意图给出操作过程的时序。 2 1d d r 2s d 洲芯片内部结构介绍 2 1 i 存储单元和逻辑b a n k d d r 2s d r a m 对数据的存取是随机的,也就是对每一存储单元都能以同样 的速率写入或者读出。其内部是一个存储阵列,而不是管道式的,因为如果是管 道式存储( 就如排队买票) ,就很难做到随机访问了。 阵列就如同表格一样,将数据“填”进去。读写数据的时候,首先指定一个行 ( r o w ) ,再指定一个列( c o l u m n ) ,之后便可以准确地找到所需要的单元格,这 就是存储器芯片寻址的基本原理。 行 地 址 、 刃 。 罨 、- 列地址( c o l u m n ) 1234567891 0 1 l1 2 1 3 2 l 3i 4 l i 5i 6 l i 7 i i 8 i 9 、 1 0 1 】l i 1 2 i 1 3l 存储单元r o w - 9 c o l u m n - 5 图2 1d d r 2s d r a m 存储阵列示意图 对于d d r 2s d r a m ,这个单元格可称为存储单元,也叫做l o g i c a lb a n k , 6d d r 2s d r a m 控制器的设计与验证 l b a n k 。如图2 1 所表示,可以形象的说明阵列存储的原理。 在d d r _ 2s d r a m 中一般会分成4 个l b a n k 或者8 个l b a n k 。在寻址的时 候,首先确定是哪一个l b a n k ,然后再确定行地址和列地址并存取出数据。l b a n k 中的存储单元是最基本的单元,每一个基本单元存放一个b i t 的数据。d d r 2 s d r a m 的基本存储单元是靠电容充放电实现的,其示意图如图2 2 所示:+ 行地士l e 线 列 地 址 线 容 图2 2d d r 2s d r a m 存储单元示意图 行选通晶体管和列选通晶体管使得存储电容和外界选择性的隔离和交通,从 而进行放电( 读取) 和充电( 写入) 的操作。另外,其中的存储电容其实也是由 一个晶体管构成的。晶体管无法避免的要存在源、漏的漏电流,随着存储电荷的 流失,电容将无法保持原来的电位值。这将引起存储单元存储内容出错,所以需 要定时将存储电容的电压值读出来,放大电压之后回写进去,这就是其中刷新放 大电路的作用。 2 1 2d d r 2s d r a m 内部结构 d d 2s d r a m 内部大致可以分为地址解码复用,存储阵列,数据输出等模块, 详细结构如图2 3 所示: 从图2 3 中可以大致了解d d r 2s d r a m 工作模式。d d r 2 工作的时候需要 一对差分时钟c k 和c k # 和一个时钟使能信号c k e ,指示时钟信号何时有效。读 写操作d d r 2s d r a m 时候需要的命令信号有片选信号c s # ,行地址选择信号 r a s # ,列地址选择信号c a s # ,写使能信号w e # ,这些信号通过命令解码器,可 以得到众多的d d r 2s d r a m 操作命令,如图2 3 中模块所示。该模块还包括 个模式寄存器模块。 第三章d d r 2 控制器的设计 罟亭 k u 三 恕置南一8 强l 忍 骝窟暑母净 图2 3d d r 2s d r a m 内部结构 o 这个寄存器模块内部包含4 个寄存器,分别为模式寄存器m r ,扩展模式寄 o i ( m o x o 磊 落置黼簟 善扫 爵甜罐 趣鸳 立霹龋 亍_ i 皇牟 王c k b l 田z 万藩h 上嚣监精益 墨藩牟i f 辞船 弹露珊 f 薛牟 毫墨 静霪甜 z 不。 鲁:f 芋霹岂 籍岳 田z l i 亍善h t 嚣墨 融落 字 岂藩牟毫高档 i 鬟誊套荔 爵霹 n k ( = k # 王c m 尊矗f l f ( 。赛群稿 n z l 寸霉v 笤f i 5 c k 鼻y 口6 1 峙牲 # 爵甜翦 n n 套 口i r 盘磐簟 晷口qs# r c , d d r 2s d r a m 控制器的设计与验证 存器e m r ,扩展模式寄存器e m r 2 和扩展模式寄存器e m r 3 。这些模式寄存器主 要保存所有d d r 2s d r a m 芯片初始化时需要的配置和一些操作过程中的参数, 如输出驱动强度,o d t 阻值等等。 模块是刷新控制模块,由上一节2 1 1 的分析了解到,d d r 2s d r a m 正常 工作的时候需要定时的刷新命令以保持内部数据的稳定性。刷新计数器就是保证 每隔相同的时间定时给出一个刷新命令,这个命令可以由d d r 2s d r a m 内部自 动生成,也可以由d d r 2 控制器发送命令生成。 模块是行地址和列地址的解码器,b a n k 地址控制逻辑会选择让哪个行 ( 列) 选通,行( 列) 地址解码器会选择相应的行和列。 模块是d d r 2s d r a m 存储器的主体电路,存储所有的数据内容。当b a n k 中存储的数据通过行列选择信号被选中之后,经过读出放大器读出,并锁存起来。 模块是i o 掩码逻辑单元和读取写入锁存器单元,主要负责从存储阵列 中读取数据和向存储阵列写入数据。此时读出来的数据是3 2 b i t 位宽的,也就是 说实现了4 x 8 b i t 位宽的数据预读了,这就是所谓的4 b i t 预读系统。 读操作的时候,从模块得到的3 2 b i t 数据送到模块的读锁存器中,并在 每个时钟沿( 上沿或者下沿) 到来的时候通过m u x 。分别送到端口上去。这个过 程需要两个时钟就可以将四个数据送完。同时,d d r 2s d 洲还会送出 d q s d q s # 信号,提供给外部d d r 2 p h y 作为采样数据的随路时钟,这部分功能 由模块配合d l l ( d e l a yl o c kl 0 0 p ) 完成。被送出去的数据( d d r 2s d r a m 的读数据) ,其数据信号( d q ) 的变化沿和随路时钟信号d q s d q s # 的变化沿是 沿对齐的,外部d d r 2 p h y 在使用d q s d q s # 采样数据的时候,需要延迟 d q s d q s # 信号9 0 度才能正确采样到d q 数据。 写操作的时候,外部数据总线d q 和d m ( 数据掩码) 被输入到模块,并 利用随路时钟信号d q s d q s # 采样d q 和d m 信号。采样d m 信号得到4 个l b i t 数据,采样d q 信号得到4 个8 b i t 数据,分别凑成4 b i t 的d m 和3 2 b i t 的数据送 给f i f o 缓存,准备写入到存储阵列中。 模块为o d t 模块,即终端反射电阻开关。d m ,d q s d q s # ,d q 等信号 都连接着o d t 电阻,在d d r 2s d 刚命令的控制下打开或者关闭。 2 2 1 模块化分 2 2d d r 2 控制器的系统设计 d d r 2 控制器可以分为d d r 2 c n i t 和d d r 2 cc t r l 两个模块。如图2 4 第三章d d r 2 控制器的设计 所示。 f 、i n i t p t 皂旦 d d r 2 cc t l i n i tr e 1 c l k 。s y s , 尝 d d r 2 cc s 一 一 d d r 2 cc a s 一 一 d d r 2 c r a s d d r 2 cwe 、d d r 2 c a d d r 刍 、d d r 2 玎b a 一 1 n l te 皿r s ; 全局状态机 u ,; d d r 2 c h a r d 1 n l tm r s i n i t i n i tm o d r i n i to k 读写,刷新状态计数器 r s tn b aw d a t a 一 、d d r 2 艺w d a t i d d r 2 c 矗t a 一 n r o 一r 、ld d r 2 c 池t a 品 。 、 p h y r d a t a vld 、 一 、 些y r d 黔a 、 1 一、 d d r 2 c r d a t a _ e n b aa d d r : d d r 2 c o d t _ u 命令解码器 b a _ a c c e s s b arw7 b ar f c d d r 2 c _ r d a t a _ v ld , 地址映射 自 jt 、n d r ) r 、 7 j ! o o l 、“vi 一一诫“,t l 魄勘17 | :f 一。,! i 图2 4d d r 2 控制器的总体结构图 d d r 2 ci n i t 模块主要负责d d r 2 控制器的初始化工作。在系统上电初始化 的时候,该子模块启动d d r 2s d r a m 的初始化配置操作,产生相应的配置命令 提交d d r 2 cc t r l 子模块执行。配置结束后发出通知信号i n i to k ,触发 d d r 2 cc t r l 子模块的全局状态机进入i d l e 状态,准备开始接收各种操作命令。 d d r 2 cc t r l 模块主要负责全局状态的控制,并在相应状态下将用户的读、 写和刷新请求转换为满足d d r 2s d r a m 器件时序要求的相关命令操作。其内部 可以划分为全局状态机,读、写计数器和刷新计数器,命令解码器和地址映射等 单元。 全局状态机产生各种当前状态,是整个d d r 控制器的关键部分。读、写计 数器和刷新状态计数器主要是为了满足读、写操作和刷新命令的各种参数设计的。 命令解码器将相应的读、写和刷新命令转换为d d r 2s d r a m 能识别的命令信号 的组合。地址映射部分产生相应读、写操作的行、列和b a n k 地址。 d d r 2s d r a m 控制器的设计与验证 2 2 2 全局状态跳转 d d r 2s d r a m 的操作主要有上电初始化,读操作,写操作,刷新操作等等。 对应的全局状态机可以划分为5 个全局操作状态。分别为:硬复位初始化i n i t 、 写操作w c e l 、读操作r c e l 、刷新操作r f 和1 个待命空闲状态( i d l e ) ,其跳 转条件如图2 5 所示。 图2 5d d r 2s d r a m 状态机全局跳转 全局状态机详细的跳转说明如表2 。1 所示: 表2 1 全局状态机跳转表 跳转序当前状下一个状说明“一一“7 一q 7 ”“一7 ,。 。_ i 号态态 ,一 1,q “。, 一7” ,: d d r 2 c 完成一个读c e l l 周期之后,b a 侧又发起一个读 1r c e lr c e l c e l l 命令 第三章d d r 2 控制器的设计 跳转序当前状下一个状说明 二 且 态态 d d r 2 c 完成一个读c e l l 周期之后,暂时没有新的命令到 2 r c e l i d l e 来 3i d l er c e l 空闲状态的d d r 2 c 接至i j b a 侧发起的读c e l l 命令 4r fr c e l d d r 2 c 完成刷新命令后,b a n 发起读c e l l 命令 5r c e l r f d d r 2 c 完成读c e l l 命令后,b a t 贝v j 发起刷新d d r 2 命令 6r fd l e d d r 2 c 完成刷新命令后,暂时没有新的命令到来 7i d l er f 空闲状态的d d r 2 c 接到b a 侧发起的刷新d d r 2 命令 8w c e l) l e d d r 2 c 完成写c e l l 命令后,暂时没有新的命令到来 9d l ew c e l空闲的d d r 2 c 接到b a 侧发起的写c e l l 命令 1 0 r fw c e l d d r 2 c 完成刷新命令后,b a 钡t j 发起写c e u ,命令 1 1w c e lr f d d r 2 c 完成写命令后,b a 侧发起刷新命令 1 2w c e lr c e l d d r 2 c 完成写命令后,b a 侧发起读c e l l 命令 1 3r c e lw c e l d d r 2 c 完成读命令后,b a 侧发起写c e l l 命令 1 4w c e lw c e l d d r 2 c 完成写命令后,b a 侧再度发起写c e l l 命令 说明:其中r s th a r d 是系统的硬复位端口,一般是在上电的时候自动启动的 复位信号,r s tr l 是软复位信号( 图中没有显示) ,在正常操作的时候( 除上电初 始化过程i n i t 状态) ,接收到r s t n 有效信号,所有状态都会跳转到i d l e 状态。 2 2 3 功能定义 ( 1 ) 初始化模块( d d r 2 ci n i t ) 功能 初始化模块主要完成d d r 2s d r a m 芯片的初始化功能,保证d d r 2s d r a m 芯片在初始化完成之后能够稳定的工作。在初始化的时候还要根据实际的应用配 置一些d d r 2s d r a m 的参数。 在系统上电复位或接收到硬复位信号的时候,d d r 2 控制器会自动对d d r 2 s d r a m 进行初始化操作,对片内的模式寄存器或者扩展模式寄存器进行配置。 初始化流程如图2 6 所示。 初始化顺序如下: 步骤一:芯片上电后保持c k e 为低电平,v d d 在v d d l 之前或同时供电, v d d l 在v d d q 之前或同时供电,v d d q 在v t t 和v r e f 之前或同时供电。v d d 之间的电压差必须小于0 3 v 。 步骤二:启动时钟并至少保持稳定2 0 0 u s 时间。 1 2 d d r 2s d r a m 控制器的设计与验证 上电之后时钟始终至少稳 定2 0 0 u s ,o d t 置低 加载模式寄存器,配置扩 展模式寄存器 保持t m r d 时间 加载模式寄存器 配置扩 展模式寄存器2 保持2 0 0 个时钟 周期,使d l l 能 锁住频率 保持 t i 艰 + t c k 时间 保持 t m r d 时间 发布n o p 指令或者 d e s e l e c t 指令,并将 c k e 置高 保持最d 、4 0 0 n s p r e c h a r g ea l l ( 对所有b a n k 预充电) 加载模式寄存器配置扩 展模式寄存器3 加载模式寄存器 配置模 式寄存器 d l l 复位 p r e c h a r g ea l l a u t or e f r e s h a u t or e f r e s h l o a dm o d e s e tm r 初始化期间操作 l o a dm o d e - s e te n 瓜 o d c 是能打开 l o a dm o d e - s e te 吸 o d c 是能退出 初始化完成 图2 6d d r 2s d r a m 初始化流程 保持t m r d 时间 步骤三:上电和时钟稳定2 0 0 u s 之后,提供n o p 命令或d e s e l e c t 命令, 并且将c k e 信号置高电平表示时钟有效。 步骤四:c i t e 信号有效4 0 0 n s 之后,发布p r e c h a r g e a l l 命令。 第三章d d r 2 控制器的设计 步骤五:发布l o a dm o d e 命令设置e m r 2 寄存器( b a l 为l ,b a 0 为0 ) 。 步骤六:发布l o a dm o d e 命令设置e m r 3 寄存器( b a l 为l ,b a 0 为1 ) 。 步骤七:发布l o a dm o d e 命令设置e m r 寄存器,使能d l l ( a 0 为0 , b a l 为0 ,b a o 为1 ,同时e 7 、e 8 、e 9 必须为o ) 。 步骤八:发布l o a dm o d e 命令设置m r 寄存器,启动d l lr e s e t ( a 8 为1 ) 。整个过程需要持续2 0 0 个时钟周期用以锁定d l l ,锁定过程中c k e 必须 保持为1 。 步骤九:发布p r e c h a r g ea l l 命令。 步骤十:发布2 个或更多的a u t or e f r e s h 命令。 步骤十一二:发布l o a dm o d e 命令设置m r 寄存器,设置器件的操作参数 ( a 8 为0 ,b a l 为0 ,b a 0 为o ) 。 步骤十二:发布l o a dm o d e 命令设置e m r 寄存器,e n a b l eo c dd e f a u l t 功能和其他参数( b a l 为0 ,b a 0 为1 ,a 9 = a s = a 7 = 1 ) 。 步骤十三:发布l o a dm o d e 命令设置e m r 寄存器,e n a b l eo c de x i t 功能 和其他参数( b a l 为0 ,b a 0 为1 , a 9 = a 8 = a 7 = 0 ) 。 步骤十四:在d l l r e s e t2 0 0 个时钟周期之后,完成初始化操作,允许正常 读写操作。 硬复位初始化由d d r 2 ci n i t 子模块与d d r 2 cc t r l 子模块共同完成。 d d r 2 ci n i t 子模块依据严格的时序,基于初始化计数器i n i tc n t 依次产生 上述初始化操作的控制指令,并通过对应的指令端口信号( i n i to k 、i n i tp r e a 、 i n i t e m r e n d l l 、i n i t m r r s t d l l 、i n i t m r 、i r t i t r e f 、i n i t e m r 2 、i n i t e m r 3 、 i n i te m re 1 1o c d 、i n i te m l e x to c d ,i n i te i l l re x to c d ) 发给d d r 2 cc t r l 子模 块;d d i 也cc t r l 子模块则将这些指令和相关模式寄存器值映射到d d r 2 s d r a m 的命令信号接口上。 ( 2 ) 控制模块( d d r 2 cc t r l ) 功能 d d r 2s d r a m 控制模块主要根据初始化模块和b a ( b u f f e ra s s i g n m e n t ,应 用侧模块) 送来的简单命令,转换成d d r 2s d r a m 能够识别的复杂命令,并送 交d d r 2s d r a m 芯片接口。控制模块在系统初始化的时候将初始化模块送来的 1 1 个初始化命令转换成相应的d d r 2s d 洲命令存储到c t r lc m d 寄存器中,并 按照严格的顺序和时序要求分别发送给d d r 2s d r a m 芯片。在正常工作的时候, 主要完成读、写,刷新操作命令和软复位命令的转换,并通过优化命令的顺序和 操作方式提高带宽利用率。 1 、读c e l l 操作 读c e l l 操作由d d r 2 cc t r l 子模块与d d r 2p h y 共同完成。 d d r 2 c 读c e l l 操作的命令、地址映射由d d r 2 cc t r l 子模块完成,对 d d r 2s d r a m 控制器的设计与验证 读取数据的接收采样与数据格式转换则由d d r 2p h y ( d d r 2 物理接口) 模块完 成。其主要的操作步骤如下: 步骤一:接收到b a ( b u f f e ra s s i g n m e n t ) 侧的读请求后,全局状态机进入 r c e l 状态( c u rs t a t e = = r c e l ) 。 步骤二:读写状态计数器刑c n t 置初始值o ,并在r c e l 状态下开始计数, 从1 累加到1 4 后清零。 步骤三:命令生成电路在状态机处于r c e l 状态以及计数器i wc n t 计数到相 应的值后,分别产生d d r 2s d r a m4 个b a n k 的轮流激活a c t 命令与带自动 充电功能的读操作命令r d ,并锁存到命令生成寄存器c t r lc m d 上。 步骤四:命令译码电路将c t r lc m d 上的操作命令译码成d d p , 2s d r a m 接口 上具体的指令信号,并在命令端口寄存器d & 2 c c 嬲一n 、d d r 2 c r a s n 、d d r 2 c w e n 以及d d r 2 cc s n 上输出。 步骤五:地址映射电路在对应的操作命令下进行b a n k 地址、行列地址以及 特征功能位( a 8a 1 0 ) 的译码映射,并通过其端口寄存器( d d r 2 cb a 、d d r 2 ca d d ) 输出。 步骤六:d d r _ 2s d r a m 在步骤四和五两个过程中命令与地址信号的作用下, 发出读出的数据,d d r 2p h y 对此数据进行锁存并降低1 倍频率展宽成3 2 b i t 位 宽,从输出寄存器d d r 2 cr d a t a 送给b a 模块。其锁存操作还受到d d r 2 cc t r l 模块读使能信号d d r 2 cr d a t a e n 的控制。 上述读c e l l 过程中的前五个步骤都在d d r 2 cc t r l 子模块中实现,第六 个步骤由d d r 2p h y 处理,不在本论文的研究范围内。 在b a 向d d r c 发起读c e l l 请求以后,经过1 5 个时钟周期的命令延迟, 将从d d r 2 cr d a t a 端口持续地得到8 个时钟周期的读c e l l 数据,每个周期3 2 b i t 数据,总共3 2 b y t e 数据。 2 、写c e l l 操作 写c e l l 操作同样由d d r 2 cc t i 也子模块与d d r 2p h y 子模块共同完成。 d d r 2 c 写c e l l 操作的命令、地址映射由d d r 2 c c t r l 子模块完成,写数 据和随路时钟d q s d q s # 的产生与发送则由d d r 2p h y 模块完成。其主要的操作 步骤如下: 步骤一:接收到b a ( b u f f e ra s s i g n m e n t ) 侧的写请求后,全局状态机进入 w c e l 状态( c u rs t a t e 一- - - w c e l ) 。 步骤二:读写状态计数器刑c n t 置初始值o ,并在w c e l 状态下开始计数, 从l 累加到1 4 后清零。 步骤- - - _ 命令生成电路在状态机处于w c e l 状态以及计数器r w c n t 计数到 相应的值后,分别产生d d r 2s d r a m4 个b a n k 的轮流激活a c t 与带自动充 第二章d d r 2 控制器的设计 电功能的写操作命令w r ,并锁存到命令生成寄存器c t r lc m d 上。 步骤四:命令译码电路将c t r lc r n d 上的操作命令译码成d d r 2s d r a m 接口 上具体的指令信号,并在命令端口寄存器d d r 2 cc a sn 、d d r 2 cr a sn 、d d r 2 cw e1 1 以及d d r 2 cc sn 上输出。 步骤五:地址映射电路在对应的操作命

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论