学习目标
UVM项目实战3
学习内容
1.断言是用来与设计功能和时序做比较的属性描述
2.断言分类:
立即断言(非时序的、执行时如同过程语句、可以在initial/always过程块或者task/function中使用)
并行断言(时序性的、关键词property用来区分立即断言和并行断言、并行—它们与设计模块一同并行执行)
3.立即断言
timr t;
always @(posedge clk)
if(state==REQ)
//如果状态为REQ,但是req1或者req2均不为1时,断言将失败
assert (req1||req2)
else begin
t=$time;
#5 $error("assert failed at time %0t",t);
end
立即断言可以结合$fatal/$error/$warning/$info给出不同严重级别的消息提示
assert (myfunc(a,b)) count1=count+1; else ->event1;
assert (y==0) else flag=1;
always @(state)

本文详细介绍了UVM中的断言和并行断言,包括立即断言和并行断言的概念、使用场景及特点。通过实例展示了如何在代码中应用assertion,如立即断言的错误处理、并行断言的时序检查,以及sequence和property的使用。此外,还探讨了sequence的交叠交错操作符、事件重复和连续性等高级特性,对于理解UVM验证框架中的行为验证具有指导意义。
最低0.47元/天 解锁文章
963

被折叠的 条评论
为什么被折叠?



