片上总线学习之AMBA(2)

一、上节简要回顾:

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

15的月亮

您的打赏是我创作得最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值