31. 断言分为几种?简述一下断言的用法。(SVA三要素)
断言可以分为理解立即断言和并发断言,立即断言就是和时序无关,比如我们再对激励随机化时,我们就会使用立即断言。如果随机化出错我们就会触发断言报错。
并发断言主要是用来检测时序关系的,由于在很多模块或总线中,单纯使用覆盖率或者事务check并不能完全检测多个时序信号之间的关系,但是并发断言却可以使用间接的语言去监测,除此之外,还可以进行覆盖率检测。
并发断言的用法主要有三个层次,第一是激励序列sequence的编写,将多个信号的关系用断言中特定的操作符进行表示;第二是属性property的编写,它可以将多个sequence和多个property进行嵌套,外加上触发事件;第三个就是assert的编写,调用property即可,编写完断言后,沃恩可以将它用在很多地方上,比如DUT内部,或者在top层嵌入DUT中,还可以在interface处进行编写,基本能够检测到信号的地方都可以进行断言检测。
sequence:断言提供一种化整为零的方式,管理横跨较长的仿真时间断言
property:属性是描述RTL设计中的行为、规则和特性的一组信号与信号之间的关系,并且只有在执行assert的时候,peroperty才会起作用。
32.local pubilc protected变量有什么区别?
public变量是子类和外部的其它类均可以访问
local变量既不能被子类访问 也不能被外部的其他类访问
protected变量可以被子类访问 但不能被外部的其它类访问
33. Driver怎么得到interface的句柄,UVM的interfac