12.1 ‘expect’

图12.1'expect'-基础

'expect'在程序块中与'assert'具有相同的语法(而不是语义)。请注意,'expect'只能在程序块中使用。它不能像assert / property / sequence那样在程序块之外使用,但要记住,'assert'既可以在过程块中使用,也可以在外部使用。那么,'assert'和'expect'之间有什么区别?

'expect'是一个阻塞语句,而'assert'是一个非阻塞语句。阻塞意味着程序块将等待'expect'序列完成(通过或失败)。对于'assert'非阻塞意味着过程块将触发'assert'语句并继续块中的下一个语句。 “断言”状态将继续与程序代码并行执行。请注意,无论是在程序块外还是在程序块内,“assert”行为都是相同的。它总是在其自己的线程上与其余的逻辑并行执行。

请参考图12.1中的仿真日志。您注意到程序代码等待“expect”完成(即阻止程序代码的执行),并且只有在完成'expect'时才执行后续的$display。图12.2强调了“expect”语义的进一步细微差别。图中的注释是不言自明的。关键在于'expect'不会从前面的程序时钟继承时钟。在它所期望的序列(或属性)中需要一个明确的时钟或者有自己声明。

图12.2'expect'-错误条件

12.2 'assume'和静态形式(功能)验证

图12.3 'assume'和形式验证

这是一个有趣的运算符。 “assume”将属性指定为环境的假设。什么是环境? “假设”最有用的“环境”是静态形式验证。静态形式是一种方法,通过这种方法,形式化算法可以执行输入的所有可能的组合和顺序可能性,以执行给定逻辑块的所有可能的“逻辑锥”并检查断言是否成立。如果您没有指定任何约束条件(例如对于5个输入(a,b,c,d,e)块),则在此类验证期间,如果您未指定任何约束条件,如'assume'a = 0且b = 1)那么静态形式工具将尝试在组合和时间(如果需要)域中探索5个输入的所有可能组合。没有任何通过“assume”提供的限制,静态正式工具可能会遇到一种叫做“状态空间爆炸”的情况。正如描述所暗示的,如果太多的输入不受约束,工具可能会放弃。这就是'assume'陈述的出处。

那么,它在仿真中的如何运行呢?图12.3中的例子简单地表明,如果属性没有‘assume’与之关联,那么它将像'断言'一样行事。如果与‘assune’关联的属性被发现为假,则仿真失败。

第12章 ‘expect’和‘assume’相关推荐

  1. 阅读10、11、12章

    第10章 假设用户交付给我们一个 任务,然后我们通过调研的出来的结果进行设计,最后的结果跟用户想象的不一样,这应该怎么做? 第11章 团队合作真的需要有那么繁琐的步骤(例如每日例会)吗? 第12章 为 ...

  2. java线程的优先级是数字越大优先级越高_《深入理解Java虚拟机》5分钟速成:12章(Java内存模型与线程)...

    第12章 Java内存模型与线程 前言: 1.物理机如何处理并发问题? 2.什么是Java内存模型? 3.原子性.可见性.有序性的具体含义和应用实现? 4.volatile 关键字特性? 5.基于vo ...

  3. 《互联网理财一册通》一一第12章 移动互联网“指尖上的理财”

    第12章 移动互联网"指尖上的理财" 互联网理财一册通 12.1 网银银行移动客户端 12.2 投资软件与操盘软件 12.3 微信理财通 12.4 手机支付宝 伴随移动互联网的迅猛 ...

  4. 【机器学习实战】第12章 使用 FP-growth 算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则. 本章将继续关注发现 频繁项集 这一任务,并使用 FP ...

  5. 《Groovy极简教程》第12章 Groovy的JSON包

    <Groovy极简教程>第12章 Groovy的JSON包 Groovy自带了转换JSON的功能,相关类都在groovy.json包下.本文参考自Groovy文档 Parsing and ...

  6. 【控制】《多无人机协同控制技术》周伟老师-第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现

    第11章 回到目录 无 第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现 12.1 多无人机协同控制视景仿真系统设计 12.1.1 多无人机协同控制视景仿真系统功能描述 ...

  7. 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第12章-离散时间多智能体系统牵制一致性

    第11章 回到目录 第13章 第12章-离散时间多智能体系统牵制一致性 12.1 引言 12.2 预备知识 12.3 问题描述与分析 12.4 牵制策略 12.5 例子与数值仿真 12.6 本章小结 ...

  8. Spring - Java/J2EE Application Framework 应用框架 第 12 章 Web框架

    第 12 章 Web框架 12.1. Web框架介绍 Spring的web框架是围绕分发器(DispatcherServlet)设计的,DispatcherServlet将请求分发到不同的处理器,框架 ...

  9. 《面向对象程序设计》第12章在线测试

    <面向对象程序设计>第12章在线测试  <面向对象程序设计>第12章在线测试 剩余时间: 59:55  答题须知:1.本卷满分20分.            2.答完题后,请一 ...

最新文章

  1. UI设计实战篇——利用Bootstrap框架制作查询页面的界面
  2. java邮件教程_Java发送Email/邮件
  3. php 接收序列化数据,PHP如何序列化数据?
  4. 重温c语言之环境变量
  5. 分布式系统的面试题7
  6. 简单看看 Go 1.17 的新版调用规约
  7. 正则表达式的环视实际应用案例
  8. PHP MYSQL关键词统计系统_PHP MySQL Order By 关键词
  9. LeetCode 369. 给单链表加一(递归)
  10. 在linux实现公平队列,多级反馈队列调度策略在Linux中的应用和实现.pdf
  11. asp之ajax技术:responstext中文乱码
  12. restTemplate配置及使用
  13. php js绝对路径,javascript将相对路径转绝对路径示例_基础知识
  14. c语言面试会问10个数排序吗,c语言面试最必考的十道试题,求职必看!!!
  15. 物联网架构成长之路(18)-接阿里云OSS服务
  16. 稳压二极管的工作原理及稳压二极管使用电路图
  17. JDK源码——JDK8源码编译全流程(linux)
  18. 各国程序员薪资水平,咱有点惨...
  19. Apache Tomcat 文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)
  20. 医疗项目(HIS)业务简单介绍

热门文章

  1. VSCode C/C++ Theme主题自定义配色方案
  2. 争对让望对思野葛对山栀注解_望对思的上句,望对思的上一句是
  3. python接收http请求_python通过get,post方式发送http请求和接收http响应
  4. 基于cesium的地形开挖地形剖切
  5. 7段数码管管脚顺序及译码驱动集成电路74LS47,48
  6. 带蒙版的安卓剪辑软件_想用手机做自媒体?推荐这几款剪辑软件
  7. 使用Cisco Packet Tracer练习无线还真不错!
  8. 管理和维护数据完整性
  9. redis.conf详解之replica-read-only
  10. 如何查看glibc版本