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

SystemVerilog Assertions应用指南 第一章(1.25章节 “throughout”运算符)

        蕴含( (implication)是目前讨论到的允许定义前提条件的一项技术。例如,要对一个指定的序列进行检验,必须某个前提条件为真。也有这样的情况,要求在检验序列的整个过程中,某个条件必须一直为真。蕴含只在时钟边沿检验前提条件一次,然后就开始检验后续算子部分,因此它不检测先行算子是否一直保持为真。为了保证某些条件在整个序列的验证过程中一直为真,可以使用“ throughout”运算符。运算符“ throughout”的基本语法如下所示:

(expression ) throughout (sequence definition)

        属性p31检查下列内容:
        a.在信号“ start”的下降沿开始检査。
        b.检查表达式((!a && !b )##1 (c[->3]) ##1 (a && b));
        c.序列检查在信号“a”和“b”的下降沿与信号“a”和“b的上升沿之间,信号“c”应该连续或间断地出现3次为高电平。
        d.在整个检验过程中,信号“ start”保持为低。

property p31;
	@(posedge clk) $fell(start) |->
		(!start) throughout 
		(##1 (!a && !b) ##1 (c[->3] ##1 (a &&b )));
endproperty

        图1-33显示了属性p31在模拟中的响应。检验在时钟周期3成功,在时钟周期16失败。
        成功1——信号“ start”在时钟周期3被检测到一个下降沿因此属性的先行算子成功个周期后,信号“a”和信号“b如期在时钟周期4为低。之后,信号“c”如期望地分别在时钟周期6,9,11重复三次。接着在时钟周期12,信号“a”和信号“b”如期为高。因此属性从时钟周期3开始,在时钟周期12成功。注意到,信号“ start”从时钟周期3一直到时钟周期12保持低电平。这是本次检验成功的关键。

        失败1——信号“sa”在时钟周期16检测到一个下降沿,因此属性的先行算子成功。一个周期后,信号“a”和信号“b如期在时钟周期17为低。之后,期望信号“c”重复为高三次我们分别在时钟周期18和20发现两次重复。但是在时钟周期21,信号“c”的第三次重复还没出现,信号“ start”就被检测出高电平,因此检验在时钟周期21失败。违背了“ throughout”的条件导致了整个检验的失败

相关文章:

  • 边端小场景音视频流分发架构
  • 【大数据】HBase入门指南
  • React知识点系列(8)-每天10个小知识
  • 数据特征选择 | Lasso特征选择(Python)
  • ElementUI--数据表格增删改查与表单验证
  • 数字IC/FPGA面试题目合集解析(一)
  • 机器学习-有监督学习-神经网络
  • Spring Boot中的Redis自动配置与使用
  • 消息称苹果或在明年推出搭载M3芯片的MacBook产品
  • XGBoost+LR融合
  • 如何使用JMeter测试导入接口/导出接口
  • frp隧道(流量代理)
  • uni-app:本地缓存的使用
  • 2023NOIP A层联测9 长春花
  • day62:ARMday9,I2c总线通信
  • Hi3516DV500 SVP_NNN添加opencv库记录
  • Idea执行Pom.xml导入jar包提示sun.misc.BASE64Encoder jar找不到---SpringCloud工作笔记197
  • Linux和UNIX的关系及区别
  • 第七章:命令行操作基础
  • 【Python 千题 —— 基础篇】浮点数转换为整数
  • 时隔14个月北京怀柔区重启供地,北京建工以3.59亿元摘得
  • 2025中国南昌国际龙舟赛5月23日启幕,是历年来南昌举办的最高规格龙舟赛事
  • 水利部:山西、陕西等地旱情将持续
  • 成都公积金新政征求意见:购买保障性住房最高贷款额度上浮50%
  • 江苏省泰州市委常委、宣传部部长刘霞接受审查调查
  • 世界人形机器人运动会将在北京“双奥场馆”举行