信号完整性日志
www.lambexpress.com/articles/744-interfacing-fpga-with-high-speed-data-converter-using-parallel-and-serial-interface
拇指

FPGA与高速数据转换器的并行和串行接口接口

2018年2月19日

目前许多需要数据转换器的应用程序的趋势是越来越接近一个完整的SDR(软件定义无线电)系统。虽然SDR架构在灵活性和SWaP-C(大小、重量、功率和成本)方面带来了许多好处,但它通常转化为更高的带宽能力,并与香农-奈奎斯特定理的数据转换器采样速度直接相关。这使得FPGA(现场可编程门阵列)与数据转换器之间的接口更加复杂。事实上,与高速数据转换器生成的数据量相比,FPGA处理信息的速度非常有限。当然,这是通过大量并行处理来处理的。然而,由于数据的传输量越来越大,传输速度越来越快,传输和接收如此海量的数据成为了系统的瓶颈。本文介绍并比较了目前FPGA与数据转换器之间的两种高速接口方式:高速LVDS并行接口和高速串行接口。它考虑了多个方面,从具有迹线长度和信号完整性的射频到具有成本和易开发性的系统级别。首先介绍这两种类型的接口,比较它们并确定它们的优点和缺点。然后讨论了1.5Gbps高速并行接口的FPGA设计。 It focuses on a transmission from an FPGA to a DAC (Digital to Analog Converter) using the example of an Arria V FPGA from Altera interfacing with an EV12DS460A from e2v. Before concluding, it covers a high-speed serial interface FPGA design at 6Gbps using the ESIstream (Efficient Serial Interface) protocol. It focuses on a transmission from an ADC (Analog to Digital Converter) to an FPGA using the example of an EV12AD500A from e2v interfacing with a Virtex 7 from Xilinx.

高速数据转换器的使用正在急剧增加,因为越来越多的应用程序正在将其视为一种解决方案,以提高其系统的性能和能力;从通信(地面和卫星)到高能物理(加速器、同步加速器)应用,包括国防(电子战、雷达、雷达干扰)、工业(手机测试线、坦克容器监测)、测试和测量(示波器、频谱分析仪、质谱仪)和地球观测(合成孔径雷达)应用。这些应用领域都有其自身的限制和要求,其中高速应用接口的选择就是其中之一。与数据转换器接口的传统方法一直使用并行接口,因为它在PCB和固件设计方面是直接的-样本的每个位都有自己的路径。然而,在高速(1 GHz以上)下,许多参数在较低速度下可以忽略不计,开始限制接口的性能。因此,串行接口选项大约在10年前开始出现,现在在大多数应用程序中是首选。本文旨在通过比较它们的优点和缺点来解释这两种接口是如何工作的,然后给出两个示例,每个接口解决方案一个。

并行和串行接口的比较

并行接口被简单地定义为一个接口,它使用一定数量的通道来传输数据,加上一个通道来传输发射器(TX)和接收器(RX)之间的时钟,如图1.a所示;串行接口,作为使用一定数量的通道在TX和RX之间通过高速收发器传输编码数据的接口,高速收发器包括TX端串行器和RX端的反序列化器,如图1.b所示。

图1:(a):并行接口架构;(b):串行接口的模式

从这两种类型的接口定义中可以注意到一些差异:

  • 串口没有发送时钟信号。实际上,它不是直接传输的,而是通过CDR(时钟和数据恢复)系统在RX端进行恢复,这带来了本文后面提到的一些优点;
  • 对于串行接口,数据的编码/解码是必须的。应该注意的是,编码/解码在并行接口的情况下可以应用和有用,但不是必须的。而对于串行接口,由于本文后面介绍的多种影响,不进行编码/解码会导致传输的误码率损失。

历史上,并行接口由于其简单和直接的实现方法,曾经是唯一可用的解决方案。随着每个数字时钟周期,一个位值在一个通道上传输。RX可以访问时钟信号,很容易恢复数据。这在低数据速率下是正确的,但是当数据速率开始增加时,许多困难增加了开发这种接口的复杂性。为了满足日益增长的带宽需求,并行接口解决方案很快就受到了每车道数据速率的限制,只能通过增加车道数量来增加带宽。今天,并行接口在大多数情况下正在被串行接口所取代,因为这种接口允许达到的带宽能力。在主要FPGA制造商(Xilinx和Altera/Intel)上对这两种接口实现的数据速率进行简单的比较,就可以看出串行接口的好处。目前FPGA的并行接口被限制在1.6Gbps;而高速串行收发器可以达到32Gbps甚至更高。

从数字方面来看,与需要编码/解码和收发器阶段的串行接口相比,并行接口要容易得多——即使并行接口今天也提供了其中一些功能来提高性能。这为并行接口带来了巨大的延迟优势,这对于电子战等应用至关重要,在电子战中,几纳秒可能是被发现还是被敌人的雷达系统隐形的区别。这些用于串行接口的阶段意味着它还需要来自FPGA的更多资源(LUT和FIFO或弹性缓冲区)。它通常很小,不会成为问题,但当应用程序需要大量资源或高速数字设计时,可能会使FPGA内的时序关闭复杂化。

在射频方面考虑,高速串行接口,运行速度更快,需要更加小心。根据香农-奈奎斯特定理,在Gbps包含的频率高达.介质在从直流到的频带上的插入损耗不是平的。它可以被同化为低通顺序,其响应取决于以及所使用的传输介质。如果在高频处的整体衰减过大,接收级会看到错误的比特。这与符号间干扰(ISI)效应有关。内置在收发器的解决方案存在,以应对这种影响:强调和均衡,但在快速串行通道上仔细的PCB布局有助于。

考虑到时机,有几个因素需要考虑。首先,时序的不确定性是并行接口速度的限制因素。与RX输入的数据周期减去元稳定区(设置和保持时间)相比,当定时不确定性足够小时,可以配置并行接口-这与RX输入的眼的打开有关。下面的式(1)显示了使用SDR(单数据速率)接口时的这种关系和使用DDR(双数据速率)接口时的式(2):

时钟周期;输入设置时间;输入保持时间;封装、PCB和位对位倾斜;时钟和数据抖动;PVT(过程-电压-温度)变化;数据的上升和下降时间和时钟占空比失真。这导致了一些需要尊重的限制。首先,应尽量减少位对位的倾斜;这可以通过匹配数据的PCB迹线长度和/或为每个位车道单独添加受控延迟来实现。其次,需要控制时钟和RX输入数据之间的对齐,以避免数据到达元稳定区。这可以通过延迟时钟或与其他数据进行比较来实现。时间方面是高速并行接口的主要复杂性来源;而且它限制了可以达到的最大速度。

另一方面,高速串行接口RX通过CDR从数据流中恢复时钟。这意味着恢复的时钟与CDR阶段之前的数据具有相同的计时效果。因此,对数据和时钟的计时效应相互抵消,允许更快的速度。这是一种简单的方式转换串行接口和CDR的好处;更多详细信息,多篇文章,论文和演示文稿可用,并讨论CDR的好处,架构和功能。提高每个通道的数据速率可以在更少的通道中发送相同数量的数据,从而节省PCB空间并简化PCB布局。该协议还用于将多个串行通道数字对齐在一起,这意味着不需要匹配串行接口的跟踪长度。

最后,在系统层面,高速收发器是更昂贵的资源。即使它们的广泛采用使价格下降,以低成本为目标的系统将更倾向于使用并行接口或慢速串行接口。

总结本节,如今,由于串行接口在带宽能力方面带来的好处,它是大多数应用程序中的首选接口,但并行接口仍然是必要的,用于延迟受限的应用程序。低成本或低速度应用程序可以考虑两种解决方案,这取决于不同的因素,如开发时间、已开发的子系统的重用和其他应用程序需求。

FPGA和DAC之间并行接口的例子

A.系统概述

此并行接口示例基于评估板或EV12DS460A。它由EV12DS460A,一个12位,6GSps DAC[1]和Altera/Intel[2]的Arria V组成。下面的图2显示了该系统的框图。

图2:FPGA-DAC接口框图

在本例中,FPGA对应TX, DAC是RX。蓝色路径对应FPGA到DAC转换核心的数据路径。绿色的路径是时钟网络。红色部分是控制和设置。由于DAC在6GSps上的高采样速度,4个1.5Gbps的输入端口(图2中的端口A到D)用于与FPGA接口,内部mux (mux 4:1)在6GSps上将数据提供给转换核心。

为了防止DAC输入端的元稳定问题,实现了一个检测/校正回路的解决方案。首先,快速时钟提供给DAC (CLK),然后在内部除以4给DAC (DIV /4),并通过PSS设置控制的数字控制延迟(τ)。数字控制延迟(DSP)的输出被传输到FPGA时钟系统(PLL),然后产生时钟用于从FPGA输出数据。在DAC的输入端,检测系统不断检查是否存在通过TVF位指示到FPGA的元稳定性问题。在这种检测之后,FPGA CONTROL重置PSS位来改变DAC输入数据和恢复它们的时钟之间的延迟。该方法可用于识别元稳定的位置,并有助于界面的设置。



B.布局考虑

DAC的分辨率为12位,加上它的4:1 MUX,这意味着有48位接口。此外,在此速度下,差分信令是必要的,FPGA和DAC之间通过多层共布局了96条PCB走线。此外,为了限制每个位不同的包倾斜,每组12位(24道差分信令)都布局到FPGA的同一组。这稍微增加了布局的复杂性,但需要通过并行接口实现这些高速。

如第二节所述,数据通道的迹线长度也需要匹配,以限制位对位的倾斜。这很复杂,要用96条轨迹来实现。在图3中,显示了该板的照片。弯道通常是用来匹配迹线长度的解决方案(例如,与DDR3内存接口的原理相同)。

图3:电路板

注意:FPGA和DAC之间的距离是由其中一个电路板要求决定的。该板已用于表征DAC,因此有必要能够在不影响周围组件的情况下控制DAC温度。在实际应用中,即使匹配迹线长度的要求会影响FPGA-DAC的距离,但它仍然会更近。

这显示了在使用具有巨大带宽的并行接口(在这种情况下,FPGA和DAC之间传输72 Gbps)时,可以带来的布局阶段的复杂性。尽管如此,实现的延迟令人印象深刻,因为DAC输入和模拟输出之间只有3个时钟周期(在6GSps下为500ps)。

C. FPGA考虑

对于FPGA,在选择它之前有很多的考虑是必要的。在使用高速并行接口时,有必要花时间查看时序的不确定性,并确保FPGA和正确的速度等级是有针对性的。

SERDES组件用于以所需的1.5Gbps速度从FPGA输出数据。它是一个串行器(原理与串行接口相同,但速度较低),在本例中采用187.5MHz的8位块,并以1.5Gbps的速度输出。这也允许将FPGA结构与快速传输隔离,并能够在FPGA内以适当的时钟速度进行一些处理。根据正在进行的处理,序列化可能是4倍而不是8倍,但需要更加小心地尊重FPGA内的计时。然而,这是一种提高延迟性能的方法。SERDES组件分为四个部分,每个部分连接到DAC的一个端口。因此,重置信号需要同步发送到所有SERDES块,以确保DAC的不同端口之间的数据对齐。

可以添加另一个功能来帮助纠正位到位的倾斜,允许在每个位路径上添加独立的数字延迟。静态解决方案和动态解决方案都取决于FPGA。这个功能的好处是,它可以帮助睁开眼睛,从而允许更快的传输速度。然而,这很难实现,因为它应该针对每个板/系统进行独立调整,因此在没有自动化的情况下,对于工业规模的应用是不可可行的。

ADC和FPGA之间的ESIstream串行接口示例

A.系统概述

本串口实例基于EV12AD500A的评估系统。它由EV12AD500A, 12位双通道1.5GSps ADC[3]和Xilinx的Virtex 7[4]组成。下面的图4显示了系统的框图。

图4:ADC-FPGA接口框图

本例中的串行链路以6Gbps的速度运行,有8个链路用于传输48Gbps。在这些传输的数据中,由于协议的原因,有13.5%是开销。与并行接口相比,如果它们都传输相同数量的有用数据,则布局的通道数量的增益为75%。

B.串行接口协议

前面已经提到,如果没有协议,串行接口将会出现巨大的误码率损失。这部分是由于CDR,部分是由于交流耦合。CDR的目标是从数据流中恢复时钟。为了做到这一点,它需要在数据中看到边缘,否则它无法识别时钟。因此,对于串行接口,需要避免长串连续的' 1 '或' 0 '。TX和RX之间的接口必须是交流耦合的;在这样的高速下,共模的微小差异加上所有其他效应会导致误码率的退化。这种交流耦合意味着如果传输的数据流不是直流平衡的(传输的' 1 '和' 0 '一样多),交流耦合电容器将被加载并破坏接收级看到的数据。该协议的目标是防止长序列的“0”或“1”和非直流平衡传输的发生。

本例中使用的ESIstream协议是可用的串行接口协议之一,如JESD204B、Interlaken和许多其他协议。它带来了有趣的好处,如优化了效率和延迟,简单易用的设计。该协议的文档和示例设计可以在其专用网站[5]上找到。

C.设计考虑

如前所述,当使用串行接口时,编码/解码过程需要实现数字资源。一般来说,目标是尽可能减少这种影响,以便为应用程序的预期处理节省资源。在这个目标中,FPGA设计需要以资源优化为导向,同时仍然能够传输数据并在问题发生时进行检测。优化和问题检测之间的比例很大程度上取决于传输数据速率。6Gbps的传输不需要与32Gbps的传输相同的检测和校正过程来达到类似的误码率。

在使用串行接口的情况下,更详细地查看接口的FPGA设计,下面的图5显示了Virtex 7中接收级的架构。

图5:FPGA RX架构

要理解这个体系结构,需要了解一些关于ESIstream协议的信息。该协议使用2级编码和2个开销位处理。一个是置乱过程,另一个是视差过程。置乱过程使用线性反馈移位寄存器(LFSR)来生成置乱/反置乱伪随机序列。同步序列用于初始化链路,并通过帧对齐组件对齐TX编码和RX解码。最后进行解码,实现解扰和视差处理。更多信息请参考ESIstream网站[5]。

在这个特定实现所需的资源和延迟方面,可以在下面的图6中找到它们。

图6:串行接口的资源和延迟图

这些值与本例中用于RX的FPGA实现有关。TX值对应于等效于ADC的FPGA。不同之处在于ADC进程允许它比FPGA工作得更快,因此与使用FPGA达到的30ns相比,TX的ADC延迟为10ns。

可以注意到,在延迟方面;串行接口扩展到总共60ns(使用ADC值TX)。与前面介绍的并行接口相比,有两个数量级的损失与某些应用程序不兼容。

结论

本文介绍了并行接口与串行接口的区别以及选择并行接口时应考虑哪些关键因素;并结合2个实例进行定量比较介绍。虽然串行接口在过去的几年里已经成为普遍的解决方案,但仍然有一些应用程序需要使用并行接口。这必然会不断发展,今天调制串行接口[6]开始出现在高速数据传输中达到下一步,带来更多的问题需要解决。

参考文献

[1] e2v EV12DS460产品页面:
http://www.e2v.com/products/semiconductors/dac/ev12ds460/

[2] Altera Arria V产品页面:
https://www.altera.com/products/fpga/arria-series/arria-v/overview.html

[3] e2v EV12AD500产品页面:
http://www.e2v.com/products/semiconductors/adc/ev12ad500/

[4] Xilinx Virtex 7产品页面:
https://www.xilinx.com/products/silicon-devices/fpga/virtex-7.html

[5] ESIstream协议网站:
www.ESIstream.com

[6] PAM-4设计挑战和测试意义,Keysight技术

Baidu
map