VERDVANA'S BLOG Verdvana

AMBA AHB总线协议

AMBA


1 前言

        AHB(Advanced High-performance Bus),高级高性能总线,是一种高性能系统总线,支持多个总线主设备,并提供高带宽的数据传输能力。

        特点:

  • 突发传输(burst transfers);
  • 分离事务(split transactions);
  • 单周期总线主设备交接(single-cycle bus master handover);
  • 单时钟沿操作(single-clock edge operation);
  • 非三态实现(non-tristate implementation);
  • 更宽的数据总线配置(64/128 位)。

        一个AHB设计可以包含一个或多个总线主设备。通常,一个系统至少会包含处理器和测试接口作为主设备。此外,直接存储器访问(DMA)控制器或数字信号处理器(DSP)也常常作为总线主设备存在。外部存储器接口、APB桥以及任何内部存储器是最常见的AHB从设备。系统中的其他外设也可以作为AHB从设备。不过,低带宽外设通常挂接在APB上。

        一个典型的AHB系统设计包含以下组件:

  • AHB Master
  • AHB Slave
  • AHB Arbiter
  • AHB Decoder

        它的总线架构如下图所示:

img1

        版本:


2 AHB interface

        AHB信号列表:

Source Version Signal Width Attribute Description
Global AHB PCLK 1 Clock APB的所有传输在HCLK的上升沿有效
HRESETn 1 Reset 低电平有效,通常直接连接到系统总线的复位信号
Master AHB HADDR 32 Address 32bit系统地址总线
HTRANS 2 Transfer type 指示当前传输的类型
2'b00:IDEL
2'b01:BUSY
2'b10:NONSEQ
2'b11:SEQ
HWRITE 1 Transfer direction 1'b1: 写
1'b0: 读
HSIZE 3 Transfer size 指定传输宽度,2^n byte,n=0~7
HBURST 3 Burst type 3'b000:SINGLE
3'b001:INCR
3'b010:WRAP4
3'b011:INCR4
3'b100:WRAP8
3'b101:INCR8
3'b110:WRAP16
3'b111:INCR16
HPROT 4 Protection control HPROT[3]: 1=有高速缓存; 0=无高速缓存
HPROT[2]: 1=有缓冲; 0=无缓冲
HPROT[1]: 1=Privilleged; 0=User
HPROT[0]: 1=Instruction; 0=Data
HWDATA 32 Write data bus 写数据。建议最小数据总线宽度为32位;为了支持更高带宽的运行,可扩展。
Decoder AHB HSELx x Slave select 每个AHB Slave都有一个HSELx信号,由Decoder产生
Slave AHB HRDATA 32 Read data bus 读数据。建议最小数据总线宽度为32位;为了支持更高带宽的运行,可扩展
HREADY 1 Transfer done 当为高电平(HIGH)时,HREADY 信号表示总线上一次传输已完成。该信号可被驱动为低电平(LOW)以延长传输。 注:总线上的从设备需要将 HREADY 既作为输入信号,也作为输出信号。
HRESP 2 Transfer response 传输响应提供了关于传输状态的附加信息。
2'b00:OKAY
2'b01:ERROR
2'b10:RETRY
2'b11:SPLIT

        AHB仲裁器信号列表:

Source Version Signal Width Attribute Description
Master AHB HBUSREQx 1 Bus request Master请求信号,最多支持16个master。
HLOCKx 1 Locked transfers 拉高时表示master锁定总线访问,变低之前不能把总线授予其它master。
Arbiter AHB HGRANTx 1 Bus grant 表明Master x是当前最高优先级的master;控制权会在一次传输结束、且HREADY为高电平时发生切换。
HMASTER 4 Master number 指示当前正在执行传输的master;支持SPLIT传输的slave借此判断是哪一个master正在尝试访问。HMASTER的时序与地址和控制信号的时序对齐。
HMASTLOCK 1 Locked sequence 表示当前master正在执行一段锁定的传输序列。该信号与HMASTER信号具有相同的时序
Slave AHB HSPLITx 16 Split completion request 用于指示仲裁器应允许哪些master重新尝试一次SPLIT传输。该SPLIT总线的每一位都对应一个单独的master。