uvm_reg_predictor继承自uvm_component,这个组件也存在于UVM的树形结构中,其实也可以理解,他的作用也无异于uvm_monitor、uvm_driver这类组件,他并不会做太多定制行为,它只是一个无情的监测预测机器,它将monitor发过来的transaction分析后做出predict,所以当时具备了一个uvm_component该有的一切特性。 两个uvm_component...
5)第三个有如下: read/peek 和write/poke 对DUT完成读写后,也会调用此函数,它们的参数是UVM_PREDICT_READ和UVM_PREDICT_WRITE。 5.要实现在参考模型中更新寄存器模型而不影响DUT 的值,要使用UVM_PREDICT_DIRECT: 1)predict 操作会更新镜像值和期望值。 6.仿真完成后可以检查DUT 和寄存器模型中的counter 是否一...
uvm_predict_e kind=UVM_PREDICT_DIRECT, uvm_reg_byte_en_t be= -1); uvm_reg_data_t field_val= rw.value[0] & ((1<< m_size)-1);if(rw.status !=UVM_NOT_OK) rw.status=UVM_IS_OK;//Assume that the entire field is enabledif(!be[0])return; m_fname=rw.fname; m_lineno=rw....
1functionbit uvm_reg::predict (uvm_reg_data_t value,2uvm_reg_byte_en_t be = -1,3uvm_predict_e kind =UVM_PREDICT_DIRECT,4uvm_path_e path =UVM_FRONTDOOR,5uvm_reg_map map =null,6stringfname ="",7intlineno =0);8uvm_reg_item rw =new;9rw.value[0] =value;10rw.path =path;...
uvm_predict_e kind=UVM_PREDICT_DIRECT, uvm_reg_byte_en_t be= -1); uvm_reg_data_t field_val= rw.value[0] & ((1<< m_size)-1);if(rw.status !=UVM_NOT_OK) rw.status=UVM_IS_OK;//Assume that the entire field is enabledif(!be[0])return; ...
(2) 在显式预测中,predictor内会调用uvm_predict函数进行镜像值的更新; 5.3 predict源码 1functionbit uvm_reg::predict (uvm_reg_data_t value,2uvm_reg_byte_en_t be = -1,3uvm_predict_e kind =UVM_PREDICT_DIRECT,4uvm_path_e path =UVM_FRONTDOOR,5uvm_reg_map map =null,6stringfname =""...