当前位置: 首页 > news >正文

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 事务。
http://www.xdnf.cn/news/1404703.html

相关文章:

  • LeetCode - 21. 合并两个有序链表
  • 【前端教程】JavaScript 基础实战案例(5-10)
  • UE5多人MOBA+GAS 56、WSL + Docker 编排 Linux 服务器与 Windows 客户端
  • Linux基础1
  • AI融合高等教育:从通识到专业 - 学科+AI人才培养白皮书(上)
  • Linux查看Java进程PID、端口号和内存占用脚本
  • 【多项式】快速莫比乌斯变换(FMT)
  • ⭐CVPR2025 自动驾驶半监督 LiDAR 分割新范式:HiLoTs 框架深度解析
  • Python 数据分析:计算,分组统计2,df.groupby()和grouped.agg()。听故事学知识点怎么这么容易?
  • 告别图片处理焦虑:用imgix实现智能、实时且高效的视觉媒体交付(含案例、截图)
  • 一键掌控三线资源:极简 Shell 脚本实现 CPU·磁盘·内存可视化巡检
  • SRE命令行兵器谱之二:lsof - 解密“端口被占用”与“文件句柄泄漏”的终极侦探
  • MySQL-事务(下)-MySQL事务隔离级别与MVCC
  • 2021-11-10 C++不变初心数
  • ans1语法的一个例子nt5inf.cat
  • 详解Vue2、Vue3与React的Diff算法
  • TuringComplete游戏攻略(2.2存储器)
  • spark.sparkContext.broadcast() 与 org.apache.spark.sql.functions.broadcast 的区别
  • Docker实战避坑指南:从入门到精通
  • 神经网络激活函数:从ReLU到前沿SwiGLU
  • 分分合合,门模块方案又兴起了
  • 用更少的数据识别更多情绪:低资源语言中的语音情绪识别新方法
  • Vue生命周期、工程化开发和脚手架、组件化开发
  • hubert模型代码分析
  • 聚中原·贸全国·达世界,2026郑州台球展8月15至17举办
  • 深入解析Nginx常见模块1
  • 世界模型的典型框架与分类
  • 如何提高存储过程的可维护性
  • wav2vec2.0模型代码分析
  • vite Rendering 10 pagesReferenceError: document is not defined