Aurora8B10B IP使用 -04- IP例程应用实例

简介: Aurora8B10B IP使用 -04- IP例程应用实例

前言


本文主要介绍了关于Aurora8B10B IP官方提供的模板工程的使用,并进行了简要的仿真查看测试结果,确保仿真传输的正确性。

示例设计架构


示例设计 每个 Aurora 8B/10B 内核都包含一个示例设计(< 组件名称 >_exdes),该设计在简单的数据传输系统中使用该内核。

示例设计包含以下组件:

  • 连接到 TX 接口的帧生成器 (FRAME_GEN)
  • 连接到 RX 用户界面的帧检查器 (FRAME_CHECK)
  • 用于调试和测试的 VIO/ILA 实例

下图显示了全双工内核的示例设计框图。

image.png

示例设计使用所有核心接口。 没有 TX 或 RX 接口的单工内核分别没有 FRAME_GEN 或 FRAME_CHECK 块。

示例代码结构


示例工程的代码架构如下:

  1. 包含一个Aurora IP模块,这个模块包含了和Aurora内核配置操作的相关驱动和设置。
  2. 两个接口互转模块:LL转AXI和AXI转LL接口的模块。

image.png

FRAME_GEN 模块


FRAME_GEN 模块按照 AXI4-Stream 协议为每个 PDU、UFC 和 NFC 接口生成用户流量。 该模块包含一个伪随机数生成器,它使用具有特定初始值的线性反馈移位寄存器 (LFSR) 来生成可预测的数据序列。 FRAME_CHECK 模块使用此数据序列来验证 Aurora 数据通道的完整性。 模块输入是 user_clk、reset 和 channel_up。LFSR用于产生伪随机数据,LFSR的低位连接到REM总线。

接口描述


接口这里类似AXI总线,官方估计是复用了之前写好的模块,所以对这部分总线名称没有进行修改和重写。下表对接口进行了简单的说明。

image.png

System Interface 描述
USER_CLK 时钟
RESET 复位
CHANNEL_UP 通道link标识信号

代码讲解部分可参考下文:

Aurora IP核例子简析

在FRAME_GEN 模块中控制发送由一个状态机控制,阅读代码后,提取代码状态机部分,画出该模块的状态转移图。

image.png

FRAME_CHECK 模块


FRAME_CHECK 模块验证 RX 数据的完整性。 该模块使用与 FRAME_GEN 模块相同的 LFSR 和初始值来生成预期的 RX 帧数据。将接收到的用户数据与本地生成的流进行比较,并根据 AXI4-Stream 协议报告任何错误。 FRAME_CHECK 模块适用于 PDU、UFC 和 NFC 接口。

例程中根据生成的线型LFSR,通过REM总线的标识进行解码恢复出发送的伪随机数据。

建立帧模式工程


新建一个空工程,选择一个有高速串口的芯片即可,然后在IP目录下选择Aurora IP,如果只是查看仿真就保持默认配置即可。选中该IP右击,打开模板工程,确认后会自动新建一个模板工程。

image.png

完成建立后可看到例程中的代码结构和前文介绍相同。

image.png

查看仿真


选中仿真按钮点击运行行为级仿真。

image.png

在仿真设计中,例程调用了两个Aurora IP进行收发回环测试。收发数据为相同的数据。添加任一个调用例化的IP的信号到波形窗口,然后点击运行等待。需要等待一段时间后,在rx和tx_data信号可以看到收发信号,如下图,收发信号由十几个clk的延时,同时在空闲状态时插入了随机数确保传输,所以在接收有效信号断言外的随机数据不用过多关注。

image.png

建立流模式工程


在配置Aurora IP时,接口模式选择stream流模式。

image.png

然后重复刚刚生成例程的步骤。

流模式代码结构


流模式的代码结构和帧模式相似,因为是流模式,发送和接收端的信号相比帧模式少了几个,例如数据生成模块少了以下端口:TX_SOF_N,TX_EOF_N,TX_REM,而且这里的信号,在经过转换后LL接口转成AXI接口后,信号也会相应减少一些。

image.png

流模式的发送端模块代码的主体相比帧模式少了复杂的状态机设计,只剩下伪随机数生成部分。接收也少了对帧数据的解码操作。

查看仿真


image.png

仿真结果类似帧模式下传输,传输结果正确。

reference


  1. PG046
  2. Aurora IP例程
  3. FPGA设计心得(6)Aurora IP核例子简析与仿真(framing版)


目录
相关文章
|
网络协议 API
让每个进程不同外网 IP,实现局部单窗口单 IP,驱动级网络加速器原理!
为解决游戏多开IP限制问题,可采用API HOOK、LSP劫持或驱动层拦截(WFP/TDI)结合SOCKS5转发数据,实现每个进程独立的外网IP。LSP方法需HOOK多个网络函数,如WSPCONNECT等。驱动层中,WFP适用于Win7以上系统,全面拦截,TDI兼容所有系统但拦截不全。提供了一个自编写的驱动层代理示例,支持全局和局部IP设置,适用于每个进程不同IP,长期维护,欢迎使用。下载链接:http://down.8u18.com/down/jsq.rar。附图片展示。
9316 0
|
4月前
|
Kubernetes 网络协议 应用服务中间件
在K8S中,SVC资源是否支持在K8S集群外部访问?
在K8S中,SVC资源是否支持在K8S集群外部访问?
|
4月前
|
安全 API
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
|
6月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之切换后,公网和私网地址是否会自动对调
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中,“允许函数默认网卡访问公网” 参数配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
网络协议 网络安全
在Windos Server 2016 版本配置网络参数和接入工作组网络
在Windos Server 2016 版本配置网络参数和接入工作组网络
|
7月前
|
Shell
openstack 查询网络的port 关联的虚拟机
在OpenStack中,可以通过以下步骤查询网络的端口关联的虚拟机: 打开命令行终端,并使用OpenStack的命令行工具(如openstack命令行客户端)登录到OpenStack平台。 执行以下命令来获取所有端口的列表: bash openstack port list 这将显示所有端口的列表,包括端口ID、网络ID、MAC地址等信息。 3. 从端口列表中,找到与虚拟机相关的端口。通常情况下,虚拟机的端口具有与虚拟机实例相关的标识符,例如MAC地址或端口ID。 4. 执行以下命令来获取虚拟机实例的详细信息: bash openstack instance show <instanc
200 0
|
IDE 物联网 开发工具
Aurora8B10B IP使用 -03- IP配置应用指南
Aurora8B10B IP使用 -03- IP配置应用指南
1013 0
Aurora8B10B IP使用 -03- IP配置应用指南
|
Cloud Native 分布式数据库
用户指南—网络与连接—集群地址和只读地址
背景信息 当您只购买了主实例时,只会有一个连接地址,也叫集群地址(Cluster Endpoint),主要面向在线通用业务场景。 在主实例页面上,如果添加了只读实例,每个只读实例页面上会提供一个只读地址(Read Only Endpoint),专注离线拖数、跑批等资源链路隔离场景,确保只读资源可被独享。在HTAP场景下,购买了主实例和只读实例,您可以使用集群地址(Cluster Endpoint)和只读地址(Read Only Endpoint)。
113 0
用户指南—网络与连接—集群地址和只读地址
|
存储 文字识别 Oracle
虚拟机模拟部署Extended Clusters(三)故障模拟测试,存储链路断开
集群状态: [root@prod02 ~]# crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET ST.
1563 0