news 2026/9/17 12:23:28

芯片验证-AXI详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
芯片验证-AXI详解

outstanding指的是axi可以发出最多多少个操作而不需要等带response;回卷是burst的类型的一种,是指从某个地址开始访问,增加到一定的地址后继续回到其实的地址进行访问;非对齐是指不是按照数据的宽度进行地址增加访问,例如burst size是32bit,对齐地址就是0,4,8等,如果是256bit的话,0,32,64,地址递增步长是数据宽度/8,其他的地址都是非对齐访问,比如32bit的数据宽度,直接给2地址写0x55,实际波形观察到的是给0地址可0x550000;AXI中wrap边界的计算 - 知乎(wrap burst),实际就是按照整个burst的字节长度对齐,向低地址对齐的传输。网页中的INT就是向下取整;比如 burst len=4;busrt size=4 byte;0,4,8,c / 10 14 18 1c / 20 24 28 2c/30,它的起始地址一定是0/10/20/30;

AXI4 总线协议完整学习笔记(超清晰连贯版)

本篇为纯协议学习向系统性笔记,整合 AXI4 总线架构、握手机制、Burst 传输、WRAP 地址算法、乱序与交织、通道时序约束、各类控制信号与错误机制,内容层层递进、结构统一、可直接复制用于文档归档与博客发布。

一、AXI4 总线整体架构思想

AXI4 采用五通道独立分离架构,将地址、数据、响应完全拆分开,实现地址与数据解耦。该架构支持流水线并发传输、多笔挂起事务、乱序完成,是高速片上总线的核心设计。

五个独立通道分为三组:

  • 写事务通路:AW 写地址通道 + W 写数据通道 + B 写响应通道

  • 读事务通路:AR 读地址通道 + R 读数据通道

所有通道互相独立、时序解耦,各自拥有独立的 VALID/READY 握手逻辑,互不阻塞。

二、全局统一握手机制(所有通道通用)

AXI4 所有通道均使用VALID/READY 双向异步握手,是整个协议的底层基础。

核心规则:

  1. VALID 与 READY 无固定先后顺序:可以先有效、先就绪、或同周期同时拉高。

  2. VALID 拉高即锁定信号:一旦 VALID=1,当前通道的所有地址、数据、控制信号必须保持稳定,直到握手成功。

  3. READY 不锁定信号:就绪信号提前拉高不会冻结总线数据,仅代表从端随时可以接收。

  4. 真正握手成功:同一周期 VALID=1 且 READY=1。

该机制让 AXI 天然支持流水线、异步、背压传输

三、Burst 传输完整机制

AXI4 所有批量读写均基于 Burst 机制,包含传输长度、传输粒度、地址递增规则与边界限制。

1. 基础传输参数

  • AxSIZE:定义单 Beat 字节宽度,$$Byte = 2^{AxSIZE}$$,单 Beat 地址必须自身对齐。

  • AxLEN:定义总传输节拍数,总 Beat 数 = AxLEN + 1。

  • BURST 类型:INCR 递增传输、WRAP 回卷传输。

2. 4KB 页面边界强制约束

AXI4 协议硬性规定:INCR、WRAP 所有 Burst 均不允许跨 4KB 边界

核心原理(极简版)

AXI4 强制单笔Burst不允许跨4KB页面,该约束和外设是否连续(如整片SRAM)无关,是SOC总线架构的通用硬性规范。

SOC 地址空间以4KB为最小分页单元,每个页面固定路由到唯一Slave设备。AXI 单笔事务仅在地址握手时执行一次路由解析,全程绑定当前页面对应的从设备,传输过程中不会动态刷新地址路由。一旦Burst跨4KB页面,页号变更会导致路由匹配失效,总线直接判定为非法事务,触发译码错误。

该设计的核心目的:统一适配SOC所有外设(寄存器、SRAM、DDR等),无需硬件动态切换路由,大幅简化总线互联逻辑、降低时序压力,兼顾通用性与稳定性。

答疑:协议理论最大32KB为何不浪费?

AXI4 的32KB理论上限并非冗余设计,由协议最大位宽 + 最大Beat数组合算出,适配超宽总线场景,和常规总线4KB实际上限不冲突,下面举两个精准实例彻底讲透:

实例1:协议满配场景(理论32KB来源,纯协议规格)

AXI4协议定义的双最大值:单Beat最大128Byte(总线位宽1024bit,协议顶格位宽)、最大Beat数256拍(AxLEN最大255)

精准计算:256Beat × 128Byte/Beat = 32768Byte =32KB

该场景是32KB理论上限的唯一来源,专为适配未来/特殊超宽总线设计,常规SOC工程几乎用不到,且受4KB页面规则限制,无法实际跑满。

实例2:工程常规满配场景(128bit总线,真实落地场景)

日常芯片主流总线位宽:128bit = 16Byte/Beat,同样用满最大256Beat

精准计算:256Beat × 16Byte/Beat = 4096Byte =4KB

这就是工程真实最大Burst:刚好填满一个4KB页面,不跨页、完全合法,一次性拉满页内传输性能,减少多次Burst握手开销。

实例3:低位宽总线场景(32bit总线)

32bit总线 = 4Byte/Beat,满配256Beat仅能传输:256×4=1024Byte=1KB

无法填满4KB页面,剩余地址空间需要拆分多笔Burst传输。

最终极简总结(彻底解惑)

1.32KB:协议纸面理论上限(1024bit超宽总线+满Beat),无落地场景,是协议预留的性能上限;

2.4KB:常规硬件实际上限(128bit主流总线+满Beat),合法满页传输,工程常态;

3. 协议做大32KB上限不浪费:统一兼容所有位宽总线,让不同硬件都能拉满单页传输效率,不用修改协议参数。

处理逻辑:Master 在发起事务前必须预判地址范围,若会跨 4KB 边界,主动拆分为多笔独立 Burst

AXI4 单笔 Burst 最大传输字节数(完整分层约束)

1. 理论最大参数上限(仅信号位宽限制):AXI4 AxLEN为8位,最大支持256个Beat;AxSIZE最大支持单Beat 128Byte(对应1024bit超宽总线,工程几乎不用)。普通INCR事务理论最大值:256 × 128B = 32KB

2. 协议硬性全局上限(实际工程生效最大值):受4KB页面边界规则约束,任何类型单笔Burst实际最大传输字节为 4KB,理论32KB数值永远无法跑满,Master必须跨页拆分事务。

3. WRAP回卷传输上限:协议强制WRAP最大仅支持16 Beat,最大传输字节为16 × 128B = 2KB,同时遵守4KB边界约束。

4. 独占访问事务上限:AXI4独占读写事务强制限制最大16 Beat,单笔最大传输2KB

3. WRAP 回卷地址计算(标准算法)

WRAP 主要用于 Cacheline 读写,特点是在固定大小块内循环递增,超出块边界自动回卷,且起始地址必须对齐到整笔 Burst 总大小。

计算流程:

  1. 计算单Beat大小:$$S = 2^{AxSIZE}$$

  2. 计算总块大小:$$BLOCK = (AxLEN+1) \times S$$

  3. 块基地址对齐(通俗理解,抛弃死板公式):无需复杂位运算,用整数除法逻辑最好理解。先算出整笔WRAP传输的总块大小BLOCK,任意起始地址,直接地址 ÷ BLOCK 取整数商 × BLOCK,得到的就是当前WRAP块的起始基地址,本质是把任意地址向下对齐到最近的块边界

  4. 边界回卷判断:逐拍累加地址,一旦地址超出「块基地址+BLOCK」的块末尾,就自动回到当前块的起始基地址,在固定块内循环,不会跨块、不越界。

本质:WRAP 始终在固定窗口内循环递增,不会跨块、不会跨4KB。

4. 传输结束标记 WLAST / RLAST

每一笔 Burst 事务有且仅有一个结束标记:

  • WLAST:写通道最后一拍数据标记,握手成功后本笔写事务数据传输彻底结束。

  • RLAST:读通道最后一拍数据标记,握手成功后本笔读事务彻底结束。

四、AXI4 乱序与交织机制(核心差异点)

AXI4 相比 AXI3 最大改动:删除 WID、保留 RID,直接导致读写通道的乱序、交织能力完全不对称。

两个核心概念:

  • 乱序:不同 ID 的整笔事务完成顺序可以乱序

  • 交织:不同 ID 的单个 Beat 可以互相穿插发送

1. 写通道规则(AW / W / B)

  • AXI4 写通道 终极最简规则(无歧义)事务1:AWID=1,事务2:AWID=21. AW通道(地址)可以乱序 ✅Master发顺序:AW1 → AW2 Slave接收顺序可以:AW2 → AW1 不同ID地址互不约束,可以插队。2. W通道(数据)绝对不能乱序、不能交织 ❌AXI4没有WID,数据不带标签,总线无法区分归属。 总线硬性要求:所有W数据全局串行合法:W1全部发完 → W2全部发完 非法:W1、W2、W1 穿插(绝对禁止)3. 为什么会有“又能乱序又不能乱序”?- 乱序指:地址、收尾顺序(不同ID可插队) - 不乱序指:数据节拍(所有写数据必须排队)4. 同ID铁律同一个AWID:AW、W、B完全严格保序,绝不乱序

2. 读通道规则(AR / R)

  • 保留 RID,支持 Beat 交织 + 整笔乱序

  • 不同 RID 的 R Beat 可以任意穿插、交错返回

  • 同一 RID 的 R 数据必须连续返回,禁止穿插,直到 RLAST

一句话终极吃透:AXI4写,地址可以插队,数据不许插队,同ID全程不插队;读通道带RID标签,地址数据均可插队交织。

五、写通道关键信号 WSTRB

WSTRB 为写字节选通信号,仅存在于 W 通道。

  • 位宽 = 数据位宽 / 8,每比特对应一个字节通道

  • 比特为1:对应字节有效写入;比特为0:对应字节屏蔽不写入

  • 用于支持非对齐写、部分字节写

  • 协议强制约束:禁止单 W Beat 的 WSTRB 全0(空节拍非法)

六、AW 地址通道与 W 数据通道时序约束

AXI4 地址与数据解耦,不要求 AW 一定先于 W,但存在唯一硬性约束:

  1. 允许先发部分 W 数据、后发 AW 地址

  2. 允许 AW 先握手、后发 W 数据

  3. 严禁:WLAST 握手完成后,AW 仍未握手

简言之:地址握手必须在本笔事务最后一拍数据握手之前完成

七、写响应 B 通道机制

  • 一笔 AW 写事务,有且仅有一个 B 响应

  • B 通道由 Slave 主动返回,汇报整笔 Burst 的最终状态

  • 必须等待 WLAST 全部握手完成后,Slave 才能拉高 BVALID,禁止提前返回响应

八、事务响应状态定义

读写响应共用一套状态编码:

  • OKAY:普通读写访问正常完成

  • SLVERR:从设备内部错误

  • DECERR:总线互联译码错误,访问非法地址

  • EXOKAY:独占访问操作成功

读事务最终状态以RLAST 对应节拍的 RRESP为准。

九、AxLOCK 独占访问机制

AXI4彻底移除总线锁定功能,仅保留独占访问,用于多核原子操作。

  • AxLOCK=1:标记本次为独占访问事务

  • 不锁定总线,不阻塞其他 Master 访问

  • Slave 仅对目标地址做独占监视

  • 典型流程:独占读监测地址 → 软件修改数据 → 独占写确认提交

十、AxCACHE、AxQOS、AxREGION 功能说明

  • AxCACHE:提示当前事务的缓存与缓冲属性,用于控制缓存策略、读写穿透属性。

  • AxQOS:4bit 优先级标识,数值越大优先级越高,作为总线仲裁参考提示。

  • AxREGION:多逻辑区域区分,用于单物理从设备映射多段地址空间,常规设计固定为0。

十一、Outstanding 挂起事务机制

Outstanding 指:地址握手已完成,但数据传输或响应尚未结束的未完成事务。

AXI4 支持大量并发挂起事务,提升总线吞吐。最大并发数由 Master 发送能力、Slave FIFO 深度、总线互联仲裁能力共同限制。

十二、AXI4 核心协议总览总结

  • 五通道完全独立,地址数据解耦,支持流水线并发

  • 所有通道遵循 VALID/READY 异步握手,信号稳定机制严格

  • 所有 Burst 禁止跨4KB页面,WRAP 严格块内回卷

  • 写无交织、读可交织,同ID严格保序

  • WSTRB 支持部分写,禁止空节拍

  • B响应必须在WLAST之后,不允许提前返回

  • AXI4 仅保留独占访问,无总线锁

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 12:21:36

擦亮眼睛!不是随便一个 AI 就能搞定毕业论文,2026 导师认可工具全览

每年毕业季,无数同学深陷论文难题:开题毫无思路、搭建框架耗费数日、初稿逻辑松散、查重标红泛滥、AI检测超标、格式反复被导师驳回。现如今市面上通用型AI工具遍地开花,但绝大多数通用大模型存在编造虚假参考文献、学术语句口语化、AI生成痕…

作者头像 李华
网站建设 2026/9/17 12:20:46

3 步装好音源插件:MusicFree 免费无广告音乐播放器新手上手指南

3 步装好音源插件:MusicFree 免费无广告音乐播放器新手上手指南 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/MusicFree 想听一首歌,却总被广告和会员弹窗拦在门外&…

作者头像 李华
网站建设 2026/9/17 12:18:26

从零掌握SNMP Trap:网络设备主动告警的接收配置与故障排查

1. 为什么网络管理离不开trap报文:轮询之外的“主动上报”做网络运维的人应该都有过这样的经历:明明监控平台显示一切正常,但业务部门已经炸锅了。交换机CPU飙到99%、链路down了又恢复、光模块收发异常,这些突发状况如果全靠监控平…

作者头像 李华
网站建设 2026/9/17 12:12:17

AI改完代码后如何自我验证:Open Agents验证循环完整指南

AI改完代码后如何自我验证:Open Agents验证循环完整指南 【免费下载链接】open-agents An open source template for building cloud agents. 项目地址: https://gitcode.com/GitHub_Trending/op/open-agents Open Agents 是一个用于构建**云端 AI 编程智能体…

作者头像 李华