一、上节简要回顾:
1、AMBA简介,AMBA2.0:AHB,ASB,APB
2、AHB组成:AHB master,AHB slave,AHB arbiter,AHB decoder
3、APB组成:AHB2APB bridge,APB slave
4、AHB信号:HCLK HRESETn HADDR HTRANS HWRITE HSIZE HBURST HWDATA HSELx HRDATA HREADY HRESP
5、AHB传输的两个阶段:地址周期,数据周期
6、当前传输的状态HTRANS:IDLE BUSY NOSEQ SEQ
7、突发传输类型HBURST:SINGLE、INCR(地址累加如何开启一次新的INCR传输?--->设置NOSEQ),Burst传输不可跨越1K边界
8、HSEL:由AHB decoder通过地址映射给出
9、AHB slave响应信号:1)HREADY传输完成、HRESP传输响应(OK,ERROR,RETRY)2)AHB slave短时间无法响应?(HREADY拉低)长时间无法响应?(发一个RETRY)
二、BURST传输
1、AHB Burst操作
1)4beat 8beat 16beat 单字节传输,未定义长度传输
2)支持incrementing和wrapping两种burst传输
2、Incrementing burst
1)地址是上一次传输地址加1
3、wrapping burst(回环)
1)示例:4beat的wrapping burst字传输(4byte)
2)0x34->0x38->0x3c->0x30
3)应用场合:cache填充
4、地址计算举例
1)根据HSIZE和HBURST来计算地址
2)示例:起始地址是0x48,HSIZE=010(32bits),如下图1所示,001是用的最多的情况,WRAP4看数是否为0x10的倍数,WRAP8看数是否为0x20的倍数,WRAP16看数是否为0x40的倍数
图1 不同burst的传输方式
5、INCR8 Burst波形图,如下图2所示
图2 INCR8 Burst波形图
6、WRAP8 Burst波形图,如下图3所示
图3 WRAP8 Burst波形图
7、INCR4 Brust,如下图4所示
图4 INCR4 Burst波形图
8、WRAP4 Brust,如下图5所示
图5 WRAP4 Burst波形图
9、未定义长度的Brust传输,NONSEQ指示新的传输,如下图6所示
图6 NONSEQ传输波形图
10、不同Burst切换传输,NONSEQ起始设置的地址可随机,和之前的无关,如下图7所示
图7 不同Burst切换传输波形图
注意:
1、如下图所示,一次burst不能穿越1K边界
1)一个从设备最小的地址间隙是1KB
2)NONSEQ->SEQ->1KB Boundary->
NONSEQ->SEQ
2、主设备不能试图开始一个可能穿越1K边界固定长度的incrementing brust传输,示意图如下图8所示
图8 不超过1K边界的incrementing brust传输波形图
三、地址译码
1、HSELx:选择从设备,指出由主设备所选择的从设备
1)由地址译码器提供选择信号
2)一个从设备至少占用1KB存储空间(地址范围应至少为0x400)
3)需要一个额外的缺省从设备来映射其它的存储地址(相当于default地址)
2、2个master,3个slave的地址译码图如下图9所示
图9 2个master与3个slave的地址译码图
3、从设备响应,所访问从设备必须响应操作,从设备可做如下几种响应
1)完成此次传输
2)插入等待状态(HREADY信号)
3)发出错误信号表示传输失败
4)延迟传输,使得总线可用于其它传输(split)
4、从设备响应信号类型,HREADY:transfer done,HRESP[1:0]:transfer response,HRESP具体包括以下几种
1)00 OKAY 单周期响应
2)01 ERROR 两周期响应
3)10 RETRY:传输未完成,请求主设备重新开始一个传输,两周期响应,RETRY两周期传输过程如下图10所示
4)11 SPLIT:传输未完成,请求主设备分离一次传输 两周期响应
总线的流水线特性需要从设备两个周期的响应,可以使主设备有足够的时间处理下一次传输
图10 RETRY两周期传输过程
5、RETRY与SPLIT不同
1)仲裁方式不同:RETRY的arbiter会继续使用通常的优先级,SPLIT的arbiter会调整优先级方案以便其它请求总线的主设备可以访问总线
2)总线主设备应该用同样的方式处理RETRY与SPLIT响应
6、数据总线
1)不是三态总线(1,0,Z),读总线和写总线分开
2)印第安序,在AMBA协议中没有定义,主设备和从设备应该采用同样的印第安序,不支持动态的印第安序,32bit小印第安序数据总线的有效字节,如下表1所示,32bit大印第安序数据总线的有效字节,如下表2所示
3)对于IP设计,只有应用比较广泛的应用程序才支持两种印第安序
表1 32bit小印第安序数据总线的有效字节
表2 32bit大印第安序数据总线的有效字节
6、AHB仲裁信号如下表3所示
表3 AHB仲裁信号
HBUSREQ:总线请求
HLOCKx:高电平,主设备请求锁定总线
HGRANTx:指出主设备x可访问总线,主设备x控制总线,HGRANTx=1且HREADY=1
HMASTER[3:0]:指出哪个主设备正在进行传输
HMASTLOCK:指出主设备正在进行一次锁定传输
HSPLITx[15:0]:从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次split传输,每一位对应一个主设备
更多IC设计,验证,嵌入式等精彩内容,欢迎关注公众号:最炫ICerr