virtual task run_phase(uvm_phase phase); phase.raise_objection(this, "starting register tests"); reset_seq = reset_sequence::type_id::create("reset_seq", this); reset_seq.start(env.reset_seqr); reset_test = uvm_reg_hw_reset_seq::type_id::create("reset_test", this); reset_test.m...
我们首先来看下uvm_reg_hw_reset_seq中的一个空的virtual task reset_blk的描述。由此我们可以获得上面第一个问题的答案,uvm源代码中的uvm_reg_hw_reset_seq是不会主动帮你去对DUT做reset的,但是它预留了一个hook任务reset_blk,我们可以通过从uvm_reg_hw_reset_seq继承的sequence来override这个任务来实现将reset ...
//Class: uvm_reg_bit_bash_seq //"NO_REG_TESTS"or"NO_REG_BIT_BASH_TEST" //| uvm_resource_db#(bit)::set({"REG::",regmodel.blk.get_full_name(),".*"}, //|"NO_REG_TESTS",1, this); // class: uvm_reg_hw_reset_seq //"NO_REG_TESTS"or"NO_REG_HW_RESET_TEST" //| uvm...
uvm_resource_db#(bit)::set( {"REG::", env.regmodel.xxa.xxb.xxc.get_full_name(), } "NO_REG_BIT_BASH_TEST ", 1, this ) seq.model = env.regmodel.xxx.blk;连接到block级别 seq.start(null) 启动测试 env.regmodel.print() ; 2. reg的reset测试 seq =uvm_reg_hw_reset_seq::creat....
uvm_reg_data_t data; uvm_reg_hw_reset_seq reg_rst_seq=new();// uvm_reg_bit_bash_seq reg_bit_bash_seq=new(); uvm_reg_access_seq reg_acc_seq=new(); if(!uvm_config_db#(mcdf_rgm)::get(null,get_full_name(),"rgm",rgm))begin// ...
1.uvm_reg_hw_reset_seq 检查上电复位后寄存器模型与DUT 寄存器的默认值是否相同,原型为: 2.对于DUT,复位完成后,就是默认值。但是对寄存器模型,如果只是集成到验证平台,不做任何处理,所有值都是0,此时要调用reset 函数使其寄存器的值变为默认值: 3.这个sequence 检查前会调用model 的reset函数,所以即使user没有...
rgm.chnl0_ctrl_reg.reset(); // register level reset rgm.chnl0_ctrl_reg.pkt_len.reset(); // register field reset 在复位之后, 用户也可以通过读取寄存器模型的复位值(与寄存器描述文件一致), 与前门访问获取的寄存器复位值进行比较, 以此判断硬件各个寄存器的复位值是否按照寄存器描述去实现。这里的 get...
问使用uvm_reg_hw_reset_seqENmysql> select * from leo; +---+---+---+---+---+ | ...
下面的例码分别添加了 uvm_reg_ hw _reset_ seq、 uvm_reg_ bit_ bash_ seq和 uvm _reg_ access_ seq 来测试寄存器模型, 从代码的整洁性来看, 用户并不需要额外再添加什么, 这种使用方式非常方便, 且又能完成寄存器的大规模集成测试。 如果想将一些寄存器排除在某些内建序列测试范围之外, 可以额外添加上面...
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。