Aurora 和 ChipToChip IP(一)

摘要:对Aurora ip 核进行介绍,并对IP进行仿真。写的不一定全对,自行斟酌。

1. Aurora

Aurora ip比较简单,当然简单指的是这个IP的使用。它的核心原理以及实现是比较复杂的。

那么实际使用的时候只需要注意时钟、复位、数据发送接收等即可。

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

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

本文以64B/66B为例

1.1 Aurora ip

我这边使用的配置是这样,DRP选择native,shared logic里面直接选择Include shared logic in core(xilinx example design是这么选择的)

 个人感觉只用在意Line Rate、GT Refclk、INIT clk就好,其它的设置比较简单,按照自己实际工程需求来,不明白什么意思直接到PG074里面搜。

xilinx example design提供了工程仿真,这个仿真也没有错误,直接可以运行起来。下面是example design的框图:

 实际使用中,我需要将两块板子进行通信,用Aurora通过高速接口serdes传输数据。两块板子需要用到两个Aurora,两个Aurora配置相同。

GEN模块就是产生数据的模块,check的模块是检验接受数据是否正确的模块。gen模块按照一定的规则输出数据,check模块也按照同样的规则产生数据,产生的数据与接受到的数据进行对比从而验证整个传输过程中有没有错误(用tready和tvalid实现同步)。

信号

描述

hard_err

soft_err

Lane_up

表示aurora的一个或多个通道的状态

mmcm_not_locked_out

与chip2chip直连

reset_pb

和chip2chip直连

channel_up

表明link状态

init_clk

pma_init

100Mhz

refclk1_in

单端161.XXXXMhz

s_axi_tx_tdata

s_axi_tx_tvalid

s_axi_tx_tready

s_axi_rx_tdata

s_axi_rx_tvalid

数据传输

user_clk_out

402.832031Mhz,数据传输要用的钟

一般关注两个信号看看Aurora是否正常工作:channel up、lane up。

lane_up为1表示收发器之间的通信链路训练成功。

channel_UP为1表示验证序列成功。

而且一般情况下,只要aurora时钟复位都是对的,并且两边aurora的配置也是对的,那么直接就link了,一般不会出现其它的问题。我碰到的最多的就是时钟没有接好,导致link不上。

 仿真的时候可以直接将发射端或者接收端的txp、rxp短接可以直接验证回环(实际上板验证的时候单个板子只能通过物理回环)不会有任何报错,但是chip2chip不行。或者通过检查check error判断是否有数据传输错误。

整个代码都比较简单,都是xilinx提供的代码。

总结

需要仿真的话,建议看4个Lane的Aurora仿真+chip2chip+ethernet

这里面的仿真比较全,而且经过少量修改可以直接在实际中使用。

参考文章:

Xilinx平台Aurora IP介绍(汇总篇)_子墨祭的博客-CSDN博客_aurora ip

Xilinx平台Aurora IP介绍(一)Aurora基础知识_子墨祭的博客-CSDN博客

Xilinx平台Aurora IP介绍(二)时钟与复位_子墨祭的博客-CSDN博客_xilinx aurora

Xilinx平台Aurora IP介绍(四)Example Design介绍_子墨祭的博客-CSDN博客

Xilinx平台Aurora IP介绍(五)数据收发测试_子墨祭的博客-CSDN博客

PG074 Aurora 64B/66B v12.0

https://download.csdn.net/download/Y__Yshans/86892336?spm=1001.2014.3001.5501

https://download.csdn.net/download/Y__Yshans/87484631?spm=1001.2014.3001.5501

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Aurora 8b10b IP核是一种串行通信接口技术,用于高速数据传输。它基于8b10b编码方案,将每8个bit数据转换为10个bit,并在传输过程中保持数据的同步和可靠性。 Aurora 8b10b IP核的设计目标是提供高带宽、低功耗和低时延的通信解决方案。它适用于各种应用场景,如数据中心互连、计算机网络和通信系统等。 Aurora 8b10b IP核采用了先进的错误检测和修正技术,可以识别和纠正传输中出现的错误,提高数据的可靠性。此外,它还支持流控机制,确保数据的有序传输和处理。 Aurora 8b10b IP核可以实现高达10Gbps的数据传输速率,且具有较低的功耗和时延。它采用了高效的资源利用和数据压缩技术,提高了系统的性能和效率。 Aurora 8b10b IP核还具有灵活的配置和扩展能力。用户可以根据自己的需求调整传输速率和数据帧长度,并添加额外的功能模块来满足特定的应用需求。 总之,Aurora 8b10b IP核是一种先进的串行通信接口技术,具有高带宽、低功耗和低时延的特点。它可以提供可靠的数据传输和处理解决方案,适用于各种应用场景。 ### 回答2: Aurora 8b10b是一种高速串行通信协议的IP核。该IP核通过将8位数据编码为10位数据,实现了高速数据的传输和可靠性。 Aurora 8b10b IP核支持高达10 Gbps的速率,并采用差分传输技术,以提供更好的信号完整性和抗干扰能力。它被广泛应用于现代高速通信系统,如以太网、光纤通信和存储系统等。 该IP核实现了8位数据到10位数据的编码和解码,以及数据的差错检测和纠正。编码过程中,每个8位数据被映射到10位数据中的一个代码组合。这种编码方式可以提高传输的可靠性,并在传输过程中检测和纠正错误。 Aurora 8b10b还提供了多种时钟域的支持,可以将不同时钟域的数据进行同步,以满足不同组件之间的时序要求。同时,它还支持流控制和数据重整功能,以确保数据的无缝传输。 在FPGA设计中,可以使用Aurora 8b10b IP核来实现高速数据的传输和通信,以满足实时性、带宽和可靠性的要求。此外,该IP核还提供了简化设计和验证的功能,减少了开发时的复杂性和工作量。 总而言之,Aurora 8b10b IP核是一种高速串行通信协议的IP核,通过8位数据到10位数据的编码和差错检测纠正,实现高速数据的传输和可靠性。它在各种高速通信系统中被广泛应用,并为FPGA设计提供了简化设计和验证的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值