• 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失败了。


     

  • 相关阅读:
    Redis系列12:Redis 的事务机制
    pm命令给某个应用授权限
    XPS测试仪器-科学指南针
    Project Reactor源码分析-subscribeOn
    数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归...
    Java的JDK基础
    力扣:152. 乘积最大子数组(Python3)
    mybatis02
    物理机服务器应该注意的事
    谈谈你对AOP的理解
  • 原文地址:https://blog.csdn.net/qq_33300585/article/details/133828239