验证随意小记20250730-UVC
UVC
UVM verification component
VIP
verification IP
商业的,别人做好的,问题较少的IP,自己开发的一般叫UVC。
Reuse
考虑每一个component被取代的情况;
其中最关键的是agent的输入端的disable,passive;
clock & reset
目前来说,这两个模块也是一个uvm 的 agent;
这样一来,我们便不需要建造(reg)一些变量并且通过forever改变他们的数值了。
component的基本特性
1.构造的时候需要传入name和parent;
2.在不同的phase,component定义在对应phase内的代码会自动执行;
Object
transaction
定义需要哪些激励,定义并存储数据以及设置约束。
并把这一切封装起来。
sequence
定义UVM平台中,激励怎么产生,设置各个组件之间如何调度,谁先谁后;
config
可能存在动态或静态的配置变量,可以把这些数据写进config类中;
例如控制变量和指令;
需要做随机或者其他操作,从而
可以在这里定义并写好约束;
uvm_config_db:
可以使用通配符:set(uvm_root::get(),"a.b.c*","vif",vif)
实现c下面的所有component都能获取这个vif;
如果不给*,仅有c层次的组件能获取这个vif;
SOC 下 的 CASE PASS
SOC未必需要我们自行写CASE PASS这样一个函数;
而是需要我们收集相应的信息,并调用测试脚本来查看是否满足指标。
uvm_driver
需要考虑在driver中编写一个复位函数,以应对随时可能发生的复位。

浙公网安备 33010602011771号