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]:
会依上一笔的地址来递增。
地址边界计算为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。
|
AHB地址译码 | 地址译码器用于为总线上每个slave提供选择信号HSELx, 只有当前的数据传输完成后(HREADY为高),slave才会采样地址和控制信号以及HSELx。 每个slave最小的地址空间为1KB,所有的master的burst传输上限也是1KB,如此设计保证了不会出现地址越界问题。当一个设计不会用到所有的地址空间时,可能出现访问到一个不存在的地址的情况,这就需要增加一个附加的默认slave(default slave)来为上面的情况提供一个响应。 当SEQ或NONSEQ传输访问到一个不存在的地址,默认slave应该提供ERROR响应;当IDLE或BUSY传输访问到一个不存在的地址,默认slave会响应零等待OKAY。地址译码器会带有实现默认slave的功能。 |
AHB传输 |
address A, address C : 零等待传输 address B : 1个等待传输 Burst传输(HBURST指定):
字(4-byte)的WRAP4传输,要在 16个字节的范围内对齐。第一个地址=0x38,则传送的顺序为0x38、0x3c、0x30、0x34。
字(4-byte)的INCR4传输,传输地址依上一笔的地址递增。第一个地址=0x38,则传送的顺序为0x38、0x3c、0x40、0x44.....
|
AHB学习笔记
于 2024-04-09 18:06:06 首次发布