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技术