002 AHB总线

发布时间 2023-08-21 16:31:52作者: 沐林枫

一、AHB总线

AHB 是为提出高性能可综合设计的要求而产生的新一代 AMBA 总线。 AMBA AHB
位于 APB 之上新一级的总线并且实现了高性能、高系统时钟频率系统的以下特征要求:
z 突发传输;
z 分块处理;
z 单周期总线主机移交;
z 单时钟沿操作;
z 非三态执行;
z 更宽的数据总线架构( 64 位或者 128 位)。

下面来介绍一个多主机多从机的总线互联架构,如下图所示:

 

 

可以看出,主机这边的地址信号haddr和数据信号hwdata都是广播的,通过仲裁器arbiter给出的hselx来选择对应的从机,而从机这边的数据则是通过decoder来解码给主机这边的。当hselx选中对应的从设备后,就可以开始传输了,一个无等待传输的时序如下所示:

 

 

可以看出主机在第一个时钟周期hclk的上升沿给出地址和控制信号,随后从机会在第二个时钟周期给出响应,主机则会在第三个时钟周期采样到从机的响应。当插入等待周期时,可以选择将hready拉低,来扩展数据周期的保持时间,如下图所示:

由上图我们还可以看出AHB的传输是呈一个流水线架构的,在第一拍的时候给出地址A并在第二拍给出地址B同时发出数据A,在第三拍给出地址C和数据B,。。。。以此类推。

  • 下面针对AHB Master的具体信号和时序进行一个分析,一个AHB Master的接口如下图所示:

 

  1. 一次完整的发送流程从信号①开始,①中的信号表示AHB master给arbiter的信号,hbusreqx表示向其申请总线,hlockx表示锁定总线;
  2. 在获得arbiter返回的②hgrant信号后表示申请到了总线,这时候可以开始传输;
  3. 发送③中的地址信号,控制信号和写数据信号
  4. 在得到主机的信号后,从机给与的response ④
  5. 若是读操作,在AHB Master在第一拍给出控制信号和地址信号后,在第二拍(若hready = 1)AHB slaver给出hrdata,随后AHB master在第三拍采样得到数据hrdata.
  6. htrans表示传输的类型,分别有IDLE,BUSY,NONSEQ(非连续),SEQ(连续),四种类型;
  7. hburst用于描述突发传输的四种模式,分别是SINGLE(单一传输),INCR(未指定长度的增量突发),WRAP4(4拍回环突发),INCR4(4拍增量突发);burst模式很复杂,有空单独开一章来详细的讲;
  8. hwrite表示读写控制信号,1表示写,0表示读;
  9. hsize表示传输的大小,通常和hburst信号来一起决定burst传输的地址边界;
  10. hport是保护控制信号,不常用;
  11. hready和hresp是从机的传输响应信号,其中hready主要用于扩展信号,当其拉低时可以对数据进行扩展,当其拉高表示一次传输完成,hresp和hready相结合来返回响应,当hready =1 时,hresp会返回OKAY信号表示传输成功完成,其余还有ERROR,RETRY,SPILT三种其他响应类型;

两个AHB master争夺总线的时序如下图所示:

  • AHB Slave的接口如下图所示:

  1. 首先根据hselx来看slave是否被选中;
  2. 被选中后根据②中的控制和地址信号来判断传输master传输的要求;
  3. 若是读请求,则送出读数据③,写请求则接收写数据
  4. 给出传输响应④

arbiter的接口和decoder的分别如下所示:

 

这里比较简单,就不再详细的描述了。