3、关闭自动预测我们就需要实例化uvm_reg_predictor,并将uvm_reg_predictor实例中的bus_in与我们的uvm_monitor中的uvm_analysis_port相连接,这就需要我们保证uvm_monitor实现必须完善,这样就可以保证我们寄存器模型与DUT中的寄存器值最大可能的保持一致性。 参考文献...
agent.monitor.ap.connect(mcdf2reg_predictor.bus_in); endfunction endclass uvm_reg的访问方法 在给出寄存器模型的常见应用模式之前,首先从下表中更全面地了解uvm_reg_ block、 uvm_reg 和uvm_reg_ field 三个类提供的用于访问寄存器的方法。 uvm_reg_ sequence 提供的方法(均是针对寄存器对象的, 而不是寄...
classmy_envextendsuvm_env;uvm_reg_predictor#(bus_trans)predictor;functionvoidbuild_phase(uvm_phase);predictor=uvm_reg_predictor#(bus_trans)::type_id::create("predictor",this);//细节是参数类,是组件predictor.adapter=adapter句柄;predictor.map=map句柄;functionvoidconnect_phae();monitor.analysisport.c...
(2) 能够这样操作的原因在于: 由于总线的特殊性,bus_driver在驱动总线进行读操作时,它也能顺便获取要读的数值,如果它将此值放入从bus_sequencer获得的bus_transaction中,那么bus_transaction中就会有读取的值,此值经过adapter的bus2reg函数的传递,最终被寄存器模型获取; 2.2 依靠monitor与uvm_reg_predictor的非auto_p...
UVM的寄存器模型是高度抽象化的,不依赖具体DUT而独立存在的。它使用一个中间变量uvm_reg_bus_op描述register的访问信息,用户必须创建一个继承自uvm_reg_adapter的类,实现uvm_reg_bus_op与真正作用到具体dut上的transaction的互相转换。 RAL:RegisterAbstractionLayer ...
uvm_reg_map bus_map; ... virtual function void build(); reg0 = dummy_reg::create("reg0"); reg0.configure(this); reg0.build(); bus_map = create_map("bus_map", 'h0, 1, UVM_LITTLE_ENDIAN); default_map = bus_map; bus_map.add_reg(reg0, 'h0, "RW"); ...
uvm_reg model,主要实现了 1) 增加了对dut的reg进行访问的方式,可以直接通过reg model进行访问。传统的只能是通过sequence,启动在bus的sequencer上来实现。 2) 方便了对dut reg进行测试的方法,通过build-in sequence来实现。 3) 方便检测每次的bus读写的正确性,通过reg_predictor的方式来实现。
如果有sequence直接访问总线修改寄存器等情况都是无法预测的。显示预测:物理总线上通过监视器来捕捉总总线事物,并传递给定义的predictor,predictor是参数化的类,集成在顶层环境中。monitor中集成了analysis port,agent.monitor.ap.connect(mcdf2reg_predictor.bus_in);ap接口与bus_in接口连接;实现了TLM通信;...
e_apb_agent_h.monitor_m.items_collected_port.connect(reg_env.reg_predictor.bus_in); reg_env.m_ral_model.reg_map.set_sequencer(e_apb_agent_h.sequencer,reg_env.reg_adapter); reg_env.m_ral_model.reg_map.set_auto_predict(.on(0)); ...
uvm_reg model,主要实现了 1) 增加了对dut的reg进行访问的方式,可以直接通过reg model进行访问。传统的只能是通过sequence,启动在bus的sequencer上来实现。 2) 方便了对dut reg进行测试的方法,通过build-in sequence来实现。 3) 方便检测每次的bus读写的正确性,通过reg_predictor的方式来实现。