ahb-burst编码含义

1.single:只发一笔操作

2.incr:不定长操作

不定长操作,master不告诉总线,也不告诉slave这个burst有多长,发大于等于1个的操作,地址是累加的,长度不定;还不能中断他,可以发split暂时中断;

3.incr4和wrap4

incr base_addr一直增加

incr4:

0x28-0x2c-0x30-0x34

wrap4:

32位总线,一个cycle传4个byte burst4传16个byte,burst在16个byte对齐的空间里面传

0x28-0x2c-0x20-0x24

wrap绕回来的点 怎么决定:

一个cycle传多少个byte

len:4

二者相乘

32位传输 一个周期4byte burst4 4x4 在16byte对齐的地址传

0x10

0x20

0x30

hsize = 0x02 32bit传输,必须满足:haddr %4 ==0 ,haddr为任意一拍的总线读写地址值

如果hsize标定是32bit传输(4 byte);haddr必须是4的整数倍;

如果hszie标定是16bit传输(2 byte);haddr必须是2的整数倍;

如果hsize标定是8bit传输(1 byte);haddr必须是1的整数倍;

haddr必须跟hsize对齐,比如hsize = 0x02,haddr不能是1,3,5,6,每个地址放1byte数据(计算机系统的物理地址,都是byte编码,计算机系统,一般是addr加1,表示放了一个byte);

整个burst的每个地址,都必须是整数倍;

举例:

burst=4,hsize=0x02,起始地址:0x00(hsize=0x02,起始地址haddr只要是4N就行;如果hsize=0x01,起始haddr只要是2N就行),每拍地址应该是多少:0-4-8-c

hsize=0x02,表示每次传输32bit数据,4个byte,每拍 地址增加4

另外注意:ahb规定,一个burst,地址不能跨1KB的整数倍边界:一个burst,其地址不能从第N个1KB,跨越到第(N+1)个1KB

0x400 最后超过1kb边界。

1.每个slave地址都是1kb对齐,bus地址译码简单了,只需要看高位地址;

2.一个burst只会选中一个slave:一个burst只会落在一个slave的范围内。

即:haddr只能在:hsize和hburst决定的这个burst传输的总byte数的地址对齐的范围内变动;

比如 hsize和hburst决定了burst传输16byte数据,整个burst的haddr只能bit[3:0]有变化,高位不能变,这也决定了wrap点。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值