FPGA-Xilinx 7系列FPGA DDR3硬件设计规则

发布日期:2023-08-16

Xilinx 7系列FPGA DDR硬件设计规则

介绍:本文介绍Xilinx 7系列FPGA DDR硬件设计规则和约束包括Bank选择、管脚位置约束、管脚分布、端接、I/O标准和布线长度。

01 设计规则

存储类型、存储数量和数据宽度受到选择FPGA器件家族、FPGA速度等级和设计频率取决于设备的电气特性。

02 Bank和管脚选择

在这里插入图片描述

图1、DDR3 数据组连接(DCI级联从Bank)

图2、DDR3地址组连接(DCI级联主Bank)

图3、DDR3 连接地址/控制组(DCI级联从Bank)

MIG管脚分配是根据物理层规则生成的。Xilinx7系列FPGA它是为非常高性能的内存界面而设计的DDR3 SDRAM物理层必须遵循某些规则。Xilinx7系列FPGA为每个DQS字节组提供特殊逻辑。每个50管脚bank中有四个DQ字节组。每个字节组包括一个支持时钟输入/输出DQS与10个相关的DQ数据I/O。在典型的DDR这10个数据总线配置I/O中有8个用于DQ,用于数据掩码(DM),内存界面中的另一个信号。推荐用MIG工具为7系列DDR接口产生管脚输出。MIG工具遵循以下规则:

  • 系统时钟输入必须与内存接口位于同一列。如有可能,建议将系统时钟输入到地址/控制组中。

  • CK必须连接到其中一个控制字节组p-n差异是对的。组中的任何东西p-n是可接受的,包括SRCC、MRCC和DQS引脚。

  • 若使用多个CK输出,例如dual rank,则所有CK输出必须来自同一字节通道。

  • 由于DDR2和DDR3 SDRAM字节组的连接,字节组DQS必须连接到信号Bank中指定的DQS对。

  • DQ和DM信号必须与相应的信号连接DQ相关联的字节组引脚。

  • VRN和VRP用于支持DCI数字控制阻抗的组(DCI)参考。

  • 如果满足以下条件,则非字节组引脚(即HP Bank中的VRN/VRP引脚和HR Bank地址/控制引脚可用于中于地址/控制引脚:
    –对于HP Bank,使用DCI级联,或Bank不需要VRN/VRP引脚,仅用于输出;
    –相邻字节组(T0/T3)用作地址/控制字节组;
    –相邻字节组(T0/T3)有未使用的引脚,或CK相邻字节组中包含输出。

  • 从die从角度看,单个接口最多可以使用三个垂直接口Banks。

  • 地址/控制必须位于三个跨度I/O Banks的接口中间I/O bank中间。所有地址/控件必须位于同一位置I/O Bank中间。地址/控制不能在Bank之间分割。

  • 控制线(RAS_N、CAS_N、WE_N、CS_N、CKE、ODT)不用于数据字节组的字节组必须与地址线连接。

  • 复位RESET_N任何可连接到设备的可用引脚,包括VRN/VRP引脚(如果使用DCI级联),只要符合时间顺序并适当使用I/O电压标准。GUI将此管脚限制在接口上Bank,优化时序,但这是不必要的。

注意:DCI详见级联设置:Xilinx FPGA时钟及I/O介绍接口规划(二)相关章节。

?

03管脚交换(Pin Swapping)

  • 管脚可以在每个字节组(数据和地址/控制)内自由交换,但DQS必须支持时钟DQS对上,CK必须在p-n对上。
  • 字节组(数据和地址/控制)可以自由交换。
  • 字节组和字节组之间可以自由交换地址/控制字节组中的管脚。
  • 不允许进行其他引脚交换。

04控制器之间Bank共享

使用内存接口Bank未使用的管脚不允许与另一个内存接口共享。Bank中所有FIFO和相位器的特殊逻辑设计是只使用单个内存接口,不能与其他内存接口共享。MIG共享地址和控制在核心支持的双控制器中。

05系统时钟、PLL和MMCM分配和约束

强烈建议PLL和MMCM时钟位于存储器接口Bank满足指定接口性能。MIG尽可能遵循这两条规则。唯一的例外是16位接口,时钟输入可能没有多余的管脚。在这种情况下,需要从相邻的一个输入时钟bank通过频率主干线(frequency backbone)到PLL。PLL特殊时钟必须输入系统时钟I/O。

图4、系统时钟连接

系统时钟输入只能用于同一列中的接口。如果时钟来自另一列,则额外的PLL或MMCM和时钟路由会导致过多的额外抖动。

来自PLL未使用的输出可作为时钟输出。这些输出的设置只能改变。与整体一起PLL与所用输出相关的行为设置不得受到干扰。

PLL界面之间不能共享。

06 DDR3 PCB布线

根据时钟、地址和控制线,需要根据Fly-by拓扑结构布线。Fly-by指这组线路以菊花链的形式布线,并在线路末端适当端接。必须匹配组中每个信号到给定组件的布线长度。DDR数据总线布线应尽可能短。每个信号应尽可能短PCB层上布线,尽量减少额外过孔引起的阻抗不连续性。

VREF布线

在利用MIG工具例化IP核时,会选择内部VREF或者外部VREF。
内部VREF:当数据速率不超过800Mb/s的情况。

外部VREF:对于给定FPGA最大指定数据速率在速度等级下,外部VREF必须跟踪提供给DRAM和地面的VDD电压中点。VREF电阻分压器或稳压器可以完成跟踪。在这些数据速率下,不考虑提供固定参考电压。VDD电压稳压器。VREF为了减少与其他干扰信号的耦合,需要大于最小间距。

VCCAUX_IO

VCCAUX_IO可根据存储器的性能设置为1.8V或者2.0V。如果需要不同的存储器或FPGA此时,设备迁移,VCCAUX_IO供电可设置为可调节。

端接

图5、DDR3地址/控制信号端
  • 强烈建议模拟和模拟信号(IBIS或其他)(A,BA)命令(RAS_N、CAS_N、WE_N)和控制(CS_N,ODT)信号的加载取决于速度要求、终端拓扑、无缓冲等各种因素DIMM使用和多列DIMM,而且可能是实现性能目标的限制因素。
  • 在1333Mb/s以更高的速度运行,单端布线需要控制在40Ω,并且需要进行端接处理。低于1333Mb/s时,50Ω可以接受。图6和图7适用于1333 Mb/s以及更高的速度。

图6、40Ω端接到VTT

图7、80Ω分立端接到VTT
  • 在1333Mb/s当以更高的速度运行时,差分信号线路阻抗需要控制在80Ω,并进行端接处理。不到1333Mb/s时,100Ω可接受。图8适用于1333Mb/s以及更高的速率。
图8、80Ω差分端接
  • 对于CK_P/CLK_N推荐端接方案如图9所示。

图9、CK时钟端接
  • 使用VTT电源时,端接的高频电流必须仔细管理。建议每四个端接使用一个1μF旁路电容器每25个端接使用100个μF旁路电容。
  • 地址和控制信号(A、BA、RAS、CAS、WE、CS、CKE、ODT)将通过板载DIMM终端终止。如果没有。DIMM在线路远端使用40个终端或正在使用的组件Ω的上拉至VTT(图6)。除了需要差异端接之外。CK/CK_N,如图1-93所示。
  • 可以使用VCCO的80Ω分立端接和GND的80Ω端接(图7),但需要更多的功耗。双向信号需要在信号的两端连接。ODT应在内存端使用。HP bank最佳性能应使用DCI。为了在HR banks获得最佳性能,IN_TERM(内部端接)需要使用。
  • 存储设备内部终端或负载处应使用差分信号80Ω端接差分终端(图8)。对于双向信号,需要在信号的两端端连接。ODT应在内存端使用。HP bank最佳性能应使用DCI。为了在HR banks获得最佳性能,IN_TERM(内部端接)需要使用。
  • 所有端接必须尽可能靠近负载。如果终端放置在负载引脚的小距离内,端接可以放置在负载前后。允许距离可以通过模拟来确定。FPGA需要DCI(HP bank)或IN_TERM(HR bank),以满足指定的性能。
  • 复位信号不需要端接。在内存初始化过程中,该信号应被拉低,并将一个4.7 kΩ的电阻器连接到GND(如图5所示)。
  • ODT端接是必需的,它在存储器内部进行端接。应使用MIG工具指定存储器系统的配置,以便正确设置模式寄存器。
  • 如果DM不是由FPGA驱动的(未使用数据掩码或禁用数据掩码的情况),则应将DM拉至GND。在这种情况下,用于DM的下拉电阻器的值不应大于ODT值的四倍。

走线长度

该部分描述的走线长度要求主要用于高速操作。当决定有效走线长度时应考
封装延迟,同一封装内的不同部分会有不同的内部走线偏移(延迟)。

使用Vivado Design Suite生成封装长度。以下命令生成一个csv文件,其中包含所考虑器件的每个管脚的封装迟值。

link_design -part 
write_csv 

例如,要获取7系列FPGA xc7z035ffg676-2的封装延迟信息,在Vivado Tcl控制台依次输入以下命令:

 link_design -part xc7z035ffg676-2
  write_csv flight_time

这将生成一个名为flight_time.csv在当前目录中包含每个pin的封装走线延迟信息。在对DDR3 SDRAM接口应用特定的走线匹配准则时,对于整个电气传播延迟,应该考虑这个额外的封装延迟时间。

图10、封装走线延迟文件flight_time.csv

当在同一封装中不同尺寸的芯片之间迁移时,同一封装管脚可能会有不同的延迟。每个器件的延迟值都必须考虑在内,并且每个引脚都应该使用延迟中值。否则,可能会降低目标器件的最大性能。

DDR3 SDRAM信号之间最大电气延迟如下:

  • 任何DQ或DM与其相关DQS/DQS之间的最大电气延迟必须≤±5ps。

  • 任何地址和控制信号与相应的CK/CK#之间的最大电延迟必须≤±25ps,8ps是最佳目标。

  • CK/CK信号必须在DQS/DQS信号之后到达每个存储器件。CK/CK与DQS/DQS之间允许的偏差范围必须在0到1600ps之间。对于组件/UDIMM,CK/CK和DQS/DQS之间的建议偏差为150ps到1600ps,RDIMM为450ps到750ps,根据此要求进行设计时,必须考虑从FPGA到DIMM上的内存组件的总CK/CK和DQS/DQS传播延迟。

  • CK/CK必须在DQS/DQS之后到达每个内存组件,以确保校准可以将DQS/DQS与正确的CK/CK时钟周期对齐。如果违反此规范,则会发现写入校准失败。

如果存储器接口未在最大频率下运行,则可以增加指定的DQ到DQS偏移限制。表1显示了这些情况下的最大余量值(±)。纵轴是以Mb/s为单位的比特率。

表1、DQ和DQS走线最大偏移

例如,如果FPGA -3等级速度器件,DDR3速率可达1866Mbps,当使用DDR3存储器以1600Mbps速度运行时,则根据表,DQ和DQS的偏差极限值为±31.3ps,如果接口以1066Mbp速率运行,则偏差极限值为±150ps。

类似地,如果存储器接口没有以最大频率操作,则可以增加指定的CK到地址/控制时序偏差限制。表2显示了这些情况下的余量极限(±)。

表2、CK和地址/控制信号走线最大偏移

例如,如果FPGA -3等级速度器件,DDR3速率可达1866Mbps,当使用DDR3存储器以1600Mbps速度运行时,则根据表,CK和地址/控制信号的偏差极限值为±94.1ps,如果接口以1066Mbp速率运行,则偏差极限值为±150ps。

另外,I/O Bank内不同字节组内偏移应≤1ns。

06 I/O标准配置

XDC约束文件包含时序、管脚和I/O标准信息。系统时钟约束设置接口的工作频率,并通过MIG GUI进行设置。如果需要更改,则必须重新运行它,因为其他内部参数会受到影响。例如:

  create_clock -period 1.875 [get_ports sys_clk_p]

clk_ref约束设置IDELAY参考时钟的频率,通常为200 MHz。例如:

  create_clock -period 5 [get_ports clk_ref_p]

图11、DDR3 I/O约束

MIG工具根据所选的数据速率和电压输入设置VCAUX_IO约束,如图11所示。

这些规则适用于DDR3 SDRAM的I/O标准选择:

  • MIG工具生成的设计使用SSTL15_T_DCI和DIFF_SSTL15_T_DCI标准,用于HP Bank中的所有双向I/O(DQ、DQ)。在HR Bank中,该工具使用SSTL15和DIFF_SSTL15标准,并在GUI中选择内部终端(IN_TERM)属性.

  • SSTL15和DIFF_SSTL15标准用于单向输出,如控制/地址等;

  • LVCMOS15用于驱动至DDR3存储器的复位信号RESET_N。

07 存储器通用布线规则

  1. 在确定信号走线长度时,在布线约束中包括封装延迟。当封装延迟的最小值和最大值可用时,使用最小值和最大值之间的中值。

  2. 同一字节(Byte)中的DQ和DQS信号应在同一层从FPGA布线至DRAM,扇出区域除外。

  3. 对于Fly-by布线,地址、命令、控制和时钟信号可以在不同的层上布线任何信号层交换过孔都需要在50mil周长范围内有一个接地过孔。

  4. 确保存储器ODT设置与传输线阻抗匹配。

  5. 系统时钟推荐设计如图12所示。

图12、系统时钟推荐设计
  1. 信号线必须参考连续参考平面布线,避免跨分割层布线(图13)。

图13、信号跨分割层布线
  1. 使布线至少与参考平面保持30mil的距离,并离板边一定距离。

  2. 在扇出区域中,通路空隙孔中间的布线信号线。避免在通孔空隙边缘布线。

图14、扇出区域布线
  1. 使用V字形布线,以允许使用地缝过孔。

图15、地缝过孔
  1. 在器件边缘和器件内部尽可能多地添加接地过孔,为信号和电源提供更好的接地回路,尤其是角落。
  2. 对于ADDR/CMD/CTRL VTT终端,每四个终端电阻器应配备一个1.0μF电容器,在电阻器之间物理交错。

图16、ADD/CMD端接布局
  1. 为了优化信号路由,图17中给出了一个组件布局的建议。
图17、DDR优化布局

图18、5片DDR优化布局

延伸阅读:Artix-7 and Spartan-7 FPGAs DDR2/DDR3 PCB设计指导

Xilinx Virtex-6/Spartan-6 FPGA DDR3信号完整性分析和PCB布局指南

原创 FPGA技术实战 FPGA技术实战,如有侵权,请及时联系小编,参考原文:《Xilinx 7系列FPGA DDR3硬件设计规则》

XILINX(赛灵思)热门型号