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

  • 即使断言

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

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

即使断言例:

always_test

        begin

            test:assert ( A && B);

        end

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

  • 并发断言(常用)

->基于时钟周期

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

Comment:

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

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

【常用语法】

①SVA基本结构

//sequence(序列):用来描述待检测事件
sequence name_of_sequence;
    <expression....>;
endsequence

//property(属性):用来调用序列,也可以直接描述待检测事件
property name_of_property;
    <experssion>; or
    <complex sequence expression>;
endproperty

//assert:检查属性,插入断言
assert_name:assert property (property_name);

Comment:
    assert插入的是property,单独写序列是不能插入的,序列必须在属性中调用,然后通过assert
    才能检查属性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值