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


     

  • 相关阅读:
    浏览器中的音视频知识总结v1.0(工作中需要和视频打交道必看!)
    【沐风老师】3DMAX路径拖尾光线刀光效果插件GhostTrails教程
    SpringBoot JWT
    开源AI搜索平台Search4All
    输出最大选修学分问题
    Java面向对象程序设计综合练习4(编程题)
    网络通信基础
    任务七 特征工程 LDA
    基于ABP实现DDD--实体创建和更新
    使用自定义lua解析管理器调用lua脚本中的table
  • 原文地址:https://blog.csdn.net/qq_33300585/article/details/133828239