0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至配饺子 来源:FPGA探索者 作者:FPGA探索者 2023-06-25 16:23 次阅读

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 要有重叠区

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26420
  • 接收机
    +关注

    关注

    8

    文章

    1158

    浏览量

    53159
  • BRAM
    +关注

    关注

    0

    文章

    41

    浏览量

    10914
  • 状态寄存器
    +关注

    关注

    0

    文章

    38

    浏览量

    7049
  • AXI4总线
    +关注

    关注

    0

    文章

    8

    浏览量

    1359
收藏 人收藏

    评论

    相关推荐

    【芯片设计】握手协议的介绍与时序说明

    最早接触到握手协议是在校期间学习PCIe的AXI总线时,至今日虽然PCIe的结构已经忘得一干二净,但握手协议经过不断的使用还算掌握的不错。
    的头像 发表于 12-11 14:11 2055次阅读
    【芯片设计】<b class='flag-5'>握手</b>协议的介绍与时序说明

    请教大神 何为 数字握手?数字握手VI 有什么注意的

    在看范例的时候看到数字握手,求教何为数字握手。数字握手应用在什么情况下?
    发表于 06-07 17:17

    ZYNQ & AXI总线 & PS与PL内部通信(用户自定义IP)

    图如下:需要强调的是,AXI的五个通道,每个通道都有握手机制,接下来我们就来分析一下AXI-Lite的源码来更深入的了解
    发表于 01-08 15:44

    有没有一种标准的方式到达PL AXI-Lite总线?

    嗨,我将通过测试验证这一点,但我对AXI-Lite外设“寄存器写入”如何出现在AXI-Lite总线上有疑问。AXI标准表明数据和地址可以非常相互独立地出现,从灵活性的角度来看这是很好的,但是
    发表于 04-12 13:45

    AXI总线的相关资料下载

    burst传输顺序信号描述全局信号读/写地址通道信号写数据通道信号写响应通道信号读数据通道信号低功耗接口信号通道
    发表于 02-09 07:17

    AXI接口协议详解

    VALID信号拉高,此时数据在VALID信号和READY信号为高时,在时钟上升沿触发。在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。需要强调的是, AXI的五个通道,每个通道都有
    发表于 04-08 10:45

    什么是握手信号? 什么是握手协议?

    什么是握手信号? 什么是握手协议? RS -232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定
    发表于 10-14 10:26 5355次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手周期的校验对端的身份,在初始链
    发表于 04-03 16:06 2626次阅读

    深入AXI4总线一握手机制

    本系列我想深入探寻 AXI4 总线。不过事情总是这样,不能我说想深入就深入。当前我对 AXI总线的理解尚谈不上深入。但我希望通过一系列文章,让读者能和我一起深入探寻 AXI4。
    发表于 03-17 21:40 25次下载
    深入<b class='flag-5'>AXI</b>4总线一<b class='flag-5'>握手机制</b>

    AXI总线学习(AXI3&4)

    burst传输顺序信号描述全局信号读/写地址通道信号写数据通道信号写响应通道信号读数据通道信号低功耗接口信号通道
    发表于 12-05 16:21 5次下载
    <b class='flag-5'>AXI</b>总线学习(<b class='flag-5'>AXI</b>3&4)

    AXI3与AXI4写响应的依赖区别​

    上面两图的区别是相比AXI3,AXI4协议需要确认AWVALID、AWREADY握手完成才能回复BVALID。为什么呢?
    的头像 发表于 03-30 09:59 918次阅读

    AXI4协议五个不同通道握手机制

    AXI4 协议定义了五个不同的通道,如 AXI 通道中所述。所有这些通道共享基于 VALID 和 READY 信号的相同
    的头像 发表于 05-08 11:37 1067次阅读
    <b class='flag-5'>AXI</b>4协议五个不同<b class='flag-5'>通道</b>的<b class='flag-5'>握手机制</b>

    自定义AXI-Lite接口的IP及源码分析

    在 Vivado 中自定义 AXI4-Lite 接口的 IP,实现一个简单的 LED 控制功能,并将其挂载到 AXI Interconnect 总线互联结构上,通过 ZYNQ 主机控制,后面对 Xilinx 提供的整个 AXI4-Lit
    发表于 06-25 16:31 2843次阅读
    自定义<b class='flag-5'>AXI-Lite</b>接口的IP及源码分析

    握手协议中的Valid及data打拍技巧

    AXI 协议使用的是valid-ready握手的方式去传输数据。
    发表于 06-27 16:12 1361次阅读
    在<b class='flag-5'>握手</b>协议中的Valid及data打拍技巧

    简述TCP协议的三次握手机制

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它主要用于在IP网络中进行数据传输。TCP协议的三次握手机制
    的头像 发表于 08-16 10:57 245次阅读