验证随意小记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中编写一个复位函数,以应对随时可能发生的复位。

  

 

posted @ 2025-07-30 20:02  NoNounknow  阅读(31)  评论(0)    收藏  举报