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存在的意义是,多从机时,如果上一个从机的事务需要等待,则当前从机的事务也需要等待。 只有之前所有从机的事务都完成,当前从机的事务才能开始。