virtual task update( output uvm_status_e status, input uvm_path_e path = UVM_DEFAULT_PATH, input uvm_reg_map map = null, input uvm_sequence_base parent = null, input int prior = -1, input uvm_object extension = null, input string fname = "", input int lineno = 0 ) 将模型中的...
一般设置default_map.set_auto_predict(1);,这样当寄存器访问结束时,会调用do_predict,自动更新uvm_reg_filed中的三个变量值。 // uvm_reg.svh // do_write task uvm_reg::do_write (uvm_reg_item rw); ... // EXECUTE WRITE... case(rw.path) // ...VIA USER BACKDOOR UVM_BACKDOOR: begin ....
virtual task update( output uvm_status_e status, input uvm_path_e path = UVM_DEFAULT_PATH, input uvm_reg_map map = null, input uvm_sequence_base parent = null, input int prior = -1, input uvm_object extension = null, input string fname = "", input int lineno = 0 ) 1. 2. 3...
uvm_reg_block,包含类,包含底层的uvm_reg_block,uvm_reg, default_path,定义自己的hdl_path, lock,表明当前的model是lock住的,调用function lock_model() 自己的coverage设置,new的时候设置到has_cover,get的时候,得到cover_on。 uvm_reg_sequence,只是实现了调用map中的读写操作,不支持burst_read,burst_write,...
default_path,定义自己的hdl_path, lock,表明当前的model是lock住的,调用function lock_model() 自己的coverage设置,new的时候设置到has_cover,get的时候,得到cover_on。 uvm_reg_sequence,只是实现了调用map中的读写操作,不支持burst_read,burst_write, ...
externvirtualtaskread(outputuvm_status_estatus,outputuvm_reg_data_tvalue,inputuvm_path_epath=UVM_DEFAULT_PATH,inputuvm_reg_mapmap=null,inputuvm_sequence_baseparent=null,inputintprior=-1,inputuvm_objectextension=null,inputstringfname="",inputintlineno=0); ...
taskuvm_reg::mirror(outputuvm_status_estatus,inputuvm_check_echeck=UVM_NO_CHECK,inputumv_path_epath=UVM_DEFAULT_PATH,...); mirror的常用参数是如上三个。其中第二个参数指示DUT寄存器值与寄存器模型寄存器的镜像值是否相同,通常mirror会被应用于两个场景,一是在验证过程中不断调用以确保寄存器模型的寄存器...
model.mirror(null, UVM_CHECK, UVM_DEFAULT_PATH); // check for any mismatches between dut and model values before the end of the test endfunction endclass 在这个例子中,我们在仿真即将结束时调用了mirror操作,并启用了检查选项。这会检查DUT中寄存器的值与寄存器模型中寄存器的镜像值是否一致。如果发现任...
uvm_config_db# (uvm_object_wrapper)::set(this, "env.agt.sqr.main_pahse", "default_sequence", my_sequence::type_id::get());endfunction 注意: my_case0是继承了base_test的一个子类, 是base_test的一个更具体的实现,也就从这里形成了testcase的概念,这个testcase的名字就是my_case0。
regm.create_map("default_map",'h0,8,UVM_LITTLE_ENDIAN);dmap = regm.get_default_map();dmap....