【SVA】SystemVerilog Assertion语法速查

    • seq与property
    • |->,|=>
    • \##
    • [*n ]
    • [=n ]
    • and
    • intersect
    • or
    • first_match
    • throughout
    • within
    • if
    • ended
    • 局部变量与赋值
    • 在sequence、property中调用display
    • [->1]
    • $rose $fell $isunknow
    • $stable
    • $past
    • \$countbits ,\$countones,\$onehot,\$isunknown
    • 控制assertion的打开和关闭
    • property 与 assume ,coverage,assertion(checker)

seq与property

【SVA】SystemVerilog Assertion语法速查_第1张图片

|->,|=>

【SVA】SystemVerilog Assertion语法速查_第2张图片
seq是单次检查,没什么必要用蕴含操作符
property是并行检查,蕴含操作符的左手是并行检查开启的条件。

##

【SVA】SystemVerilog Assertion语法速查_第3张图片
!!!注意,这里的延迟和仿真里加的#有一点区别。
【SVA】SystemVerilog Assertion语法速查_第4张图片

[*n ]

【SVA】SystemVerilog Assertion语法速查_第5张图片

[=n ]

【SVA】SystemVerilog Assertion语法速查_第6张图片

and

【SVA】SystemVerilog Assertion语法速查_第7张图片
and是同一个周期开始检查,但不一定同一个周期结束检查。

intersect

与and相同是与逻辑,是同一个周期开始检查,也是同一个周期结束检查。

or

是同一个周期开始检查,但不一定同一个周期结束检查。需要左右至少有一个条件满足。才检查。
【SVA】SystemVerilog Assertion语法速查_第8张图片

first_match

【SVA】SystemVerilog Assertion语法速查_第9张图片
【SVA】SystemVerilog Assertion语法速查_第10张图片

throughout

【SVA】SystemVerilog Assertion语法速查_第11张图片

within

【SVA】SystemVerilog Assertion语法速查_第12张图片

if

if和蕴含操作符是一样的
【SVA】SystemVerilog Assertion语法速查_第13张图片

ended

【SVA】SystemVerilog Assertion语法速查_第14张图片

局部变量与赋值

property和sequence内部可以创建局部变量
【SVA】SystemVerilog Assertion语法速查_第15张图片

在sequence、property中调用display

【SVA】SystemVerilog Assertion语法速查_第16张图片

[->1]

【SVA】SystemVerilog Assertion语法速查_第17张图片

$rose $fell $isunknow

【SVA】SystemVerilog Assertion语法速查_第18张图片

$stable

【SVA】SystemVerilog Assertion语法速查_第19张图片

$past

【SVA】SystemVerilog Assertion语法速查_第20张图片

$countbits ,$countones,$onehot,$isunknown

【SVA】SystemVerilog Assertion语法速查_第21张图片

控制assertion的打开和关闭

【SVA】SystemVerilog Assertion语法速查_第22张图片

property 与 assume ,coverage,assertion(checker)

【SVA】SystemVerilog Assertion语法速查_第23张图片

你可能感兴趣的:(systemverilog,sva,assertion)