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

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

3天内不再提示

AXI总线:读写地址结构

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-31 16:06 次阅读

在整个传输事务过程中,主机首先将接下来 burst 传输的控制信息以及数据首个字节的地址传输给从机,这个地址被称为起始地址。

在本次 burst 后续传输期间,从机将根据控制信息计算后续数据的地址。

控制信息以及起始地址在读/写地址通道(AWC/ARC)传输。

注意:单次 burst 传输中的数据,其地址不能跨越 4KB 边界。 关于这点在笔者参考的一个来源这样表示,目前笔者觉得看上去很有道理:协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave (每个slave的地址空间是4K/1K对齐的)4K对齐最大原因是系统中定义一个page大小是4K, 而所谓的4K边界是指低12bit为0的地址。

地址通道中传输的控制信息中包括三项突发传输相关的信号(AR/AW 均一致,下图为以 AR 为例):

图片

(1)突发传输长度(burst length)

指一次突发传输中包含的数据传输(transfer)数量,在协议中使用 AxLen 信号控制。

突发传输长度在不同的模式(burst type ,将在后文中讨论)下有一些限制,包括:

•对于 WRAP 模式,突发传输长度仅能为2,4,8,16

•在一次突发传输中,地址不能跨越一个 4KB 分区

•一次突发传输不能在完成所有数据传输前提前结束(early termination)

协议中多次强调,通信双方都不能在传输事务的所有 Transfer 完成前提前结束。哪怕发生错误,也得含泪走完整个传输事务的流程。

(2)突发传输宽度(burst size)

指传输中的数据位宽,具体地,是每周期传输数据的字节(Byte)数量,在协议中使用 AXSIZE 信号控制。

突发传输数据宽度不能超过数据总线本身的位宽。而当数据总线位宽大于突发传输宽度时,将根据协议的相关规定,将数据在部分数据线上传输。

传输宽度 = 2 ^ AXSIZE

(3)突发传输类型(AxBURST)

类型共有 3 种,分别为 FIXED,INCR 以及 WRAP。使用 2 位二进制表示。

FIXED 类型中, burst 中所有数据都使用起始地址。该模式适合对某个固定地址进行多次数据更新,比如读写一个 fifo时,读写地址就是固定的。

INCR 类型最为常用,后续数据的地址在初始地址的基础上进行递增,递增幅度与传输宽度相同。适合对于 RAM 等通过地址映射(mapped memory)的存储介质进行读写操作。

WRAP 类型比较特殊,首先根据起始地址得到绕回边界地址(wrap boundary)与最高地址。当前地址小于最高地址时,WRAP 与 INCR类型完全相同,地址递增。但到递增后的地址到达最高地址后,地址直接回到绕回边界地址,再进行递增,就这样循环往复。

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

    关注

    8

    文章

    6514

    浏览量

    87610
  • 结构
    +关注

    关注

    1

    文章

    116

    浏览量

    21473
  • 总线
    +关注

    关注

    10

    文章

    2714

    浏览量

    87228
  • AXI
    AXI
    +关注

    关注

    1

    文章

    126

    浏览量

    16292
收藏 人收藏

    评论

    相关推荐

    Xilinx zynq AXI总线全面解读

    4 版本。 AXI总线 ZYNQ有三种AXI总线: (A)AXI4:(For high-performance memory-mapped
    的头像 发表于 12-04 12:22 6303次阅读
     Xilinx zynq <b class='flag-5'>AXI</b><b class='flag-5'>总线</b>全面解读

    使用AXI-Full接口的IP进行DDR的读写测试

    状态。然后使用PL部分消抖处理后的按键进行启动AXI总线工作,控制数据写入。通过AXI互联模块连接到AXI_HP0端口,由PS端口进行数据的读取操作,并通过串口进行
    的头像 发表于 07-18 09:53 4063次阅读
    使用<b class='flag-5'>AXI</b>-Full接口的IP进行DDR的<b class='flag-5'>读写</b>测试

    玩转Zynq连载34——[ex54] 基于Zynq的AXI GP总线的从机接口设计

    比较复杂,而我们译码后的控制信号,则简化了总线本身的复杂性,后续模块可以根据这组信号的状态对相应地址的数据实现主机的读写操作。axi_gp_data.v模块则使用
    发表于 11-12 10:23

    玩转Zynq连载37——[ex56] 基于Zynq的AXI HP总线读写实例

    HP总线。PL作为AXI HP主机,可以通过这4条总线实现对内存(DDR3)的读写访问,这4条总线加总的极限带宽,通常能够超过DDR3的最
    发表于 11-26 09:47

    如何避免AXI_hp总线锁死?

    `1、在开发zynq工程时遇到多个axi_hp总线读写ddr时,总线锁死。现象就是axi_hp的wready信号一直为低。架构图: 2、应用
    发表于 04-15 21:57

    请问microblaze如何通过串口读写FPGA内部axi4总线上的寄存器?

    microblaze通过串口读写FPGA内部axi4总线上的寄存器
    发表于 12-23 06:16

    AXI4协议的读写通道结构

      AXI4协议基于猝发式传输机制。在地址通道上,每个交易有地址和控制信息,这些信息描述了需要传输的数据性质。主从设备间的数据传输有两种情况,一种是主设备经过写通道向从设备写数据(简称写交易
    发表于 01-08 16:58

    AXI总线的相关资料下载

    AXI总线学习AXI协议的主要特征主要结构通道定义读写地址通道读数据通道写数据通道写操作回应信号
    发表于 02-09 07:17

    看看在SpinalHDL中AXI4总线互联IP的设计

    。writeIssuingCapability:指明AXI4总线写最大同时支持的指令个数。combinedIssuingCapability:其值应不小于前两者,用于在AXI4总线
    发表于 08-02 14:28

    AMBA AXI总线学习笔记

    AMBA AXI 总线学习笔记,非常详细的AXI总线操作说明
    发表于 11-11 16:49 11次下载

    AXI 总线和引脚的介绍

    1、AXI 总线通道,总线和引脚的介绍 AXI接口具有五个独立的通道: (1)写地址通道(AW):write address channel
    发表于 01-05 08:13 9695次阅读
    <b class='flag-5'>AXI</b> <b class='flag-5'>总线</b>和引脚的介绍

    AXI总线的概念及基本特点是什么

    AXI总线是一种多通道传输总线,将地址、读数据、写数据、握手信号在不同的通道中发送,不同的访问之间顺序可以打乱,用BUSID来表示各个访问的归属。主设备在没有得到返回数据的情况下可发出
    的头像 发表于 12-19 10:02 5409次阅读

    AXI总线学习(AXI3&4)

    AXI总线学习AXI协议的主要特征主要结构通道定义读写地址通道读数据通道写数据通道写操作回应信号
    发表于 12-05 16:21 5次下载
    <b class='flag-5'>AXI</b><b class='flag-5'>总线</b>学习(<b class='flag-5'>AXI</b>3&4)

    基于AXI总线的DDR3读写测试

    本文开源一个FPGA项目:基于AXI总线的DDR3读写。之前的一篇文章介绍了DDR3简单用户接口的读写方式:《DDR3读写测试》,如果在某些
    的头像 发表于 09-01 16:20 2295次阅读
    基于<b class='flag-5'>AXI</b><b class='flag-5'>总线</b>的DDR3<b class='flag-5'>读写</b>测试

    FPGA通过AXI总线读写DDR3实现方式

    AXI总线由一些核心组成,包括AXI主处理器接口(AXI4)、AXI处理器到协处理器接口(AXI
    发表于 04-18 11:41 133次阅读