predictor主要用于模拟设计行为,以验证设计是否符合预期的规范。以下是关于UVM中predictor工作机制的基本解释: 1. Predictor Predictor是测试台中的一个组件,其主要任务是预测设计的输出。这通常涉及模拟设计的特定部分或整体,并通过输入信号生成预测的输出。Predictor可以用于在仿真过程中验证设计的行为,而不仅仅是检查设计...
两个uvm_component之间的通信我们当然优先选择TLM机制,这里uvm_reg_predictor是被动的接收uvm_monitor发过来的数据包,而uvm_monior中发包我们用的是uvm_analysis_port(uvm_monitor需要给很多组件发送收集的数据包,包括ref_model、coverage_collector、scb等等),所以相应的我们在uvm_reg_predictor中需要用一个uvm_analysis_...
(1) uvm_predictor派生于uvm_subscriber(属于uvm_component组件类),并且是一个参数化的类,其参数类型为target bus analysis transaction; (2) 使用uvm_predictor时,不需要对其进行派生出新类,只需要传递正确的参数类型; (3) 使用uvm_predictor时,需要指定其uvm_reg_adapter及uvm_reg_map变量; uvm_predictor使用uvm...
virtualfunctionvoidbuild_phase(uvm_phase phase);super.build_phase(phase);m_bus_predictor=uvm_reg_predictor#(bus_pkt)::type_id::create("my_bus_predictor",this);endfunction:build_phase 3. 将寄存器映射、适配器和分析端口连接到预估器(predictor): virtualfunctionvoidconnect_phase(uvm_phase phase);su...
UVM:7.7.1 使用reg_predictor 1.左图的方式依赖driver,当driver 将读取值返回后,寄存器模型会更新镜像值和镜像值和期望值。被称为寄存器模型的auto predict 功能。使用如下语句打开此功能: 2.右图另外一种形式。monitor 将总线收集到的transaction交给寄存器模型,后者更新相应寄存器的值。
为寄存器模型产生合适的adapter 和predictor 基于提高生产力的考虑,UVM 代码也要生成一些可供扩展的代码块,如下 上图显示了一个简单UVM代码生成器能够产生的结构类型的示例,包括多个DUT接口和相关agent,嵌套envs以及寄存器块,参考模型和记分板的实例化。 请注意,代码生成器不会生成寄存器模型,参考模型或记分板的内容。
agent.monitor.ap.connect(mcdf2reg_predictor.bus_in); endfunction endclass uvm_reg的访问方法 在给出寄存器模型的常见应用模式之前,首先从下表中更全面地了解uvm_reg_ block、 uvm_reg 和uvm_reg_ field 三个类提供的用于访问寄存器的方法。 uvm_reg_ sequence 提供的方法(均是针对寄存器对象的, 而不是寄...
(2) 在显式预测中,predictor内会调用uvm_predict函数进行镜像值的更新; 5.3 predict源码 1functionbit uvm_reg::predict (uvm_reg_data_t value,2uvm_reg_byte_en_t be = -1,3uvm_predict_e kind =UVM_PREDICT_DIRECT,4uvm_path_e path =UVM_FRONTDOOR,5uvm_reg_map map =null,6stringfname =""...
4、predict()我们一般不会直接调用,predict功能涉及到一个auto_predict和手动predict概念,通常我们在使用寄存器模型时,相关组件的connect_phase()都会带上下面这句话,即打开了自动预测的功能,这样我们就不需要写专门的predictor来执行do_predict()的行为。
根节点是uvm_root,实例化时命名为uvm_top,uvm自动完成 这种结构称之为逻辑层次结构 uvm phase 如上图,调用master的build phase之后,调用其子对象的build phase build phase自顶向下执行,同一层的执行顺序不定,如driver、monitor,取决于uvm内部算法 其余phase均为自底向上 不同组件相同的task phase是并行执行的,如...