高速AD中的LVDS和FPGA

摘要:
通常,模拟输入信号由高速ADC量化,数字信号输出需要移交给FPGA进行处理。这通常是由LVDS数据差和路由长度之间的不匹配造成的。对于高速数据传输,数据传输中的时间差可能会导致某些数据位的值发生变化,这相当于向FPGA提供了错误的ADC数据。这种测试方法决定了ADC和FPGA之间的传输质量。与参考值比较,计算每对LVDS差分数据的延迟值,并通过IDELAY单元将ADC和FPGA的LVDS差输出之间的延迟相加。

高速AD中的LVDS和FPGA第1张


通常情况下,模拟输入信号通过高速ADC的量化输出的数字信号需要交给FPGA进行处理。如果高速ADC采用LVDS输出,那么经量化处理过的数字信号将会有非常多的LVDS数据差分对。而LVDS数据接收端,接收到的LVDS差分数据对相互之间可能会存在非常小的一个时间差异,该时间差异往往是皮秒级别的,而随着高速ADC采样率的提升,目前大多数的高速ADC采样速率已经达到GSPS级别。

因此皮秒级别的时间差异也会对采集到的数据产生影响。这种情况的发生,往往可能是由于LVDS数据差分对走线长度的不匹配所造成的,这种数据传输中的时间差异对于高速数据传输来说,可能会造成某些数据位的值发生变化,这就相当于向FPGA提供了错误的ADC数据。

高速AD中的LVDS和FPGA第2张

因此,无论是在高速ADC芯片的测试评估还是在其应用当中,对这些数据传输所造成的时间差异均要进行预先的处理。

数据传输差异的处理

对于数据传输的时间差异可以有两种方式来解决,一种方法是通过ADC本身的LVDS特性来改变LVDS数据传输的延迟,这通常与LVDS的输出时钟有关。另外一种方法是使用FPGA内部的延迟功能来实现。

  • ADC内部延迟

对于ADC的LVDS数据输出,可以通过ADC内部集成的某些控制来改变输出时钟沿,从而达到传输延迟的目的。这种方式,不能做到有选择的对特定的LVDS数据差分对进行专门的延迟,但是,只是改变输出时钟沿是可行的。这将有助于改变所有LVDS数据差分对相互之间的传输时间关系。

  • FPGA内部延迟

另一种解决数据传输时间差异的方式,是通过调节FPGA内部的延迟特性,FPGA对于每个LVDS差分对都有一个延迟单元。FPGA中有称之为IDELAY的一个延迟单元,它可以来用对每个LVDS数据差分对分别进行延迟调节。FPGA的IDELAY非常灵活,可以在ADC输出到FPGA之间的任何一对LVDS差分对之间进行调节。同样,由ADC本身所带来的LVDS数据差分对的时间偏离,也可以通过FPGA的IDELAY延迟单元来进行补偿。

IDELAY延迟单元的使用并不是必须的,除非板卡设计和布局并没有进行数据对的长度匹配。

Pattern功能检查数据传输错位

为了进行设置和保持时间的验证,系统设计人员可以采用测试模式来生成可以在FPGA中验证的特定Pattern。在测试模式下,可以使用用户自定义的Pattern对每个上升沿和下降沿进行位翻转。这是用来测试FPGA和ADC的LVDS数据接口之间传输状况的最好方法。

这种测试方法确定了ADC和FPGA之间传输的好坏。如果测试模式数据传输完美的匹配每个时钟周期的测试pattern的位翻转,那么对于实际输入的设置和保持时间即是可信的。如果测试模式通过,则可以认为ADC的LVDS数据和FPGA之间的传输是合适的。

数据传输的调整

在pattern测试模式下,生成的眼图的连续的。因此,任何一个眼图窗口都可以用来对数据传输进行校准。

FPGA内部的IDELAY单元可以对输出传输进行微调,以防止由于PCB的走线或FPGA本身代码编译时的时间约束,造成的数据线之间的倾斜。

对于大多数高速ADC来说,测试pattern和数字化输入数据都来自同一个LVDS串行模块,这个模块可以维护输出时钟和输出数据之间的时间关系,因此,测试pattern和正常输入的数字化数据之间没有什么差异。但是,如果由于板卡走线,造成输出数据行之间有一定数量的耦合。那么,如果测试pattern和实际输入信号量化的数据不同于输出翻转的pattern,时间可能会略有不同。

数据传输调整的基准

通常情况下,每一个ADC的LVDS数据差分对都可以用来作为数据传输调整的基准,并以此作为其他LVDS数据差分对的参照来进行微调。

由于数据传输的差异,测试pattern生成的眼图并不一定会是从一个完整的眼图起始。因此,如果采用第一个眼图来进行校准,可能会出现所有LVDS数据输出差分对得窗口不相一致。所以,第二个眼图窗口将会是建议的首选,该眼图必然是完整的采样窗口。

确定采样窗口

通常情况下,每对LVDS差分数据的传输延迟相差不会太大,因此,我们只需要对第一对LVDS差分数据进行分析。如前文所述,第一个眼图有可能是不完整的眼图,因此,我们选择第二个眼图作为参考。

确定调整起始值

将第一对LVDS差分输出的第二个眼图的开始时间值作为参考,当作其他所有LVDS差分数据采样窗口扫描的起始值,对所有的LVDS差分数据进行扫描。并与该参考值进行比对,计算出每对LVDS差分数据延迟值,并将该延迟通过IDELAY单元加在ADC的LVDS数据差分输出和FPGA之间。

 高速AD中的LVDS和FPGA第3张


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


高速AD中的LVDS和FPGA第4张

扫描二维码关注杭州卿萃科技FPGA极客空间


免责声明:文章转载自《高速AD中的LVDS和FPGA》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇dos命令之telnetKVM虚拟机管理——虚拟机创建和操作系统安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FPGA的Signaltap 文件

quartus中的signal tap 能够方便的抓取模块中的信号 向工程添加一个Signaltap 的文件 ,点击菜单 File->New..., 在弹出的界面中选择 SignalTap II Logic Analyzer File。  软件会弹出如下的 SignalTap 的界面:  首先我们需要为 SiganlTap 选择一个采样时钟,采...

风扇转速通过FPGA采样

1、风扇最大转速16000RPM,那么每一转需要时间60S/16000=0.00375S=375*10^4ns=T=T1+T2+T3+T4; 2、采样0.6S内的风扇detect信号的上升沿个数:0.6s/(375*10^4ns)=0.6*10^9ns/(375*10^4ns)=160 由于转数取最大值,所以T是最小的,那么160是最大计数个数,实际风扇规...

FPGA+CPU架构的自动驾驶平台性能分析

https://zhuanlan.zhihu.com/p/154156003 1. 介绍 由于在自动驾驶领域需要对传感器的数据作大量的基于深度内神经网络的复杂运算,GPU和FPGA被不约而同地用来作为对CPU的一种加速器被使用。这样做不仅可以提高计算性能,并且可以大幅度地降低能耗。FPGA+CPU架构的自动驾驶平台凭借其灵活性,高效率,低能耗等特点,正越...

FPGA之资源优化思想的运用

很多不安于现状的年轻人心中都有一个明确的目标,并最终为之留下了心酸和泪水而走上了成功的道路。如今我就觉得自己挺年轻的,不过我并没有像他们那么的努力。为了实现梦想,对得起自己,从现在开始我要向他们学习拼搏、执着的精神。哪怕前方的路途再怎么曲折、不平坦,我也要硬着头皮走下去。好了,该回归正题了~~~ 我常常对自己说:“因为我不会,所以要学别人的东西。但是不要只...

MCU与FPGA通信

1.MCU启动FPGA相应功能模块 通过译码器选择相应的功能模块,调用实现功能。 2.MCU与FPGA串口通信 SPI协议简单、可靠、易实现,速度快,推荐使用SPI。SPI为四线机制,包含MOSI、MISO、SCK、SSEL。 (SPI协议:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_B...

FPGA中的INOUT接口和高阻态

除了输入输出端口,FPGA中还有另一种端口叫做inout端口。如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接。但是,有时候半双工通信就能满足我们的要求,理论上来说只需要一条信道就足够了,而FPGA上实现这一功能的管脚就是inout端口。管脚相连时,input对应output,因此inout只能和inout连接(否则...