精华内容
下载资源
问答
  • 2021-12-13 22:32:46

    Aurora IP核使用超简单的,COME ON!


    目录

    一、Xilinx平台Aurora IP介绍(一)Aurora基础知识

    二、Xilinx平台Aurora IP介绍(二)时钟与复位

    三、Xilinx平台Aurora IP介绍(三)Aurora配置及接口介绍

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

    五、Xilinx平台Aurora IP介绍(五)Aurora收发测试


            Xilinx提供了两个Aurora核,分别是:Aurora 8B/10B 以及Aurora 64B/66B。

            顾名思义,主要是8B/10B ,64B/66B的区别;8B/10B编码可以平衡DC,有足够的跳变来恢复时钟,但是有20%的带宽开销。64B/66B编码的前两位表示同步头,减小了开销,但是却不能保证0/1数量的平衡,因此需要进行加绕。

            但是对于我们使用IP核来说,步骤其实是一样的。这里以Aurora 8B/10B进行介绍。

    一、Xilinx平台Aurora IP介绍()Aurora基础知识

    1. 介绍Aurora协议
    2. 介绍Aurora核的基础知识

    Xilinx平台Aurora IP介绍(一)Aurora基础知识

    二、Xilinx平台Aurora IP介绍(时钟与复位

    还是熟悉的配方,时钟与复位单独介绍。

    Xilinx平台Aurora IP介绍(二)时钟与复位

    三、Xilinx平台Aurora IP介绍(Aurora配置及接口介绍

    1. Aurora IP核配置说明
    2. 接口介绍(streaming/framing)
    3. 接口时序(重点

    Xilinx平台Aurora IP介绍(三)Aurora配置及接口介绍

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

    学习IP的使用,example design必不可少~

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

    五、Xilinx平台Aurora IP介绍(Aurora收发测试

    老规矩,用自己的发送/接收模块 + Aurora核,进行数据收发测试。

    Xilinx平台Aurora IP介绍(五)数据收发测试

    更多相关内容
  • 基于k7芯片在一个quad,通过对共享资源的合理利用实现多个链路的搭建应用
  • Xilinx Aurora IP core design

    2018-02-11 09:44:26
    Xilinx Aurora IP core design Xilinx Aurora IP core design Xilinx Aurora IP core design
  • Xilinx平台Aurora IP介绍(五)数据收发测试

    千次阅读 热门讨论 2022-02-10 22:50:51
    基于Aurora - support模块的数据收发测试。

    基于Aurora - support模块的数据收发测试。


    汇总篇:

    Xilinx平台Aurora IP介绍(汇总篇)


    目录

    前言

    一、系统框架

     二、系统设计

    2.1顶层设计

    2.2发送模块

     2.3support模块

    2.4接收模块

    三、仿真验证


    前言

            开门见山的说,我们用FPGA做接口,基本都是下图类似的框架结构;根据项目实际情况,可能会增加DDR缓存,根据接口协议不同各自进行组帧/解帧罢了。

            再进一步,则会设计到信号处理、图像处理等。

            本篇文章则是基于Aurora IP核的数据收发测试,话不多说,上干货。

    一、系统框架

            如下图所示,用户数据通过发送模块,送给Aurora核,通过TX/RX短接进行回环测试。按照推论,最右侧接收到的用户数据应该和最左侧发送的用户数据相等,接下来我们一步步设计验证。

     二、系统设计

    2.1顶层设计

            按照系统框架设计的一样,我们将系统划分为三个模块:发送模块、IP核support模块、接收模块。

    send.v :发送模块,将需要发送的数据按照AuroraIP接口格式送给AuroraIP。

    support.v :IP核support模块,完成对IP核的例化,及其所需时钟和复位的设计,将用户(逻辑)侧的数据发送出去,并将接收到的数据给到用户。

    recv.v:接收模块,对IP核接收到的数据进行解析使用。

    2.2发送模块

    按照根据选用的framing/streaming接口来设计发送数据的时序即可。

    send.v :我们可以使用一个异步FIFO对需要发送的数据先进行缓存,再按照framing接口时序送出去。

    framing接口:

     streaming接口:

     2.3support模块

            support模块直接在example design的基础上改改就好,时钟复位给对,将输入/输出数据接口连好。

    2.4接收模块

            接收到的数据以valid信号表征数据有效;就不再啰嗦。

            接收部分可以增加数据解析、校验模块等,我们这里偷个懒,发送数据也不加帧头帧尾CRC校验这些东西,接收数据直接使用IP接收的数据,与我们发送的数据进行肉眼对比就好~

    三、仿真验证

            testbench设计发送1-50共50个数据;通过将TX-RX回环,验证接收到的数据是否与发送数据相等。

    发送:

    接收:

    验证成功。

    下个系列,我们开始以太网Ethernet接口的学习。

    展开全文
  • 汇总篇: Xilinx平台Aurora IP介绍(汇总篇) 目录 前言 一、Aurora核的时钟 二、复位设计 后记 前言 为什么每次都将时钟和复位单独拿出来讲? 对于我们使用Xilinx或其他的成熟IP而言,IP相当于一个黑匣子,内部...

    时钟,又见时钟。


    汇总篇:

    Xilinx平台Aurora IP介绍(汇总篇)


    目录

    前言

    一、Aurora核的时钟

    二、复位设计

    后记


    前言

            为什么每次都将时钟和复位单独拿出来讲?

            对于我们使用Xilinx或其他的成熟IP而言,IP相当于一个黑匣子,内部实现的逻辑功能我们知道,但是控制不了,只能默认OK;一般而言,成熟IP都是经过反复验证和使用,确实没有什么问题。所以,IP能不能用,首先要做的就是确保时钟和复位。

            如果初始化不成功,我们也只能从这两个方面入手检查。

    一、Aurora核的时钟

            打开Aurora配置界面,我们可以看到有三个时钟:

            参考时钟、init clock、DRP CLOCK,如下图所示:

     对应到代码:

    input              INIT_CLK_P;
    input              INIT_CLK_N;
    
    input              DRP_CLK_IN;
    
    input              GTXQ0_P;
    input              GTXQ0_N;
    1. GT  Refclk : 上一篇我们介绍过,Aurora其实是基于GT作为物理层实现的,这个参考时钟就是GT的参考时钟,可以翻笔者之前介绍GTX时钟博文详细了解。由外部一对差分输入时钟而来,具体根据硬件而定。默认值:125Mhz。
    2. INIT CLK :初始化时钟,之所以要INIT CLK,是因为在GT复位时,user_clk是停止工作的;Xilinx推荐的配置是INIT CLK时钟频率要低于GT参考时钟。另外,笔者在查看example design的时候,发现GT复位是工作在INIT CLK。默认值:50Mhz。
    3. DRP CLK : DRP时钟,动态重配置,感觉没怎么用到,默认值:50Mhz。对于UltraScale器件而言,DRP CLK与INIT CLK相连接。

    我们再打开example design,看看这几个时钟跟Aurora核是怎么连接的:

             注意到没,差分时钟转为单端时钟,这里用了两个原语:IBUFDS_GTE2是GT专用;IBUFDS则是一般情况使用。

            那么,用户逻辑时钟又是多少呢?继续上图:

     user_clk, 即是用户逻辑时钟,我们设计的用户接口信号(AXI4-S接口)就是工作在该时钟域。

    而tx_out_clk,其实就是GTX里所讲的gt_txoutclk。

    这里一顿分析,只为了我们更好的了解Aurora核。如果只是使用,我们只需要按照IP配置界面选定的时钟频率给过去就好。

    需要注意的是,参考时钟必须由专用GT差分输入时钟得到,而INIT_CLK和DRP_CLK可以由PLL输出。

    二、复位设计

            先来看下《PG046》文档对复位的描述:

            复位信号是用来将 Aurora 8B/10B core置为一个已知的开始状态。在复位时,核停止当前所有操作然后重新初始化一个新的channel。

            channel:两个Aurora所建立的链路,可以有多条lane,每条lane对应一个高速收发器GT,统称为channel。

            在全双工模式下,复位信号对channel的TX和RX都进行复位。

            在单工模式下,tx_system_reset复位TX链路,rx_system_reset复位RX链路。

            而gt_reset则是复位高速收发器GT,最终也会复位Aurora核。(这说明GT复位更加底层,只要GT复位,就会对核进行复位,后面代码也会证实这一点)

    再来看两个case:

    CASE 1:全双工配置下的系统复位

            在全双工配置模式下,复位信号应至少保持6个时钟周期(user_clk)。channel_up在3个时钟周期(user_clk)后拉低,如下图所示:

     CASE2:全双工配置下的GT复位

            在全双工配置模式下,GT复位信号应至少保持6个时钟周期(init_clk)。复位的结果user_clk会在几个时钟周期后停止,因为没有了来自GT的txoutclk。随后,channel_up也会跟着拉低。跟前文讲述一致。如下图所示:

            其他的就不再展开了,感兴趣的可以详细查阅《PG046》。

            我们再从代码的角度来看看复位:

            Aurora复位信号有两个,一个是系统复位RESET,一个是GT复位GT_RESET;复位逻辑就如同前文描述,具体到代码,感兴趣的可以查阅示例工程的reset_logic.v;这里直接给出结论:

    1. GT复位更加底层,优先级要高于系统复位RESET;也就是说,若GT复位,那么系统复位也拉高;《PG046》对复位的描述也是如此。
    2. 当GT复位没有拉高时,根据输入的系统复位RESET,使用移位寄存器对其打拍,输出复位。
    3. GT复位同步于INIT_CLK,所以先将其同步到user_clk时钟域,再对Aurora进行复位。

    最后,Xilinx大佬操作来了!

            ①channel_up : 只要channel_up信号为高,那么说明核初始化完成,且建立了channel,在channel_up拉高之前,lane_up会拉高。我们逻辑设计可以直接使用该信号,在初始化完成之后,再进行逻辑操作。

            ②debug流程:具体查看P.105

    后记

            现在FPGA都集成了高速收发器硬核,各种协议的高速接口都是基于GT物理层来实现的。所以,在学习这些高速接口IP之前,最好先熟悉GT。后面就会发现很多东西都是通的。

            GT参考资料:

      Xilinx FPGA平台GTX简易使用教程(汇总篇)

    下一篇,我们开始配置Aurora IP核。

    展开全文
  • aurora IP

    千次阅读 2019-04-10 14:06:17
    Aurora IP核是Xilinx公司在Aurora协议和高速串行收发器Rocket基础上研发出来的硬核。该核嵌入在Rocket I/O模块中,提供了简单的用户接口,极大地方便了信号的可操作性。通过IP核用户界面可以改变Rocket I/O中复杂的...

            Aurora IP核是Xilinx公司在Aurora协议和高速串行收发器Rocket基础上研发出来的硬核。该核嵌入在Rocket I/O模块中,提供了简单的用户接口,极大地方便了信号的可操作性。通过IP核用户界面可以改变Rocket I/O中复杂的控制结构。Aurora IP核主要包括本地流控制、用户流控制、用户数据接口、时钟输入与时钟修正模块、高速串行收发模块和状态信息控制模块[7-8]。
    IP核封装图如图2所示。

             其中IP核设计的参考时钟需要选择高精度的差分时钟,最好选用外部时钟,而不能使用经过DCM分频/倍频而来的时钟。因为由DCM引出来的时钟抖动较大,Rocket I/O在数据传输时相当不稳定,会造成数据丢失。

             由于Aurora IP核具有时钟补偿功能,在数据接口宽度为2 B的情况下,每5 000个user_clk就需要6个user_clk的时钟补偿,一旦启用时钟补偿功能,数据流将不能进入Rocket I/O,所以在Aurora IP 核收发器的两端需要加上一个16 KB的FIFO为数据缓冲做准备,以避免IP核在进行时钟补偿时的数据丢失,同时可以用来匹配AD采样信号数据时钟和用户时钟user_clk的不一致

             Rocket I/O是内嵌在FPGA中的一款高速串行收发器,支持多种通信协议标准,如Aurora、PCI Express、光纤通道、千兆以太网等。该收发器提供单工或全双工的数据传输模式。每个Rocket I/O支持622 Mb/s~3.125 Gb/s的数据传输速率,并且利用通道绑定功能可以实现更高的数据传输速率。收发器模块物理媒质适配层(PMA)集成了串行/解串器(SERDES)、时钟和数据恢复电路(CDR)、电流模式逻辑(CML)、预加重/均衡电路等,物理编码子层(PCS)集成了8 bit/10 bit编解码电路、循环冗余校验(CRC)、相位调整FIFO、弹性缓冲器、PRBS产生和检测等[5]。这些集成的模块可用于补偿信号的高额损耗,减小时钟的偏差和内部噪声对接收性能的影响,从而提高信号的质量。
             

    Aurora协议是一款高带宽、低成本、可扩展、框架简洁、适合点对点串行数据传输的协议。该协议支持专用的上层协议或符合工业标准的协议(例如以太网、TCP/IP),提供了透明接口的串行互连协议,其允许数据进行任何分组封装,可以使芯片间的数据传输在一个较高的水平而不需要改变已有的通信系统或计算机系统[6]。Aurora协议可以配置每个通路中的Rocket I/O工作在全双工或半双工的模式下,其链路结构图如图1所示。

     

    展开全文
  • 多看一些example design之后,你就会发现都是熟悉的配方~ 汇总篇: Xilinx平台Aurora IP介绍(汇总篇) 目录 一、Example Design 二、仿真 一、Example Design 首先打开example design,看看示例工程架构: 多看一些...
  • 来咯来咯,IP配置介绍,搬砖全靠它!
  • Aurora ip核的使用详解

    千次阅读 2020-07-05 15:54:15
    Aurora ip核的使用详解 前言 近期完成了Aurora的光纤传输的单板验证,以及在集成其他模块完成数据从FPGA上通过PCIE传到上位机,对该IP核的使用有一定的了解,在此用自己的经验以简洁的语言分享给大家一些要点。主要...
  • Aurora IP使用起来超简单的,Come On!
  • Xilinx Aurora IP应用介绍

    2021-12-17 15:24:42
    以Xilinx Aurora64B66B IP 做简要介绍,实现能够直接例化Xilinx aurora ip做通信的目的。 1、Example PRJ 简单说,直接将下图中圈起来的部分放到自己工程里,即可实现aurora ip的例化、和通信传输。 ...
  • Vivado Aurora IP核设计,Vivado仿真工程。
  • Aurora IP建立仿真及测试

    千次阅读 2018-11-27 10:04:54
    一、Aurora IP建立 第一步 1>lane Width:用户数据接口 4(32bit) 2(16bit) 2>Line Rate:3Gbps 假设图像数据为1280x1024 @60 RGB(24bit),那么 1280 pixels/row x 1024 rows x 8bits/element gray scale x 3 ...
  • 定制framing接口的IP核 ...对于我们用户来说,最重要还是我们的用户程序,通过用户程序模块与Aurora IP核交互,生成数据发出以及接收IP核传输的数据。文末同样会分享示例工程,所以这里就不把源码贴出来,占用篇幅
  • Aurora IP核的设计开发

    千次阅读 2020-07-17 15:08:08
    FPGA开发板上有丰富的GTH资源,以ZCU106开发板为例,提供共20 个...下面重点说明一下同一工程下多Aurora IP核如何配置使用。 1. 开发板的GTH资源 在配置ip之前,首先捋一下ZCU106开发板上的 gth 资源,如文章开头图中
  • FPGA设计心得(3)Aurora IP core 的理论学习记录

    千次阅读 多人点赞 2020-05-12 01:30:17
    文章目录Aurora IP核介绍整体介绍大小端Framing or Streaming User Interfaceframing 接口介绍framing 结构几个frame的例子streaming接口介绍Streaming接口发送数据实例streaming接口接受数据实例写在最后同行邀请...
  • Aurora IP核是Xilinx公司在Aurora协议和高速串行收发器Rocket基础上研发出来的硬核。该核嵌入在Rocket I/O模块中,提供了简单的用户接口,极大地方便了信号的可操作性。通过IP核用户界面可以改变Rocket I/O中复杂的...
  • VAVIDO中AURORA IPcore调用

    千次阅读 2020-10-21 16:00:27
    Aurora协议可以支持流和帧两种数据传输模式,以及全双工、单工等数据通信方式,赛灵思提供8B/10B和64B/66B两种编码方式的IP CORE,其主要区别就是编码效率。 下面主要介绍64B/66B AURORA。 64B/66B AURORA如图所示...
  • vivado block design下使用aurora ip core

    千次阅读 2020-09-21 11:29:12
    在使用vivado的官方aurora IP时,调用ip example参考可对自身设计提供一定帮助,但毕竟大部分设计是在block design下连线完成的,aurora的官方回环自测demo提供的帮助并不是特别直观,网上看来看去也没有比较直接的...
  • Aurora 发送代码,这个模块核在共享逻辑 ,只需要输入参考时钟 复位等信号即可
  • Xilinx Aurora IP 用户接口相关介绍

    万次阅读 2019-05-09 15:24:57
    1、概述 基本概念不再重复,详细可参考百度、aurora_8b10b_ug...2、 Aurora IP User Interface ​​ 下面是用户手册相关内容。 关键信号就下面三个: *sof_n:数据传输开始标志,低电平有效; *eof_n:数据...
  • 本文是总结aurora 64B/66B ip的学习成果。主要是从ip核的设置与ip的例程代码,以及aurora的读写时序三方面来介绍aurora的使用情况。
  • Xilinx SP605评估板 Aurora IP(GTP 简单协议) 核功能验证 调试源代码 chipscope验证通过
  • 本文主要介绍了关于Aurora8B10B IP官方提供的模板工程的使用,并进行了简要的仿真查看测试结果,确保仿真传输的正确性。
  • 本文可能帮助您:1、了解Aurora 8B/10B IP核(Streaming接口)的定制;2、了解Aurora 8B/10B IP核的官方例程。
  • 文章目录Aurora IP核介绍整体介绍大小端Framing or Streaming User Interfaceframing 接口介绍framing 结构几...
  • 文章目录写在前面IP核定制页面预览IP核定制详解lane widthLine RateGT REFCLK (MHz)INIT clk (MHz)DRP clk (MHz)Dataflow ModeInterfaceFlow controlBack ChannelGT selection写在最后同行邀请参考资料 写在前面 很...
  • 这篇文章可能帮助您:1、了解Xilinx Aurora 8B/10B IP核的框架;2、熟悉Aurora 8B/10B IP核的内部结构(数据接口)。
  • IP核定制页面预览 第一页,物理层以及链路层信息选择: 第二页,选择IP核使用的GTX 通道以及那个MGT BANK等: 第三页:共享逻辑的位置,例如时钟以及复位等逻辑,是在核内还是在例子工程内(一般较为复杂的IP核,赛...
  • 文章目录背景定制framing接口的IP核生成示例工程并分析GEN模块分析CHECK模块分析示例工程仿真总体仿真发送模块仿真接收模块仿真参考资料交个朋友写在最后 背景 熬夜继续写Aurora系列博文!今天明显状态不如昨天,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,874
精华内容 749
关键字:

aurora ip