【AHB协议解读 一】简介(Introduction)

1.1 协议概要

AHB-Lite为高性能、高时钟频率系统了所需的功能,包括:

  1. burst transfer
  2. single-clock edge operation
  3. non-tristate implementation
  4. wide data bus configurations, 64, 128, 256, 512, and 1024 bits.

大多数AHB-lite的slave为:

  1. 内部memory器件
  2. 外部memory接口
  3. 高带宽外设

值得说明的是,虽然低带宽外设可以被包含在AHB-lite的slave范畴之内,但是从系统的性能角度出发,他们用APB(Advanced Peripheral Bus)似乎更合适。我们通常用一个APB Bridge(桥)作为AHB-lite的slave来连接更高一级的总线和APB。

下图大致展示了AHB的主从之间的控制和数据传输机制。Multiplexor(多路复用器)用来复用多个slave的响应信号和读数据,decoder(解码器)用来为多路复用器提供控制。在AHB-lite的实现中,当有两个及以上的slave的时候,就需要用到多路复用器。
AHB-Lite block diagram

下图展示了AHB Master的信号端口及其传输方向。可见AHB Master提供了地址和控制信号以此来发起读写请求。
Master interface

下图展示了AHB Slave的信号端口及其传输方向。可见AHB Slave为前级Master发起的transfer做出响应,并通过来自decoder(解码器)的HSelx端口来选择何时为bus transfer做出响应。响应的信号(HRESP)表明了一个transfer的传输状态,总共有三种状态:1.传输成功 2.传输失败 3.继续等待
在这里插入图片描述

1.2 Operation

master发起一个transfer来驱动地址和请求信号。
一个transfer提供了如下信息:

  1. 地址(address)
  2. 目的地(direction)
  3. transfer位宽(width of transfer)
  4. transfer是否由一个burst组成

transfer可以为以下几种类型:

  1. single
  2. increment bursts(不会在地址范围内循环)
  3. wrapping bursts(在特定的地址范围内循环)

每一个transfer都包含:

  1. 地址phase:一个地址cycle和一个控制cycle
  2. 数据phase:一个或多个cycle的数据clk 周期

1.3 Multi-layer AHB-Lite

因为AHB-lite具有的是单master总线接口,所以当系统中有多个master的时候,系统中就需要包含一个能够将所有master区分开来的组件。为了实现这样的功能,可以将每一个master都放在其独属的层(layer)上,因此在相互独立的master之间必须要建立一个Multi-layer互连组件,以保证他们都能够通过一个共享的渠道访问到slave。Multi-layer互连组件需要实现对不同slave的仲裁。

如下图所示,multi-layer需要为slave1/2/3实现仲裁机制来防止多个master对一个slave的同事访问;master1不需要访问到slave4和slave5,因此这两个slave被设计成只有master2能访问,这也减小了multi-layer互连组件设计的复杂程度。
在这里插入图片描述

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值