问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Xilinx FPGA DDR4接口PCB设计准则详解

创作时间:
作者:
@小白创作中心

Xilinx FPGA DDR4接口PCB设计准则详解

引用
CSDN
1.
https://m.blog.csdn.net/DongDong314/article/details/140212275

DDR4内存和FPGA(现场可编程门阵列)是现代电子系统设计中的关键技术。本文将介绍DDR4的基本原理、信号分类以及在Xilinx FPGA上进行DDR4接口PCB设计的关键准则。

DDR4和FPGA-MIG简介

DDR4内存

DDR4的全称是DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory),即双倍数据传输率的同步动态随机存取存储器。

  • DDR:即双倍的意思。DDR内存采用了双倍数据传输率的技术,即在每个时钟周期内可以传输两次数据,相比于传统的SDRAM,DDR内存的数据传输速度是提升了一倍的。
  • Synchronous:表示内存与系统时钟同步工作,数据传输在时钟的控制下进行。
  • Dynamic:表示内存是动态随机存取存储器,需要定期刷新以保持数据的存储状态。与之相对的是静态存储器(SRAM),SRAM速度更快、功耗更高,但相对稳定且不需要定期刷新。
  • RAM:随机存取存储器,其对立面是Sequential Access Memory(顺序存取存储器),包括:磁带、光盘、磁盘。

FPGA-MIG

FPGA-MIG(Memory Interface Generator)是Xilinx FPGA中用于生成内存控制器的工具,它主要包含三个部分:

  • Memory Controller:控制器接受来自用户接口的突发事务,并生成与SDRAM之间的事务。控制器负责处理SDRAM的时序参数和刷新。它合并写入和读取事务,以减少在转换总线时涉及的死周期数量。控制器还重新排序命令,以改善数据总线到SDRAM的利用率。
  • Physical Layer:物理层为SDRAM提供高速接口。该层包括FPGA内的硬块和软件块校准逻辑,以确保硬块与SDRAM接口的时序最佳。
  • Application Interface:用户接口层为应用程序提供类似FIFO的简单接口。数据被缓冲,读取的数据按照请求顺序呈现。

DDR4信号分类

DDR4内存接口包含多种类型的信号,主要包括:

  • 时钟信号(Clock Signals):ck_t, ck_c - 差分时钟
  • 地址和命令信号(Address and Command Signals):a[17,13:0] - 地址输入;ras_n/a[16] - 行地址选通;cas_n/a[15] - 列地址选通;we_n/a[14] - 写入使能;bg[1:0] - Bank组输入;ba[1:0] - Bank地址输入;act_n - 激活命令输入;par - 命令和地址奇偶校验输入
  • 控制信号(Control Signals):cke - 时钟使能;cs_n[3:0] - 芯片选择;odt - On-die termination enable;reset_n
  • 数据信号(Data Signals):dq[79:0] - 数据输入/输出;dqs_t/dqs_c[9:0] - Data strobe (differential),数据选通(差分);dm_n/dbi_n - Data mask and data bus inversion(数据掩码和数据总线反转)
  • 其他信号(Other Signals):TEN - 测试连接模式;alert_n;VRP (PL) - 240Ω to GND;ZQ (PS) - 240Ω to GND

Xilinx FPGA-MIG的PCB设计准则

引脚配置

Bank/Byte Planner

如果设计中存在UltraScale架构的Memory IP,则包含启动内存Bank/Byte规划工具。

Signal Group

点击Show Signal Group按钮,以在Signal Groups对话框中显示每个Memory IP的信号组列表。Signal Group显示当前配置的DDR所有的信号线。

自动分配信号组

DRC检查

在分配或修改管脚分配后,必须运行DRC检查。运行DRC是管脚规划中最关键的步骤之一。DRC会根据一套特定的设计规则检查(称为规则集)来检查当前设计,并报告任何错误或违规情况。

在I/O Planning期间,Vivado执行基本检查以确保合法的引脚布局。然而,完整的签名DRC只在Vivado实施期间运行。因此,需要通过Vivado实施来确保最终合法的引脚布局。

交互式I/O Placement Routines,在引脚放置期间检查常见的错误情况。可以在General tab of the Package window的常规标签中使用Autocheck I/O Placement复选框来开启或关闭此功能。

当启用自动检查时,该工具不允许在会引起设计问题的引脚上放置I/O端口。在Place I/O Ports Sequentially模式下,如果尝试在有问题的引脚上放置一个I/O端口,会出现一个工具提示,描述为什么I/O端口不能被放置。

默认情况下,交互式DRC是启用的。

Vivado编译检查

通过Vivado生成Bitstream可最终判定引脚分配是否合规。如下图,所有接口均已分配完毕:

运行Generate Bitstream,如果没有报错,则引脚分配合规。另一个方法,在Reports中,打开implementation_log可以打开详细报告。

忽略警告:

在Planar中,如果出现感叹号,可以鼠标悬停查看详情,如下:

这个警告通常表示在DDR4引脚约束中,有些引脚被分配给了非内存信号。

在FPGA设计中,非内存信号是指那些不属于内存接口的信号。例如,在DDR4内存接口中,信号如ddr4_alert_n、ddr4_reset_n等,虽然与内存模块相关,但它们不直接参与数据的读写操作,因此被称为非内存信号。

引脚交换

字节组,包含数据字节组和地址/控制字节组。

  • 字节组内可自由交换:
  • 数据字节组、地址/控制字节组内的引脚可以自由交换。即,同一字节组内的任何引脚可以相互交换位置,但有一个例外:DQS必须位于其所在nibble的专用DQS上。
  • 字节组间交换:
  • 数据字节组、地址/控制字节组之间可以交换。
  • 地址/控制字节组的交换:
  • 地址/控制字节组内的引脚不仅可以在自己的组内自由交换,还可以与其他地址/控制字节组之间交换。
  • 除了上述允许的交换之外,不允许进行其他任何形式的pin swapping。

布线准则

飞越式(Fly-by)

飞越式拓扑是将所有存储器器件都包含在单一层级内,通常采用直插方式,布线更便于且提供最佳信号完整性,但可能占用较多开发板空间。

贝壳式(Clamshell)

贝壳拓扑具有开发板占用空间更小等优势,但存储器器件封装管脚位置不对称可能导致布线拥挤,增加串扰风险,因为接地回路过孔少且走线更长。

总结

本文档提供了关于FPGA-MIG和DDR4内存的详细介绍,包括其工作原理、关键信号、以及与之相关的PCB设计准则。DDR4作为目前广泛使用的内存技术,其特点包括高速数据传输和同步工作机制,而FPGA-MIG则为这些内存提供了高效的控制和接口,确保数据传输的稳定性和高效性。文档还详细讨论了DDR4的信号类型,包括时钟信号、地址和命令信号以及数据信号等,这对于理解DDR4的工作机制至关重要。在PCB设计方面,本文档提供了关于如何布线和引脚分配的准则,旨在帮助设计师优化内存与FPGA之间的连接,以及提高整体系统的性能和可靠性。通过遵循这些准则,可以在设计高性能电子系统时,确保内存接口的稳定性和效率。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号