也就是说register model中的default_map里的set_sequencer方法实现了将三者的关联,传递的两个参数分别对应着实际的sequencer和adapter。 我们看看这个default_map的声明和类型定义 于是寄存器模型的default_map就把对应的sequencer和adapter存放在了default_map中的m_sequencer和m_adapter中。 下面在看看uvm_reg_adapter中re...
在connect_phase中,adapter将uvm_reg_map和sequencer连接,实际就是调用set_sequencer给uvm_reg_map中的成员变量m_sequencerm_adapter赋值: functionvoidbase_test::connect_phase(uvm_phase phase); super.connect_phase(phase); ... rm.default_map.set_sequencer(env.bus_agt.sqr, reg_sqr_adapter); rm.defaul...
在connect_phase中,需要将转换器和bus_sequencer通过set_sequencer函数告知reg_model的default_map,并将default_map设置为自动预测状态 在验证平台中使用寄存器模型 寄存器模型被建立好后,可以在sequence和其他component中使用,以在参考模型中使用为例,需要在参考模型中有一个寄存器模型的指针 reg_model p_rm; 需要在env...
寄存器模型的前门访问操作最终都将由 uvm_reg_map 完成,因此在 connect_phase 中,需要将转换器和 bus_sequencer 通过 set_sequencer 函数告知 reg_model 的 default_map,并将 default_map 设置为自动预测状态。 3.3 寄存器模型应用 寄存器模型定义好后,可以在 reference model 和 sequence,因为 uvm_...
也就是说register model中的default_map里的set_sequencer方法实现了将三者的关联,传递的两个参数分别...
Step5: 将Address Map连接到Bus sequencer和Adapter 在test或env的connect phase中,调用default_map或其他用户自定义的address map对象中的set_sequencer方法, 并把前门操作的bus sequencer及adaptor作为参数传入。 virtual function void connect_phase(uvm_phase phase); ...
3在basetest中实例化register model和adapter, 这一步骤要做两件事情,第一,对rm进行configure,build, lock, reset等操作,第二,然后对其中的default_map,进行set_sequencer.
4)local_model调用后,reg_model就不能再加入新的寄存器。 5)reset:如果不调用,默认都是0;调用后,都将变为复位值。 6)前门都是由uvm_reg_map完成,因此在connect_phase中,使用set_sequencer 将adapter 和bus_sequencer 告诉reg_model的 default_map。 7)将default_map 设置为自动预测状态。
virtualfunctionvoidconnect_phase(uvm_phase phase);super.connect_phase(phase);m_agent.m_mon.mon_ap.connect(m_reg_env.m_apb2reg_predictor.bus_in);m_reg_env.m_ral_model.default_map.set_sequencer(m_agent.m_seqr,m_reg_env.m_reg2apb);endfunction:connect_phase ...
model.default_map.set_sequencer(apb.sqr, reg2apb); model.default_map.set_auto_predict(); end endfunction endclass: blk_env blk_seqlib.sv // // --- // Copyright 2004-2011 Synopsys, Inc. // Copyright 2010 Mentor Graphics Corporation //...