概述

使用 Xillyp2p IP 核 主要涉及以下步骤:

  • 选择物理链路及其属性:MGT、SERDES 或普通导线。另外,还需确定链路是双向还是单向。下文将对此详述。
  • IP Core Factory 创建 IP 核,并为其配置用于应用数据的流接口。下文将简要说明,详细内容请参阅 专门指南
  • 生成并下载定制 IP 核。
  • 创建 FPGA 工程,并实例化各个模块。我们提供了在 AMD(Xilinx)Kintex Ultrascale 器件上使用 GTH 收发器配置 Xillyp2p 的 完整示例,以及针对 Kintex-7 及其他 7 系列 FPGA 的 相同示例
  • 解决物理链路可能存在的问题。请参考 这份指南 获取帮助与建议。

选择物理链路:基本要点

Xillyp2p 主要设计用于与多千兆位收发器(MGT)配合工作——在 AMD / Xilinx 术语中,这类收发器包括 GTX、GTH、GTY 等。MGT 之间的物理连接可通过多种方式实现:

  • PCB 走线
  • 铜芯电缆
  • 跨度达数千米的光纤

Xillyp2p 的带宽利用率通常约为 97%。因此,物理链路所需的带宽需略高于任意时刻应用数据所需的数据率之和。IP 核的应用接口仅在传输实际数据时消耗链路带宽;空闲时不产生任何负载。

支持热插拔:物理链路可随时连接或断开。此类事件会导致数据传输暂时暂停,随后通信会自动恢复。

尽管 Xillyp2p 是为 MGT 设计的,但它也可以在任意使用串行器/解串器(SERDES)接口的物理链路上工作——即使是单比特链路(无论是否使用 DDR)亦可。唯一的要求是:链路表现为一个并行字(位向量),其中包含了串行发送或接收的比特位。在该并行字中,位 0 对应最先发送或接收的比特(采用 LSb 优先约定)。这一约定实际上已是 MGT 和 SERDES 单元的标准做法。

请注意,对于双向链路,两个方向所使用的并行字的时钟频率必须相等(在规定的容差范围内)。因此,非对称数据率的双向链路通过选择不同的并行字宽度来实现。

接收端的 MGT 或 SERDES 不要求 具备解析发送端字边界的能力:接收侧的 Xillyp2p IP 核可以接收相对于另一端发送的并行字发生了比特移位的并行字。MGT 或 SERDES 也 不要求 具备比特滑移机制。Xillyp2p IP 核内部会自动检测并对齐正确的比特边界。

总之,只需要一个纯粹的 SERDES 即可。当使用 MGT 时,应将其配置为简单的 SERDES:所有编码/解码功能均应关闭,如 GTH 收发器示例(或 GTX 示例)所示。

双向与单向物理链路

Xillyp2p 支持在单向物理链路上工作,当应用数据仅需单向传输时,这可以简化系统设计并降低成本。

即便如此,在条件允许时仍建议使用双向链路。这样 Xillyp2p 的协议可以按需传输应答包并请求重传。相比之下,如果选择了单向物理链路,则会在错误数据有机会到达应用逻辑之前暂停应用数据流。然后由应用逻辑负责请求恢复数据流。当链路错误足够罕见时,这种方式是可以接受的。

当应用数据仅单向流动时,反向的物理链路可以通过选择更窄的并行字宽度来以低得多的带宽工作。反向链路仅需 5% 的带宽就绰绰有余。

尽管有上述说明,但在某些情况下单向物理链路可能更具优势,例如在与安全相关的应用中,物理链路可作为防止反向数据泄露的保障措施。

物理链路的其他选项

由于物理链路在两侧均以并行字表示,因此也可以使用两个 FPGA 之间的一组物理导线来连接两个 Xillyp2p IP 核。在这种使用场景中,并行字本身即构成链路。

在其他应用中,连接到 Xillyp2p IP 核的并行字可以是变速器(gearbox)或其他逻辑的输入或输出,这些模块要么接收并行数据字,要么向外传递并行数据字。在这类应用中,接收侧的变速器输出端并非每个时钟周期都有一个就绪的并行字。同样,发送侧的变速器也可能并非每个时钟周期都准备好从 Xillyp2p IP 核接收一个新的并行字。

为了适应这种情况,Xillyp2p 提供了两个可选输入端口:

  • 发送侧的 “out_ready”,由变速器在有一个有效的并行字准备好发送时置为有效。
  • 接收侧的 “in_valid”,由变速器在提供一个从物理链路接收到的有效字时置为有效。

无论如何,请注意:如果接收端的变速器(或其他逻辑)无法保证并行字的对齐,则必须保证最低有效位最先发送和接收。

在 IP Core Factory 创建 IP 核

IP Core Factory 是一个基于 Web 的工具,使用户能够根据具体需求定义、生成并下载 Xillyp2p IP 核(以及其他类型的 IP 核)。完成 IP 核的定义后,用户提交生成请求。IP 核的网表通常会在几分钟后以 ZIP 文件形式提供下载。

更确切地说,该 ZIP 文件包含两个互补的 IP 核,分别对应物理链路的两侧(核心 A 和核心 B)。

下载的 IP 核功能完整且可直接用于生产,适合集成到实际项目中,并且可以无限期地用于评估目的。生成和下载 IP 核的功能需要简单订阅该 Web 服务。此订阅仅需提供一个有效的电子邮件地址。

Xillyp2p IP 核的配置分为两步:

  • 配置 IP 核的目标 FPGA 系列以及物理链路的参数:
    • 物理字的宽度
    • 时钟频率及时钟容差
    • 可能还有一些更精细的特性。
  • 配置应用数据流。每个流的接口在两侧均为标准 FIFO 接口,允许应用逻辑为每个流提供独立的数据通道。实际上可以定义任意数量的独立应用数据流。

关于 IP 核定义的更多信息,请参阅 这份指南

与 Xillybus 提供的其他 IP 核不同,Xillyp2p 没有提供示例工程(“演示包”),因为每个实际项目的需求差异很大。因此,用户需要自行创建两个 FPGA 工程(每侧一个),并按要求实例化 IP 核。尽管如此,我们提供了两个完整的设计示例,一个用于 AMD Ultrascale FPGA另一个用于 Kintex-7 及其他 7 系列 FPGA