艾巴生活网

您现在的位置是:主页>科技 >内容

科技

ddr4原理,基于ZU+的外挂8颗DDR4的设计案例分析

2024-11-19 13:50:05科技帅气的蚂蚁
本文主要从硬件设计的角度详细介绍了Zynq UltraScale MPSoC的DDR接口,最后展示了之前设计的基于ZU的8路外接DDR4的设计。目前常用的是DDR

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