学习aurora64/66b.20240703

简介

The AMD LogiCORE™IP Aurora 64B/66B core是一种可扩展的轻量级高数据速率链路层协议,用于高速串行通信。该协议是开放的,可以使用AMD设备技术实现。

Aurora 64B/66B是一种轻量级的串行通信协议,适用于多千兆位链路 (如下图所示)。它用于使用一个或多个GTX、GTH或GTY收发器在设备之间传输数据。连接可以是全双工 (两个方向的数据) 或单工 (任一方向的数据)。

Aurora 64B/66B信道概览

Aurora 64B/66B内核在连接到Aurora64B/66B渠道合作伙伴时会自动初始化渠道。初始化后,应用程序可以通过通道传递数据作为帧或数据流。Aurora 64B/66B框架可以是任何尺寸。高优先级请求能够在任何时间中断这些帧。有效数据字节之间的间隙会自动填充闲置,以保持锁定并防止过多的电磁干扰。流控制在Aurora 64B/66B中是可选的,可用于限制linkpartner的传输数据速率,或通过通道发送简短的高优先级消息。流在Aurora 64B/66B中实现为单个无休止的帧。每当数据未被发送时,发送闲置以保持链路存活。过多的位错误、断开连接或设备故障会导致内核重置并尝试初始化新通道。Aurora 64B/66B核心可以支持多通道信道的接收中的最多两个符号偏斜。Aurora 64B/66B协议使用64B/66B编码。与8B的25% 开销相比,64B/66bencoding具有非常低 (3%) 的传输开销,因此理论上可以提高性能。

Aurora 64B/66B核心框图

通道逻辑: 通道逻辑模块的实例驱动每个GT收发器。该通道逻辑初始化每个单独的收发器,处理控制字符的编码和解码,并执行错误检测

通道逻辑: 通道逻辑模块的实例驱动每个GT收发器。该通道逻辑初始化每个单独的收发器,处理控制字符的编码和解码,并执行错误检测。

全局逻辑: 内核中的全局逻辑模块执行用于通道初始化的通道绑定。在操作期间,通道跟踪由Aurora 64B/66B协议定义的未就绪空闲特性,并监视所有通道逻辑模块的错误。

RX用户界面: AXI4-Stream接收 (RX) 用户界面将数据从通道移动到应用程序,并执行流量控制功能。

TX用户界面: AXI4-Stream传输 (TX) 用户界面将数据从应用程序移动到信道,并执行流量控制TX功能。标准时钟补偿模块嵌入在核心内部。该模块控制时钟补偿 (CC) 的周期性传输。

核操作的最大频率取决于支持的线路速率和设备的速度等级。

吞吐量:Aurora 64B/66B核心吞吐量取决于收发器的数量、收发器类型和所选收发器的目标线路速率。对于GTH收发器,吞吐量分别从单通道设计到16通道设计的0.48 Gbps到254.06 Gbps不等。note:为了在使用VIVADO的默认合成策略时获得更好的定时性能,请将线路速率从IP/收发器支持的最大线路速率降低约30%。当启用CRC_MODE时,将线路速率降低50%。使用另一种合适的合成策略,用户可以实现IP中支持的最大线路速率。 

端口说明:

顶层文件实例化Aurora 64B/66B lanemodule、TX和RX AXI4-Stream模块、全局逻辑模块以及GTX、GTH、orGTY收发器包装器。此顶级包装文件在示例设计文件中与时钟、复位电路、帧生成器和检查器模块一起实例化。

下图显示了Aurora 64B/66B AXI4-Stream数据接口位排序的n字节示例。

成帧用户界面 (如下图所示) 符合AMBA AXI4-StreamProtocol规范 (ARM IHI 0051A),并包含发送和接收成帧用户数据所需的信号。成帧接口的详细描述如下。

仅当s_axi_tx_tready和s_axi_tx_tvalid均被断言时,Aurora 64B/66B核心才对数据进行采样。用户应用程序可以在任何时钟周期 (带暂停的数据传输) 取消断言s_axi_tx_tvalid,以忽略该周期的AXI4-Stream输入。如果这发生在帧的中间,则通过Aurora 64B/66B信道发送空闲符号。AXI4-Stream数据仅在成帧时有效。忽略帧外的数据。要结束aframe,当数据的最后一个字 (或部分字) 在thes_axi_tx_tdata端口上时,断言s_axi_tx_tlast,并使用s_axi_tx_tkeep指定最后数据节拍中的有效字节数。(就是AXI-S的传输模式)

在framing中,每个帧以数据块开始,并以包含帧的最后字节的分隔符块结束。每当数据不可用时,就插入空闲块。块是8个字节的加扰数据或具有2位控制报头 (总共66位) 的控制信息。

(帧传输过程为AXI传输模式大致一致,具体内容在file:///D:/NKUiversity/相关论文/xilinx资料/pg074-aurora-64b66b-en-us-12.0.pdf。16-20页,之后有成帧效率)

流接口:

流接口 (如下图所示) 允许在没有帧分隔符的情况下进行数据传输,因此操作简单,同时使用的资源比framing interface少。

在数据流中,Aurora 64B/66B通道用作管道。流式Aurora 64B/66Binterface期望填充整个s_axi_tx_tdata端口宽度 (八个字节的整数倍) 的数据。当s_axi_tx_tvalid被取消断言时,除传输时钟补偿序列外,在保留的字之间会产生间隙。

当数据到达Aurora 64B/66B通道的RX端时,如果不立即读取,则会丢失。如果这是不可接受的,则必须将缓冲器连接到RX接口以保存数据,直到可以使用。

下图显示了一个典型的流数据传输,开始时没有断言两个就绪信号,以表明用户逻辑和核心都没有准备好传输数据。

在下一个时钟周期中,内核通过断言s_axi_tx_tready表示它已准备好传输数据。一个周期后,用户逻辑断言s_axi_tx_tvalid信号,并将数据放在s_axi_tx_tdata总线上,表明它已准备好传输数据。因为现在两个信号都被断言了,所以如下图所示的数据0从用户逻辑传输到核心。数据1按以下时钟周期传输。在本例中,内核释放它的就绪信号s_axi_tx_treready,并且直到下一个时钟周期才传输数据。当再次断言s_axi_tx_tready信号时,用户应用程序在下一个时钟周期取消断言s_axi_tx_tvalid,并且在断言两个信号之前不传输数据。

下图显示了一个典型的流数据接收示例,可以看到,在rx_valid有效的时候才会接收数据

时钟接口:

参考gtx收发器

流量控制接口:

状态、控制和收发器接口:

Aurora 64B/66B核心的状态和控制端口允许用户应用程序监控通道并使用GTX、GTH和GTY收发器的内置功能。介绍状态接口、控制接口、收发模块串口的示意图和端口说明。DRP接口允许通过符合AXI4-Lite协议或本机动态重新配置端口(DRP)接口读取和更新串行收发器参数和设置

   (接口说明在page 38-41)主要是动态重新配置高速收发器

reset_pb: 按钮重置。在example design 中作为的top层重置输入。驱动内核内部的支持重置逻辑所需。

pma_init:收发器PMA_INIT复位信号通过一个无抖动器连接到顶层。系统地重置收发器的所有物理编码子层(PCS)和物理介质附件(PMA)子组件。信号使用init_clk_in去抖动至少6个init_clk周期。有关详细信息,请参阅相关收发器用户指南中的重置部分。

可以理解为这两个信号都是复位信号。

drp_clk_in:用户可配置的参数仅适用到 7 系列 FPGA 设计。默认值为100兆赫。drp_clk频率可以从50 MHz 至 x MHz,其中 x 是设备和速度取决于等级。

init_clk_in:信号用于注册和去抖动pma_init信号。首选的init_clk范围是50 ~ 200mhz。核心设置的默认init_clk频率为50mhz,用于7系列设计,

note:收发器控制和状态接口中的端口必须按照相应的GT用户指南进行驱动。使用表12所示的输入信号:收发器控制和状态接口端口使用不当可能会导致IP核的不可预知行为

auror64B/66B内核中的错误信号:

设备问题和通道噪声可能导致极光64B/66B通道运行错误。64B/66B编码方法允许Aurora 64B/66B核心检测信道中发生的位错误。内核通过在检测到这些错误的每个周期中断言soft_err信号来报告这些错误。

该核心还监视每个高速串行GTX和GTH收发器的硬件错误,如缓冲区溢出和锁丢失。通过断言hard_err信号来报告硬件错误。灾难性的硬件错误也可以表现为软错误的爆发。Aurora 64B/66B协议规范(SP011)中描述的块同步算法决定是否将软错误突发视为硬错误。

无论何时检测到硬错误,内核都会自动重置自身并尝试重新初始化。在大多数情况下,当导致硬错误的硬件问题得到解决时,这允许重新建立Aurora 64B/66B通道。软错误不会导致重置,除非在短时间内出现某些触发块同步状态机的错误。

硬错误:1.TX溢出/下流:TX数据弹性缓冲区存在溢出或下流情况。当用户时钟和参考时钟源不在同一频率上工作时,就会出现这种情况。2.RX溢出/下流:RX数据时钟校正和通道绑定FIFO存在溢出或下流情况。当两个通道伙伴的时钟源频率不在±100ppm范围内时,就会出现这种情况

软错误:短时间内发生的软错误太多。1.如果检测到太多无效同步标头,对齐块同步状态机将自动尝试重新对齐。软错误不会转化为硬错误。2.无效的同步头:64位块上的2位头不是有效的控制头或数据头。3.无效的同步头:64位块上的2位头不是有效的控制头或数据头。

初始化:

上电、复位、硬错误后,内核自动初始化(下图)。通道两侧的核心模块执行Aurora 64B/66B初始化过程,直到通道准备好使用。lane_up总线指示通道中的哪些通道已经完成了过程的通道初始化部分。lane_up信号可以用来帮助调试多通道信道中的设备问题。Channel_up只有在核心完成整个初始化过程之后才会断言。

Aurora 64B/66B内核可以在断言channel_up之前接收数据。应该只使用用户界面m_axi_rx_tvalid信号来限定传入的数据。因为在断言channel_up之后才会发生传输,所以channel_up可以反转并用于重置驱动全双工信道的TX端的模块。如果用户应用模块需要在接收数据之前复位,则可以使用反向lane_up信号来实现此目的。在所有的lane_up信号被断言之前,数据不能被接收。

时钟:

良好的时钟对64B/66B核心的正确运行至关重要。核心需要一个低抖动参考时钟来驱动GTX、GTH或GTY收发器中的高速TX时钟和时钟恢复电路。核心还需要至少一个锁定频率的并行时钟,以便与用户应用程序进行同步操作。时钟架构图:

gt_refclk (clkp/clkn)是一个专用的外部时钟,由振荡器生成,并通过专用的IBUFDS提供。

时钟接口具体与开发板的连接还需要熟悉。明天再看看GTX收发器

(本文仅对用赛灵思手册的前半部分,后部分有IP核GUI页面的说明解释,调试以及迁移应用等,较为全面,暂时用不到,仅做学习之用)

加:

    正/负差分串行数据输出引脚。

Q AND A:

1.drp_clk是用来设置参数进行调试用,和gt_ref_clk无关(大概是这个意思)

2.采用init_clk 与开发板上的时钟没有关系,50mhz是允许最低的时钟频率,有最低的功耗,开发板上的时钟是提供给fpga一个时钟源。fpga内部自己可以规定时钟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第139期】基于matlab的OFDM信号识别与相关参数的估计,高阶累量/小波算法调制识别,循环谱估计,带宽估计,载波数目估计等等。

操作环境: MATLAB 2022a 1、算法描述 在现代无线通信系统中,正交频分复用(OFDM)因其高效的频谱利用率、强大的抗多径衰落能力以及灵活的带宽分配等优势,成为了一种非常重要的调制技术。然而,随着无线通信…

采沙船智能监测识别摄像机

对于现代河流管理来说,采沙船智能监测识别摄像机正逐渐成为解决非法采砂和保护河流生态环境的重要工具。这类摄像机通过先进的视觉识别和数据分析技术,有效监控和管理河道上的采沙行为,对保护水域资源和改善生态环境具有显著的意义。 采沙船智…

Linux容器篇-使用kubeadm搭建一个kubernetes集群

kubernetes集群架构和组件 master节点组件 kube-apiserver:Kubernetes API,集群的统一入口,各组件的协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIserver处理后再交给Etcd存储。 kube…

学习springAOP

第三章 Spring AOP 第一节 AOP 简介 1. 概念 AOP全称为Aspect Oriented Programming,表示面向切面编程。何为切面呢? 由此可以得出,切面是一种将那些与业务无关,但业务模块都需要使用的功能封装起来的技术。这样便于减少系统的…

昇思25天学习打卡营第4天|应用实践

昇思25天学习打卡营第4天 文章目录 昇思25天学习打卡营第4天基于 MindSpore 实现 BERT 对话情绪识别模型简介环境配置数据集数据加载和数据预处理input_idsattention_mask 模型构建模型验证模型推理自定义推理数据集 打卡记录 基于 MindSpore 实现 BERT 对话情绪识别 模型简介…

奥比中光astra_pro相机使用记录

一、信息获取 1、官网 用于了解产品信息 http://www.orbbec.com.cn/sys/37.html 2、开发者社区 咨询问题下载开发部https://developer.orbbec.com.cn/ 二 、windowvs19 1、相机型号 orbbec_astro_pro 根据对应的型号找到需要的包工具 踩坑1,因为这个相机型号…

第20章 Mac+VSCode配置C++环境

1. 下载VSCode VSCode下载地址在mac终端里输入xcode- select --install命令,根据提示安装xcode工具。 2. 安装插件(4个) 打开VScode,点击应用右侧菜单栏 C/C(必装) Code Runner(必装&#xf…

UCOS-III 任务调度与就绪列表管理

01. 就绪优先级位图 在实时操作系统中,任务调度的效率至关重要。UCOS-III通过就绪优先级位图来快速查找最高优先级的就绪任务,从而实现高效调度。就绪优先级位图是一个按位表示的结构,每个位代表一个优先级,当某个优先级上有任务就…

【FFmpeg】avcodec_open2函数

目录 1. avcodec_open21.1 编解码器的预初始化(ff_encode_preinit & ff_decode_preinit)1.2 编解码器的初始化(init)1.3 释放编解码器(ff_codec_close) FFmpeg相关记录: 示例工程&#xff…

Windows编程之多线程事件对象(Event Object)用法详解

目录 一、前言 二、基础用法 三、API详解 1.创建事件对象 2控制事件状态 3.等待事件对象: 四、实战案例 1.案例描述 2.代码设计 3.总设计代码 4.运行结果 一、前言 事件对象(Event Object)是我们在大型项目中,进行多线…

竞赛选题 医学大数据分析 - 心血管疾病分析

文章目录 1 前言1 课题背景2 数据处理3 数据可视化4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的心血管疾病分析 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! &#x1f9…

AI绘画Stable Diffusion 解锁精美壁纸创作:利用SD与LLM定制你的专属壁纸,AI副业变现指南!

大家好,我是画画的小强 今天给大家分享一下用AI绘画Stable Diffusion 制作精美手机壁纸,这也可能是当前最快AIGC变现的一种途径。虽然本文的主题为手机壁纸,当调整不同的比例的分辨率宽高比例,就可以直接复用到手机、电脑和平板、…

机器学习原理之 -- 支持向量机分类:由来及原理详解

支持向量机(Support Vector Machine, SVM)是统计学习理论的一个重要成果,广泛应用于分类和回归问题。SVM以其高效的分类性能和良好的泛化能力在机器学习领域中占据重要地位。本文将详细介绍支持向量机的由来、基本原理、构建过程及其优缺点。…

LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

一、LVS-DR集群介绍1.1 LVS-DR 工作原理1.2 数据包流向分析1.3 LVS-DR 模式的特点1.4 LVS-DR中的ARP问题1.4.1 问题一1.4.2 问题二二、构建LVS-DR集群2.1 构建LVS-DR集群的步骤(理论)1.配置负载调度器(192.168.80.30)(…

5分钟教你用AI把老照片动起来,别再去花49块9的冤枉钱了

文章目录 需要的工具 最近,AI视频在各大平台上,又火了。 只是火的形式,变成了将老照片动起来,打情感牌,或者做很多经典电视剧的再整活。 直接把可灵的生成时间,从以前的4分钟,生生的干成了20分钟…

鸿蒙应用笔记

安装就跳过了,一直点点就可以了 配置跳过,就自动下了点东西。 鸿蒙那个下载要12g个内存,大的有点吓人。 里面跟idea没区别 模拟器或者真机运行 真机要鸿蒙4.0,就可以实机调试 直接在手机里面跑,这个牛逼&#xf…

国标GB/T 28181详解:国标GBT28181-2022 SIP服务器发起广播的命令流程

目录 一、定义 二、作用 1、实现信息的集中管理和分发 (1)信息集中 (2)信息分发 2、提高信息传输的可靠性和效率 (1)可靠性 (2)提高效率 3、支持多种设备和系统的互通 &am…

mongdb学习与使用

1. 基础概念 MongoDB简介: MongoDB是一个基于文档的NoSQL数据库,具有高性能、高可用性和易扩展性。数据存储在类似JSON的BSON格式中。 基本术语: Database(数据库): 集合的容器。Collection(集合…

国产强大免费WAF, 社区版雷池动态防护介绍

雷池WAF,基于智能语义分析的下一代 Web 应用防火墙 使用情况 我司于2023年4月23日对雷池进行测试,测试一个月后,于2023年5月24日对雷池进行正式切换,此时版本为1.5.1。 里程碑纪念 后续一直跟随雷池进行版本升级,当前…

QT_GUI

1、QT安装 一个跨平台的应用程序和用户界面框架,用于开发图形用户界面(GUI)应用程序以及命令行工具。QT有商业版额免费开源版,一般使用免费开源版即可,下面安装的是QT5,因为出来较早,使用较多&…