0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx平台Aurora IP介绍(四)Example Design介绍

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-19 19:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

多看一些example design之后,你就会发现都是熟悉的配方。

一、Example Design
首先打开example design,看看示例工程架构:

Xilinx平台Aurora IP介绍(四)Example Design介绍

多看一些xilinx的example design之后,你就会发现都是熟悉的配方:

support是核心模块,包含了IP的例化、时钟及复位逻辑;重点理解。

frame_gen 是数据产生模块;

frame_check是数据接收检查模块;

support.v

support是核心模块,包含了IP的例化、时钟及复位逻辑;时钟和复位在前面文章已经介绍过了,就不再啰嗦;先看下support对外的端口信号

module aurora_8b10b_0_support
(
// AXI TX Interface
input [15:0] s_axi_tx_tdata,
input [1:0] s_axi_tx_tkeep,
input s_axi_tx_tvalid,
input s_axi_tx_tlast,
output s_axi_tx_tready,
// AXI RX Interface
output [15:0] m_axi_rx_tdata,
output [1:0] m_axi_rx_tkeep,
output m_axi_rx_tvalid,
output m_axi_rx_tlast,
// GT Serial I/O
input rxp,
input rxn,
output txp,
output txn,
// GT Reference Clock Interface
input gt_refclk1_p,
input gt_refclk1_n,
// Error Detection Interface
output frame_err,
output hard_err,
output soft_err,
// Status
output lane_up,
output channel_up,
// System Interface
output user_clk_out,
input gt_reset,
input reset,
input power_down,
input [2:0] loopback,
output tx_lock,
input init_clk_p,
input init_clk_n,
output init_clk_out,
output tx_resetdone_out,
output rx_resetdone_out,
output link_reset_out,
output sys_reset_out,
//DRP Ports
input drpclk_in,
input [8:0] drpaddr_in,
input drpen_in,
input [15:0] drpdi_in,
output drprdy_out,
output [15:0] drpdo_out,
input drpwe_in,
output pll_not_locked_out
);

首先是framing接口的发送及接收的端口信号,与上一篇我们介绍的一致;我们使用Aurora IP,无非就是将需要发送的数据放到s_axi_tx_tdata数据总线上,从m_axi_rx_tdata数据总线上接收数据。有了这点认知后,理解就简单多了。接着是GT串行I/O,对应物理管脚。接着就是状态信号channel_up,channel_up信号拉高,表明链路建立成功可以进行正常数据收发。然后是一些时钟和复位信号,最后是DRP动态重配置的相关信号。

继续看support对Aurora 8b/10b的例化:

aurora_8b10b_0 aurora_8b10b_0_i
(
// AXI TX Interface
.s_axi_tx_tdata (s_axi_tx_tdata),
.s_axi_tx_tkeep (s_axi_tx_tkeep),
.s_axi_tx_tvalid (s_axi_tx_tvalid),
.s_axi_tx_tlast (s_axi_tx_tlast),
.s_axi_tx_tready (s_axi_tx_tready),
// AXI RX Interface
.m_axi_rx_tdata (m_axi_rx_tdata),
.m_axi_rx_tkeep (m_axi_rx_tkeep),
.m_axi_rx_tvalid (m_axi_rx_tvalid),
.m_axi_rx_tlast (m_axi_rx_tlast),
// GT Serial I/O
.rxp (rxp),
.rxn (rxn),
.txp (txp),
.txn (txn),
// GT Reference Clock Interface
.gt_refclk1 (gt_refclk1),
// Error Detection Interface
.frame_err (frame_err),
// Error Detection Interface
.hard_err (hard_err),
.soft_err (soft_err),
// Status
.channel_up (channel_up),
.lane_up (lane_up),
// System Interface
.user_clk (user_clk_i),
.sync_clk (sync_clk_i),
.reset (system_reset_i),
.power_down (power_down),
.loopback (loopback),
.gt_reset (gt_reset_i),
.tx_lock (tx_lock_i),
.init_clk_in (init_clk_i),
.pll_not_locked (pll_not_locked_i),
.tx_resetdone_out (tx_resetdone_i),
.rx_resetdone_out (rx_resetdone_i),
.link_reset_out (link_reset_i),
.drpclk_in (drpclk_i),
.drpaddr_in (drpaddr_in),
.drpen_in (drpen_in),
.drpdi_in (drpdi_in),
.drprdy_out (drprdy_out),
.drpdo_out (drpdo_out),
.drpwe_in (drpwe_in),
//_________________COMMON PORTS _______________________________
// ------------------------- Common Block - QPLL Ports ------------------
.gt0_qplllock_in (gt0_qplllock_i),
.gt0_qpllrefclklost_in (gt0_qpllrefclklost_i),
.gt0_qpllreset_out (gt0_qpllreset_i),
.gt_qpllclk_quad1_in (gt_qpllclk_quad1_i ),
.gt_qpllrefclk_quad1_in (gt_qpllrefclk_quad1_i ),
.sys_reset_out (sys_reset_out),
.tx_out_clk (tx_out_clk_i)
);

啊这,突然觉得官方例程的注释已经很清楚了,再罗里吧嗦的介绍有点烦。

真不是笔者偷懒~ = =||

个人建议,把时钟复位理清楚,再按照framing接口时序,来设计数据的收发。基本上就能使用Aurora搬砖了。

二、仿真
直接看仿真,清晰明了。

Xilinx平台Aurora IP介绍(四)Example Design介绍

可以看到,还是熟悉的配方,仿真顶层还是例化了两个example实体,然后在TB顶层对其进行环回连接:
assign rxn_1_i = txn_2_i;

assign rxp_1_i = txp_2_i;

assign rxn_2_i = txn_1_i;

assign rxp_2_i = txp_1_i;

也就是说,Aurora-2的发送管脚接到了Aurora-1的接收管脚,那么Aurora-2发送的数据必然与Aurora-1接收到的数据是相等的;我们打开仿真,验证一下。

首先把相关信号拖到仿真,并设置group,便于归类查看:

Xilinx平台Aurora IP介绍(四)Example Design介绍

根据推论,先看Aurora-2发送的第一个数据:

Xilinx平台Aurora IP介绍(四)Example Design介绍

如图所示:

tx_data = 16’he6d5; 只有一个数据,占了一个时钟周期(user_clk时钟域),所以tlast与tvalid都只是同时拉高了一个时钟周期。同时,tkeep = 2’h3;表明这个数据所有字节都是有效的。另外注意,数据是在valid和ready握手(同时有效)时发送的。

再看Aurora-1接收的第一个数据:

Xilinx平台Aurora IP介绍(四)Example Design介绍

如图所示:

当rx_tvalid有效时,rx_data = 16’he6d5;同时,tlast信号为1,表明这一次数据传输的接收完毕。rx_tkeep = 2’h3,表明数据全部字节有效。

通过对比可知,接收数据等于发送数据。验证成功。

接下来可以继续验证Aurora-2发送的第二个数据与Aurora-1接收的第一个数据;也可以验证Aurora-1发送的数据与Aurora-2接收的数据。这里就不再啰嗦了。

下一篇,我们基于Aurora IP完成自己的数据收发。
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AURORA
    +关注

    关注

    0

    文章

    25

    浏览量

    5709
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Xilinx FPGA串行通信协议介绍

    Xilinx FPGA因其高性能和低延迟,常用于串行通信接口设计。本文深入分析了Aurora、PCI Express和Serial RapidIO这三种在Xilinx系统设计中关键的串行通信协议。
    的头像 发表于 11-14 15:02 1898次阅读
    <b class='flag-5'>Xilinx</b> FPGA串行通信协议<b class='flag-5'>介绍</b>

    Aurora接口的核心特点和应用场景

    AuroraXilinx(赛灵思)推出的一种高速串行接口协议,主要用于 FPGA 之间或 FPGA 与其他高速设备(如处理器、ADC/DAC、光模块等)的高带宽、低延迟数据传输。它
    的头像 发表于 08-30 14:14 2536次阅读

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台中将 PCIE 集成块从待测试设计(Desig
    发表于 08-26 09:49

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台中将 PCIE 集成块从待测试设计(Desig
    发表于 07-31 16:39

    芯片制造的大工艺介绍

    这一篇文章介绍几种芯片加工工艺,在Fab里常见的加工工艺有种类型,分别是图形化技术(光刻)、掺杂技术、镀膜技术和刻蚀技术。
    的头像 发表于 07-16 13:52 3073次阅读
    芯片制造的<b class='flag-5'>四</b>大工艺<b class='flag-5'>介绍</b>

    光庭信息SOME/IP平台融合解决方案介绍

    随着汽车EE架构向 "中央计算 + 区域控制 + 以太网" 演进,面向服务架构(SOA)成为主流。作为车载服务化通信核心组件,SOME/IP 协议栈的跨平台兼容性与系统解耦能力,正成为车企应对车型快速迭代的关键技术支点。
    的头像 发表于 06-11 15:00 1365次阅读
    光庭信息SOME/<b class='flag-5'>IP</b><b class='flag-5'>平台</b>融合解决方案<b class='flag-5'>介绍</b>

    基于AD9613与Xilinx MPSoC平台的高速AD/DA案例分享

    本文主要介绍基于Xilinx UltraScale+MPSoC XCZU7EV的高速AD采集与高速DA输出案例
    的头像 发表于 06-03 14:22 628次阅读
    基于AD9613与<b class='flag-5'>Xilinx</b> MPSoC<b class='flag-5'>平台</b>的高速AD/DA案例分享

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一个 LogiCORE IP 核,用于在 FPGA 中实现高效的移位寄存器(Shift Register)。该
    的头像 发表于 05-14 09:36 836次阅读

    物理网智慧水务平台介绍

    物理网智慧水务平台介绍
    的头像 发表于 05-13 08:38 435次阅读
    物理网智慧水务<b class='flag-5'>平台</b><b class='flag-5'>介绍</b>

    灿芯半导体受邀参加IP-SoC Silicon Valley 2025

    近日,由Design & Reuse主办的IP-SoC Silicon Valley 2025 Day在美国硅谷成功举办,活动专注于为IP/SoC供应商提供展示创新IP和SoC产品的
    的头像 发表于 04-28 11:52 826次阅读

    MRCANHUBK344测试Qspi_Ip_Example_S32K344,遇到Qspi_Ip_Init返回STATUS_QSPI_IP_BUSY的问题求解

    我目前正在 MRCANHUBK344 开发人员板上测试Qspi_Ip_Example_S32K344。示例项目使用 MX25L6433FM2R-08G 闪存器件,而 CANHUB 板卡配备了
    发表于 03-20 07:32

    博世GTM IP模块架构介绍

    上篇文章我们介绍了博世GTM IP模块的核心功能及基础结构模块。本篇文章将继续解析GTM模块架构,重点介绍I/O模块,特殊功能模块及内核模块。这些模块不仅增强了GTM的信号处理能力,还极大提升了系统的灵活性和集成度,能够满足汽车
    的头像 发表于 03-07 17:50 1986次阅读
    博世GTM <b class='flag-5'>IP</b>模块架构<b class='flag-5'>介绍</b>

    解锁4K,Xilinx MPSoC ARM + FPGA高清视频采集与显示方案!

    XCZU7EV高性能平台。 方案介绍 4K@60fps视频源经过HDMI IN接口传输至TMDS181IRGZR芯片进行信号转换,转换后的高速串行信号通过GTH高速收发器输入至PL端,利用Xilinx官方的
    的头像 发表于 01-24 10:27 903次阅读
    解锁4K,<b class='flag-5'>Xilinx</b> MPSoC ARM + FPGA高清视频采集与显示方案!

    XADC IP介绍

    1. XADC介绍 xadc在 所有的7系列器件上都有支持,通过将高质量模拟模块与可编程逻辑的灵活性相结合,可以为各种应用打造定制的模拟接口,XADC 包括双 12 位、每秒 1 兆样本 (MSPS
    的头像 发表于 01-15 16:53 2109次阅读
    XADC <b class='flag-5'>IP</b>核<b class='flag-5'>介绍</b>

    SRIO介绍xilinx的vivado 2017.4中生成srio例程代码解释

    介绍 本处将从SRIO的数据流,数据协议,常用FPGA支持模式,以及IP例程中的时钟大小计算等部分介绍SRIO的情况。 3.1 SRIO的数据流 SRIO通过生成IP后,通常情况下主要
    的头像 发表于 12-10 16:24 4465次阅读
    SRIO<b class='flag-5'>介绍</b>及<b class='flag-5'>xilinx</b>的vivado 2017.4中生成srio例程代码解释