`uvm_info("BLTINSEQ","register bit bash sequence started",UVM_LOW) //reset hardware register and register model reg_acc_seq.model=rgm;// reg_acc_seq.start(m_sequencer);// `uvm_info("BLTINSEQ","register access sequence finished",UVM_LOW) endtask endclass 寄存器健康检查 对于一些寄存器,...
uvm_mem_access_seq // 使用前门或后门方式验证寄存器的读写操作 uvm_reg_mem_build_in_seq // 运行所有的寄存器和存储器的测试案例 uvm_reg_mem_hdl_paths_seq // 验证寄存器和存储器的层次化路径 uvm_reg_mem_shared_access_seq // 验证共享寄存器和存储器的读写操作这些序列通过调用相应的UVM函数来执行,...
//| uvm_resource_db#(bit)::set({"REG::",regmodel.blk.get_full_name(),".*"}, //|"NO_MEM_TESTS",1, this); //Class: uvm_reg_single_access_seq //"NO_REG_TESTS"or"NO_REG_ACCESS_TEST" //| uvm_resource_db#(bit)::set({"REG::",regmodel.blk.r0.get_full_name()}, //...
reg_acc_seq.model = rgm; `uvm info ("BLTINSEQ", "register access sequence finished", UVM LOW ) endtask endclass 如果想将一些寄存器排除在某些内建序列测试范围之外, 可以额外添加上面列表中提到的“禁止域名 ”。由于 uvm_reg_block 和 uvm_reg 均是 uvm_object 类而不是 uvm_ component 类,所以...
uvm_reg_access_seq用于检查寄存器的读写。使用此sequence也要指定model变量,这个sequence会使用前门访问向所有寄存器写数据,然后通过后门访问读回并比较结果;接着将上述过程反过来再执行一遍,及以后门访问写,前门访问读并比较结果。这个sequence正常工作的前提是所有的hdl路径都设置正确,否则后门访问无法正确执行。同样地,...
uvm_reg_access_seq(需要后门访问) p_sequencer.p_rm.rab_ctrl.write(status,32’hffffffff,UVM_FRONTDOOR); p_sequencer.p_rm.rab_ctrl.read(status,value,UVM_FRONTDOOR); 其它组件访问寄存器,主要是发起寄存器的读操作。比如reference model uvm_reg不需要实例化,提供一个指针即可。当然,在uvm_env层次里,...
跟着仿真log的打印信息,找到在/pkg/.../uvm/uvm-1.2/release/src/reg/sequence/src/uvm_mem_access_check_seq.sv(158)中做了一个peek的行为: mem.peek(status, k, val); 这里peek定义的参数是: 可以看到第二个参数就代表了这块mem的offset,他的作用指引uvm对这块mem进行多少次读写测试: ...
uvm_reg_predictor,当auto_predict关闭的时候,需要例化的component,连接到寄存器的monitor。 在write函数中显示调用do_predict函数,更新model中的mirror value,此时do_check函数,会根据read_on_check进行调用。 uvm自建的针对reg的sequence,针对普通的reg有:reg_access_seq,reg_bit_bash_seq,reg_hw_reset_seq。
uvm_config_db #(top_reg_model)::set(this, " agt.sqr.* ","reg_model",m_regmodel); # seq top_reg_model m_regmodel; uvm_config_db #(top_reg_model)::get(null, get_full_name(),"reg_model",m_regmodel); 1.sequence虽然不在树形结构上,但是其内部成员变量m_sequencer在树形结构上,可...
下面的例码分别添加了uvm_reg_hw_reset_seq、uvm_reg_bit_bash_seq和uvm_reg_access_seq来测试寄存器模型,从代码的整洁性来看,用户并不需要额外再添加什么,这种使用方式非常方便,且又能完成寄存器的大规模集成测试。 对于一些寄存器,如果像将其排除在某些内建序列测试范围之外,用户可以额外添加上面列表中提到的“...