第三章 UVM基础
本章介绍了uvm_componet和uvm_object这两个类的关系和他两的一些特性。
其次是UVM的树形结构。field automaion机制,UVM的打印信息、cconfig_db。
是对第二章中提到的内容的详细介绍。
uvm_component和uvm_object
component其实是派生字object的。因此,component是有一些object没有的功能的。第一,component是可以在new的时候可以传参数parnent,这也说明component是树的节点,是机器而不是物料。第二,component有phase机制,而object没有。
component:driver,monitor,env等“机器”
object: sequence、sequence_item、transtion
宏
他两的宏不一样。
函数
被注册后的都是下面这些函数的操作对象。
clone:开辟一片空间、并把另外一个实例复制到这里。=new+copy
copy:复制
compare:比较。
component不能使用clone,因为component需要指定树根。
UVM的树形结构
1、new的第二个参数:指定树根在哪里,默认this。
2、后面注意与factory的create进行区分比较。
3、可使用的一些函数get_parnet get_child
field automation机制
其实就是注册机制,注册后,可操作copy,compare,print,pack等操作。在注册时,可以根据宏选择是否打开或者关闭某些操作。
在注册的begin和end中还可以使用if
问题 field automation 是在component和object中都可以用还是??
UVM的打印
打印的几个功能:
1、打印可设置等级
2、INFO WARNNING ERROR FATAL可重载,可针对某个componet的某个id
3、可设置ERROR的最大数量
4、可对打印类型设置计数
5、UVM支持断点功能 没具体了解
6、打印信息可以分别导入不同文件
7、可设置打印信息的行为 也没具体了解
上述都可以指定层次和id
config_db
config_db就是收信和寄信的功能,第一个和第二个参数是对方的路径,第三个参数是两者的匹配字,第四个是哟啊作用的数值或者成员。
1、config_db可跨层次的直线,也可以同级别,但是同级别有风险,存在先后关系。
2、cofig_db可多重设置、get谁的可看优先级和时间,优先级是离case近的树近,这个看第一个参数,其实看时间,时间近的有效。有就是同一个地方连续两次set,那肯定后面的覆盖前面的。
3、路径可使用通配符*
4、路径可检查。如何检查:检查是否使用过。