ARM技术论坛
直播中

申根换

8年用户 1681经验值
私信 关注
[问答]

去哪里检查SVA 4KB边界的属性呢

当我尝试通过了解SVA 4KB边界时,下面 是一个属性
//开始
属性AXI_ERRM_AWADDR_BOUNDARY;

@(posedgeAXI_SVA_CLK) !($ isunknown({AWVALID,AWBURST,AWADDR}))& AWVALID&(AWBURST ==AXI_ABURST_INCR)

|->(AwAddrIncr [ADDR_MAX:12] == AWADDR [ADDR_MAX:12]);

endproperty


始终以@(AWSIZE或AWLEN或AWADDR) 开始:p_WAddrIncrComb

AwAddrIncr = AWADDR +(AWLEN << AWSIZE); //突发
结束的最终地址

// end

如果有事务:据我所知,AWADDR:'d4095 AWLEN:'d0 AWSIZE:'d1 AWBUSRT:incr 据我所知,这应违反4K限制。是否在此部分上面检查属性?

回帖(1)

李霞

2022-8-25 15:53:37
您的AXI交易不会违反4K边界。
您使用的起始地址(4095)与传输宽度(16位)不一致,因此,这种1拍事务实际上将传输的只是一个字节。
尽管AXI协议描述了它支持“未对齐的传输”,但是实际的实现仍然是传输到数据总线的AxSIZE对齐的部分,因此,当AWSIZE指示16位传输时,未对齐的起始地址意味着这16个字节的仅上半部分位数据将被传输。
在AXI规范中有一些示例,因此请看图A3-13,其中显示了INCR事务中的AxSIZE = 32位传输。不对齐的起始地址意味着在第二,第三和第四示例中,第一次传输实际上并未传输32位。
在这些示例中,INCR突发中的其余传输每个都传输32位,因此它们是AxSIZE对齐的,只是第一个未对齐的传输。
固定突发类型事务在事务中的每次传输中都保持不对齐,并且WRAP突发不能使用未对齐的起始地址。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分