| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> AXI总线学习(AXI3&4) -> 正文阅读 |
|
[嵌入式]AXI总线学习(AXI3&4) |
AXI总线学习AXI是基于burst传输的高性能总线协议 AXI协议的主要特征
主要结构
通道定义读写地址通道读和写地址通道是独立的,地址通道用于传输地址和控制信号,AXI协议支持以下机制
读数据通道读数据通道传输读来的数据以及来自从机的回应信号
写数据通道写通道数据只是传输写入到从机的信号
写操作回应信号写操作回应信号产生在每个burst完成之后,其中一个数据传输完成之后并不会产生此信号。 每个通道,包括地址和控制通道,数据通道,以及写操作反馈通道,均会有VALID,READY信号进行握手,确保传输准确!!! 接口和互联AXI协议为接口提供单独的接口定义,分别是主机和互联线之间,从机和互连线之间,主从机之间。大多数的系统使用以下三种之一的互连线方式,
寄存器片每个AXI通道只在一个方向传输信息,各个通道之间不需要固定的关系。 这很重要,因为它可以在任何通道中插入寄存器片,但代价是额外的延迟周期。 这使得在延迟周期和最大操作频率之间进行权衡成为可能。 关于寄存器片的内容可参考:Register Slices. 基本传输本部分介绍了按照基本AXI协议传输的例子,显示了VALID和READY信号的握手过程。传输发生在VALID和READY信号均为高电平的时候,主要有以下三个例子,分别是Read burst, Overlapping read burst, Write burst。 Read burst
Overlapping read burst所谓的Overlapping read burst也就是两个或者多个read burst连在一起进行传输
Write burst
传输顺序AXI支持乱序操作,有助于提高效率 信号描述全局信号ACLK 来自时钟源,全局时钟信号,所有信号进行时钟的上升沿采样 读/写地址通道信号以下Ax表示AW或者AR AxID[3:0] 来自主机,写地址的ID AxADDR[31:0] 来自主机,表示写操作的起始地址,剩余额控制信号决定其他数据的地址 AxLEN[3:0] 来自主机,表示burst的数据数量1-16,和地址相关,对于wrapping bursts来说,此数量必须是偶数,也就是2,4,6。。。16.在burst传输过程,不会被任何部分所打断,即使在写burst中,主机可以通过取消置位所有写选通的方法禁止进一步写入,但是也得将burst的剩余部分传输完成,同样,对于读burst,主机可以不要接下来读过来的数据,但是也得将读burst结束。
AxCACHE[3:0] cache的类型 AxVALID 主机发出的,表示地址和控制信息是否可获取,并且会在AWREADY信号拉高之前一直保持稳定,1表示可获取,0表示不可获取 AxREADY 从机发出的,表示写操作的地址准备好接收到,也就是表示从机已经准备好接收来自主机的地址和控制信号了,1表示准备好了,0表示还没准备好 写数据通道信号WID[3:0] 主机发出的,写操作的ID标签,在写操作的时候,WID必须和AWID的值相匹配 WDATA[31:0] 主机发出的,需要写入到从机的数据,可以是8,16…1024位宽 WSTRB[3:0] 主机发出的,写选通信号,此信号表明选通哪个字节通道 WLAST 主机发出的,写数据最后一个beat的标志位 WVALID 主机发出的,写操作的有效位,表示要写入的数据已经准备好了,1表示数据和选通都好了,0表示数据和选通没有准备好 WREADY 从机发出的,写操作中从机的READY信号,表示准备好接收数据了。1表示从机准备好了,0表示没准备好 写响应通道信号BID[3:0] 从机发出的,表示返回到主机的ID标签,此标签必须和主机地址通道发出的AWID信号相匹配 BRESP[1:0] 从机发出的表示写操作的反馈,分别有OKAY,EXOKAY,SLVERR,DECERR. BVALID 从机发出的,表示写操作反馈此时是否可获得,1表示可获得,0表示没有不可获得 BREADY 主机发出的,表示此时是否准备好接收来自从机的反馈信号,1表示准备好了,0表示还没准备好。 读数据通道信号RID[3:0] 从机发出的,表示读取的地址ID,此ID要和主机发出的ID想匹配 RDATA[31:0] 从机发出的,表示此时读取的数据 RRESP[1:0] 从机发出的,表示对读取操作的反馈,分别由OKAY,EXOKAY,SLVERR,DECERR四种反馈信号 RLAST 从机发出的,标识读取burst中数据的最后一个Transfer RVALID 从机发出的,表示此时主机要读取的数据是否准备好了,1表示准备好了,0表示还没准备好 RREADY 主机发出的,表示主机是否准备好接收来自从机的数据了,1表示准备好了,0表示还没准备好。 低功耗接口信号CSYSREQ 来自时钟控制器,系统时钟给出此信号让外设进入低功耗状态 CSYSACK 来自外设,对系统时钟要求外设进入低功耗状态的回应 CACTIVE 来自外设,表示外设是否要求时钟信号,1表示要求,0表示没要求。
通道握手握手流程所有的五个通道均使用相同的VALID/READY握手来传输数据和控制信息。VALID信号表示何时数据可以被获得,READY信号表示何时准备好接收数据或者控制信号。只有在两个都是HIGH的情况下,才会发生传输,如下图,整个过程中,首先地址和控制信号准备好后,主机会将VALID信号拉高,并一直保持到从机发出的READY信号拉高,并在两个都是高电平的那个时钟上升沿进行数据的传输。
通道之间的关系地址、读、写和写响应通道之间的关系是灵活的。 例如,写入数据可以出现在与其相关的写入地址之前的接口处。 当写地址通道包含比写数据通道更多的寄存器级时,就会发生这种情况。 写数据也可能出现在与地址相同的周期中。
各个通道握手信号之间的依赖关系比较重要的两个关系来预防死锁情况发生,第一个AXI中一个组件的VALID信号必须不能依赖于此次传输的其他组件的READY信号。第二个是READY信号可以等待VALID信号的置位发生
(注:以上为AXI3中定义的依赖关系,AXI4中新增加了部分依赖关系,如下图所示,也就是说BVALID必须等待AWVALID和AWREADY都被置位之后再置位,含义是从机在地址和控制信号传输完成之前不能进行响应) 额外的控制信息Cache的支持
(注: AXI4中对此信号进行了修改,如下图所示) 原子访问独占访问独占访问机制能够实现信号量类型的操作,而无需在操作期间将总线保持锁定到特定的主机。 独占访问的优点是信号量类型的操作不会影响关键的总线访问延迟或最大可实现的带宽。 ARLOCK[1:0] 或 AWLOCK[1:0] 信号选择独占访问,RRESP[1:0] 或 BRESP[1:0] 信号表示成功 或独占访问失败。 从机必须有额外的逻辑来支持独占访问。 AXI 协议提供了一种故障安全机制,以指示主设备何时尝试对不支持它的从设备进行独占访问。
锁定访问此访问指的是此transfer被锁定,在完成之前,任何其他主机都不可访问此地址,这会限制系统的性能 写选通写数据总线的每8位有一个写选通,所以WSTRB[n]对应WDATA[(8×n)+7:(8×n)]。 图 9-1 显示了 64 位数据总线上的这种关系。 窄传输当主机产生比其数据总线窄的传输时,地址和控制信息决定传输使用哪些字节通道。 在递增或包装突发时,不同的字节通道在突发的每个节拍上传输数据。 在固定突发中,地址保持不变,可以使用的字节通道也保持不变。
字节不变字节不变的字节序意味着到给定地址的字节传输将相同数据总线上的八位数据传递到相同的地址位置 非对齐传输AXI 总线支持非对齐的传输,当传输位宽超过1byte,起始地址不为数据总线硬件带宽(byte单位)整数倍时,为不对齐传输。不对齐传输的时候需要配合数据选通在第一次传输时将某几个byte置为无效,使第二次突发传输的起始地址(从机自动计算)为突发尺寸的整数倍。 Quality of service signaling在AXI4中增加了QOS信号 时钟和复位时钟每个 AXI 组件使用单个时钟信号 ACLK。 所有输入信号都在 ACLK 的上升沿采样。 所有输出信号的变化都必须发生在 ACLK 的上升沿之后。 复位异步复位,同步释放
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:41:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |