握手机制、通道依赖性及AXI-Lite握手实例

axi4:高性能内存映射需求(如读写ddr、使用bram控制器读写bram等),为了区别,有时候也叫这个为 axi4-full;
axi4-lite:用于简单、低吞吐量的内存映射通信(例如,与控制寄存器和状态寄存器之间的通信);
axi4-stream :高速流数据(视频、图像等流式数据);
axi4 、axi4-lite和axi4-stream均使用ready、valid握手机制进行通信 。
**信息传输的发起者使用****valid ** 信号指示数据何时有效,接收端产生 ready 信号来表明已经准备好接收数据 , 当两者均为高时,启动传输 。
** axi4 总线和 axi4-lite 总线都有 5 个通道(** **axi4-stream ** 取消了通道) ,**axi4 和 axi4-lite **通道的相同部分:
(1) 写地址通道(aw) ,包含awvalid,awaddr,awready信号;
(2) 写数据通道 (w)**** ,包含wvalid,wdata,wstrb,wready信号;
(3) 写应答通道 (b)**** ,包含bvalid,bresp,bready信号;
(4) 读地址通道 (ar)**** ,包含arvalid,araddr,arready信号;
(5) 读数据通道 (r)**** ,包含rvalid,rdata,rready,rresp信号;
以 axi-lite 总线为例 ,xilinx zynq 通过 axi4-lite 总线控制 8 个 gpio 的输出,先写入 0x0f 测试写入操作,再写入 0xff 后读取写入的值,测试读操作。
本操作是 zynq 作为主机 master,axi-lite gpio 作为从机 slave, 使用 ** xilinx ****的 ****axi interconnect ** 总线互联结构互联 。
**axi4-lite **是 axi4 的删减版,适合轻量级的应用,也是包含 5 个通道,不同的是每个通道都进行了简化, 去掉了对突发传输的支持(burst) 。
写事务握手实例
使用写地址通道、写数据通道和写响应通道 。
(1) 在写数据通道上 ,主机给出要写的数据 0x0f,并在一个时钟周期后将数据有效信号 wvalid 拉高,等待从机的 wready 写准备好信号拉高;
(2) 在写地址通道上 ,主机给出写地址 0x00(gpio 通道 1 的输出数据的控制寄存器),并将地址有效信号 awvalid 拉高,等待从机的 awready 写准备好信号拉高;
(3)当 wvalid 和 wready 信号同时拉高后,数据成功写入 gpio 从机;当 awvalid 和 awready 信号同时拉高后,地址成功写入 gpio 从机;
(4)一个时钟周期后, 在写响应通道上 ,给出响应(bresp 为 0),从机告诉主机已经成功写入;
此外,对于写响应信道,bready 由主机主动给出,一直保持在准备好接收响应的状态,当从机发来一个 bvalid 信号指示一个有效的响应后,bready 拉低一段时间后处理该响应信息,处理完成后又恢复到准备好接收响应状态。
rresp/bresp 读/写响应信号的含义,2-bit 信号,分别代表读写成功、独占式读写、从设备错误、译码错误。
读事务握手实例
**先向地址 ****0x00 ** 写入数据 0xff,再读出,使用读地址通道、读数据通道 。
(1) 在读地址通道上 ,主机给出要读取的地址 0x00(gpio 通道1 的输出数据的控制寄存器),并将地址有效信号 awvalid 拉高,等待从机的 awready 写准备好信号拉高后,成功将要读取的地址写入从机;
(2) 在读数据通道上 ,从机给出读出的数据 0xff,并将数据有效信号 wvalid 拉高,此阶段主机的 wready 写准备好信号一直拉高,数据在两个信号同时为高时传输,将 0xff 写入主机,此时读响应 rresp[1:0] 为 0,代表写入成功;
(3)当 arvalid 和 arready 信号同时拉高后,地址成功写入 gpio 从机;
当 rvalid 和 rready 信号同时拉高后,数据成功返回给 zynq 主机;
axi4 总线握手机制
axi4 、axi4-lite和axi4-stream均使用ready、valid握手机制进行通信 。
**信息传输的发起者使用****valid ** 信号指示数据何时有效,接收端产生 ready 信号来表明已经准备好接收数据 , 当两者均为高时,启动传输 。
上面的实例给出了两种 valid 和 ready 出现的情况,一种是 valid 先为高,另一种是 ready 先为高,实际上,valid 和 ready 一共有三种可能情况:
(1)valid 先为高 ready 后为高
如前文实例中写地址和写数据通道所示,时序图如下,传输发生在箭头所指处(在时钟 aclk 的上升沿检测到同时为高):
master 主机发送端首先发出数据或者控制信息,并将自己的 valid 有效信号拉高,指示信息(information)有效;
发送端的信息(information)和 valid 信号保持稳定,直到 slave 从机接收端的 ready 信号拉高,指示接收端已经接收到 information。
(2)ready 先为高 valid 后为高
如写响应通道所示,时序图如下,传输发生在箭头所指处(在时钟 aclk 的上升沿检测到同时为高):
slave 从机接收端首先表明自己准备好接收数据或者控制信息,将自己的 ready 准备好信号拉高;
master 发送端的信息(information)一旦有效,传输立刻开始。
(3)ready 和 valid 同时为高
时序图如下,传输发生在箭头所指处(在时钟 aclk 的上升沿检测到同时为高):
axi4 总线通道依赖
(1)读事务(读地址通道、读数据通道)• 主机先发送 araddr 和 arvalid 给从机;
• 从机回发 arready,通知主机该地址有效;
• 当 arvalid 和 arready 均为高电平时,主设备拉高 rready,表示主设备准备好接收读数据和读响应信号;
• 从设备发送 rvalid、rdata 以及 rresp,当 rvalid 和 rready 均为高电平时,数据成功写入主设备。
图中的单箭头表示:箭头两端的信号没有依赖关系,谁先拉高都行;
图中的双箭头表示:箭头起始信号拉高之后,箭头指向的信号才可以拉高。
下图可以看出,读地址的 valid 和 ready 两者谁先拉高都可以,读数据的 valid 和 ready 两者谁先拉高也没关系,但是读数据必须在读地址完成后才可以拉高。
(2)写事务(写地址通道、写数据通道、写响应通道)在写操作过程中,主机向从从机发生awaddr、awvalid、wvalid和wdata,当 wvalid 和 wready 都为高电平时数据写入从机。
**主设备发送的 awvalid ** 和 wvalid 要有重叠区 。

开关电源芯片的短路功耗如何计算
一位IT工程师北漂四年的感悟
发电机并网步骤
各省市聚焦充电桩的布局、建设、管理等方面
华为p10强势对垒一加3T,结果貌似还有点悬念!
握手机制、通道依赖性及AXI-Lite握手实例
变压器干燥后的器身吸湿受潮原理及处理
TSN开放标准挂保证 车用以太网抢进ADAS市场
运动健身蓝牙耳机哪个牌子好,运动耳机性价比排行
关于从I²C接口上的ADC读取数据
如何实现嵌入式系统远程调试
限位开关控制自动往返电路原理详解
智源大会 | NVIDIA 科学家深度解析大语言模型训练和 3D 内容创作最新成果
一文搞懂配线架相关知识
南洋理工大学尝试开发一款MEMS芯片来预防心血管疾病
启朔科技的ARM SOC阵列服务器在边缘云服务器领域异军突起
区块链的一般原理与实践猜想是什么
中国汽车产销今年首现两位数增长,自主品牌市场份额出现下降
LED回流焊接条件注意事项_LED回流焊接操作注意事项
ESD地桩工程一般用在什么地方?VESD为你解答