delta cycle:
https://blog.csdn.net/yumimicky/article/details/120799237?spm=1001.2014.3001.5506
clocking:前仿模拟setup和hold
注意,#0的时间长度远大于delta cycle 。
UVM两大类:uvm_component,验证组件类,不动产,构成验证的事务
uvm_object,非固定资产,数据包,传输事务,动态产生。
创建组件三要素:定义、注册、构建
先使用extends定义,再使用`uvm_component_util宏来注册;
最后使用撰写构建函数new函数,new函数只能包含且必须包含name和parent两个参数
创建object类似,但new函数只能包含且必须包含name一个参数
coresevice的类型既不属于component也不属于object,只会被UVM系统在仿真开始时例化一次,用户无需也不能自己例化
覆蓋(override)
类型覆盖指,UVM层次结构下的所有原有类型都被覆盖类型所替换。
实例覆盖指,在某些位置中的原有类型会被覆盖类型所替换。
拷贝(copy)
因为在box里对ball b进行了域的自动化声明,所以这里发生的是“深拷贝”,对象b中的值也会copy,但由于,color是UVM_nocopy所以不copy,diameter被do_copy回调函数重写了
phase機制
phase机制使得uvm可以在例化uvm component之前就对一些变量赋值等
在所有phase中,只有run_ phase方法是一个可以耗时的任务,
这意味着该方法可以完成一-些等待、激励、采样的任务。对于其
它phase对应的方法都是函数,必须立即返回(0耗时) 。
在run_ phase中, 用户如果要完成测试,通常需要组织下面的激
励序列:
●
上电
●复位
●
寄存器配置
●
发送主要测试内容
等待DUT完成测试
但是不建议用这些小phase,他们都是和runphase并行的。