IC验证 AXI 项目(二)——断言
目录
- 写地址通道
- 写数据通道
- 写响应通道
- 读地址通道
- 读数据通道
官方提供的 Protocol Assertions Descriptions:断言描述
写地址通道
- STABLE 类型
property p_AWID_stable; @(posedge clk) AWVALID && !AWREADY |-> $stable(AWID); endpropertyassert property(p_AWID_stable) else `uvm_error("ASSERT","AWID not stable when AWVALID=1 and AWREADY=0")
- X 类型
property p_AWID_X; @(posedge clk) AWVALID |-> !$isunknown(AWID); endpropertyassert property(p_AWID_X) else `uvm_error("ASSERT","AWID has X/Z when AWVALID=1")
- AXI4_ERRM_AWADDR_BOUNDARY
断言描述:单次 burst 传输不可超过 4KB。比如,假设要写入 16KB 数据,可以分成 4 个 burst,每个 burst 在一个 4KB 窗口内,AWADDR 每次递增 4KB。因此要求每次 burst 传输的 AWADDR 高20位不变,即可满足单次不超过 4KB。
property p_AWADDR_4KB_boundary;@(posedge clk) AWVALID && AWREADY |-> (((AWADDR & 'hFFF) + total_bytes(AWLEN, AWSIZE)) <= 12'hFFF);endpropertyassert property(p_AWADDR_4KB_boundary) else `uvm_error("ASSERT","AW burst crosses 4KB boundary")
- AXI4_ERRM_WRAP_ALIGN
断言描述:当 BURST 类型为 WRAP 时,起始地址须与整个 burst 的总字节数对齐。
property p_AWADDR_wrap_align;@(posedge clk) AWVALID && AWREADY && (is_wrap(AWBURST)) |-> ((AWADDR % total_bytes(AWLEN,AWSIZE)) == 0);endpropertyassert property(p_AWADDR_wrap_align) else `uvm_error("ASSERT","WRAP burst start not aligned")
-
AXI4_ERRM_AWLEN_WRAP
断言描述:当 BURST 类型为 WRAP 时,一次 burst 的数据拍拍数只能是 2、4、8、16。 -
AXI4_ERRM_AWSIZE
断言描述:每个数据拍传输的字节数不可超过总线字节数。 -
AXI4_AWLEN_FIXED
断言描述:当 BURST 类型为 FIXED 时,数据拍拍数不可超过 16 拍。 -
AXI4_ERRM_AWID_TIEOFF
断言描述:当接口参数 ID_WIDTH == 0 时,协议上认为 ID 信号不存在,因此在这种情况下 AWID 不应该抖动。 -
AXI4_ERRM_AWVALID_RESET
断言描述:复位释放后的第一个时钟周期,AWVALID应保持为低。 -
AXI4_ERRM_AWREADY_MAX_WAIT
断言描述:当 master 将 AWVALID 置高后,slave 应在设定拍数内将 AWREADY 置高,避免无期限悬挂。
写数据通道
- AXI4_ERRM_WDATA_NUM
断言描述:一个 burst 内的数据拍数须与 AWLEN 一致,① WLAST 不可过早拉高(未到最后一拍就拉高)② WLAST 不可过晚拉高(最后一拍未拉高)③ W 通道先于 AW 通道时,数据拍拍数也须与 AWLEN 匹配 - AXI4_ERRM_WSTRB
断言描述:要求 WSTRB 在合法的 byte lane 内才可置位。
写响应通道
- AXI4_ERRS_BRESP_ALL_DONE_EOS
断言描述:每次的写事务须有对应的写响应。 - AXI4_ERRS_BRESP_EXOKAY
断言描述:EXOKAY 只能出现在独占访问(AWLOCK 为高)时。 - AXI4_ERRS_BRESP_AW
断言描述:BVALID 不能在 AW 通道握手完成(AWVALID && AWREADY)前拉高。 - AXI4_ERRS_BRESP_WLAST
断言描述:BVALID 不能在最后一个写数据之前拉高。
读地址通道
与写地址通道对应
读数据通道
- AXI4_ERRS_RID
断言描述:每个 RVALID 出现时,系统里须有与之对应的 RID 尚未返回的 AR 事务。