当前位置: 首页 > article >正文

XILINX硬件设计-(1)LVDS接口总结

1.LVDS差分信号电路原理

   LVDS指的是低压差分信号,是一种电平标准。 差分信号在串行通信中有着非常广泛的应用,典型应用有PCIE中的gen1,gen2,gen3,gen4,gen5,SATA接口,USB接口等。 

典型的电气接口标准LVDS(low voltage differential signaling)如图所示

LVDS源端驱动器由一个恒流源(通常约为3.5mA,最大不超过4mA)驱动一对差分信号线组成,如图所示。Q1,Q4与Q2,Q3组成两对根据输入轮流导通。接收端的接收器本身为高输入阻抗,所以几乎全部的驱动电流都流经100Q的终端匹配电阻,并在接收器输入端产生约350mV的电压。当源端驱动状态反转变化时,流经匹配电阻的电流方向改变,于是在接收端产生高低逻辑状态的变化

2.LVDS信号抗干扰能力分析

   信号传输过程中经常需要翻转,电压越高,所需翻转时间越长,电压越低,所需翻转时间越短,但低电压也意味着一点点干扰也会让电压产生相对较大的浮动,LVDS在低压的情况下弥补了抗干扰能力弱的问题。

3.常见的LVDS参数

1)正负信号Vp(n):差分信号成对出现,在IO端口对上规定其中一个为正(Vp),另一个为负(Vn)
2)共模电压Vcm:共模电压是指正负两个信号电压平均值,即Vcm=(Vp+ Vn)/2。                      3)差分摆幅Vd:差分电压是两个信号差值,即Vd=Vp-Vn。

4.XILINX的LVDS兼容问题

在XILINX的7系列FPGA中,存在high-performance (HP) and high-range (HR) 两种 I/O bank。

HP BANK

HR BANK

性能接口,主要用于DDR或其他高速接口

BANK电压最高为1.8V

支持更广泛的电平标准,

BANK电压最高为3.3V

只支持LVDS18

支持LVDS33、LVDS25 、LVDS18

只支持1.2V,1.5V,1.8V供电,不再支持2.5V和3.3V供电

支持1.2V,1.5V,1.8V,2.5V以及3.3V供电

但在实际的使用过程中,我们会遇到FPGA引脚与LVDS(以及LVDS_33,LVDS_25)信号相连时兼容性的问题.

其实只要按照下面图 1和图 2流程进行判断即可。

针对LVDS的兼容性,图 1和图 2已经可以解决绝大多数问题了,这里做一些补充和解释。

  1. 很明确的结论:作为输入引脚时,VCCO不等于1.8V的Bank有可能可以连接LVDS电平标准输入;VCCO不等于2.5V的Bank有可能可以连接LVDS_25电平标准输入。但是作为LVDS输出引脚时, 相应Bank的VCCO必须与电平标准的电压相匹配。
  2. VCCO是IO Bank的Output Driver的驱动电源,Input Receiver中部分功能是由VCCAUX供电的。这就解释了为什么作为输入引脚时,电平标准可以与VCCO不匹配。当然Input Receiver也受到VCCO的影响,见第3条。
  3. 当LVDS作为输入引脚时,判断是否可以使用的第一条原则是,作为输入信号的绝对电平不能超过VCCO+0.2V这个绝对电压门限,否则有可能损坏引脚的Input Receiver。这是图 1和图 2中都做了 TxVOCM + TxVOD/2 < VCCO +0.2V

5.XILINX的LVDS输入引脚DC特性

当LVDS作为输入引脚时,判断是否可以使用的第二条原则就是对比信号输入与Xilinx相关器件的LVDS的共模电压以及差分摆幅的指标是否满足。例如Kintex系列的器件需要查阅DS182中的相关参数,如下图所示。

6.XILINX的LVDS输入电路设计

1)电路原理分析

为适应共模电压在宽范围内的变化,一般情况下,LVDS的接收器输入级还包括一个自动电平调整电路,该电路将共模电压调整为一固定值。

如下图所示,AC耦合电容将DC电压阻断,也就是TX端的共模电压不会传到RX端,RX端只能接收到差分的输入信号,而RX端的共模电压通过RBIAS进行调节,以满足RX端接收到的绝对电压不会超过VCCO+0.2的要求.

2)官方原理图示例

ZCU106使用了AC耦合电路(BANK供电为1.2V,而晶振的VOS1.2V,VCO = 0.35V)


http://www.kler.cn/a/539734.html

相关文章:

  • 数字电路-基础逻辑门实验
  • 没用的文章又➕1
  • 电脑重启后vscode快捷方式失效,找不到code.exe
  • 利用NestJS构建高效的RESTful API接口
  • 在 C++ 中使用 Protocol Buffers(protobuf)
  • C++20导出模块及使用
  • 【Arxiv 大模型最新进展】TableRAG: 提高大语言模型在理解和推理大规模表格数据的效率和性能
  • oscp备考,oscp系列——VulnOSv2靶场,两种方法获取低权限shell
  • 三星OEM版SSD固态硬盘Model码对应关系
  • 【Spring Boot】Spring Boot解决循环依赖
  • c++计算机教程
  • 5G技术解析:从核心概念到关键技术
  • Java 中 ArrayList 和 LinkedList 有什么区别?
  • 【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化
  • SQL自学,mysql从入门到精通 --- 第 5 天,对函数的处理
  • 神经网络|(九)概率论基础知识-泊松分布及python仿真
  • MySQL与钉钉数据融合,加速企业付款退款自动化进程
  • Spring AI -使用Spring快速开发ChatGPT应用
  • 鸿蒙NEXT API使用指导之文件压缩和邮件创建
  • 【Spring】Spring MVC入门(一)
  • 如何将 Jupyter Notebook (.ipynb) 文件转换为 Python (.py) 文件
  • Git 常见错误与解决方案全指南
  • 安装perl-DBD-MySQL报错:Requires: libmysqlclient.so.18
  • C++ 设计模式 - 访问者模式
  • MySQL数据库 - 阶段性体系总结
  • 【Vue3路由小技巧】用Hash模式打造流畅体验!