当前位置:   article > 正文

System Verilog Asserssions应用指南(学习笔记整理)_system verilog assertions应用指南

system verilog assertions应用指南
  • 即使断言

       即使断言与时序无关,在信号变化的时候进入判断、求值。

        ※使用场合比较少,因为一般来说SVA就是用来检查时序关系。

即使断言例:

  1. always_test
  2.         begin
  3.             test:assert ( A && B);
  4.         end

即使断言被命名为test,在A或B发生变化时,进入always块,判断A,B是否同时为1,如果不为1,断言报错。

  • 并发断言(常用)

->基于时钟周期

->在时钟边缘按照信号的采样值计算测试表达式。

Comment:

在时钟边缘采样的是上一个时钟周期的稳定值。信号A在时钟周期1,从0->1,也就是一个上升沿。在时钟周期1采样的值是0,时钟周期2采样的值才是1。当前时钟边沿的变化在下一个时钟边沿才能采到。

(这和Verilog设计中的Latch延时类似。)

【常用语法】

SVA基本结构

  1. //sequence(序列):用来描述待检测事件
  2. sequence name_of_sequence;
  3. <expression....>;
  4. endsequence
  5. //property(属性):用来调用序列,也可以直接描述待检测事件
  6. property name_of_property;
  7. <experssion>; or
  8. <complex sequence expression>;
  9. endproperty
  10. //assert:检查属性,插入断言
  11. assert_name:assert property (property_name);
  12. Comment:
  13. assert插入的是property,单独写序列是不能插入的,序列必须在属性中调用,然后通过assert
  14. 才能检查属性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/453927
推荐阅读
相关标签
  

闽ICP备14008679号