嵌入式硬件-Xilinx FPGA MIG & DDR4 研究(二)(DDR3/4接口信号+PCB布线准则+引脚分配准则+Pinout)

目录

1. 简介

1.1 FPGA-MIG 与 DDR4 介绍

1.2 DDR4 信号介绍

1.2.1 Clock Signals

1.2.2 Address and Command Signals

1.2.3 Control Signals

1.2.4 Data Signals

1.2.5 Other Signals

2. 存储器布线准则

2.1 叠层和传播速度

2.1.1 计算传播速度

2.1.2 参考叠层

2.1.3 Signal-to-signal skew

2.1.4 Diff signal skew

2.1.5 CK to DQS skew

2.2 叠层浅/深原则

2.3 存储器降额

2.3.1 总则

2.3.2 数据信号降额

2.3.3 控制信号降额

2.4 板材

2.4.1 Dk / Df

2.4.2 典型材料

2.5 布局拓扑

2.5.1 Fly-by(飞跃式)

2.5.2 Clamshell(贝壳式)

2.6 校准调试

3. MIG 中的引脚准则

3.1 引脚配置

3.1.1 Bank/Byte Planner

3.1.2 Signal Group

3.1.3 自动分配信号组

3.1.4 DRC 检查

3.1.5 Vivado 编译检查

3.1.6 引脚交换

3.1.6.1 DQS/DQ/DM 位置

3.1.6.2 成对使用x4组件

3.1.6.3 数据字节通道

3.1.6.4 地址/控制信号

3.1.6.5 RDIMMs和UDIMMs

3.1.6.6 VRP 引脚

3.1.6.7 时钟引脚

3.1.6.8 reset_n 引脚

3.1.6.9 Bank 共享

3.1.6.10 Column要求

3.1.6.11 SLR 要求

3.1.6.12 接口上限

3.1.6.13 不允许跳过 Bank

3.1.6.14 GCIO 引脚

3.1.6.15 VREF 引脚

3.1.6.16 相同类型 Bank

3.1.6.17 PAR 引脚

3.1.6.18 sys_rst_n 引脚

3.1.7 引脚分配示例

3.2 《UG575》Pinouts

3.2.1 FFVB676 Bank Diagram

3.2.2 Multi−Function I/O Pins

3.2.3 Pinout Files

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 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/

<think>好的,我现在需要回答用户关于“FPGA外设DDR3”的问题。首先,用户之前询问了DDR3的存储空间,现在转向FPGA外设中的DDR3应用。我需要确保理解这两个概念如何结合。 用户可能想知道FPGA如何与DDR3内存连接,用途是什么,以及相关的技术细节。首先,我应该解释FPGA是什么,然后说明DDR3作为外设在FPGA中的作用。需要区分DDR3作为内存和外设的不同点,尤其是在FPGA系统中的角色。 可能需要涵盖以下点: 1. FPGA的基本概念,可编程逻辑器件,灵活性高。 2. DDR3作为外部存储器的用途,比如数据缓存、高速数据处理。 3. FPGADDR3连接的接口技术,如内存控制器IP核的使用。 4. 应用场景,比如通信、图像处理等需要高速数据吞吐的领域。 5. 设计时的挑战,如时序约束、信号完整性、功耗管理。 6. 开发工具和流程,如使用Vivado或Quartus进行配置。 要检查是否有技术细节需要深入,比如PHY(物理层接口)、时钟管理,或者DDR3FPGA通信的协议。同时,是否需要对比其他存储器类型(如DDR4、LPDDR),但用户可能只关注DDR3。 需要避免过于深入硬件设计细节,保持解释在介绍级别,但足够说明关键点。另外,考虑到用户可能有电子工程或嵌入式系统背景,所以适当的技术术语是可以的,但需解释清楚。 可能还需要提到FPGA厂商提供的IP核,比如XilinxMIG(Memory Interface Generator)或Intel的DDR3控制器,这些工具如何帮助开发者集成DDR3。此外,设计中的时序收敛和布局布线的重要性。 要确认信息的准确性,比如DDR3的速度范围、FPGA支持的最大容量,以及实际应用中的典型配置。例如,FPGA的型号不同,支持的DDR3速度和容量可能不同。 最后,是否需要给出示例应用或开发步骤?可能用户需要的是概述,而不是详细教程,所以保持结构清晰,分点说明会更合适。</think>--- FPGA(现场可编程门阵列)是一种可通过编程实现定制硬件逻辑的芯片,常与外部存储器(如DDR3)配合使用以满足高速数据缓存、实时处理等需求。以下是对 **FPGA外设DDR3** 的详细介绍: -- ### **1. DDR3FPGA中的作用** DDR3作为FPGA的外设,主要用于: - **高速数据缓存**:存储FPGA处理的大量临时数据(如视频帧、传感器数据)。 - **带宽扩展**:突破FPGA片内存储(Block RAM)的容量限制,支持更大规模数据操作。 - **通信桥梁**:在FPGA与其他处理器(如CPU、GPU)间充当高速数据中转站。 --- ### **2. FPGADDR3的连接方式** #### **(1) 硬件接口** - **物理层(PHY)**: FPGA通过专用引脚DDR3芯片连接,包括地址线、数据线、控制信号(如CLK, RAS, CAS, WE)等。 - **接口标准**: 遵循JEDEC DDR3规范,支持电压(1.5V)、时序(如CL=9~11)、速率(如800~2133 Mbps)。 #### **(2) 控制器IP核** FPGA厂商提供**内存控制器IP核**(如Xilinx MIG、Intel DDR3 SDRAM Controller),实现: - 时序管理(刷新、预充电) - 地址映射与命令调度 - 错误校验(可选ECC功能) --- ### **3. 典型开发流程** 1. **硬件设计**: -FPGA开发工具(Vivado、Quartus)中配置DDR3控制器IP核,设定速率、容量、时序参数。 - 分配FPGA引脚DDR3芯片的物理连接(需参考开发板原理图)。 2. **时序约束**: - 添加时钟约束,确保DDR3接口满足建立/保持时间(Setup/Hold Time)。 - 通过工具(如Vivado的时序分析器)验证信号完整性。 3. **逻辑设计**: - 编写HDL代码(Verilog/VHDL)或使用HLS(高层次综合)生成控制逻辑,实现DDR3的读写操作。 - 优化突发传输(Burst Transfer)、流水线设计以提高带宽利用率。 --- ### **4. 关键挑战与解决方案** | **挑战** | **解决方案** | |-------------------------|------------------------------------------| | **时序收敛困难** | 使用厂商提供的参考设计,严格约束时钟和信号路径。 | | **信号完整性(SI)问题** | 优化PCB布局(阻抗匹配、等长布线),添加终端电阻。 | | **高功耗** | 启用DDR3的低功耗模式(如自刷新)。 | -- ### **5. 应用场景** - **视频处理**:缓存高清视频流(如4K帧缓冲)。 - **通信系统**:存储高速ADC/DAC数据(如5G基带)。 - **人工智能**:加速神经网络权重与特征图的存取。 --- ### **6. 示例配置(以Xilinx FPGA为例)** - **IP核**:Memory Interface Generator (MIG) - **DDR3参数**: - 容量:1GB(单片) - 速率:1600 Mbps - 位宽:32-bit - **接口信号**:`ddr3_dq`(数据总线)、`ddr3_addr`(地址线)、`ddr3_ba`(Bank地址)等。 --- ### **7. 扩展知识** - **替代方案**: - 更高性能:DDR4/LPDDR4(需FPGA支持)。 - 更低成本:SDRAM或片内Block RAM(容量有限)。 - **调试工具**: - 使用ILA(集成逻辑分析仪)抓取DDR3读写波形。 - 通过JTAG读取内存控制器状态寄存器。 --- 如需进一步探讨具体实现细节或应用案例,欢迎继续提问! 🚀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值