AMBA5-AHB-知识提纲
AMBA5-AHB-知识提纲
1 AHB基本知识
1.1 1个主机3个从机的结构框图[点击展开]
    1.2 主机接口框图[点击展开]
	1.3 主机信号[点击展开]
输入:
  全局信号:HRESETn、HCLK
  传输响应:HREADY、HRESP
  读数据:HRDATA
输出:
  地址和控制信号:HADDR、HWRITE、HSIZE[2:0]、HBURST、HPROT、HTRANS、HMASTLOCK
  写数据:HWDATA
    1.4 从机接口框图[点击展开]
	1.5 从机信号[点击展开]
输入:
  全局信号:HRESETn、HCLK
  选择信号:HSELx
  地址和控制信号:HADDR、HWRITE、HSIZE[2:0]、HBURST、HPROT、HTRANS、HMASTLOCK
  写数据信号:HWDATA
输出:
  传输响应:HREADYOUT、HRESP
  读数据信号:HRDATA
    1.6 ahb 的突发属性[点击展开]
普通传输:single
突发传输:
  地址边界不回环的增量突发传输,incr4,incr8,incr16;
  地址边界回环的回环突发传输,wrap4,wrap8,wrap16;
    1.7 突发传输终止的条件[点击展开]
1. 从机发出拉低HRESP信号发出ERROR响应;
2. 多主机系统中互联组件终止当前传输,将传输权限转交给其他主机。
	1.8 等待状态中改变传输类型的情况[点击展开]
只能更改一次
1. HTRANS为IDLE的传输;
2. HTRANS为BUSY的传输;
    1.9 等待状态中改变地址的情况[点击展开]
只能更改一次
1. HTRANS为IDLE的传输;
2. HRESP为ERROR之后;
    2.0 HPROT的功能[点击展开]
HPROT[0]:指令还是数据访问;
HPROT[1]:用户还是特权访问;
HPROT[2]:不可缓冲还是可以;
HPROT[3]:不可改变还是可以;
HPROT[4]:不可查找还是可以;
HPROT[5]:不可分配还是可以;
HPROT[6]:不可共享还是可以;
    2.1 三种传输响应[点击展开]
1. 成功完成:HRESP为OKAY,HREADY为LOW。
2. 失败完成
   第一拍:HRESP为ERROR,HREADY为LOW。
   第二拍:HRESP为ERROR,HREADY为HIGH。
3. 延迟传输:HRESP为OKAY,HREADY为HIGH。
    2.2 独占传输的步骤[点击展开]
1. 对地址A执行独占读取;
2. 根据独占读取的值计算一个新的值,作为独占写入的值;
3. 对地址A执行独占写入;
4. 对同一地址两次独占操作之间不允许插入其他主机的独占写入,否则失败;
    2.3 独占传输HEXOKAY失败的可能[点击展开]
1. 传输位置不支持独占传输;
2. 独占传输期间有其他独占传输写入成功;
    2.4 独占传输限制[点击展开]
1. 必须是单一的传输HBURST为[SINGLE、INCR];
2. 不得包含busy传输;
3. 地址必须与HSIZE指示的数据大小对齐;
    2.5 传输属性[点击展开]
1. HTRANS=00:IDLE
2. HTRANS=01:BUSY
3. HTRANS=10:NONSEQ
4. HTRANS=11:SEQ
    2.6 多个master的互联方案[点击展开]
1. 单层:
需要mux将某个主机的控制信号和写数据给到对应从机,从机的读数据和响应mux到对应主机。
2. 多层:
可以选用不同的策略,
- 局部从机(几个从机只接受某个主机的访问)
- 多主机同层(几个主机带宽相似,具有同意特性的主机)
- 多从机同层(几个从机带宽相似,且仅由某个主机访问)
- 主机和从机都存在的完整子系统。(某个主从系统用于固定的事务访问)
    2 AHB基本时序图
2.1 没有等待的读传输[点击展开]
    2.2 没有等待的写传输[点击展开]
    2.3 带两个等待周期的读传输[点击展开]
    2.4 带一个等待周期的写传输[点击展开]
    2.5 四种传输类型示例[点击展开]
    2.6 锁定传输[点击展开]
    2.7 WRAP4 一拍等待字写传输[点击展开]
    2.8 INCR4 一拍等待字读传输[点击展开]
    2.9 WRAP8 字读传输[点击展开]
    2.10 INCR8 字写传输[点击展开]
    2.11 INCR 半字写和字读传输[点击展开]
    3 AHB零碎知识点
- 只有连续传输HBURST为[INCR、WRAP4-16、INCR4-16]的最后一个周期可以将HTRANS设为BUSY;
 - 所有传输的第一个周期HTRANS只能是NONSEQ、IDLE。
 - HBURST为SINGLE的传输之后,只能跟随HTRANS为[IDLE、NONSEQ]的传输;
 - 只有HTRANS为 NONSEQ和SEQ才能读写数据;
 - HRESP为ERROR只会在传输的最后两个周期; 第一个周期master接收slave的error响应,第二个周期master终止传输。
 - 1KB地址边界的限定限制了一次只能访问一个从机。
 - 从机依靠hready在传输中插入等待周期,
 - 主机依靠busy传输类型在传输中插入等待周期。
 - bufferable操作适合对两次操作间隔时间较长的从机访问。
 - default从机对IDLE/BUSY回应OKAY,对SEQ/NONSEQ回应ERROR。
 - 输入hready存在的意义是,多从机时,如果上一个从机的事务需要等待,则当前从机的事务也需要等待。 只有之前所有从机的事务都完成,当前从机的事务才能开始。