【【萌新的SOC学习之AXI接口简介】】

萌新的SOC学习之AXI接口简介

AXI总线的初步介绍
AXI 总线是 ARM AMBA 一部分 (高级可扩展接口)
AMBA(高级微控制器总线架构) :开放的片内互联的总线标准,能再多主机设计中实现多个控制器和外围设备之间的连接和管理。
AXI(高级扩展接口)
(AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大 256 轮的数据突发传输;
AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。
AXI4-Stream:(For high-speed streaming data.)面向高速流数据传输;去掉了地址项,允许无限制的数据突发传输规模。)
AXI4(AXI4-Full): 用于高性能的存储器映射需求;
(存储器映射:主机再对从机进行读写操作时,指定一个目标地址,这个地址就是对应系统存储空间的地址,表示对该空间进行读写操作);
AXI4-Lite : 简化版的AXI4接口
用于低吞吐率存储器映射的通信
AXI4-Stream(ST) : 用于高速的流数据通信

AXI4(AXI4-Full)(支持突发256),和AXI4-Lite(1个数据) 属于存储器映射 需要指定地址
AXI4-Stream(ST)不属于存储器映射,它的突发长度不受限制, 用于数据流传输大量数据

AXI4 和 AXI4-lite 包含5个不同的通道
(1)读地址通道,包含 ARVALID, ARADDR, ARREADY 信号;
(2)读数据通道,包含 RVALID, RDATA, RREADY, RRESP 信号;
(3)写地址通道,包含 AWVALID,AWADDR, AWREADY 信号;
(4)写数据通道,包含 WVALID, WDATA,WSTRB, WREADY 信号;
(5)写应答通道,包含 BVALID, BRESP, BREADY 信号;
(6)系统通道,包含:ACLK,ARESETN 信号

AXI4 : 由于读写地址通道是分离的,所以支持双向同时传输;突发长度最大256
AXI4-lite : 和AXI4比较类似,但是不支持突发传输
AXI-stream:只有一个单一数据通道,和AXI4的写数据通道比较类似 突发长度不受限制

AXI-DMA可以实现从存储器映射到stream数据流的转变
AXI InterConnect 和 AXI SmartConnect
这两个IP核都是用于连接单/多个存储器映射的AXI Master 和 单/多个存储器映射的 AXI Slave

AXI通道的定义 :
每一个独立的通道 都包含一组信息信号,VALID信号和READY信号
用于提供双向的握手机制。

信息源端使用VALID信号表示地址,数据和控制信息什么时候有效,
目的端通过使用READY表示什么时候可以接受信息
读数据和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据

读数据通道和写数据通道 都包含各自的地址 通道,地址通道携带了请求所需的地址和信息
读数据通道,由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示都传输是否操作完成

写数据通道 是由主机发送给从机,包含了写数据的信息,然后通过WSTRB表示当前数据的哪个字节有效
写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成

对于信号需要注意的
写地址通道信号需要注意的东西
AWREADY 是由从机发送给主机的
AWVALID 是一组的握手信号 主机发送给从机
AWADDR 起始地址
AWLEN 突发长度 实际的要在这个上面加1 前面是4次 那么这个数据就是3
AWSIZE 突发大小 看多少字节
在这里插入图片描述
AWBUST 突发类型
固定值 FIXED 所有值都是写到一个地址里面去的
INCR 自增 : 在突发发生后 地址会进行累加 这是我们使用的相对较多的一种模式 (用的比较多)
回环突发 WRAP

AWVALID 是由 master发送的,用来表示当前的地址是否有效
AWREADY 由从机发送

/下面是写数据的信号
WDATA
WSTRB : 用来表示当前的WDATA哪个字节有效
WLAST : 用来表示突发传输的最后一个数据
WVALID 
WREADY 又是两个握手信号 对于AXI 其实每一个独立的通道都包含了

/写响应
BRESP : 表示写传输的状态 
BVALID 和BREADY 握手信号 每个独立通道都会有这两个信号

(会返回四种类型: 
OKEY : 返回成功
EXOKAY : 独占式存取OK
SLVERR :表示从机错误,虽然从机已经接受到了数据,但出现了错误
DECERR :表示解码错误,互联模块无法成功译码从机  )

/读地址通道的信号
ARADDR 
ARLEN
等等  和写地址差不多

/读数据通道 
都差不多内含了一个 
RLAST表示最后一个信号

下面是AXI通道的时钟介绍  
ACLK 所有的输出都在ACLK上升沿完成输出
Reset 在复位的时候 我们的  master信号 驱动ARVALID AWVALID WVALID -low
从机信号驱动 RVALID 和 BVALID -low
源端产生valid 信号 表示地址信息和控制什么时候有效
目的端产生ready信号表示当前可以接受信息
传输会发生在当valid和 ready信号同时为高的时候

关于握手机制的处理
所有五个信号都是由valid 和ready信号一起控制 因为双向握手的机制意味着主机和从机在传输数据的时候都可以控制速率
传输会发生在当valid和 ready信号同时为高的时候

从机必须等待ARAVALID 和 ARREADY都拉高之后才能确定

下面是最后介绍一下AXI4-lite
AXI4-lite 适用于当不需要使用AXI4完整功能的时候,比如说一些简单的控制寄存器的读写
支持数据位宽是32位或64位
所有访问都不能修改和没有缓存的 它不支持一个独占式的访问

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

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

相关文章

Netron【.pt转.onnx模型展示】

接着上一篇写哈,如何转.onnx的。 因为是转.onnx类型的,需要先安装onnx的包。 这是直接pip install onnx后转onnx报的错: 很显然是版本问题导致的,so: 将export.py的脚本拉到最下面的parse_opt函数,把“17”改为“12”…

景联文科技:AI大模型强势赋能,助力自动驾驶迭代升级

我国一直以来都将自动驾驶作为新兴产业发展的重点领域之一,工信部等相关部委出台了一系列自动驾驶发展战略、规划和标准,一些地方政府也在积极开展关于自动驾驶的地方立法,为自动驾驶技术的研发和应用提供更加具体的法律保障。例如&#xff0…

【每日一记】OSPF中Hello报文详讲

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

Python 自动化Web测试

限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。 公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟…

微电网单台并网逆变器PQ控制matlab仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 微电网运行在并网模式下且公共电网供应正常时,因为公共电网给定了电 压和频率的参考值,所有的逆变器可以使用PQ控制方式。 当系统频率为额定频率f0时,系统稳定在A点&#x…

PyTorch 深度学习实战

文章目录 前言1. 环境安装1.Anaconda2.pytorch cuda 环境3.测试 前言 官网 https://pytorch.org/hub/pytorch_vision_vgg/ 1. 环境安装 1.Anaconda 可以参考这里:Anaconda学习 2.pytorch cuda 环境 我是按照下面的博客一步步完成,亲测有效 Pytorc…

Tomcat 9.0.41在IDEA中乱码问题(IntelliJ IDEA 2022.1.3版本)

1. 乱码的产生是由于编码和解码的编码表不一致引起的。 2. 排查乱码原因 2.1 在idea中启动Tomcat时控制台乱码排查 Tomcat输出日志乱码: 首先查看IDEA控制台,检查发现默认编码是GBK。 再查看Tomcat日志(conf文件下logging.properties)的默…

TCP/IP(二)导论

一 知识铺垫 以下内容参照 <<电子科技大学TCPIP协议原理>>全 ① 协议和标准 一组规则&#xff1a; 交通规则、学生上学的学生守则等;数据通信的规则,有一个专门的名称叫作协议 protocol语义&#xff1a;具体描述在通信当中,每一个信息的具体含义. 二进制bit流…

C++QT-day4

#include <iostream> //运算符重载 using namespace std;class Person { // //全局函数实现运算符重载 // friend const Person operator(const Person &L,const Person &R); // //全局函数实现-运算符重载 // friend const Person operator-(const …

阿里云数据库MongoDB恢复到本地

共两种方式&#xff0c;建议使用第二种的逻辑恢复&#xff0c;比较方便快捷 一、下载物理备份文件 下载的格式是xb的&#xff0c;主要跟实例创建时间有关&#xff0c;2019年03月26日之前创建的实例&#xff0c;物理备份文件格式为tar&#xff0c;后面全部都是xb的格式了&#…

博弈论——动态博弈

动态博弈 0 引言 前面一篇文章介绍了博弈过程中的三个分类&#xff1a;静态博弈、动态博弈、重复博弈。今天具体讲讲动态博弈的处理方法。 博弈论——博弈过程 1 概念 首先还是介绍一下动态博弈的概念&#xff0c;即博弈中各博弈方的选择和行动不仅有先后次序&#xff0c;而…

WPFdatagrid结合comboBox

在WPF的DataGrid中希望结合使用ComboBox下拉框&#xff0c;达到下拉选择绑定的效果&#xff0c;在实现的过程中&#xff0c;遇到了一些奇怪的问题&#xff0c;因此记录下来。 网上能够查询到的解决方案&#xff1a; 总共有三种ItemSource常见绑定实现方式&#xff1a; 1.ItemS…

实现动态表单的一种思路 | 京东云技术团队

一、动态表单是什么 区别于传统表单前后端配合联调的开发实现方式&#xff0c;动态表单通过一种基于元数据管理的配置化方法来实现表单的动态生成&#xff0c;并能根据配置自由增改删指定字段。实现特定需求的自助化。 图1.1 传统表单前后台协作模式 图1.2 动态表单前后台协作…

速通Redis基础(二):掌握Redis的哈希类型和命令

目录 Redis 哈希类型简介 Redis 哈希命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX ​编辑 HINCRBY HINCRBYFLOAT Redis的哈希类型命令小结 Redis 是一种高性能的键值存储数据库&#xff0c;支持多种数据类型&#xff0c;其中之…

第4章 决策树

文章目录 4.1 基本流程4.2 划分选择4.2.1 信息增益4.2.2 增益率4.2.3 基尼指数 4.3 剪枝处理4.3.1 预剪枝4.3.2 后剪枝 4.4 连续与缺失值4.4.1 连续值处理4.4.2 缺失值处理 4.5 多变量决策树4.6 阅读材料 4.1 基本流程 决策树也称判定树&#xff0c;是一类常见的机器学习方法。…

【小沐学Python】Python实现Web图表功能(Dash)

文章目录 1、简介2、安装3、功能示例3.1 Hello World3.2 连接到数据3.3 可视化数据3.4 控件和回调3.5 设置应用的样式3.5.1 HTML and CSS3.5.2 Dash Design Kit (DDK)3.5.3 Dash Bootstrap Components3.5.4 Dash Mantine Components 4、更多示例4.1 Basic Dashboard4.2 Using C…

MyLife - Docker安装Redis

Docker安装Redis 个人觉得像reids之类的基础设施在线上环境直接物理机安装使用可能会好些。但是在开发测试环境用docker容器还是比较方便的。这里学习下docker安装redis使用。 1. Redis 镜像库地址 Redis 镜像库地址&#xff1a;https://hub.docker.com/_/redis/tags 这里是官方…

用go获取IPv4地址,WLAN的IPv4地址,本机公网IP地址,本机空闲端口详解

文章目录 获取IPv4地址获取WLAN的IPv4地址获取本机公网IP地址获取本机空闲端口 获取IPv4地址 下面的代码会打印出本机所有的IPv4地址。这个方法可能会返回多个IP地址&#xff0c;因为一台机器可能有多个网络接口&#xff0c;每个接口可能有一个或多个IP地址。 package mainim…

matlab高斯消元法求解线性方程组

高斯消元法的基本原理是通过一系列行变换将线性方程组的增广矩阵转化为简化行阶梯形式&#xff0c;从而得到方程组的解。其核心思想是利用矩阵的行变换操作&#xff0c;逐步消除未知数的系数&#xff0c;使得方程组的求解变得更加简单。 首先&#xff0c;给定系数矩阵A和常数向…

Python 图形化界面基础篇:创建自定义主题

Python 图形化界面基础篇&#xff1a;创建自定义主题 引言 Tkinter 库简介步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a;创建自定义主题步骤4&#xff1a;创建使用自定义主题的部件 完整示例代码代码解释结论 引言 在图形用户界面&…