ddr4原理,基于ZU+的外挂8颗DDR4的设计案例分析
本文主要从硬件设计的角度详细介绍了Zynq UltraScale MPSoC的DDR接口,最后展示了之前设计的基于ZU的8路外接DDR4的设计。
目前常用的是DDR4和DDR3,其他系列相对较少。本文主要介绍DDR4。
1、选择
根据ZU系列芯片、TRM、pg150等文档的数据表,DDR可以安装在ps面、PL面,也可以同时安装在PS面和PL面。
PL和PS都支持64位DDR4(不带ECC功能)。如果PL部分要支持64位DDR4,需要提供至少三个bank的HP接口,只能选择SFVC784或更高的封装。特别是使用内存颗粒和使用内存芯片的容量差别很大,需要根据实际需要来选择。
祖的DDR4接口如下:
PS DDR接口框图
PL DDR接口框图
对于DDR3,其功能如下:
支持DDR3 (1.5V)和DDR3L (1.35V)
容量限制:组件最高支持8 GB的密度,rdimms最高支持32 GB,sodimms最高支持16 GB,udimms最高支持16 GB。通过定制零件选择,可获得其它密度的存储设备支持。
对于DDR4,其功能如下:
容量限制:组件最高支持32 GB的密度,LR dimms最高支持64 GB,RDIMMs最高支持128 GB,SODIMMs最高支持16 GB,UDIMMs最高支持16 GB。通过定制零件选择,可获得其它密度的存储设备支持。
DDR接口的大致介绍请参考之前的文章《Zynq UltraScale+系列之“外围接口概述”》,PS端DDR控制器的详细特性可以参考《UG1085》的第17章,PL端的相关特性可以参考《PG150》、《WP454》等。此处不再赘述。
2、性能
DDR总线的效率在不同的使用模式下差异很大,实际评估速率时需要明确使用情况。
对于几种常见的操作模式,《PG150》给出了具体的效率,详情见下表:
几种常见的操作模式如下:
顺序读取
简单地址增量模式
100%阅读
顺序写入
简单地址增量模式
100%写入(控制器为VT跟踪生成的定期读取除外)
突发读/写混合
64次顺序读取和64次顺序写入的重复模式
50/50读/写混合
短脉冲读写混合
四次顺序读取和四次顺序写入的重复模式
在更改行地址以获得高页面命中率之前,以四个突发访问整个DRAM页面
50/50读/写混合
随机地址读/写混合
两次随机读取和两次随机写入的重复模式
低页面命中率的完全随机地址
50/50读/写混合
3、原理图设计
PS端的原理图设计基本没有问题,按照对应的功能引脚连接就好,PL端的接口需要特别注意。
尝试将单个存储器接口集中在几个HP存储体上。如果使用三个存储体,则两个存储体用作数据接口,一个存储体用作地址、控制和命令信号线的接口。地址、控制和命令信号尽量使用同一存储体,不要跨存储体使用;如果使用两个存储体,尽量确保数据相关引脚在一个存储体中,地址和控制信号在另一个存储体中。
地址、控制和命令信号不能与数据共享字节组,只能使用数据字节组以外的字节组。
CK差分时钟对必须使用差分对,并连接到控制字节组。尝试根据Vivado软件对时钟引脚的约束进行连接。如果有多个CK对,它们必须来自同一个字节通道。
除了DQS和CK,其他信号可以在字节组中自由交换。
每个字节的数据可以在组内自由交换。
在原理图设计前期,最好在vivado中预先配置PL侧引脚,不要不要等到PCB出来才在vivado验证。如果键信号引脚的定义有问题,这可能不可交换,它可以无法补救。
根据ZU系列MPSoC,DDR4接口原理图如下:
4、 DDR 4 SDRAM(PL和PS)的PCB指南
DDR总线的布局需要遵循一些通用的规则。数据线只支持点对点连接,其他信号根据粒子数量可以有各种拓扑。
ZU DDR4 SDRAM支持两种拓扑类型:飞越式和蛤壳式。当电路板空间紧张时,蛤壳式拓扑具有一定的优势。在MIG (PL端)是可选拓扑,PS端不支持蛤壳式拓扑。
如果80位宽的接口由5片x16粒子组成,5片DDR的布局将采用飞越式拓扑,如果使用9片x8粒子,蛤壳式拓扑将节省空间。
4.1.1、飞越结构布局
4.1.2、薄壳结构布局
4.1.3、点对点数据信号
由于官方推荐的主线阻抗较小(单端36/39,差分76),线宽较宽,但扇出部分阻抗较大(单端50,差分86),会导致阻抗突变。因此,在实际使用中,可以通过调整叠层来优化线宽,以满足阻抗要求,减少阻抗突变。
4.1.4、布局指南
以下是DDR4的约束规则。表中的参数是最短信号线和最长信号线之间的公差参数。一般情况下,DQS是数据组的目标,DQS与DQS进行比较,以进行约束。地址、控制和命令组一般以CLK为目标,而ACC(地址、命令、控制)则通过与CLK的比较而受到制约。
比如ACC信号线的最快传输时间是800ps,ACC信号线的最慢传输时间是840ps,时钟信号线的传输时间应该是862ps 8ps,比ACC总线的中间传输时间(820ps)慢了42ps。
CLK DQS和CLK DQS之间限制宽松,最小可以差-879,最大可以差10600,主要是保证整个菊花链从第一块到最后一块读写平衡功能正常。
DDR控制器可以调整DQS信号线的内部延迟。由于CK信号线链接每个DDR粒子,导致CK的容性负载较重,因此需要能够调整DQS信号线的内部延迟,以满足CK的约束。
规定CK信号线和DQS信号线从FPGA到链路中第一个DDR粒子的偏差不小于-149ps,到链路中最远的DDR粒子的偏差不大于1796ps。只要链中的第一个DDR粒子和最后一个DDR粒子满足这个条件,整个链中所有DDR粒子的读写平衡功能都会正常。
例如,如果从FPGA到第一个DDR粒子的DQS延迟是200ps,则从FPGA到第一个DDR粒子的CK延迟应该至少是51ps(200ps-149ps)。如果从FPGA到最后一个DDR粒子的DQS延迟为700ps,则从FPGA到最后一个DDR粒子的CK延迟应该小于2496 PS(700 PS1796 PS)。
以下是一些需要遵循的基本规则:
当使用内存模块时,CK信号和DQS信号之间的余量会更小,因为FPGA被约束到DIMM插槽,并且粒子的路由由DIMM决定,所以余量储备更小。
同一组的DQ、DQS和DM迹线必须在同一层。
数据线走线最好选择靠近连接器的那一层,尤其是DIMM中间的数据组。
当采用菊花链布线时,ACC信号线可以敷设在不同的层上,但层数越少越好。唐将一个信号切换到几层,尽量在一层完成主接线,这样可以减少串扰。当改变信号层时,有必要在开关过孔附近50英里内放置一个接地过孔。
FPGA和DDR设备驱动的阻抗为40,DCI和ODT的阻抗为40。因此,VTT的终端电阻为39.2。
使用内部VREF时,PL侧HP bank上的VREF引脚可以悬空,但不能用于普通IO。
如果系统时钟连接到DDR的HP组,则LVDS时钟信号需要从外部连接到适当的电压,因为在该组上有不同的逻辑电平(HSTL、SSTL或POD)。
对于菊花链布局,人字形布线可以形成拼接过孔;对于紧凑布局,可以通过采用扇出来形成接地针脚过孔。
在器件内部或周围放置尽可能多的接地过孔,以便为信号提供更好的返回路径,尤其是在拐角处。
对于ACC信号线端接电阻的布局,每四个端接电阻之间应穿插一个0.1uF的VTT去耦电容,这样可以降低端接VTT的噪声。为了布局方便,最好在原理图中为每四个电阻放置一个去耦电容。
对于DIMM,去耦电容应尽可能靠近DIMM放置,这样可以为电源提供低阻抗环路以及接地过孔。
以上是对ZU系列MPSoC的DDR接口的详细介绍。PCB设计请参考《UG583:UltraScale Architecture PCB Design User Guide》,官方开发板zcu 104、 zcu 102、 zcu 106等。
这里简要介绍了基于ZU (XCZU3CG-SFVC784)的8路外接DDR4的设计,采用10层板,厚度1.6mm,最小线宽4mil。板卡尺寸为120*150mm,单路12V电源输入,支持串口、I2C、USB、GbE、TF卡、CAN、PCIe等常用接口。PS侧和PL侧的IO接口被保留。
硬件框图如下图所示:
堆栈设计如下图所示:
整板DDR4部分的布局如下图所示:
Allegro中的约束规则如下图所示:
ACC信号线的约束规则如下图所示:
数据信号线的约束规则如下图所示:
整板布线完成后,情况如下图所示:
hfy
推荐阅读
- 百度影棒2S(百度影棒2S——颠覆智能硬件全新体验)
- 索尼sr45e(索尼sr45)
- 解密3年11位韩国明星自杀真相
- 摩托罗拉xt681怎么样(摩托罗拉xt681)
- 圣诞快乐再疯狂,圣诞快乐再疯狂是什么歌
- 中国风洞创始人,中国风洞
- 汉王文本王破解(汉王文本王7600)
- 人工智能对生活的影响有哪些方面(人工智能对生活的影响体现在哪些方面)
- vivo新机首发,vivo新机正式官宣
- W700c不能读出储存卡的歌(w700c)
- 2013款奥迪a8轮胎型号,2013款奥迪a8
- 1000w车载逆变器电路图讲解(分享1000W逆变器工作原理及电路图)
- 东亚运动会有哪些国家参加,东亚运动会有哪些国家
- 白大夫洁面仪有用吗(第五代白大夫洁面仪)
- 轩逸2020款报价及图片新轩逸,轩逸2020款报价及图片
- 支付宝悄然上线“晚点付”功能可次日付款不影响央行征信
- 蛋糕店设备图片(蛋糕店设备)
- 这部由叶子楣做大女主的电影,学着《跛豪》的拍片模式_可惜格局太小了_浪费了黎姿和陈宝莲的牺牲
- 汽车划痕怎样处理,汽车划痕怎么处理5大妙招轻松应对