跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Aurora 64B/66B IP 核配置、端口及回环测试详解

综述由AI生成介绍 Xilinx Aurora 64B/66B IP 核在 Vivado 中的配置步骤,包括数据宽度、时钟、通道数等参数设置。详细说明了用户接口、GT 接口及状态控制端口的功能。通过 Example Design 调用 framegen 和 framecheck 模块进行数据传输验证。提供了近端物理层回环模式的实现流程,涵盖仿真与硬件下载调试,并列出常见问题的排查建议。

字节跳动发布于 2026/4/6更新于 2026/5/2123 浏览

Aurora 64B/66B IP 核配置及使用详解

Aurora 64B/66B 是 Xilinx(现 AMD)提供的一种高速串行通信协议 IP 核,专为 FPGA 设计,支持点对点数据传输,适用于数据中心、高性能计算等场景。本指南介绍该 IP 核的编码、译码和传输回环功能实现。

1. Aurora 64B/66B IP 核简介

Aurora 64B/66B 是一种轻量级协议,使用 64B/66B 编码方案,提供高带宽和低延迟通信。在 FPGA 中,IP 核负责处理物理层和数据链路层功能,包括数据编码、解码、错误检测和流控制。

2. IP 核配置

在 Vivado 中配置 Aurora 64B/66B IP 核时,需通过 IP Integrator 或 IP Catalog。以下是关键配置步骤和参数:

  • 打开 IP 核向导:在 Vivado 中,创建新工程后,从 IP Catalog 搜索 "Aurora 64B/66B",双击打开配置向导。
  • 核心参数:
    • 数据宽度:选择用户数据宽度(如 32 位或 64 位),默认 64 位以匹配协议。
    • 参考时钟:设置参考时钟频率(如 156.25 MHz),需与实际硬件匹配。
    • 通道数:单通道或多通道配置,初学者建议单通道。
    • 回环模式:选择 "Near-end PMA loopback" 或 "Far-end PMA loopback" 用于测试。
    • 其他选项:启用流控制、CRC 校验等,初学者可保持默认。
  • 生成 IP 核:配置完成后,点击 "Generate",Vivado 会生成 HDL 文件(Verilog 或 VHDL)。

配置完成后,IP 核将提供以下文件:

  • 实例化模块(如 aurora_64b66b_0)。
  • 约束文件(XDC)用于引脚分配。
  • Example design 目录。

3. 端口介绍

Aurora IP 核的端口分为用户接口和 GT(Gigabit Transceiver)接口。以下是关键端口及其功能:

  • 用户接口端口(用于数据收发):
    • s_axi_tx_tdata:发送数据总线(宽度由配置决定)。
    • s_axi_tx_tvalid:发送数据有效信号。
    • s_axi_tx_tready:发送准备好信号(流控制)。
    • m_axi_rx_tdata:接收数据总线。
    • m_axi_rx_tvalid:接收数据有效信号。
    • m_axi_rx_tlast:接收帧结束信号。
  • GT 接口端口(连接物理收发器):
    • gt_refclk:参考时钟输入。
    • gt_txdata:发送数据到 GT。
    • gt_rxdata:接收数据从 GT。
    • gt_txreset / gt_rxreset:收发器复位。
  • 状态和控制端口:
    • init_clk:初始化时钟。
    • reset:全局复位。
    • channel_up:通道建立状态信号(高电平表示连接成功)。
    • hard_err / soft_err:错误指示信号。
  • 回环控制端口(可选):
  • loopback:用于设置回环模式(例如,3'b000 为正常模式,3'b001 为近端回环)。

在代码中实例化 IP 核时,需连接这些端口到顶层模块。

4. 调用 example design

Vivado 生成的 example design 提供了完整的测试环境,包括发送、接收和验证模块,帮助快速验证 IP 核功能。调用步骤如下:

  • 生成 example design:
    1. 在 IP 核配置向导中,勾选 "Generate Example Design" 选项。
    2. 生成后,在工程目录中找到 example_design 文件夹,包含顶层文件(如 aurora_64b66b_exdes.v)。
    3. 打开该文件,Vivado 会自动添加所有必要模块。
  • 运行 example design:
    • 编译工程后,通过仿真(如使用 Vivado Simulator)或下载到 FPGA 开发板运行。
    • Example design 默认实现了一个传输回环测试,其中发送数据被回环到接收端。

example design 的结构包括:

  • 顶层模块:连接 IP 核和测试逻辑。
  • 测试生成器(framegen):生成测试帧。
  • 测试检查器(framecheck):检查接收帧。
  • 时钟和复位控制。

5. 例化关键模块:framegen 和 framecheck 的作用

在 example design 中,framegen(帧生成器)和 framecheck(帧检查器)是两个关键模块,用于验证 IP 核的数据传输功能。

  • framegen(帧生成器):
    • 作用:生成测试数据帧,模拟用户发送数据。它会创建伪随机数据或固定模式数据,并添加帧头/帧尾,用于测试编码和发送路径。
    • 在回环测试中,framegen 生成的数据通过 IP 核发送,并回环到接收端。
  • framecheck(帧检查器):
    • 作用:接收数据帧并验证其正确性。它会比较接收数据与期望值,检测错误(如 CRC 错误或数据失配),并输出统计信息。
    • 在 example design 中,framecheck 确保回环数据完整,帮助调试传输问题。

例化方法:实例化 framecheck 模块,连接到 IP 核的接收端口。

framecheck framecheck_i (
    .RESET(reset),          // 复位信号
    .USER_CLK(user_clk),    // 用户时钟
    .RX_D(rx_data),         // 接收数据输入
    .RX_SRC_RDY_N(rx_src_rdy_n), // 数据就绪信号
    .ERR_COUNT(err_count)   // 错误计数器
);

例化方法:在顶层模块中,实例化 framegen 模块,连接到 IP 核的发送端口。

framegen framegen_i (
    .RESET(reset),          // 复位信号
    .USER_CLK(user_clk),    // 用户时钟
    .TX_D(tx_data),         // 发送数据输出
    .TX_SRC_RDY_N(tx_src_rdy_n) // 数据就绪信号
);

初学者可通过修改这些模块的参数(如数据模式)来自定义测试。

6. 实现 aurora 的编码译码传输回环

传输回环是将发送数据直接回环到接收端,用于测试 IP 核的编码、译码和链路完整性。以下是完整实现步骤:

  • 步骤 1: 配置 IP 核为回环模式
    • 在 IP 核配置向导中,设置 "Loopback Mode" 为 "Near-end PMA loopback"(近端物理层回环),这会将发送数据直接回环到接收端,无需外部硬件。
    • 生成 IP 核和 example design。
  • 步骤 2: 修改 example design 实现回环
    • example design 默认包含回环逻辑。打开顶层文件(如 aurora_64b66b_exdes.v),确保 framegen 和 framecheck 已连接。
  • 步骤 3: 仿真和验证
    • 使用 Vivado Simulator 运行仿真:
      1. 添加测试激励(如复位和时钟信号)。
    • 预期结果:
      • channel_up 信号变为高电平,表示链路建立。
      • framegen 生成数据,framecheck 显示错误计数为 0,表示回环成功。
  • 步骤 4: 下载到硬件
    • 使用 FPGA 开发板:
      1. 添加约束文件,分配引脚(如 GT 收发器引脚)。
      2. 生成 bitstream 并下载。
      3. 通过 UART 或 ILA(Integrated Logic Analyzer)监控信号,验证回环数据。

仿真脚本示例:

initial begin 
    reset = 1'b1; 
    #100 reset = 1'b0; // 释放复位 
    // 监控 channel_up 和 err_count 
end 

关键回环逻辑示例:

// 在顶层模块中,连接发送和接收
assign rx_data = tx_data; // 简单数据回环(仅用于仿真)
// 或使用 IP 核的回环控制
assign loopback = 3'b001; // 设置回环模式 

7. 常见问题及提示

  • 调试提示:
    • 如果 channel_up 不拉高,检查时钟和复位信号。
    • 错误计数高?检查数据对齐或 CRC 设置。
  • 资源:参考 Xilinx UG576(Aurora 64B/66B 用户指南)获取更多细节。

目录

  1. Aurora 64B/66B IP 核配置及使用详解
  2. 1. Aurora 64B/66B IP 核简介
  3. 2. IP 核配置
  4. 3. 端口介绍
  5. 4. 调用 example design
  6. 5. 例化关键模块:framegen 和 framecheck 的作用
  7. 6. 实现 aurora 的编码译码传输回环
  8. 7. 常见问题及提示
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Windsurf AI IDE 深度使用指南
  • Ubuntu 24.04 系统下 VNC Server 完整安装与配置指南
  • CentOS 更换阿里云 YUM 源教程
  • 大模型领域热门岗位解析与求职指南
  • 链表经典算法题详解
  • 通义万相 2.1 视频生成模型部署与架构解析
  • OpenClaw Webhook 配置与集成指南
  • To B 领域最易实现的 Agent 应用场景(一):DataAgent
  • 基于开源鸿蒙 OpenHarmony 的智能家居综合应用系统
  • AI 产品经理的 10 大核心技能与思维转变
  • SSL VPN 安全防御机制与内部攻击流量防范
  • SpringBoot 微服务重试常用解决方案汇总与使用详解
  • Visual Studio Code 跨平台升级指南:Windows / macOS / Linux
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • Google AI Studio 使用指南与 Cherry Studio MCP 实战
  • 基于 SpringBoot 和 Leaflet 的省级行政区及简称可视化
  • Python 异步编程与协程实战指南
  • Java 网络编程:TCP/UDP 协议与 Socket 实战
  • JDK8 至 JDK25 全版本特性深度解析
  • Java 规则引擎核心原理与生产级落地实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online