AXI总线核心解读---基于官方文档
AXI总线
- 何处使用AXI
- ZYNQ异构芯片,内部总线使用的AXI总线
- 纯FPGA的IP接口也要用
- 高速接口,DDR(AXI、传统)等模块都有涉及到
- 什么是AXI总线
- AXI的三种形式:
- AXI-FULL:高性能的存储器映射需求—可以256个以内发送
- 存储器映射—主机对从机进行读写操作时,会指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作,存储器本身没有地址,给存储器分配地址的过程叫存储器映射。
- AXI-LITE:简化版本—不支持突发传输—单次一个数据
- AXI-STREAM:高速的流数据通信—移除地址的需求,直接发数据
- 利用DMA可以实现从数据流到存储器映射到转换
- AXI-FULL:高性能的存储器映射需求—可以256个以内发送
- AXI总线的设计者
- ARM公司是AMBA总线的一种(APB、AHB、AXI)
- AXI的三种形式:
- AXI机制
- 面向存储的一种设计
- AXI总线是一种突发总线,突发传输—效率高速度快。一直连续的传输,比如突发8次传输,就是指8个时钟连续传输8个数据
- 五个通道
- 每个独立的通道都包含一组信息信号、VALID信号和READY信号,用于提供双向握手机制
- 信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效,目的端使用READY信号表示什么时候可以接受信息
- 读地址通道—包含所需的地址和信息
- 读数据通道—包含last信号、由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读传输是否操作完成
- 写地址通道—包含所需的地址和信息
- 写数据通道—包含last信号,由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据哪个字节有效
- 写响应通道—这是一个独立的通道,而读响应则直接在读数据通道中,从机通过这个响应传递给主机
- 信号的描述
- ACLK和ARESETn—全局信号不属于任何一个通道
- 写地址中的关键信号
- AWADD—写地址,指定突发传输下的第一个地址即起始地址
- AWLEN—突发长度—比输入的定义大一位
- AWSIZE—单个数据的大小
- AWABURST—突发类型—判断如何分配后续的地址增长—INCR—自增加模式—根据突发的大小来自增,发多大的AWSIZE就自增多少
- AWVALID—master发出—地址是否有效果
- AWREADY—slave决定是否准备接收好地址
- 写数据的关键信号
- WDATA—真正的数据
- WSTRB—WDATA哪个数据有效
- WLAST—最后一个数据拉高
- WVALID
- WREADY
- 写响应的关键信号
- BRESP—表示写传输的状态—OKAY表示成功—SLVERR从机错误
- BVALID—slave
- BREADY—master
- 读地址的关键信号
- 和写地址的一样
- 读数据的通道
- 和写一样
- 时序步骤
- 写地址
- 写数据
- 写响应
- 波形验证
- valid和ready同时为高代表数据当前有效
- 先写地址,再写数据,最后一个数据跟随last信号
- 先读地址再读数据,最后一个数据跟随last
- 写完数据,有一个响应信号
- 突发传输有指定需要
- 实现一个AXI总线的方式
- AXI写实现步骤
- 写首地址—有效信号和准备信号同时有效
- 紧接着写首地址,突发传输数据
- 控制last信号
- last脉冲后等待响应信号,从机给主机
- AXI读实现步骤
- 写首地址
- 紧接着等待从机传输过来的数据,当有效信号和准备信号都是高时,读取数据
- 接受last信号
- AXI写实现步骤
- AXI InterConnect和AXI SmartConnect的介绍
- 这两个IP核都用于连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI Slave(即为不可以连接stream类)
- AXI传输机制和死锁
- outstanding和out-of-order
- outstanding
- AXI总线的写地址和写数据是分离的,可以写地址总线上连续发送两次地址,再依次传输写数据
- out-of-order
- 多对多的情况下,ID不同,传输可以任意传输,AXI4中只针对从机有效。主机不支持
- outstanding
- 死锁
- AXI总线发生异常,死机了,无法正常工作
- 死锁产生原因
- 主要是没有严格执行AXI总线协议
- 死锁情况
- 一般是在一个主机对多个从机的时候(outstanding address),主机先发送地址顺序,由于先发送的距离远而后发送的距离近,因此,导致后发送的先收到了写信号,此时,会发送M1占用S1,导致了死锁
- 多个主机对多个从机(out-of-order)互联模块管理下会出现这种问题,两个主机,第一主机发送相同ID到S1,S2。第二个主机也发送相同的ID到S1、S2,但是经过AXI桥,将ID扩展后,对于从机来说是不同的ID,可以乱序传输。那么S1可能会先响应第二个主机而S2响应第一个主机。主机接受响应乱序,违反协议陷入死锁。
- outstanding和out-of-order
- AXI接口
- clock和reset—所有的输出都在clock的上升沿之后输出
- reset后关键是信号主机arvalid/awvalid/wvalid要为低,从机rvalid和bvalid为低
- 握手机制
- 都是使用一样的valid和ready,因此,主机和从机都可以控制传输速率
- valid和ready都是高才可以
- 优先级别示意图的意义—单箭头无所谓谁先拉高—双箭头有优先级别
相关文章:
AXI总线核心解读---基于官方文档
AXI总线 何处使用AXI ZYNQ异构芯片,内部总线使用的AXI总线纯FPGA的IP接口也要用高速接口,DDR(AXI、传统)等模块都有涉及到 什么是AXI总线 AXI的三种形式: AXI-FULL:高性能的存储器映射需求—可以256个以内发送 存储器…...
【Linux修炼】15.进程间通信
每一个不曾起舞的日子,都是对生命的辜负。 进程间通信进程间通信一.理解进程间通信1.1 什么是通信1.2 为什么要有通信1.3 如何进行进程间通信二.管道2.1 匿名管道2.2 匿名管道编码部分2.3 管道的特点2.4 如何理解命令行中的管道2.5 进程控制多个子进程三.命名管道3.…...
每天一道大厂SQL题【Day15】微众银行真题实战(五)
每天一道大厂SQL题【Day15】微众银行真题实战(五) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…...
如何优化查询大数据量的表
给你100万条数据的一张表,你将如何查询优化?1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多…...
卷麻了,00后Jmeter用的比我还熟练,简直没脸见人......
经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对测试工具的使用感到困扰?前言性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性…...
力扣-树节点
大家好,我是空空star,本篇带大家了解一道中等的力扣sql练习题。 文章目录前言一、题目:608. 树节点二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …...
MySQL8启动错误“Neither found #innodb_redo subdirectory, nor ib_logfile* files”
今天做MySQL备份文件回复测试,用来检验MySQL备份文件可用性。 MySQL版本8.0.32 备份文件为腾讯云MySQL实例,版本8.0 使用xtrabackup恢复备份。执行过程顺利,启动MySQL时发生错误。提示如下: 注意,这里使用了systemctl stop mysql。虽然启动失败了,但是如果不执行这条…...
JVM系列——详细说明Volatile,原子性/可见性,先行发生原则
上篇我们讨论了JMM中的工作内存和主内存、内存直接的交互指令,以及指令之间的顺序规则。 本篇将会以上篇为基础,详细介绍并发编程中的三个重要概念/工具:Volatile、原子性/可见性和先行发生(happens-before)原则。 volatile型变量…...
ArcGIS:栅格计算器的运算符和函数详解
01 栅格计算器在哪?02 运算符说明栅格计算器的表达式书写与Python语法一致(由于其为解释型语言并且语言简洁优美,因此简单上手),这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像…...
spring的beanfactory与applicationContext的区别以及继承关系
applicationContext继承关系 首先可以看一张图 ListableBeanFactory 可列举的bean工厂 hierarchical 分层bean工厂 messageSource 国际化信息 //国际化(internationalization)是设计和…...
分享一个 hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题
最近在针对某系统进行性能优化时,发现了一个hive on spark 模式下使用 HikariCP 数据库连接池造成的资源泄露问题,该问题具有普适性,故特地拿出来跟大家分享下。 1 问题描述 在微服务中,我们普遍会使用各种数据库连接池技术以加快…...
MySQL 行锁
行锁 : 对表中行记录的锁 MySQL 的行锁 : 由各个引擎自己实现MyISAM 不支持行锁InnoDB 支持行锁 两阶段锁协议 : 行锁是在需要时才加上,要等到事务结束才释放 例子 : id 是表 t 的主键的 B 的 update 会阻塞,直到 A 执行 commit 后,B 才能…...
成为AI架构师的三大能力
AI架构师的定义 “AI 架构师”是以深度学习为代表的第三次AI热潮所催生的新型复合型人才,它的产生最本质的驱动因素是AI产业化落地应用的蓬勃发展对人才的需求,深度学习突出的工程属性也特别需要复合型人才来驾驭。 从字面来看,AI架构师的“…...
博客系统 实现 (前端 + 后端 )代码
文章目录博客系统前端代码 :1. add.html2. blog_detail.html3. blog_edit.html4. blog_list.html5. login.htmlcss 文件1. blog_detail.css2. blog_edit.css3. blog_list.css4. common.css5. login.css6. 分页器使用的 css后端代码1.config 包1.1 AppConfig类1.2 Lo…...
C语言:如何在cmd命令窗口上玩贪吃蛇游戏
最近在重新学习C语言知识,还别说,在这个过程中,我还真的学到了过去很多没有学习到C语言知识,于是就做了这个游戏–贪吃蛇. 运行结果如下: C语言:如何在cmd命令窗口上玩贪吃蛇游戏 文章目录 1. 实现原理2. 实现过程3. 参考代码1. 实现原理 其实,就是利用了人的视觉错觉来…...
Flutter-自定义图标
虽然Flutter有许多内置的icon图标,但是有些特殊功能的话,需要自定义图标或者需要在iconfont 阿里巴巴的图标库里找对应合适的图标。 第一步:在iconfont 阿里巴巴里搜索想要的图标并加入到购物车,点击下载代码后,会生成…...
教学场景应用视频试看预览功能
html5播放器视频预览功能效果 - 视频预览代码示例预播放一小段时间的视频内容,比如3分钟,然后引导用户付费观看或注册会员观看完整视频。原理:视频播放结束,执行s2j_onPlayOver()函数,显示提示信息或对话框,…...
关于进程与进程调度
目录什么是进程进程管理进程的结构体(PCB)里的属性并行与并发什么是进程 一个运行起来的程序就是进程. 比如文件名是以 exe 结尾的就是一可执行文件(程序) 双击QQ.exe文件, 这个程序就跑起来了, 它在系统中形成了一个进程, 那我们怎么看到进程呢? 可以打开任务管理器, 点开进…...
Redis常用命令及数据类型参数
1. 针对于string SET key value / GET key SET k1 v1 GET k1 // v1String是二进制安全的,是可变长度的, 底层类似于ArrayList 是可扩容的,最大存储内存为 512MB。 2. 判断key中是否存在某个内容 EXISTS key SET k1 v1 EXISTS k1 // …...
(七十四)大白话深入探索多表关联的SQL语句到底是如何执行的?(2)
今天咱们就以MySQL单表查询来举例,看看执行计划到底包含哪些内容 其实只要大家跟着专栏一步一步的学习下来,会很轻松的看懂执行计划,但是如果你之前对什么数据页,索引,索引使用规则,这些东西学的不扎实&am…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
