• SystemVerilog Assertions应用指南 第一章(1.24章节 “or”运算符)


            二进制运算符“or”可以用来逻辑地组合两个序列。只要其中一个序列成功,整个属性就成功。序列s29a和s29b是两个独立的序列。属性p29将两者用“or运算符组合起来。当其中任一序列成功时,属性就成功。

    1. sequence s29a;
    2. @(posedge clk) a##[1:2] b;
    3. endsequence
    4. sequence s29b;
    5. @(posedge clk) c##[2:3] d;
    6. endsequence
    7. property p29;
    8. @(posedge clk) s28a or s28b;
    9. endproperty
    10. a29 :assert property(p29);

            图1-31显示了属性p29在模拟中的响应。表1-15总结了断言a29的状态和所有相关信号的采样值。图1-31也显示了使用“and构造的断言a27的结果,比较两个结果就很容易理解“and”构造和“or”构造的区别。由于没有有效开始而发生的失败和前面小节介绍的相同,第二类失败是由于其中的序列都不匹配引起的。发生在时钟周期12的失败就是这种失败,两个序列在它们各自的时序窗口都没能匹配,因此检验失败。
            使用“and”构造和“or”构造的成功几乎是相同的,主要的区别在于匹配的时间。当序列s29a成功时“or”运算符就匹配了而不需要等待序列p29b结束。




            其中一个使用“and”构造的失败发生在时钟周期11,但是当使用“or”构造时,属性却成功了一次。原因是属性的第一部分序列s29a在时钟周期12匹配,使得属性立即成功。而在使用“and”构造时,单是这个成功并不是充分条件,第二部分的序列也必须匹配,但是在给定的时序窗口内,并没能出现。因此,相同的条件下,属性p27在时钟周期14失败了。


     

  • 相关阅读:
    To enable Secure Boots and Flash Encryption using the ESP Flash download tool
    C# ASP.NET利用SQLDMO备份和还原数据库
    关于在分布式环境中RVN和使用场景的介绍4
    重要的代理模式到底是什么
    电脑桌面文件不见了怎么恢复?
    我的世界村民为什么会消失?
    selenium,元素操作以及浏览器操作方法
    pat 最大公约数
    【PAT(甲级)】1043 Is It a Binary Search Tree
    高项 04 项目整体管理
  • 原文地址:https://blog.csdn.net/qq_33300585/article/details/133828239