Xilinx FPGA差分接口引脚约束
-
- 一、概述
- 二、确定外设通信接口的电气标准
-
- [1. 优先查找手册中的明确标准名](#1. 优先查找手册中的明确标准名)
- [2. 没有标准名时,从DC参数反推](#2. 没有标准名时,从DC参数反推)
- [3. 核实外设的信号方向](#3. 核实外设的信号方向)
- 三、确认FPGA引脚是否支持该电气标准
-
- [1. 确认FPGA Bank类型与VCCO](#1. 确认FPGA Bank类型与VCCO)
- [2. 核对FPGA支持的IOSTANDARD](#2. 核对FPGA支持的IOSTANDARD)
- [3. 核对电气参数容限(分方向核查)](#3. 核对电气参数容限(分方向核查))
-
- [场景A:FPGA作为接收端(外设 → FPGA)](#场景A:FPGA作为接收端(外设 → FPGA))
- [场景B:FPGA作为发送端(FPGA → 外设)](#场景B:FPGA作为发送端(FPGA → 外设))
- 四、除引脚和电平约束外,需要哪些其他约束
-
- [1. 端接电阻配置(DIFF_TERM)](#1. 端接电阻配置(DIFF_TERM))
- [2. 均衡器配置(EQUALIZATION)](#2. 均衡器配置(EQUALIZATION))
- 五、完整流程
- 六、关键手册参考
一、概述
在FPGA项目开发中,当外设通信接口为差分信号(如LVDS)时,需要确认以下3个问题:
-
外设通信接口的电气标准
-
FPGA引脚是否支持该电气标准
-
除了引脚约束、电平标准约束,还需要哪些其他约束
二、确定外设通信接口的电气标准
1. 优先查找手册中的明确标准名
在外设数据手册的以下位置查找接口标准信息:
| 查找位置 | 内容示例 |
|---|---|
| 首页Features | "LVDS Interface"、"MIPI D-PHY v1.2" |
| Pin Description | 引脚定义中标注的LVDS、HSTL |
| Electrical Characteristics章节标题 | "LVDS DC Characteristics" |
2. 没有标准名时,从DC参数反推
在手册的"Electrical Characteristics"或"DC Specifications"中查找关键参数。但需要注意:必须根据信号方向,看对应的参数。
区分方向:发送端看输出参数,接收端看输入参数
| 角色 | 需要查的参数 | 含义 |
|---|---|---|
| 发送端(Driver) | VODIFF / VOCM | 输出差分电压摆幅 / 输出共模电压 |
| 接收端(Receiver) | VIDIFF / VICM | 输入差分电压容限 / 输入共模电压范围 |
常见差分标准速查表:
| 接口标准 | VODIFF(发送端输出) | VOCM(发送端输出) | VIDIFF_min(接收端需求) | VICM(接收端范围) | 端接电阻 |
|---|---|---|---|---|---|
| LVDS | 250~450 mV | 1.125~1.375 V | ≥100 mV | 0.05~2.4 V | 100Ω差分 |
| Sub-LVDS | 100~200 mV | 0.8~1.0 V | ≥100 mV | 0.05~1.15 V | 100Ω差分 |
| M-LVDS | 480~650 mV | ~1.2 V | ≥100 mV | 0.05~2.4 V | 100Ω差分 |
| SLVS | 100~200 mV | ~0.2 V | ≥100 mV | 0~0.5 V | 50/100Ω |
| RS-422 | 1.5~5 V | --- | ≥200 mV | -7~7 V | 100Ω差分 |
| LVPECL | 600~1000 mV | ~2.0 V | ≥100 mV | 1.3~2.2 V | 50Ω上拉 |
| CML | 400~800 mV | 无(需端接) | ≥100 mV | --- | 50Ω对地 |
3. 核实外设的信号方向
明确外设的差分接口是输出 还是输入(或双向),这将决定FPGA侧是作为接收端还是发送端,直接影响参数核对方式。
三、确认FPGA引脚是否支持该电气标准
1. 确认FPGA Bank类型与VCCO
Xilinx 7系列及UltraScale系列FPGA的I/O Bank分为两类:
| Bank类型 | 电压范围 | 支持的LVDS标准 | LVDS输出要求 |
|---|---|---|---|
| HP Bank(高性能) | 1.2V~1.8V | LVDS |
VCCO=1.8V |
| HR Bank(高范围) | 1.2V~3.3V | LVDS_25 |
VCCO=2.5V |
关键规则:
- 差分输出:VCCO必须严格等于标准要求的电压,无变通余地。
- 差分输入 :VCCO相对灵活(HP Bank可用
LVDS,HR Bank可用LVDS_25),但启用内部端接时必须匹配标准电压。
2. 核对FPGA支持的IOSTANDARD
查阅对应FPGA系列的SelectIO用户指南(7系列UG471、UltraScale UG571),确认目标标准是否在支持列表中:
| FPGA系列 | 支持的差分标准 |
|---|---|
| 7系列 | LVDS、LVDS_25 |
| UltraScale/UltraScale+ | LVDS、LVDS_25、SUB_LVDS、MINI_LVDS_25、RSDS_25、PPDS_25、BLVDS_25、TMDS_33 |
3. 核对电气参数容限(分方向核查)
这是最关键的一步。根据信号方向,分别核对对应的参数组合。
场景A:FPGA作为接收端(外设 → FPGA)
需要核对:外设的发送参数(VODIFF/VOCM) 是否满足 FPGA的接收容限(VIDIFF/VICM)。
| 步骤 | 查什么 | 从哪里查 | 判断条件 |
|---|---|---|---|
| ① | 外设的 VODIFF(输出摆幅) | 外设手册 DC 表 | VODIFF ≥ FPGA的VIDIFF_min |
| ② | 外设的 VOCM(输出共模) | 外设手册 DC 表 | VOCM 落在 FPGA的VICM范围内 |
| ③ | FPGA的 VIDIFF_min | FPGA DC/AC 特性手册 | 作为①的判断基准 |
| ④ | FPGA的 VICM 范围 | FPGA DC/AC 特性手册 | 作为②的判断基准 |
以UltraScale HP Bank为例(UG571):
- VIDIFF_min = 100 mV
- VICM = 0.05V ~ 1.15V
| 外设接口类型 | 外设 VODIFF | 外设 VOCM | 判定结果 |
|---|---|---|---|
| 标准LVDS | 350 mV | 1.2 V | VODIFF OK,但VOCM(1.2V)略超VICM上限(1.15V),临界,建议交流耦合 |
| Sub-LVDS | 150 mV | 0.9 V | VODIFF(150mV)>100mV,VOCM(0.9V)在0.05~1.15V内,完美匹配 |
| M-LVDS | 590 mV | 1.2 V | 同标准LVDS,临界 |
场景B:FPGA作为发送端(FPGA → 外设)
需要核对:FPGA的发送参数(VODIFF/VOCM) 是否满足 外设的接收容限(VIDIFF/VICM)。
| 步骤 | 查什么 | 从哪里查 | 判断条件 |
|---|---|---|---|
| ① | FPGA的 VODIFF(输出摆幅) | FPGA DC/AC 特性手册 | VODIFF ≥ 外设的VIDIFF_min |
| ② | FPGA的 VOCM(输出共模) | FPGA DC/AC 特性手册 | VOCM 落在外设的VICM范围内 |
| ③ | 外设的 VIDIFF_min | 外设手册 DC 表 | 作为①的判断基准 |
| ④ | 外设的 VICM 范围 | 外设手册 DC 表 | 作为②的判断基准 |
特别注意 :FPGA作为发送端时,其VODIFF和VOCM由所选的IOSTANDARD和VCCO决定,是固定的,无法通过约束调整。
FPGA常见IOSTANDARD的输出参数:
| IOSTANDARD | 典型 VODIFF | 典型 VOCM | VCCO要求 |
|---|---|---|---|
LVDS(HP Bank) |
~350 mV | ~1.2 V | 1.8V |
LVDS_25(HR Bank) |
~350 mV | ~1.2 V | 2.5V |
SUB_LVDS(UltraScale) |
~150 mV | ~0.9 V | 1.8V |
四、除引脚和电平约束外,需要哪些其他约束
完成引脚位置(PACKAGE_PIN)和电平标准(IOSTANDARD)约束后,根据具体场景,可能还需要以下约束:
1. 端接电阻配置(DIFF_TERM)
LVDS的工作原理是发送端为电流源驱动,接收端通过100Ω电阻将电流转换为电压。
何时需要配置DIFF_TERM:
| 信号方向 | 是否需要端接 | 配置方式 |
|---|---|---|
| 输入(FPGA作为接收端) | 需要 | 满足条件时启用DIFF_TERM TRUE;不满足时外接电阻 |
| 输出(FPGA作为发送端) | 不需要 | 发送端无需端接 |
tcl
set_property DIFF_TERM TRUE [get_ports {data_p[*]}]
set_property DIFF_TERM FALSE [get_ports {data_p[*]}]
# <=>(等价于)
set_property DIFF_TERM_ADV TERM_100 [get_ports {data_p[*]}]
set_property DIFF_TERM_ADV TERM_NONE [get_ports {data_p[*]}]
2. 均衡器配置(EQUALIZATION)
适用于UltraScale及更新架构的高速输入场景(如MIPI、SGMII、长走线):
tcl
set_property EQUALIZATION EQ_LEVEL4 [get_ports {data_p[*]}]
| 等级 | 说明 | 适用场景 |
|---|---|---|
| EQ_NONE | 禁用均衡器(默认) | |
| EQ_LEVEL0 | 最低补偿 | 短走线 |
| EQ_LEVEL1~3 | 中等补偿 | 中等长度走线 |
| EQ_LEVEL4 | 最高补偿 | 长走线/高速信号 |
注意 :均衡器是用于接收端的,与端接电阻是独立特性,可以同时使用或单独使能。
五、完整流程
┌──────────────────────────────────────────┐
│ 拿到外设数据手册 │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ ① 外设是什么电气标准? │
│ - 查标准名(LVDS/Sub-LVDS/MIPI/...) │
│ - 没有则查VOD/VCM反推 │
│ - 确认信号方向(输入/输出) │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ ② FPGA引脚是否支持? │
│ 根据信号方向分别核对: │
│ 【FPGA接收】外设VODIFF/VOCM vs FPGA │
│ VIDIFF/VICM │
│ 【FPGA发送】FPGA VODIFF/VOCM vs 外设 │
│ VIDIFF/VICM │
│ - 确认Bank类型(HP/HR)和VCCO电压 │
│ - 查SelectIO手册确认IOSTANDARD支持列表 │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ ③ 除引脚/电平等外还需要什么约束? │
│ - 输入:需要端接(内部或外部) │
│ - 输出:不需要端接 │
│ - 高速输入:需要均衡器 │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ 编写XDC约束文件 │
│ 1. PACKAGE_PIN(仅P引脚) │
│ 2. IOSTANDARD │
│ 3. DIFF_TERM(输入时配置) │
│ 4. EQUALIZATION(高速输入时配置) │
└──────────────────────────────────────────┘
六、关键手册参考
| 用途 | 手册 | 查找方式 |
|---|---|---|
| I/O标准支持列表 | 7系列UG471 / UltraScale UG571 | Xilinx官网搜索"UG471"或"UG571" |
| 电气参数规格 | DC/AC Switching Characteristics | 搜索"FPGA型号 + DC Characteristics" |
