AXI协议解析(二)
前面说到AXI的五个通道是独立的,但通道间必须保持一定的约定关系:
写回复必须在一次写事务的最后一个写数据之后
读数据必须在接收到读地址信号之后
通道间握手必须满足一定的依赖关系
前两条好理解,重点看一下第三条。之前讲过,为了避免死锁,协议规定发送方的VALID不能依赖接收方的READY;反过来,接收方的READY可以等待,也可以不等待发送方的VALID。当发生一次读传输时,读地址通道中,主机(master)是发送方,而从机(slave)是接收方;在读数据通道中,主机是接收方,从机是发送方,这时的依赖关系是:
主机不可以等待从机置起ARREADY以后,来决定是否置起主机的ARVALID
从机可以等待主机置起ARVALID之后置起ARREADY
从机可以在主机置起ARVALID之前置起ARREADY
从机必须等待主机置起ARVALID 和从机置起ARREADY 之后,才可以置起RVALID
从机不可以等待主机置起RREADY,来决定是否置起从机的RVALID
主机可以等待从机置起RVALID之后置起主机的RREADY
主机可以在从机置起 RVALID 之前置起主机的RREADY
读传输的依赖关系也可以参考下图,其中,单头箭头表示其指向的信号可以在箭头起始信号置起之前或之后置起,也就是说被指向的信号不依赖起始信号;双箭头表示其指向的信号必须在箭头起始信号置起之后置起,也就是说被指向的信号必须依赖起始信号。
对于写传输来说,在写地址和写数据通道上,主机是发送方,从机是接收方;在写响应通道,主机是接收方,从机是发送方,这时的依赖关系是:
主机不可以等待从机的AWREADY和WREADY,来置起主机的AWVALID和WVALID
从机可以等待主机置起AWVALID和WVALID之后置起从机的AWREADY
从机可以在主机置起AWVALID和WVALID之前置起从机的AWREADY
从机可以等待主机置起AWVALID和WVALID之后置起从机的WREADY
从机可以在主机置起AWVALID和WVALID之前置起从机的WREADY
从机必须在主机置起WVALID和WREADY之后,才可以置起BVALID,从机必须等待主机置起WLAST之后,才可以置起BVALID
从机不可以等待主机置起BREADY之后再置起BVAILD
主机可以等待从机置起BVALID之后置起BREADY
主机可以在从机置起BVALID之前置起BREADY
上面听起来有点像绕口令,其实记住一个大原则就好:发起方不能挑事,接收方有自主权。
在AXI4和AXI5中,写传输增加了额外的从机置起 BVALID 信号所需的依赖,从机必须等待AWVALID,AWREADY,WVALID和WREADY。比起AXI3,BVALID还要依赖于AWVALID和AWREADY。从机要等写地址和写数据都完成以后才可以返回写响应,这在道理上是对的。但是,一般而言,写数据会在写地址前完成。
VALID/READY握手机制是AMBA中一个很重要的机制。正是因为有了这个机制,发送方和接收方都有能力控制传输。协议中花费了大量篇幅来描述VALID/READY。
原文地址:https://mp.weixin.qq.com/s/hPGTRah_3Z9qFco1mr7ggA
AXI协议解析(二)相关推荐
- AXI协议解析(四)
来看看事务属性(Transaction Attributes),主要是对cache,buffer和memory controller的规定.按照协议,从机分为存储从机(memory slave)和外设 ...
- AXI协议解析(五)
今天先来看一下传输标识(transaction identifier)的概念,主要是ID信号. 开始之前先讲几个概念,首先是outstanding(想不好怎么翻译,有的人译为超前)传输.如果没有out ...
- AXI协议解析(三)
了解完通道握手的依赖关系,我们再看看传输事务的结构.首先看传输的地址结构.AXI协议是基于突发(burst)传输的.所谓突发传输,就是在一次事务中,连续地传输多个地址相邻的数据.一次突发传输中可以包含 ...
- DLT645协议解析(二)---07协议数据帧结构解析
(二)DLT645-2007协议数据帧结构解析 书接上回,下图展示的是DLT645-2007协议读取电表电量的交互过程,数据请求帧里面请求的数据类型是当前正向有功电量. PC请求帧: 6 ...
- AXI协议解析(六)
有朋友提出希望讲一下AXI的原子访问(Atomic Accesses).其实这部分我在前面特意没提及,一是个人感觉这块牵扯的基本概念太多,而且晦涩难懂,二是工作中真需要用到的机会也不多.今天简单介绍一 ...
- AXI协议解析(一)
AXI的全称是Advanced eXtensible Interface.在spec里面是这么自夸的: •用于高带宽和低延迟设计. •提供高频操作,无需使用复杂电桥. •协议满足各种组件的接口要求. ...
- AXI协议(五)-AXI-STREAM及接入思路解析
AXI协议(五)-AXI-STREAM及接入思路解析 在本文中,你将可能学会: AXI-STREAM协议的梗概(下简称axis) 尝试编写出普通摄像头接入AXIS的思路 本来想讲完怎么接入的,由于篇幅 ...
- 调用wireshark(二):调用协议解析器
上文[调用wireshark(一):初次尝试 http://www.cnblogs.com/zzqcn/archive/2013/05/11/3072362.html ]已经介绍了调用wireshar ...
- NetFlow V9协议解析使用教程(二)-配置,采集,处理NetFlow
NetFlow V9协议解析使用教程(一) NetFlow V9协议解析使用教程(二)-配置,采集,处理NetFlow 一.实践环境 1.不是每一台交换机或者路由器都支持Netflow,如果不支持可以 ...
最新文章
- 解决PyCharm中报出 “Shadows built-in name xxx“ 的警告
- 桂林电子科技大学C语言大作业,桂林电子科技大学c语言程序设计习题集及答案qvzaewzm.doc...
- 罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字
- jQuery 一些小技巧
- 【转】细说.NET中的多线程 (三 使用Task)
- day38-数据库应用软件
- 移动端禁止页面缩放问题
- php网站报告,在PHP网站上使用Jasper报告
- 跳转定义_解决tensorflow2.0在Pycharm中的自动补全及跳转定义问题
- mysql 总分区表限制_MySQL分区表的局限和限制详解
- discuz 门户diy实现翻页功能的修改记录
- 华为云Hadoop与Spark集群环境搭建
- 【整理】关于Android图形系统的一些事实真相
- html5理财计算,理财产品的收益怎么算(个人理财收益计算器)
- 软件项目的可行性分析包括哪些方面?影响决策的关键因素又是什么?
- linux环境中配置cuda环境,指定gpu以及用量
- 软件结构分类bs,cs
- r spgm 语言_R语言如何处理incorrect number of dimensions错误?
- 【推荐】10本黑客入门必看的书籍
- impala查询语句_Impala-Impala的操作命令
热门文章
- 使用VLD查找内存泄漏
- 【第74篇】 FasterNet:CVPR2023年最新的网络,基于部分卷积PConv,性能远超MobileNet,MobileVit
- 【零散技术】Odoo 服务台(helpdesk)Qweb设计模式
- 从北京“润”到芝加哥,工程师宝玉“滋润”成长的秘诀
- Mathjax 常用语法
- c语言 int是signed,C语言的补码表示和unsigned及signed的的转换
- 字随圆转换角度 html,弧度角度转换(角度转换工具)
- Eclipse Validating比较慢,去掉Validating
- 服务器如何修改密码复杂度,服务器密码策略
- burpsuite入门,实用教程