22、AHB中的wrapping burst可以和总的传输字节数对齐么?
可以,此行为符合AHB协议。
以四拍传输大小为4字节的wrapping burst传输为例(共传输16字节)。如果传输的起始地址是0x30,则burst传输的四次地址为0x30、0x34、0x38和0x3C。尽管HBURST被设置为WRAP4,但实际上不会发生wrap,当然这也是AMBA AHB协议允许的。
23、master 应该在什么时候拉高和拉低locked 传输中的HLOCK信号?
HLOCK信号至少在locked 传输的地址阶段开始之前至少一个周期拉高,以便arbiter能够在地址阶段开始时采样到HLOCK信号。
在locked传输的最后一次传输的地址阶段,master 应该拉低HLOCK信号。
24、master 什么时候应该拉低HBUSREQ 信号?
对于一个未定义长度的burst 传输(INCR),master 必须保持其hbusreq信号的拉高状态,直到它开始了burst 传输中最后一次传输的地址阶段。
对于定义长度的burst 传输,一旦获得了第一次总线传输的授权,master 就可以拉低hbusreq信号。可以这样做的原因是,arbiter可以计算burst传输中的传输数量,并保持授予给定master总线权限,直到burst传输完成。
25、在一次locked 传输后,arbiter 什么时候才可以授予另一个master 总线权限?
arbiter 总是在locked 传输结束时授予该master 一拍额外的传输,即master 在locked 传输的最后一次传输的数据阶段会在拉低HMASTLOCK 信号执行一次传输的地址阶段。
在此期间,仲裁器可以将HGRANT信号更改为新的master,但如果上次locked 传输的数据阶段接收到SPLIT 或RETRY 响应,则master将驱动HGRANT信号给正在执行locked 传输的master(RETRY 响应场景)或者授权给Dummy master(SPLIT 响应场景)。
26、master 可以在burst传输期间拉低HLOCK吗?
AHB SPEC要求在burst传输期间所有控制信号(除HADDR和HTRANS外)保持不变。
因此,HLOCK必须在burst传输期间保持高,并且只能在最后一次的地址阶段拉低。