Xilinx FPGA差分接口引脚约束

Xilinx FPGA差分接口引脚约束

一、概述

在FPGA项目开发中,当外设通信接口为差分信号(如LVDS)时,需要确认以下3个问题:

  1. 外设通信接口的电气标准

  2. FPGA引脚是否支持该电气标准

  3. 除了引脚约束、电平标准约束,还需要哪些其他约束

二、确定外设通信接口的电气标准

1. 优先查找手册中的明确标准名

在外设数据手册的以下位置查找接口标准信息:

查找位置 内容示例
首页Features "LVDS Interface"、"MIPI D-PHY v1.2"
Pin Description 引脚定义中标注的LVDSHSTL
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系列 LVDSLVDS_25
UltraScale/UltraScale+ LVDSLVDS_25SUB_LVDSMINI_LVDS_25RSDS_25PPDS_25BLVDS_25TMDS_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"

博客导航目录