AHB学习笔记

AHB总线组成

完整的AHB总线由四个部分组成:

①AHB主设备Master;发起一次读/写操作; 某一时刻只允许一个主设备使用总线

②AHB从设备Slave;响应一次读/写操作; 通过地址映射来选择使用哪一个从设备;

③AHB仲裁器Arbiter;允许某一个主设备控制总线;

④AHB译码器Decoder;通过地址译码来决定选择哪一个从设备;

单master系统,需要decoder和Multiplexor(slave to master)

        Decoder对每次传输的地址进行解码,并为参与传输的从机提供选择信号。它还向Multiplexor提供控制信号

多master系统,就需要用到Arbiter仲裁器

        有需要占用总线的Master向arbiter发出请求,arbiter授权给指定的master。任一时间周期只有一个master可以接入总线,对其指定的slave进行读写操作。

        decoder根据地址和控制信号确定哪个slave与master进行数据通信。

AHB传输阶段

AHB 的传送模式包含二个阶段

1地址期间(address phase): 一个周期 (不可扩展)

2数据期间(data phase): 一个周期或多个周期 (以HREADY信号控制周期数目,HREADY为低时给传输加入一个等待状态以使slave获得额外的时间来提供或采样数据,另外slave通过响应信号HRESP反映传输成功or失败。)

AHB传输流程

        有需要占用总线的Master向arbiter发出请求,arbiter授权给指定的master (任一时间周期只有一个master可以接入总线,对其指定的slave进行读写操作)

(1)获得授权的总线开始AHB传输,首先发出地址和控制信号,控制信号包括读写信号、传输方式、突发类型、传输大小

(2)译码器根据地址和控制信号确定哪个slave与master进行数据通信

(3)然后发送数据或者接收数据,这根据读写信号决定

(4)每笔传输包括一个地址和控制周期,一个或多个数据周期

(5)支持(burst)突发传输、可分为增量突发和回环突发

Master signals

五大控制信号:(MASTER SIGNAL)

  (1)   HWRITE 传输方向:1为写,0为读

(2)HSIZE[2:0] 传输位宽:

(3)HTRANS[1:0]传输状态:

(4)HBURST[2:0]:

  1. 递增突发(incrementing burst)

        会依上一笔的地址来递增。

  1. 回环突发(wrapping burst)

        地址边界计算为burst中的节拍数和传输大小的乘积。节拍数由HBURST控制,传输大小由HSIZE控制。

        如:字(4-byte)的WRAP4传输,就要在 16个字节的范围内对齐。如果第一个地址=0x64,则传送的顺序为0x64、0x68、0x6C、0x60。

        AHB规定传输范围不可超过1KB,超过1KB后,需要发送一个NSEQ(把HTRANS信号在地址为1KB边界时,改为NON_SEQ非连续信号)

(5)HPROT[3:0]传输保护(非必要不使用)

Slave signal

HRESP:     0 代表OKAY      1 代表ERROR

HREADYOUT:0代表需要等待   1代表传输完成

ERROR response,second cycle

        因为总线的流水线特性,需要双周期响应。当从服务器开始发出 ERROR响应时,接下来传输的地址已经被广播到总线上了(图中HADDR[31:0]: B)。两个周期的响应为master提供了足够的时间来取消下一次访问,并在开始下一次传输之前将HTRANS[1:0]设置成IDLE。

        如果slave需要两个以上的周期来提供ERROR响应,那么可以在传输开始时插入等待状态(HREADY为LOW),响应必须设置为OKAY

  1. T1-T2 slave插入等待状态并提供一个OKAY响应。
  2. T2-T3 slave发出ERROR响应。这是ERROR响应的第一个周期,因为HREADY是LOW。
  3. T3-T4 slave发出ERROR响应。这是ERROR响应的最后一个周期,因为HREADY现在是HIGH。Master将传输类型更改为IDLE。这将取消预定的地址B的事务,该事务是在T2时由master发出
  4. T4-T5 Slave响应一个OKAY响应。

AHB地址译码

        地址译码器用于为总线上每个slave提供选择信号HSELx

        只有当前的数据传输完成后(HREADY为高),slave才会采样地址和控制信号以及HSELx。

        每个slave最小的地址空间为1KB,所有的master的burst传输上限也是1KB,如此设计保证了不会出现地址越界问题。当一个设计不会用到所有的地址空间时,可能出现访问到一个不存在的地址的情况,这就需要增加一个附加的默认slave(default slave)来为上面的情况提供一个响应。

        当SEQ或NONSEQ传输访问到一个不存在的地址,默认slave应该提供ERROR响应;当IDLE或BUSY传输访问到一个不存在的地址,默认slave会响应零等待OKAY。地址译码器会带有实现默认slave的功能

AHB传输

  1. 零等待传输
  2. 等待传输
  3. 连续传输

        address A, address C : 零等待传输

        address B : 1个等待传输

        Burst传输(HBURST指定):

  1. SINGLE (单笔数据传输)
  2. INCR (未定义长度的递增方式burst传输)
  3. 4-beat wrapping burst

        字(4-byte)的WRAP4传输,要在 16个字节的范围内对齐。第一个地址=0x38,则传送的顺序为0x38、0x3c、0x30、0x34。

  1. 4-beat incrementing burst

        字(4-byte)的INCR4传输,传输地址依上一笔的地址递增。第一个地址=0x38,则传送的顺序为0x38、0x3c、0x40、0x44.....

  1. 8-beat wrapping burst
  2. 8-beat incrementing burst
  3. 16-beat wrapping burst
  4. 16-beat incrementing burst

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值