NuSMV运行样例解析

本文通过一个3bit进位模型的NuSMV代码实例,详细解析了模型检测工具NuSMV的运行过程。模型描述了每个bit的value和进位标志carryout,当所有bit需要进位时,carryout置1。经过NuSMV的运行,结果显示所有测试用例均满足预期,输出为true。
摘要由CSDN通过智能技术生成

来源自我的博客

http://www.yingzinanfei.com/2017/02/01/nusmvyunxingyanglijiexi/

  1. short.smv

    1. 代码

      MODULE main # 新建模型,名为main
      VAR # 变量声明
      request : {Tr, Fa}; # 变量request,取值在True或False之中
      state : {ready, busy}; # 变量state,取值在ready或busy之中
      ASSIGN # 指定约束
      init(state) := ready; # state初始值为ready
      next(state) := case # state下一状态为条件选择
      #如果state等于ready并且request等于True,则返回busy作为state的下一状态
      state = ready & (request = Tr): busy;
      TRUE : {ready,busy}; # 如果前面一句未命中,则返回一个ready或busy中的随机值作为state的下一状态
      esac; # 退出case结构
      SPEC
      AG((request = Tr) -> AF state = busy) # 询问是否状态request等于True的下一状态为state等于busy
    2. 运行结果:

      -- specification AG (request = Tr -> AF state = busy) is true
  2. counter.smv

    1. 系统行为模型(状态图):
      • 模拟了一个3bit的进位的模型,每个bit有一个value和一个进位标志carryout,进位标志需要把3个bit看成一个整体。
      • 当这个整体需要进位的时候,carryout将置1.
        image
    2. 代码

      MODULE main    
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值