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

《SVA断言系统学习之路》【02】并发断言

一 基本概要

并发断言用于描述随时间推移的行为特性。与即时断言不同,其评估模型基于时钟周期,使得并发断言仅在时钟跳变时刻被评估。评估中所用变量值为采样值。通过这种方式,无论仿真器内部的事件排序与评估机制如何,都能从评估中获得可预测的结果。这种执行模式也对应于从RTL描述进行硬件解释的综合模型。

断言中使用的变量值在时间槽的预载区(Preponed region)进行采样,而断言本身则在观察区(Observe region)完成评估。

并发断言规范采用的时序模型基于时钟脉冲,并使用广义的时钟周期概念。时钟的定义由用户显式指定,且可随不同表达式而变化。

时钟脉冲是时间上的原子时刻,其本身不占据时间跨度。在任何仿真时间点,时钟仅脉冲一次,且该仿真时间的采样值将用于并发断言评估。在断言中,采样值是时钟脉冲时刻变量的唯一有效值。图17-1展示了时钟推进过程中变量的数值变化:信号req在时钟脉冲1和2处为低电平;在脉冲3时刻,其采样值为高并保持至脉冲6;变量req在脉冲6处的采样值为低,并持续至脉冲10。请注意,仿真值虽然在脉冲9处跳变为高,但脉冲9时刻的采样值仍为低。

断言中使用的表达式始终与时钟定义绑定。采样值用于评估值变化表达式或布尔子表达式,这些表达式是判定序列匹配所必需的。

这里请注意:

(1) 必须确保所定义的时钟行为无毛刺,否则可能采样到错误值。
(2)若出现在时钟表达式中的变量同时出现在断言表达式内,该变量在这两处使用的值可能不同:时钟表达式使用变量的当前值,而断言内部使用变量的采样值。

关于(2)点,更加详细说明如下:

  1. 时钟表达式中的变量:使用当前值(Current Value)

    • 当前值指的是在仿真时间步长(time slot)的主动区(Active Region) 等阶段计算出的最新值。它可能因为仿真事件排序而随时变化,可能存在毛刺(glitch)。

  2. 断言表达式中的变量:使用采样值(Sampled Value)

    • 采样值指的是在仿真时间步长最开始、所有变化发生之前的预载区(Preponed Region) 捕获的值。它代表了这个时间点开始时的“稳定状态”,过滤掉了该时间点内产生的所有毛刺。

控制序列评估的时钟表达式可以比单一信号名更为复杂。诸如(clk && gating_signal)(clk iff gating_signal)等表达式可用于表示门控时钟,还可能出现其他更复杂的表达式。然而,为确保系统行为的正确性并尽可能符合真正的基于周期的语义,时钟表达式中的信号必须无毛刺,且在任意仿真时间点最多只能发生一次跳变。

二 并发断言语法

http://www.dtcms.com/a/359603.html

相关文章:

  • C++11语言(三)
  • 读书笔记共享平台|基于SpringBoot的设计与实现
  • 大模型面试题剖析:PPO 与 GRPO 强化学习算法核心差异解析
  • 从RNN到Transformer
  • 网格图--Day03--网格图DFS--2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量
  • 动规多重背包
  • JSP 输出语法全面解析
  • 深度学习篇---MobileNet
  • Nodejs之HelloWord Hello-Http
  • 电商系统的分布式事务调优
  • MySQL 公用表达式
  • EKS上部署gpu服务利用karpenter实现自动扩缩(s3作为共享存储)
  • Java中,任何方法都有其调用者
  • MySQL面试集合
  • 硬件开发_基于物联网的工厂环境监测系统
  • 从新能源汽车看产品逻辑与认知系统
  • 【MD文本编辑器Typora】实用工具推荐之——轻量级 Markdown 编辑器Typora下载安装使用教程 办公学习神器
  • 【CNB.COOL】智能花卉分类系统 – 部署指北
  • IOT安全学习之IoT_Sec_Tutorial
  • 暴力破解基础知识(一)
  • ReconDreamer++
  • 《Vue零基础教程》(5)Vue.js组件开发
  • 经典卷积神经网络CNN
  • 人工智能学习:机器学习相关面试题(一)
  • AI 取代部分岗位后:哪些职业更易被替代?人类该如何提升 “不可替代性”?
  • top命令和ps命令
  • 基于单片机智能保温杯/智能水杯
  • 软考 系统架构设计师系列知识点之杂项集萃(139)
  • 介绍几个DCDC降压芯片(TMI3408D、TPS56320x)
  • CUDA架构解析:如何让GPU释放并行计算的洪荒之力?