目录
1. 简介
1.1 FPGA-MIG 与 DDR4 介绍
1.2 DDR4 信号介绍
1.2.1 Clock Signals
1.2.2 Address and Command Signals
1.2.3 Address and Command Signals
1.2.4 Data Signals
1.2.5 Other Signals
2. 通用存储器布线准则
3. Xilinx FPGA-MIG 的 PCB 准则
3.1 引脚交换
3.1.1 Bank/Byte Planner
3.1.2 Signal Group
3.1.3 自动分配信号组
3.2 《UG575》Pinouts
3.2.1 FFVB676 Bank Diagram
3.2.2 Multi−Function I/O Pins
3.2.3 Pinout Files
3.3 布线准则
3.3.1 Fly-by(飞跃式)
3.3.2 Clamshell(贝壳式)
4. 总结
5. 参考资料
1. 简介
1.1 FPGA-MIG 与 DDR4 介绍
DDR4
DDR 的全称是 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory),即双倍数据传输率的同步动态随机存取存储器。
- DDR - 即双倍的意思。DDR 内存采用了双倍数据传输率的技术,即在每个时钟周期内可以传输两次数据,相比于传统的 SDRAM,DDR 内存的数据传输速度是提升了一倍的。
- Synchronous - 表示内存与系统时钟同步工作,数据传输在时钟的控制下进行。
- Dynamic - 表示内存是动态随机存取存储器,需要定期刷新以保持数据的存储状态。与之相对的是静态存储器(SRAM),SRAM 速度更快、功耗更高,但相对稳定且不需要定期刷新。
- RAM - 随机存取存储器,其对立面是 Sequential Access Memory(顺序存取存储器),包括:磁带、光盘、磁盘。
FPGA-MIG
Memory Controller - 控制器接受来自用户接口的突发事务,并生成与 SDRAM 之间的事务。控制器负责处理 SDRAM 的时序参数和刷新。它合并写入和读取事务,以减少在转换总线时涉及的死周期数量。控制器还重新排序命令,以改善数据总线到SDRAM的利用率。
Physical Layer - 物理层为 SDRAM 提供高速接口。该层包括 FPGA 内的硬块和软件块校准逻辑,以确保硬块与 SDRAM 接口的时序最佳。
Application Interface - 用户接口层为应用程序提供类似 FIFO 的简单接口。数据被缓冲,读取的数据按照请求顺序呈现。
1.2 DDR4 信号介绍
1.2.1 Clock Signals
ck_t, ck_c - 差分时钟
1.2.2 Address and Command Signals
a[17,13:0] - 地址输入
ras_n/a[16] - 行地址选通,地址位 16
cas_n/a[15] - 列地址选通,地址位 15
we_n/a[14] - 写入使能,地址位 14
bg[1:0] - Bank 组输入
ba[1:0] - Bank 地址输入
act_n - Activation command input(激活命令输入)
par - Command and address parity input(命令和地址奇偶校验输入)
1.2.3 Address and Command Signals
cke - 时钟使能
cs_n[3:0] - 芯片选择
odt - On-die termination enable
reset_n
1.2.4 Data Signals
dq[79:0] - 数据输入/输出
dqs_t/dqs_c[9:0] - Data strobe (differential),数据选通 (差分)
dm_n/dbi_n - Data mask and data bus inversion(数据掩码和数据总线反转)
1.2.5 Other Signals
TEN - Test connectivity mode. CMOS level. Connect 500Ω resistor to ground at memory devices。测试连接模式。 CMOS 级别。将 500Ω 电阻连接到位于存储器器件处的接地。
alert_n
VRP (PL) - 240Ω to GND
ZQ (PS) - 240Ω to GND
2. 通用存储器布线准则
1. 判定信号走线长度时,请在布线约束内包含封装延迟。如可设置封装延迟的最小值和最大值,请使用最小值与最大值之间的中段值。
2. 总线内的最短信号和最长信号必须在列示的规范范围内。
3. 总线中最长地址信号与最短地址之间的延迟之差不得超过 2ps。
4. DDR4 组件接口的 CK 到 DQS 规范范围很大。目的是为了确保在所有存储器器件上从器件链的首个器件到最后一个器件间实现适当的写平衡。
5. 对于飞越式布线,可将地址信号、命令信号和控制信号布线于不同层级上,但建议尽可能少用此方法。请勿将任一信号布线在 2 个以上层级上,这样可最大限度减少可能导致串扰问题的感应环路。任何跨信号层的过孔都需在50 mil 周边范围存储器在 1 个接地过孔。
3. Xilinx FPGA-MIG 的 PCB 准则
3.1 引脚交换
3.1.1 Bank/Byte Planner
如果设计中存在 UltraScale 架构的 Memory IP,则包含启动内存 Bank/Byte 规划工具。
Memory Bank/Byte Planner
3.1.2 Signal Group
点击 Show Signal Group 按钮,以在 Signal Groups 对话框中显示每个 Memory IP 的信号组列表。
Signal Group 显示当前配置的 DDR 所有的信号线。
3.1.3 自动分配信号组
3.2 《UG575》Pinouts
《UltraScale(+) FPGAs Packaging and Pinouts Product Specification UG (UG575)》
3.2.1 FFVB676 Bank Diagram
FFVB676 (XCKU3P and XCKU5P)
3.2.2 Multi−Function I/O Pins
3.2.3 Pinout Files
UltraScale and UltraScale+ Package Device Pinout Fileshttps://www.xilinx.com/support/package-pinout-files/ultrascale-pkgs.html
命名规则:
# 差分
IO_L[1-24][P/N]_T[0-3 ] [U/L]_N[0-12]_ [multi-function]_[bank number]# 单端
IO_T[0-3 ][U/L]_N[0-12]_[multi-function]_[bank number]
- 大多数用户 I/O 引脚都支持差分信号并且可以成对实现。
- IO表示用户I/O引脚。
- L[1-24] 表示 I/O 引脚是差分对。没有L表示 I/O 引脚是单端的。
- T[0-3][U/L] 表示为引脚分配的字节组和该组内的半字节位置(上部或下部)。
- N[0-12] 其字节组内 I/O 的数量。
- [multi-function] 表示该引脚可以提供的其他功能。
- [bank number] 表示为用户 I/O 引脚分配的 Bank。
AD[0-15][P/N]
系统监视器差分辅助模拟输入0-15。
GC or HDGC
每个组中有四个全局时钟 (GC) 引脚对。 HDGC 引脚可以直接访问全局时钟缓冲区。 GC 引脚可以直接访问位于同一 I/O Bank 的时钟管理块 (CMT) 中的全局时钟缓冲器、MMCM 和 PLL。 GC 和 HDGC 输入提供对内部全局和区域时钟资源的专用高速访问。 GC 和 HDGC 输入使用专用路由,并且必须用于时钟输入,其中各种时钟功能的时序是必需的。 GC 或 HDGC 引脚在不用作输入时钟时可被视为用户 I/O。
DBC or QBC
字节通道时钟(DBC 和 QBC)输入引脚对是直接将源同步时钟驱动到 I/O Bank 中位片的时钟输入。在内存应用中,这些也称为 DQS。
PERSTN[0-1]
PCI Express 集成块的默认复位引脚位置。
3.3 布线准则
3.3.1 Fly-by(飞跃式)
飞越式拓扑是将所有存储器器件都包含在单一层级内,通常采用直插方式,布线更便于且提供最佳信号完整性,但可能占用较多开发板空间。
3.3.2 Clamshell(贝壳式)
贝壳拓扑具有开发板占用空间更小等优势,但存储器器件封装管脚位置不对称可能导致布线拥挤,增加串扰风险,因为接地回路过孔少且走线更长。
4. 总结
本文档提供了关于FPGA-MIG和DDR4内存的详细介绍,包括其工作原理、关键信号、以及与之相关的PCB设计准则。DDR4作为目前广泛使用的内存技术,其特点包括高速数据传输和同步工作机制,而FPGA-MIG则为这些内存提供了高效的控制和接口,确保数据传输的稳定性和高效性。文档还详细讨论了DDR4的信号类型,包括时钟信号、地址和命令信号以及数据信号等,这对于理解DDR4的工作机制至关重要。在PCB设计方面,本文档提供了关于如何布线和引脚分配的准则,旨在帮助设计师优化内存与FPGA之间的连接,以及提高整体系统的性能和可靠性。通过遵循这些准则,可以在设计高性能电子系统时,确保内存接口的稳定性和效率。
5. 参考资料
1. UG583 - 《UltraScale 架构 PCB 设计》
UltraScale Architecture PCB Design User Guide (UG583)https://docs.amd.com/r/en-US/ug583-ultrascale-pcb-design/UltraScale-Architecture-PCB-Design-User-Guide
2. PG150 - 《基于UltraScale架构的FPGA存储IP产品指南》
UltraScale Architecture-Based FPGAs Memory IP Product Guide (PG150)https://docs.amd.com/v/u/en-US/pg150-ultrascale-memory-ip3. UG899 -《I/O 和时钟规划》
Vivado Design Suite User Guide: I/O and Clock Planning (UG899)https://docs.amd.com/r/en-US/ug899-vivado-io-clock-planning/Introduction4. UG575 - 《Packaging and Pinouts》
Us(+) FPGAs Packaging and Pinouts Product Specification UG (UG575)https://0x04.net/~mwk/xidocs/ug/ug575-ultrascale-pkg-pinout.pdf5. UG571 - 《UltraScale Architecture SelectIO Resources》
UltraScale Architecture SelectIO Resources User Guide (UG571)https://docs.amd.com/r/en-US/ug571-ultrascale-selectio/I/O-Tile-Overview