求助:test中如何能访问dut中的reg或者wire值?
时间:10-02
整理:3721RD
点击:
各位:
目前正在使用UVM搭建仿真环境,因为DUT中现在还没加上“apb slave”,以便用于配置寄存器参数的部分,因此目前对于这些寄存器的配置智能直接赋值。因此我想把对这些reg赋值的语句放到my_test的class中。但是,不管我是使用“u_dut.phase",还是”uvm_test_top.u_dut.phase",还是“uvm_test_top.top.u_dut.phase"都不对,我应该怎样才能访问到dut中的寄存器呢?另外,我应该在test的哪个phase中进行这种赋值呢?
目前正在使用UVM搭建仿真环境,因为DUT中现在还没加上“apb slave”,以便用于配置寄存器参数的部分,因此目前对于这些寄存器的配置智能直接赋值。因此我想把对这些reg赋值的语句放到my_test的class中。但是,不管我是使用“u_dut.phase",还是”uvm_test_top.u_dut.phase",还是“uvm_test_top.top.u_dut.phase"都不对,我应该怎样才能访问到dut中的寄存器呢?另外,我应该在test的哪个phase中进行这种赋值呢?
把各个层次的instance name搞清楚
不是instance name不对,而是使用uvm_test_top或者uvm_top等都只能访问 test中的class对象,而作为module的DUT,我还找不到办法可以访问。
你的my_class是在哪,如果是在pkg里,采用import的形式就不行,如果实在某个class在test里使用include就可以hier的形式进行
最简单的方式是使用绝对路径赋值,DUT和验证环境最终会包在一个.v之下,然后顺着这个hierarchy路径一路下去找到你要赋值的reg即可。