auraro 8b/10bip核的使用与仿真

1.首先看这个ip核的整体结构如下:

在这里插入图片描述
可以看到该IP主要有4个部分分别是Lane Logic、 用户接收,用户发送,全局控制。
各个模块的作用如下所示:
Lane Logic: 初始化每个收发器,并且进行数据的编解码和错误检测
Global Logic:执行通道初始化的绑定和验证该模块生成Aurora协议所需的随机idles,并监视所有通道逻辑模块中是否有错误。
Rx User interface: 用户接收侧,AXI-Stream格式数据,将数据从Lane通道搬移到用户逻辑侧
Tx User Interface: 用户发送侧,AXI-Stream格式数据

2.其次理解ip核各个参数配置

如图所示,本次的仿真配置参数如上:
------Lane width: 一般我们选择2 Bytes(1 Byte = 8bit),如果是4 Bytes那位宽更高,频率更小,同样可以有一样的传输速率。
------Lane Rate: 线速率越高,那IP使用的用户时钟就越高,这对用户逻辑的时序要求更高;
------GT Refclk:125 MHz(硬件设计决定的,可以看看原理图);
------INIT clk:默认值就可以,这个时钟可以通过系统时钟通过PLL锁出来;
------DRP clk:默认值就可以,这个时钟可以通过系统时钟通过PLL锁出来;
------Dataflow Mode:Duplex(全双工,双向独立发送接收);
------Interface:Streaming(发送端不受接收端影响,有数就发)。
在这里插入图片描述

再在GTXQ2模块中任意选1,2,3,4路中一个就可以了,X代表不选,1代表选择。
在这里插入图片描述

这里的包含共享逻辑在核和包含共享逻辑在例子设计后面我会单独讲下具体啥意思
在这里插入图片描述
配置好ip核后生成的官方给的工程如下:各个模块的功能下面已经给出
在这里插入图片描述

(1)Aurora_8b10b_exdes.v :此代码是顶层文件调用了各个子模块。
(2)Aurora_8b10b_frame_gen.v :产生测试数据并且通过 TX 接口发送出去 。模块为遵循 AXI4-Stream 协议的 PDU,UFC 和 NFC 接口中的每一个生成用户流量。该模块包含使用具有特定初始值的线性反馈移位寄存器(LFSR)的伪随机数生成器来生成可预测的数据序列。
(3)Aurora_8b10b_ll_to_axi_exdes.v: 实现了旧代码到 AXI4 总线接口的转换。
(4)Aurora_8b10b_axi_to_ll_exdes.v: 把 AXI 接口转换成旧接口
(5)Aurora_8b10b_frame_check.v: 是接收端口,接收到数据并且进行检测 。模块验证 RX 数据的完整性。该模块使用与 FRAME_GEN 模块相同的 LFSR和初始值来生成预期的 RX 帧数据。将接收的用户数据与本地生成的流进行比较,并根据AXI4-Stream 协议报告任何错误。FRAME_CHECK 模块适用于 PDU,UFC 和 NFC 接口。 FRAME_CHECK 模块使用此数据序列来验证 Aurora 数据通道的完整性。

3. ip核配置完成并且生成例子工程之后可以开始仿真了,直接仿真的结果如下:

链路1和链路2的channel_up都拉高,标志着ip核成功建立链路通道,

在这里插入图片描述
查看发送的数据时发送的数据时随机数,与程序中吻合:
在这里插入图片描述
在帧产生模块修改下面发送的随机数:
在这里插入图片描述
在检查模块修改下面部分,把检查随机数改为检查线性增长数据,同时也要注意data_err_dectected_c信号也应该修改:
在这里插入图片描述
在这里插入图片描述
在帧产生模块将随机数修改成线性增长的数据后如图所示:
在这里插入图片描述
在检验模块将随机数修改成线性增长的数据后如图所示:

在这里插入图片描述

4.修改数据后仿真的结果如下所示
修改为递增数据后,数据确实按照线性增长的方式传递,同时channel_up信号也同时拉高表示数据传输的链路打通:
在这里插入图片描述
用户发送的线性增长数据进入ip核:tdata数据
在这里插入图片描述
用户接送到的线性增长数据从ip核发出:rx_tdata
在这里插入图片描述
最后接受到的数据和发出的数据一样,都是线性增长数据,说明仿真成功。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Aurora 64b/66b IP是一种高速串行通信接口协议,适用于FPGA芯片等电子设备之间的数据交换。该IP的配置和例程代码详解,需要按照以下步骤进行。 首先,需要在设计工具中引入Aurora 64b/66b IP,并进行基本设置。在IP配置界面中,需要设置协议名称、端口数量、数据位宽、时钟频率等参数。其中,数据位宽可以选择32、64或128位,并可根据实际需求进行修改。时钟频率是指数据传输时使用的时钟频率,一般为传输速率的两倍。 接着,需要进行更详细的设置,包括传输协议、差分输入输出、同步模式等。在传输协议选项中,有两种可供选择:Aurora和GTP(Gigabit Transceiver)。差分输入输出可以通过设置引脚来实现,常用的差分信号有TXP/TXN和RXP/RXN。同步模式是用来确保两个设备之间的传输速度同步,主要有两种:Master和Slave。 最后,需要编写相应的例程代码来实现数据传输和控制。代码实现的心是发送和接收数据,并进行校验和错误处理。发送数据需要将数据打包成64位或128位的块,并加上控制信息;接收数据需要按照规定格式进行解包,获取正确的数据。校验和和错误处理可以通过CRC校验和和FEC纠错码来实现,在传输过程中对数据进行检验和校验,并进行错误的纠正或重传。 总之,Aurora 64b/66b IP设置与例程代码详解需要进行详细的设置和编程,并对数据传输进行严密校验和处理,确保数据的准确性和完整性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值