目录
1.2.2 Address and Command Signals
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 Control 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,对于 DQ 信号,使用 CRC 校验,对于 Command / Control / Address 信号,使用奇偶校验,校验失败时,alert_n 信号有效。CKE、ODT、CS_n 不会参与校验。
- VRP (PL) - 240Ω to GND
- ZQ (PS) - 240Ω to GND
2. 存储器布线准则
2.1 叠层和传播速度
2.1.1 计算传播速度
1)信号的传播速度,即电磁场建立的速度,由以下公式得出:
其中 c 为真空中光速。
2)PCB 板材的相对磁导率都趋近于 1(铁、钴、镍等含铁磁体材料一般不在 PCB 材料中),则上述公式可以简化:
c = 299792458 m/s,εr 无单位;
3)常用 εr 数值计算:
- 1 inch = 25.4 mm
- 1 inch = 1000 mil
- c = 299.792458 mm/ns
- c = 11.80285268 inch/ns
εr |
Vp(mm/ns) |
Vp(inch/ns) |
1/Vp(ps/mil) |
4.0 |
149.896 |
5.901426 |
169.451 |
4.2 |
146.284 |
5.759202 |
173.635 |
4.5 |
141.324 |
5.563918 |
179.729 |
2.1.2 参考叠层
- 169.5 ps/in
- 1 in = 1000 mil
- 5 ps 相当于 1000/169.5*5 = 29.4985 mil
- 8 ps 相当于 1000/169.5*8 = 47.198 mil
- 10 ps 相当于 1000/169.5*10 = 58.997 mil
2.1.3 Signal-to-signal skew
DQ to DQS 示例
2.1.4 Diff signal skew
2.1.5 CK to DQS skew
CK 到 DQS 规范范围很大。目的是为了确保在所有存储器器件上从器件链的首个器件到最后一个器件间实现适当的写平衡。
在 DIMM 设计中,CK 至 DQS 的规范范围更窄一些,这是因为 PCB 布线仅从 UltraScale 器件延伸到 DIMM 中的第一个存储设备。从第一个存储设备到最后一个存储设备的布线由 DIMM 自行管理。
2.2 叠层浅/深原则
为实现最高内存接口性能,建议将所有高速信号布线在 L3、L 5等浅层信号层,以尽量减少器件引脚区域过孔的串扰影响。虽然可以使用更深层的信号层,但需通过系统级信号完整性仿真来权衡信号布线间距的取舍。(距离 IC 近端定义为浅层,距离 IC 远端定义为深层)。
在深层信号层布线高速信号,会增加线路过孔耦合抖动,具体程度取决于PCB板厚度。为降低深层过孔串扰影响,需对同层布线的信号间距作出折衷处理。
2.3 存储器降额
2.3.1 总则
《UG583,UltraScale 架构 PCB 设计》中的时序偏差值,是依据存储器接口最大数据速率要求计算得出。若系统实际运行频率低于最大数据速率,则部分偏差限制可适当放宽。
《UG583》附录表格详细列出了基于 FPGA 速度等级、存储器元件规格以及系统实际运行速率可调整的时序偏差裕量范围。
2.3.2 数据信号降额
数据信号(DQ to DQS)降额表
示例一,给定如下条件:
1)FPGA 标称速率 2666 Mb/s
2)存储器元件标称速率 2666 Mb/s(0.750ns @ CL = 18 (DDR4-2666) -075E)
3)系统实际运行于 2666 Mb/s
则:DDR4 的 DQ-DQS 偏差值为 ±10 ps(±58.997 mil)。
示例二,给定如下条件:
1)FPGA 标称速率 2666 Mb/s
2)存储器元件标称速率 1866 Mb/s(1.071ns @ CL = 13 (DDR4-1866) -107E)
3)系统实际运行于 1866 Mb/