AHB介绍

发布于:2024-04-25 ⋅ 阅读:(30) ⋅ 点赞:(0)

1. 关于AHB协议

AMBA AHB是一种适用于高性能可综合设计的总线接口。它定义了组件之间的接口,例如master、互连和slave。

AMBA AHB实现了高性能、高时钟频率系统所需的特性,包括:

  • 突发传输(Burst transfers)。
  • 单时钟边沿操作(Single clock-edge operation)。
  • 非三态实现(Non-tristate implementation)。
  • 宽数据总线配置,64、128、256、512和1024位。

最常见的AHB slave包括内部存储设备、外部存储器接口和高带宽外设。尽管低带宽外设也可以作为AHB slave,但由于系统性能原因,它们通常位于AMBA高级外设总线(APB)上。使用一个称为APB_bridge的AHB slave,在性能更高的AHB和APB之间进行桥接。

图1-1显示了一个具有单个master的AHB系统设计,其中包括AHB master和三个AHB slave。总线互连逻辑由一个地址解码器和一个slave到master的多路复用器组成。解码器监控来自master的地址,以便选择适当的slave,并将相应的slave输出数据路由回master。

AHB还通过使用一个提供仲裁和路由信号的互连组件来支持多master设计,这些信号来自不同的master到适当的slave。

注意:图1-1仅显示了主要的地址和数据总线以及典型的数据路由。并非所有信号都显示。

1.1 master

一个master提供地址和控制信息以启动读写操作。

图1-2显示了一个master接口。

注意 图1-2中的图未包括在AHB5中定义的额外信号。

1.2 slave

slave响应系统中master发起的传输。slave使用解码器提供的HSELx选择信号来控制它何时响应总线传输。

slave向master反馈以下信号:

  • 总线传输的完成或传输时间的扩展。
  • 总线传输的成功或失败。

图1-3 显示了一个slave接口。

注意 图1-3中的图表未包括在AHB5中定义的额外信号。

1.3 互连

互连组件在系统中提供master和slave之间的连接。

单个master系统只需要使用解码器和多路复用器,如下所述。

多master系统需要使用互连,该互连提供仲裁以及将来自不同master的信号路由到适当的slave。这种路由对于地址、控制和写数据信号是必需的。

1.3.1 解码器

该组件对每个传输的地址进行解码,并为参与传输的slave提供选择信号。它还为多路复用器提供控制信号。 在所有使用两个或更多slave的实现中,都需要一个集中的解码器。

1.3.2 多路复用器

需要一个slave到master的多路复用器来多路复用从slave到master的读数据总线和响应信号。解码器控制多路复用器。 在所有使用两个或更多slave的实现中,都需要一个集中的多路复用器。

2. AHB修订

本规范的上一版被称为Issue A,描述的版本称为AHB-Lite。 本文档的这一版是Issue B,描述了:

  • AHB-Lite 这个版本与Issue A中定义的版本相同。
  • AHB5 这个版本提供了额外的能力,使用属性来声明新的能力。如果一个属性没有被声明,它被认为是False(假)。

新属性包括:

  • Extended_Memory_Types(扩展内存类型)。
  • Secure_Transfers(安全传输)。
  • Endian(字节序)。
  • Stable_Between_Clock(时钟之间稳定)。
  • Exclusive_Transfers(独占传输)。
  • Multi_Copy_Atomicity(多副本原子性)。

本次规范修订还包含了以下主题的额外信息:

  • Locked transfers(锁定传输)。
  • Multiple slave select(多个从设备选择)。
  • Single-copy atomicity size(单副本原子性大小)。
  • User signaling(用户信号)。

在本规范中,术语AHB用于指代AHB-Lite和AHB5。 除非另有说明,信号对于AHB-Lite和AHB5都是通用的。

3. 操作

master通过驱动地址和控制信号来启动一次传输。这些信号提供了关于地址、方向、传输宽度以及传输是否是突发传输的一部分的信息。传输可以是:

  • 单个传输(Single)。
  • 不在地址边界处回环的增量突发(Incrementing bursts that do not wrap at address boundaries)。
  • 在特定地址边界处回环的突发(Wrapping bursts that wrap at particular address boundaries)。

写数据总线将数据从master传输到slave,而读数据总线则将数据从slave传输到master。

每次传输包括:

  • 地址阶段(Address phase)      一个地址和控制周期。
  • 数据阶段(Data phase)            数据的一个或多个周期。

slave不能要求延长地址阶段,因此所有slave都必须能够在这段时间内采样地址。然而,slave可以通过使用HREADY信号来请求master延长数据阶段。 当HREADY信号为低(LOW)时,会在传输中插入等待状态,并允许slave有额外的时间来提供或采样数据。

slave使用HRESP信号来指示传输的成功或失败。