我们在进行寄存器读操作时,除了使用read方法,还可以使用peek方法,peek方法与read方法不同之处在于(1)read方法支持前门/后门访问,但是peek方法仅仅支持后门访问,(2)read方法会根据field的实际access policy进行read操作,但是peek方法不会case这些,相当于force的方式。
task uvm_reg::peek(output uvm_status_e status,
output uvm_reg_data_t value,
input string kind = "",
input uvm_sequence_base parent = null,
input uvm_object extension = null,
input string fname = "",
input int lineno = 0);
uvm_reg_backdoor bkdr = get_backdoor();
uvm_reg_item rw;
m_fname = fname;
m_lineno = lineno;
if (bkdr == null && !has_hdl_path(kind)) begin
`uvm_error("RegModel",
$sformatf("No backdoor access available to peek register \"%s\"",