FPGA 领域的收发器:我们何时以及为何使用它们?

电器工程 FPGA 串行 沟通 协议 收发器
2022-02-04 01:25:39

我最近开始涉足 FPGA 设计和开发领域,最近我发现自己听到了很多关于收发器的信息。我尝试在网上搜索有关这些组件的一些答案,并了解它们在 FPGA 世界中的作用,但找不到太多信息,只有一些与串行通信和 Ser/Des 相关的文章......

我想问,为什么、何时以及最重要的是如何在 FPGA 上使用收发器?他们的替代品是什么(如果有的话)?收发器的使用是否有某种经验法则?我怎样才能“利用”所有这些对我有利的收发好处?

1个回答

当您想从 FPGA 内部带出高速信号并与现实世界交互时,您需要使用收发器。

典型示例是与同一板上的其他高速部件(例如另一个 FPGA 或 ADC)通信或与板外接口(例如使用 PCI、HDMI 或以太网)。

为了正确发送这些高速信号,有许多编码和电气方面的考虑。也许有必要消除 DC 偏置,例如使用某种形式的符号编码(例如8b/10b)。也许通信通道使用差分对通过电线准确发送高速数据。FPGA 制造商内置灵活的收发器来完成这项工作,从而节省您的工作量。

例如,Spartan 6 LXT包含 Xilinx 所谓的“3.2Gbps GTP 收发器”。他们的文献说:

  • 以最低功耗实现串行协议
  • 器件包含多达 8 个千兆位收发器电路
  • 高达 3.2Gbps 的性能
  • 高速接口:串行 ATA、Aurora、1G 以太网、PCI Express、OBSAI、CPRI、EPON、GPON、DisplayPort 和 XAUI
  • 更低的功耗:3.2Gbps 时 < 150mW(典型值)

使用收发器可以实现很多高速接口。

可以自己实现很多这样的功能,并且在更旧/更小/更便宜的 FPGA 中,这通常是唯一的方法。但是,您很快就会遇到设计运行速度足够快以跟上速度的逻辑问题,并且您将需要大量外部组件用于电气接口。

不幸的是,对于许多现代接口,普通的 FPGA I/O 引脚运行速度不足以实现所需的高数据速率。

所以总而言之,内部收发器的好处是:

  • 编码机制不占用 FPGA 资源并且可以保证高速运行(无需牺牲设计的其他部分来保持时序约束)。
  • 用最少的外部部件为您处理电气接口。
  • 为您完成极其复杂的接口(例如 PCI Express)的实施并(如果适用)获得认证。
  • 专用硅将(可能)使用比 FPGA 中的其他模块更低的功耗。

缺点包括:

  • 您仅限于少数特定的外部接口。然而,大多数现代 FPGA 都足够灵活,并且有许多高速接口正在变得普遍。
  • 具有强大收发器的 FPGA 可能会比没有的部件成本更高。