AHB AXI OCP总线协议分析
AMBA_AHB_APB_AXI协议对比分析

AMBA_AHB_APB_AXI协议对比分析引言:AMBA (Advanced Microcontroller Bus Architecture)是ARM公司提供的一种开放式的总线标准,旨在为SOC(System on Chip)设计提供一个灵活、高性能的总线框架。
AMBA协议家族中包括了AHB(Advanced High-performance Bus)、APB(Advanced Peripheral Bus)和AXI (Advanced eXtensible Interface)三种协议。
本文将对这三种协议进行对比分析,详细介绍其特点、性能和应用场景。
一、AHB协议AHB协议是AMBA协议家族中最早发布的协议之一,用于连接SOC内部的高性能主设备和多个从设备之间的通信。
AHB协议通过总线仲裁、突发传输和分片传输等技术,实现了高带宽和低延迟的数据传输。
其主要特点包括:1.性能:-支持高带宽传输:AHB协议支持高带宽的传输,能够满足高性能SOC 内部各个模块之间的数据传输需求。
- 低延迟传输:AHB协议通过引入Pipeline和Split交易等机制,实现了低延迟的数据传输。
2.特性:-总线仲裁:AHB总线采用非常灵活的总线仲裁机制,可以支持多主设备并发传输。
-突发传输:AHB协议支持突发传输,可以在一次仲裁后连续传输多个数据。
-分片传输:AHB协议支持分片传输,可以将大块数据分片传输,降低总线带宽的占用率。
-低功耗:AHB协议通过支持低功耗技术,降低了整个系统的功耗消耗。
3.应用场景:-SOC内部高性能数据传输:AHB协议主要适用于SOC内部的高性能数据传输,例如CPU和DMA控制器、外设控制器之间的数据传输。
二、APB协议APB协议是AMBA协议家族中最简单的一种协议,用于连接SOC内部的低带宽从设备,例如配置寄存器和控制逻辑等。
APB协议相对于AHB协议具有以下特点:1.性能:-低带宽传输:APB协议支持低带宽的传输,主要用于传输配置和控制信息,而不是大量的数据。
AHB总线协议

AHB总线协议一、协议背景AHB(Advanced High-performance Bus)总线协议是一种用于高性能系统的总线协议,由ARM(Advanced RISC Machines)公司开发。
该协议旨在提供一种高效、可扩展和可靠的通信方式,用于连接处理器、存储器和外设等硬件组件。
二、协议目的AHB总线协议的目的是定义一套标准化的通信规范,以确保不同硬件组件之间的互操作性和数据传输的可靠性。
通过统一的协议规范,可以简化系统设计和开发过程,提高系统性能和可维护性。
三、协议特性1. 性能优化:AHB总线协议支持高带宽和低延迟的数据传输,通过采用总线分片、流水线和并行传输等技术手段,提高数据传输效率。
2. 可扩展性:AHB总线协议支持多主设备和多从设备的连接,可以灵活地扩展系统规模和功能。
3. 低功耗设计:AHB总线协议通过采用时钟门控、功耗管理和睡眠模式等技术手段,降低系统功耗,延长电池寿命。
4. 错误检测和纠正:AHB总线协议支持差错检测和纠正机制,可以保证数据传输的可靠性和完整性。
5. 安全性保障:AHB总线协议提供访问控制、权限管理和加密解密等安全机制,确保系统数据的保密性和完整性。
四、协议结构AHB总线协议包括以下几个重要的组成部分:1. 主设备(Master):主设备是总线上的数据传输发起者,可以是处理器、DMA控制器等。
2. 从设备(Slave):从设备是总线上的数据传输接收者,可以是存储器、外设等。
3. 总线(Bus):总线是主设备和从设备之间进行数据传输的通道,负责传输地址、数据和控制信号。
4. 传输通道(Channel):传输通道包括地址通道、数据通道和控制通道,用于传输不同类型的信息。
5. 时钟(Clock):时钟用于同步主设备和从设备之间的数据传输,确保数据的正确性和时序的一致性。
五、协议通信流程AHB总线协议的通信流程如下:1. 主设备发起传输请求:主设备通过地址通道向总线发送传输请求,包括传输类型(读或写)、传输地址和传输长度等信息。
AHB总线协议

AHB总线协议协议名称:AHB总线协议一、背景和目的AHB(Advanced High-performance Bus)总线协议是一种用于高性能系统的总线协议,旨在提供高效的数据传输和通信机制。
本协议的目的是确保系统中各个设备之间的数据传输和通信的可靠性、一致性和高效性。
二、定义和术语1. AHB总线:Advanced High-performance Bus,一种高性能总线协议。
2. 主设备:通过AHB总线进行数据传输和通信的设备。
3. 从设备:接收主设备传输的数据并进行处理的设备。
4. 主通道:主设备通过该通道向从设备发送数据。
5. 从通道:从设备通过该通道向主设备发送响应数据。
6. 传输周期:主设备和从设备之间进行数据传输和通信的时间周期。
7. 传输宽度:数据在AHB总线上的传输位数。
三、AHB总线协议规范1. 总线结构AHB总线由一个主通道和一个或多个从通道组成。
主通道用于主设备向从设备发送数据,从通道用于从设备向主设备发送响应数据。
2. 传输模式AHB总线支持多种传输模式,包括单次传输、递增传输和循环传输。
主设备可以根据需要选择适合的传输模式进行数据传输。
3. 传输周期AHB总线的传输周期由主设备控制,主设备在每个传输周期中向从设备发送地址、控制和数据信息。
从设备在接收到主设备的传输请求后,根据协议规定的时序进行响应。
4. 传输宽度AHB总线支持多种传输宽度,包括8位、16位、32位和64位。
主设备和从设备之间的数据传输宽度需在协议规定的范围内保持一致。
5. 时序和控制信号AHB总线的时序和控制信号包括时钟信号、复位信号、传输请求信号、传输完成信号等。
主设备和从设备需要根据协议规定的时序和控制信号进行数据传输和通信。
6. 错误处理AHB总线协议定义了错误处理机制,包括传输错误、地址错误、数据错误等。
主设备和从设备在数据传输过程中需要根据协议规定的错误处理机制进行错误检测和处理。
7. 性能优化AHB总线协议提供了多种性能优化机制,包括突发传输、流水线传输等。
AHB vs AXI

AXI 互连结构 一般而言 ,AXI 协议对挂接的 master 和 slave 的数量没有限制,master 与 slave 之间的总线互连方式多样。大多 数系统一般采用以下三种互连方式之 一: 共享地址总线和单一数据总线(SASD) 共享地址总线和多重数据总线(SAMD) 多重地址和多重数据的多层总线(MAMD 在 SASD 方式下,每个通道只能被一对 master 和 slave 占用。当一个 master 向一个 slave 发出地址,其他 master 将不能使用总线。这类似于 AMBA2 .0 规范的结构特点。 在 SAMD 方式下,地址通道共享,所以 只能被一对 master 和 slave 占用。而 多对 master 和 slave 可以占用其他通 道(读/写数据和响应通道)。例如,如 果 masterl 发送写数据给 slavel, 此 与 同时 master2 可以发送数据给 slave2 而无需等待总线释放。可以同时通信的 master 和 slave 的对数是由设计决定 的。 在 MAMD 方式下,各个地址通道可以分 别被多对 master 和 slave 占用。这样 最大限度提高了互连的灵活性和互连 结构的性能。这种拓扑结构也是最难验 证的,因为多对 master 和 slave 可以 在任何时间同时通信。验证所有端口之 间的相互作用将对系统的顺利运转非 常关键。多层总线的这种并行访问机制 有效提高了数据吞吐量,降低了访问延 时。 AXI 协议为每个事务设定一个 ID 标签 所有通道都有各自的 ID 信号 - AWID, ARID, RID, WID, BID.
11SG21908:黄庆丰
AXI 协议的主要特征: 地址/控制段与数据段分离 读数据通道和写数据通道分离 容易插入寄存器片以确保时序收敛 支持基于猝发的事务处理,只需发出起 始地址 能够发出多个没完成(outstanding) 的事务 支持乱序事务处理 通过采用字节选通支持非对齐的数据 传送 向后兼容 AHB 和 APB 接口 AHB 总线结构的组成: AXI 五个独立的通道: AHB 主设备(master) 读地址通道 能启动读、写总线操作的芯核。 传输读事务所要求的地址和控制信息 如:处理器、DSP、DMA 控制器等 读数据通道 AHB 从设备(slave) 把来自从设备的读数据和任何读响应 响应(非启动)读或写总线操作的芯核。 信息传送回主设备 从设备信号需向 AHB 主设备指明当前数 写地址通道 据传送的状态(成功、失败、等待) 传输写事务所要求的地址和控制信息 如:外部存储器接口、APB 桥以及内部存 写数据通道 储器等 把来自主设备的写数据传送到从设备
AMBA_AHB_APB_AXI协议对比分析..

9
HREADY:S应答M是否读写操作传输完成: 1-传输完 成, 0-需延长传输周期。需要注意的是,HREADY 做 为总线上的信号,它是M和S 的输入;同时每个S 需 要输出自己的HREADY。所以对于S 会有两个 HREADY 信号,一个来自总线的输入,一个自己给到 多路器的输出。 HRESP:S应答当前传输状态,OKAY、ERROR、 RETRY、SPLIT HRDATA:读数据总线,从S读到M
3
一个典型的基于AMBA 总线的SOC 系统架构
这种SOC架构以AHB为主干,挂上CPU,片上内 存,和其它DMA设备。
4
AHB 主要是针对高效率、高频宽及快速系统模块所设 计的总线,它可以连接如微处理器、芯片上或芯片外 的内存模块和DMA等高效率模块 AMBA 中的APB 主要用在低速且低功率的外围,可 针对外围设备作功率消耗及复杂接口的最佳化 APB在AHB和低带宽的外围设备之间提供了通信的桥 梁,所以APB是AHB或者ASB的二级扩展总线
19
APB/AHB/AXI对比
APB 低功耗 AHB 高速度 AXI 高速度,高带宽 管道化互联 单向通道 只需首地址 读写并行 支持乱序 支持非对齐操作 有效支持初始延迟 较高的外设
20
连线非常多
AHB总线互连
7
允许某个主设备控制总线 发起一个请求给仲 裁器
驱动地址和控 制信号
仅选中的从设备响应地 址/控制信号
拉高HREADY信号,总线 传输完成
8
AHB基本信号
HADDR:32位系统地址总线 HTRANS: M指示传输状态,NONSEQ、SEQ、IDLE、 BUSY HWRITE:传输方向:1-写,0-读 HSIZE:传输单位 HBURST:传输的burst类型 HWDATA:写数据总线,从M写到S
AHB总线协议 (2)

AHB总线协议协议名称:AHB总线协议一、引言AHB总线协议是一种用于高性能、低功耗系统的总线协议。
它提供了一种灵活的、可扩展的总线架构,适用于各种应用领域。
本协议旨在规范AHB总线的工作原理、信号定义、传输规则等内容,以确保系统在各种操作模式下的正确性、可靠性和兼容性。
二、范围本协议适用于使用AHB总线的所有硬件设备和软件系统。
其中,硬件设备包括但不限于处理器、存储器、外设控制器等,软件系统包括但不限于操作系统、驱动程序等。
三、定义1. 总线:指AHB总线,用于连接系统中的各个硬件设备。
2. 主设备:指通过AHB总线发起传输的设备。
3. 从设备:指通过AHB总线接收传输请求的设备。
4. 传输:指在AHB总线上进行的数据传输或控制信号传递。
5. 信号:指在AHB总线上传输的控制信号或数据。
四、AHB总线架构1. 主从结构:AHB总线采用主从结构,主设备通过发起传输请求来控制从设备。
2. 多总线连接:AHB总线支持多个主设备和多个从设备的连接,通过总线矩阵实现设备之间的通信。
3. 总线信号:AHB总线包括地址信号、数据信号、控制信号等。
五、传输规则1. 传输类型:AHB总线支持读传输和写传输两种类型。
2. 传输通道:AHB总线提供多个传输通道,主设备可以同时发起多个传输请求。
3. 优先级:AHB总线支持不同传输请求之间的优先级控制,以确保高优先级请求的及时响应。
4. 传输顺序:AHB总线采用乱序传输方式,主设备可以乱序发起传输请求,但从设备必须按照请求的顺序进行响应。
六、信号定义1. 传输信号:- HTRANS:传输类型,用于指示当前传输是读传输还是写传输。
- HREADY:传输完成信号,从设备使用该信号通知主设备传输是否已完成。
- HRESP:响应类型,用于指示传输的结果,包括正常响应、错误响应等。
2. 地址信号:- HADDR:传输的地址信息。
3. 数据信号:- HWDATA:写数据信号,主设备使用该信号传输写数据。
AHB总线协议

AHB 总线协议1. 简介AHB 总线规范是 AMBA 总线规范的一部分, AMBA 总线规范是 ARM 公司提出的总线规范,被大多数 SoC 设计采用,它规定了AHB (Advanced High-performance Bus) 、ASB (Advanced System Bus) 、APB (Advanced Peripheral Bus)。
AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM 核与系统内部的高速RAM 、NAND FLASH 、 DMA 、 Bridge 的连接。
APB 用于连接外部设备,对性能要求不高,而考虑低功耗问题。
ASB 是 AHB 的一种替代方案。
1.1 AHB 总线的架构AHB 总线的强大之处在于它可以将微控制器(CPU)、高带宽的片上 RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等等连接起来构成一个独立的完整的 SOC 系统,不仅如此,还可以通过 AHB-APB 桥来连接 APB 总线系统。
AHB 可以成为一个完整独立的 SOC 芯片的骨架。
下图是一个典型的 AHB 系统总线的结构示意图1.2 AHB 基本特性 Burst 传输 Split 事务处理单周期 master 移交单一时钟沿操作无三态更宽的数据总线配置( 64/128)流水线操作可支持多个总线主设备(最多 16 个)2. AHB 总线的组成AHB 总线由Master 、Slave 和Infrastructure 构成。
Infrastructure 由 arbiter 、数据多路、地址控制多路、译码器构成。
主设备 Master 发起一次读 / 写操作某一时刻只允许一个主设备使用总线从设备 Slave 响应一次读 /写操作通过地址映射来选择使用哪一个从设备仲裁器 arbiter 允许某一个主设备控制总线译码器 decoder 通过地址译码决定选择哪一个从设备总线可以分为三组写数据总线( HWDATA )读数据总线( HRDATA )地址控制总线( HADDR )3. 信号描述Name Source To DescriptionHCLK clock source 各module 总线时钟,上升沿采样HRESETn reset controller 各module 总线复位,低电平有效HADDR[31:0] Master decoder mux to slave arbiter 32 位系统地址总线 HTRANS[1:0] Master mux to slave 当前传输类型 NONSEQ, SEQ, IDLE, BUSY HWRITE Master mux to slave 1 为写, 0 为读 HSIZE[2:0]。
AHBAXIOCP总线协议分析

AHBAXIOCP总线协议分析
从设备传输响应
• 在master开始一次传输之后,相应的slave决定怎样进行 传输。在AHB规范中没有规定一旦传输开始master可以取 消传输。
• 当slave接入,它必须对传输作出响应以表明传输状态。 HRESP[1:0]提供传输状态。
一个slave可以用下面的方式来完成传输:
AHBAXIOCP总线协议分析
Multi-layer AHB的其它结构
AHBAXIOCP总线协议分析
AHBAXIOCP总线协议分析
AHBAXIOCP总线协议分析
AHBAXIOCP总线协议分析
AHBAXIOCP总线协议分析
AXI总线
• AMBA Advanced eXtensible Interface
AHB总线
• AMBA --Advanced Microcontroller Bus Architecture – Advanced High-performance Bus (AHB) – Advanced System Bus (ASB) – Advanced Peripheral Bus (APB).
• Input stage可以把HGRANT置高,这样master随时可以发 起一个新的总线传输,而input stage通过HREADY来间接 控制master
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 要实现一个高效、高速的Bus matrix, HREADY的实现难 度很大
Multi-layer AHB的其它结构
AXI总线
• AMBA Advanced eXtensible Interface
• Pipeline深度不固定 • 每个burst传输只发首地址和burst类型,其余的地
址由slave根据命令性质计算出来 • 支持乱序执行,能够提高DRAM的效率 • RTL实现时可以在总线上加“寄存器”来提高逻
辑综合的速度
AXI 通道
AXI 通道的定义
• 源端提供VALID信号,表明命令或者数据准备好 • 目的端提供READY信号,表明可以接手命令或者
AHB的组成
• AHB master:总线主设备能提供地址和控制信息 来对数据进行读写操作。即主设备发起数据传输。
• AHB slave:总线从设备对主设备发起的数据传输 做出响应,响应读写数据操作并返回状态信号给 总线主管来完成成功、失败或者等待的数据传输。
• AHB arbiter: 总线仲裁负责选择合适的主设备 拥有对总线的控制权,即被选中的主设备可以发 起数据传输。总线仲裁器采用合适的算法(高优 先级或公平访问等)来满足不同系统需要。
• 当slave接入,它必须对传输作出响应以表明传输状态。 HRESP[1:0]提供传输状态。
一个slave可以用下面的方式来完成传输:
1.立即完成传输; 2.插入一个或多个等待状态以有充足时间来完成传输; 3.发出错误信号,以表明传输失败; 4.延迟传输,但是允许master和slave让出总线,进行其他传输。
核之间数据通讯的“套接字” • 协议定义很灵活,有很多可选项,可以根
据实际需求选择信号集及信号宽度 • 最新2.2版本增加了对2-D传输的支持,非
常适合做图像和视频SOC的系统总线 • 可用其做NOC的实现(Network On Chip)
基本信号定义
Burst扩展
Burst类型
• INCR WRAP和 AHB/AXI相同
AHB总线
• AMBA --Advanced Microcontroller Bus Architecture – Advanced High-performance Bus (AHB) – Advanced System Bus (ASB) – Advanced Peripheral Bus (APB).
表明没有数据传输。当一个master得到总线授权,不想进行任何 数据传输,使用的传输类型是IDLE。
传输类型BUSY允许master在块总线传输的过程中插入闲置周期。 BUSY表明master正在进行一次连续块传输,但下一次传输不会马 上发生。对于从设备,此类型传输忽略。
10
NONSE Q
表明一个块的第一次传输或一次单独的传输。地址和控制信号与 上一次传输不相关。单次传输可以看作是数量为1的块传输,因此 传输类型为NONSEQUENTIAL。
• 缺点:
– 设计实现复杂性高,尤其不宜高速电路的实现 – 随着总线级数的提高,总体利用率下降
Multi-layer AHB的实现
Multi-layer AHB的实现要点
• Bus matrix 事先不知道某一个AHB传输的目标是哪一个 slave, Bus matrix 中的input stage对NONSEQ中的地址 进行译码,再向相应的slave申请传输请求
AHB的主要特点
• 高性能、高带宽,两级流水线 • 支持复杂的总线拓朴结构 • 更宽的数据线位宽 (32/64/128 bits) • 基于Burst的数据传输 • 单周期总线授权转移 • 时钟上升沿操作 • 无三态应用,读写数据线相互独立
一个典型的基于AHB总线的微控器
一个典型的基于AHB总线的微控器由高性能的系统中枢总线、可支持的外部总线 接口、内部CPU和DMA控制器接口和基于APB的低速外围设备总线接口
仲裁: arbiter在倒数第二个地址周期被采样之后改变HGRANTx信号。
新的HGRANTx信息与块传输的最后一地址被同时采样。
仲裁
• Early burst termination
正常情况下,在块传输最后一次传输开始之前,arbiter是不会将 总线控制权移交给另一master的。但是,如果 arbiter为了避免占用总 线时间过长而提早终止块传输,则arbiter可能在块传输未完成时就将 总线控制权移交于其他master。
AHB component - arbiter
AHB component - decoder
AHB系统中解码器用来执行中央地址解码功能,通过使 外围设备独立于系统内存图而提高它们的便携性。下图为 解码器的接口图:
Multi-layer AHB
• AHB 总线矩阵,具有多个AHB master和多个AHB slave
对于一个块的连续传输,类型是SEQUENT联的。控制信息与上次传输的相同。地址等于上次
11
SEQ 地址加上传输尺寸(in bytes)。在卷绕块传输的模式下,传输数
据的地址在地址边界发生卷绕,地址等于传输尺寸乘以传输节拍
的数目(4、8 or 16 )。
块操作(burst transfer)
用HBURST[2:0]表明块八种类型。定义如下:
控制信号
• 传输方向: HWRITE = 1, 写操作, HWRITE = 0, 读操作 • 传输尺寸: HSIZE[2:0],具体含义见下表 一般与HBURST[2:0]结合来决定卷绕块传输的地址边界问题。
从设备传输响应
• 在master开始一次传输之后,相应的slave决定怎样进行 传输。在AHB规范中没有规定一旦传输开始master可以取 消传输。
• Locked transfers
arbiter必须采样每个master的HLOCKx信号,以确定master何时想
要执行一个锁定序列的传输。arbiter负责确保在锁定序列完成之前其
他master不能获得总线授权。
AHB component - slave
AHB component - master
数据 • 通道的VALID和READY同时有效,表明一次命令
或者数据的交易有效 • 读写数据通道提高一个LAST信号,表明burst的
最后一拍数据 • 写response通道没有实质的用途,应该被进化掉
AXI读
多个读交替
AXI写
Burst长度
• 实际burst长度为 ARLEN/AWLEN+1
• 如多个master访问的slave地址不同,则可同时访问多个 slave
Multi-layer AHB
• AHB 总线矩阵,可以提高系统总线的有效带宽, 从而提高了系统的性能
• 结构灵活,可以根据系统的需求灵活调整master 和slave的个数
• Multi-layer AHB设备都遵循相同的AHB协议,因 而有利于提高设计复用性
AHB协议中,4、8、和16节拍(beat)的块与单次传输和不 定长度传输都有定义。同时支持增量块传输和卷绕块传输:
增量块传输访问连续的位置,在块中每一次传输的地 址等于上一次地址加增量;
对于卷绕块传输的访问,如果传输起始地址与块传输 的总字节数不一致时,传输将会在边界卷绕。例如,一个 4拍的字(4-byte)传输,地址将在16-byte边界卷绕,所 以,若起始地址是0x34,那地址将是0x34、0x38、0x3C、 0x30。
• AHB decoder:AHB解码器用于对每一次数据传输 进行地址解码,同时在数据传输中给从设备给出 一个选择信号
AHB总线操作
• 在一个AHB总线数据传输之前,master必须已经从总线仲 裁器那里获得了总线控制权
• 一个授权的master通过驱地址和控制信号来开始一次 Single或者Burst传输。
在第三个HCLK周期的上升沿采样从设备的相应信息。
从设备在数据传输中可以插入等待状态,如下图
一个数据传输被延长时,此次的数据状态延长将使下一次数 据传输的地址状态延长。如下图
传输类型
传输类型分为四种,由HTRANS[1:0]信号来表示
HTRANS [1:0]
00
01
类型
描述
IDLE BUSY
• 过高的灵活性不利于标准化,不利于产业 界推广使用
Simple Write and Read Transfer
Request Handshake
Request Handshake and Separate Response
Write with Response
Burst Write
Pipelined Request and Response
AHB的缺点
• HREADY同时控制命令、读数据和写数据, 对于简单的总线系统,AHB协议简洁、高 效,但是对于复杂的SOC总线系统, 不宜 实现灵活、高效、高速、高性能
• 对于DRAM,AHB固有的一个时钟周期的 流水线特点不能有效发挥DRAM的效率
AXI的特点
• 独立的命令通道、读数据通道、写数据通道,每 个通道单独控制,不再复用控制信号,虽然信号 多了,但是易于实现高效、高速、高性能的总线 架构
Incrementing Precise Burst Read
wrapped Burst Read
Single Request Burst Read
2 Dimensional Block Read
OCP总结
• 灵活、可扩展,具有AXI所有的功能 • BLCK即2维传输适合图像/视频SOC的应用 • 可做为SOC片内总线使用
课后练习
• 阅读AHB详细规范 • 阅读AXI或OCP规范 • 用Verilog写一个master的BFM和slave的