UVM:10.1.2 可变时钟

1.可变时钟有3种:

1)不同case 时钟不同。

2)同一case 不关心过渡期clk。

3)关心过渡期clk。


2.第一种,使用config_db:



top_tb 使用get:


1)my_case0 就是uvm_test_top。

2)使用非直线获取。my_case0的set 是设置给自己的参数,真正使用是在top_tb。

3)由于set 在0 时刻执行,如果get 也在0时刻,可能无法得到设置的数值,所以#1。


3.第二种:


测试用例随着时间不同:



4.上面很难实现第三种。需要专门编写时钟接口:


top_tb 中例化并引用:


为可变时钟从uvm_component 派生一个类:


env例化:


需要新的时钟模型时,从clk_model 派生新类,然后在新的类中实现时钟模型。然后把clk_model 重载掉。

怎么解决第三个问题?


版权声明:本文为tingtang13原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。