UVM提供了一种机制,可以直接对RTL中的信号进行操作,比如赋值,force,release。
在uvm_hdl.svh文件中。提供了相关的操作RTL信号函数。
文件中,定义了使用typedef定义了uvm_hdl_data_t类型,其实就是大小为1024bit的数据。
然后根据宏UVM_HDL_NO_DPI,是否定义,从而决定操作RTL信号函数的实现。一般情况下,我们是不会定义UVM_HDL_NO_DPI,这个宏。因此,UVM实现的各个操作RTL信号的函数,其实是通过DPI的方式,调用EDA工具提供的操作RTL信号的函数。
函数有以下:在各个函数之前,均省略了
import "DPI-C" context function
另外,还有一个task,uvm_hdl_force_time,将指定的信号,force一段指定的时间,force完成后,读取信号的值,保存在value中。
内部调用了,上述提到的函数。
通过uvm提供的这些DPI,我们就可以在环境中,使用这些dpi,对RTL中信号的值,进行操作。
如果你想要快速入门、转行做数字前端设计,不妨到移知官网学习这些课程,给自己一次蜕变的可能。芯片东西还是挺多的,要讲的也太多。慢慢学吧。祝好运!