SV断言入门二背景这里介绍SV断言的一些常用方法核心内容SV内嵌函数操作符我的理解内嵌函数SV中有很多函数适合用于断言检查$rose(expr)等待信号从0-1$fell(expr)等待信号从1-0$stable(expr)检测信号和上一个时钟周期相比保持稳定不变$changed(expr)检测信号和上一个时钟周期相比发生变化$past(expr, n)返回第n个周期前的值$countones(expr)统计1的个数$onehot(expr)检测信号中仅1位为1$onehot0(expr)检测信号中仅1位为1或全0$isunknown(expr)检测信号是否包含X/Z操作符##m延时m个时钟周期##[m:n]延时m-n个时钟周期剩余的操作符也有类似的操作[*m]重复m个周期[m]重复寻找重复m个次的情况[-m]检查是否有重复m次的情况sig1 throughout seq1sig1在seq1执行完成前保持为1seq1 within seq2seq1在seq2执行后开始在seq2执行PASS前PASSseq1 and seq2seq1和seq2同时开始并均PASSseq1 or seq2seq1和seq2同时开始并有至少一个PASSseq1 intersect seq2seq1和seq2同时开始并同时PASSfirst_match(seq)检查到第一个符合条件的情况就检查PASS常在delay范围中使用notproperty_expr套在property外的操作符给断言结果取反一句话总结使用各种操作符和内嵌函数可以让断言变得高效且精准