【FPGA开发】AXI-Stream总线协议解读

news2024/11/18 3:20:10

文章目录

  • AXI-Stream概述
    • 协议中一些定义
      • 字节定义
      • 流的定义
    • 数据流类别
      • 字节流
      • 连续对齐流
      • 连续不对齐流
      • 稀疏流
  • 协议的信号
    • 信号列表

文章为个人理解整理,如有错误,欢迎指正!

参考文献
ARM官方手册 《IHI0051B》

AXI-Stream概述

协议中一些定义

AXI-Stream是两个连接在一起的器件进行数据交换的标准协议,他是点对点协议,连接一个发送端和一个接收端。

字节定义

1、数据字节:包含有效信息的数据字节,数据字节在源端和目的端之间传输
2、位置字节:指示数据流中数据字节的相对位置,一个占位符,它不包含在源端和目的端之间传输的任何相关数据值。
3、空字节:不包含上述两种字节意义的第三种字节。

流的定义

1、Transfer:AXI-Stream协议中的一次数据传输。一次TVALIDTREADY的握手,就是一次transfer
2、Packet:AXI-Stream协议中传输的一组字节,一个Packet包含一个或多个Transfer,类似于AXI突发。
3、Frame:一个Frame包含整数个Packet,一个Frame可以有很多的字节,例如整个视频帧缓冲区。一个Frame是AXI—Stream协议中,字节分组的最高级别。
4、Data Stream:可以包含独立的字节传输,或者在Packet中组合在一起的一系列字节传输。

上述四个流的定义,从上到下,暗含了层级的概念。

数据流类别

AXI-Stream支持多种数据流形式。
本节中显示的示例包含4字节宽总线上的十六进制值,列按时间顺序从左到右排列

字节流

字节流是数据字节和空字节的传输,字节流传输可以传输任意数量的数据字节,这取决于数据宽度。
空字节可以在发送端和接收端之间的任何点从流中插入或删除。
图1-1给了两个字节流的例子,由于空字节没有任何有效信息,所以两个图传输的信息是一样的。
在这里插入图片描述

连续对齐流

连续对齐流是传输一定数量的数据字节,其中每个数据包没有位置字节或空字节,如图1-2所示。
在这里插入图片描述

连续不对齐流

连续不对齐流中,可以有任意数据的位置字节,但是位置字节不会插在数据字节中间,只会在包头或者包尾,或者同时在包头和包尾。
如图1-3左边的包,D-01至D-11的数据字节是连续的,在尾巴处有两个位置字节;
如图1-3右边的包,D-01至D-11的数据字节是连续的,在头部和尾巴处各有三个位置字节;
在这里插入图片描述

稀疏流

稀疏流传输数据字节和位置字节,所有的数据字节必须要从源端传到目的端,所有数据字节和位置字节的相对位置在源端和目的端之间不能改变,一般来说,数据流中的主体是数据字节。
图1-4所示,每两个数据字节后跟着一个位置字节。
在这里插入图片描述

协议的信号

信号列表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前四个信号不再赘述,时钟、复位、valid和ready握手,都是AXI协议中的老演员了,时序要求和AXI-FULL、AXI-Lite差不多。


TDATA:数据,位宽必须是字节的整数倍,推荐8, 16, 32, 64, 128, 256, 512 or 1024-bits。

字节位置:数据流中先传输的是数据流的低字节,对于一个没有空字节的满包流,位置满足如下规律

  • 字节序列n从0开始向上编号
  • 每次传输,t,按顺序从0往上编号
  • 数据总线的宽度为w字节
  • INT(x)是x的舍入整数值

字节n包含在传输t中,其中: t = INT(n/w) ,
在字节位置b,其中:b = n - (t * w)
它包含在:TDATA[(8b+7):8b]

字节类型:数据字节、位置字节和空字节。

数据合并、打包和宽度转换:其中的宽度转换,包括向上转换和向下转换。


TSTRB:可以理解为标识符,指示TDATA中的每个字节,是数据字节还是位置字节。
TKEEP:同样理解为标识符,指示TDATA中的每个字节,是否需要作为数据流的一部分被处理。
在这里插入图片描述


TLAST:指示Packet的边界。
TID:是数据流标识符,其位宽建议不大于8。
TDEST:为数据流提供路由信息,其位宽建议不大于8。
TUSER:是用户定义的边带信息,可以沿着数据流传输。其宽度建议为TDATA_WIDTH/8的整数倍。
TWAKEUP:标识与axis - stream接口相关的任何活动

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

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

相关文章

c# 调用c++ 的dll 出现找不到函数入口点

今天在调用一个设备的dll文件时遇到了一点波折,因为多c 不熟悉,调用过程张出现了找不到函数入口点,一般我们使用c# 调用c 文件,还是比较简单。 [DllImport("AtnDll2.dll",CharSet CharSet.Ansi)]public static extern …

L11.【LeetCode笔记】有效的括号

目录 1.题目 2.分析 理解题意 解决方法 草稿代码 ​编辑 逐一排错 1.当字符串为"["时,分析代码 2.当字符串为"()]"时,分析代码 正确代码(isValid函数部分) 提交结果 3.代码优化 1.题目 https://leetcode.cn/problems/valid-parentheses/descri…

Unity类银河战士恶魔城学习总结(P129 Craft UI 合成面板UI)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了合成面板的UI设置 UI_CraftWindow.cs 字段作用: UI 组件: itemName / itemDescription / icon&#…

Python酷库之旅-第三方库Pandas(221)

目录 一、用法精讲 1036、pandas.DatetimeIndex.to_pydatetime方法 1036-1、语法 1036-2、参数 1036-3、功能 1036-4、返回值 1036-5、说明 1036-6、用法 1036-6-1、数据准备 1036-6-2、代码示例 1036-6-3、结果输出 1037、pandas.DatetimeIndex.to_series方法 10…

通过JS实现下载图片到本地教程分享

今天分享的这个方法我之前自己试了一下&#xff0c;感觉还行&#xff0c;原理就是通过<a>标签的新增属性实现的&#xff0c;然后可以强制触发下载功能&#xff0c;废话不多说&#xff0c;直接上教程。 首先在HTML写下面的代码: <a href"img.jpg" download…

二、神经网络基础与搭建

神经网络基础 前言一、神经网络1.1 基本概念1.2 工作原理 二、激活函数2.1 sigmoid激活函数2.1.1 公式2.1.2 注意事项 2.2 tanh激活函数2.2.1 公式2.2.2 注意事项 2.3 ReLU激活函数2.3.1 公式2.3.2 注意事项 2.4 SoftMax激活函数2.4.1 公式2.4.2 Softmax的性质2.4.3 Softmax的应…

Unreal engine5实现类似鬼泣5维吉尔二段跳

系列文章目录 文章目录 系列文章目录前言一、实现思路二、具体使用蓝图状态机蓝图接口三、中间遇到的问题 前言 先看下使用Unreal engine5实现二段跳的效果 一、实现思路 在Unreal Engine 5 (UE5) 中使用蓝图系统实现类似于《鬼泣5》中维吉尔的二段跳效果&#xff0c;可以通…

RAG经验论文《FACTS About Building Retrieval Augmented Generation-based Chatbots》笔记

《FACTS About Building Retrieval Augmented Generation-based Chatbots》是2024年7月英伟达的团队发表的基于RAG的聊天机器人构建的文章。 这篇论文在待读列表很长时间了&#xff0c;一直没有读&#xff0c;看题目以为FACTS是总结的一些事实经验&#xff0c;阅读过才发现FAC…

Java 简单家居开关系统

1.需求&#xff1a; 面向对象编程实现智能家居控制系统&#xff08;简单的开关&#xff09; 2.实现思路 1.定义设备类&#xff1a;创建设备对象代表家里的设备 JD类&#xff1a; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;D…

任务调度工具Spring Test

Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑。 作用&#xff1a;定时自动执行某段Java代码 应用场景&#xff1a; 信用卡每月还款提醒 银行贷款每月还款提醒 火车票售票系统处理未支付订单 入职纪念日为用户发送通知 一.…

SAFETY LAYERS IN ALIGNED LARGE LANGUAGEMODELS: THE KEY TO LLM SECURITY

目录 概要 背景 大语言模型对齐 对齐大语言模型中的过度拒绝 微调攻击 研究设置 问题定义 对齐的大语言模型 大语言模型的提示模板 安全层的存在和定位 安全层的存在性 1.从余弦相似度说明 2.从向量之间角度差异说明 3.与预训练LLM对比说明 安全层的定位 1.推理…

netcore Kafka

一、新建项目KafakDemo <ItemGroup><PackageReference Include"Confluent.Kafka" Version"2.6.0" /></ItemGroup> 二、Program.cs using Confluent.Kafka; using System; using System.Threading; using System.Threading.Tasks;names…

在k8s上部署Crunchy Postgres for Kubernetes

目录 一、前言二、安装Crunchy Postgres for Kubernetes三、部署一个简单的postgres集群四、增加pgbouncer五、数据备份六、备份恢复七、postgres配置参数八、数据导入九、权限管理 一、前言 Crunchy Postgres可以帮助我们在k8s上快速部署一个高可用、具有自动备份和恢复功能的…

函数指针示例

目录&#xff1a; 代码&#xff1a; main.c #include <stdio.h> #include <stdlib.h>int Max(int x, int y); int Min(int x, int y);int main(int argc, char**argv) {int x,y;scanf("%d",&x);scanf("%d",&y);int select;printf(&q…

计算机网络:运输层 —— 运输层端口号

文章目录 运输层端口号的分类端口号与应用程序的关联应用举例发送方的复用和接收方的分用 运输层端口号的分类 端口号只具有本地意义&#xff0c;即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中不同计算机中的相同端口号是没有关系的&#xff0c;即…

牛客挑战赛77

#include <iostream>// 函数 kXOR&#xff1a;计算两个数在 k 进制下的异或和 // 参数&#xff1a; // a: 第一个正整数 // b: 第二个正整数 // k: 进制基数 // 返回值&#xff1a; // 两数在 k 进制下的异或和&#xff08;十进制表示&#xff09; long long kXO…

大数据-225 离线数仓 - 目前需求分析 指标口径 日志数据采集 taildir source HDFS Sink Agent Flume 优化配置

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【流量分析】常见webshell流量分析

免责声明&#xff1a;本文仅作分享&#xff01; 对于常见的webshell工具&#xff0c;就要知攻善防&#xff1b;后门脚本的执行导致webshell的连接&#xff0c;对于默认的脚本要了解&#xff0c;才能更清晰&#xff0c;更方便应对。 &#xff08;这里仅针对部分后门代码进行流量…

springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)

摘 要 随着社会经济的快速发展&#xff0c;人们对足球俱乐部的需求日益增加&#xff0c;加快了足球健身俱乐部的发展&#xff0c;足球俱乐部管理工作日益繁忙&#xff0c;传统的管理方式已经无法满足足球俱乐部管理需求&#xff0c;因此&#xff0c;为了提高足球俱乐部管理效率…

电子应用设计方案-12:智能窗帘系统方案设计

一、系统概述 本设计方案旨在打造便捷、高效的全自动智能窗帘系统。 二、硬件选择 1. 电机&#xff1a;选用低噪音、扭矩合适的智能电机&#xff0c;根据窗帘尺寸和重量确定电机功率&#xff0c;确保能平稳拉动窗帘。 2. 轨道&#xff1a;选择坚固、顺滑的铝合金轨道&…