本文共 371 字,大约阅读时间需要 1 分钟。
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 重载掉。
怎么解决第三个问题?