隐式预测是最简单、最常见的预测方法。每当发生寄存器写/读操作时,UVMRAL模型基类都会调用该特定uvm_reg类的predict方法。要启用此功能,用户必须调用uvm_reg_map的set_auto_predict(1)方法,如下所示。默认情况下,该方法是禁用的。 图2隐式预测流程 如上图所示,启用自动预测后,寄存器模型会在每次写/读操作时预测...
如果想在模型中得到DUT的技术值,这就需要手动更新镜像值,又不能对DUT进行操作,这可以通过predict函数。 第三个参数是uvm_predict_e枚举类型,他有如下三个元素: 如果想要更新镜像值又不对DUT进行操作,要用UVM_PREDICT_DIRECT。 write、read、peek和poke在完成对DUT的读写之后也会调用这个函数,更新镜像值。 1.6 ran...
寄存器模型(reg_model)的高級用法之uvm_reg_predictor 一、在通常的寄存器測試中,寄存器模型主要是依賴driver將讀取值返回,來更新鏡像值和期望值。這個功能被稱之為auto_predict功能。在建立寄存器模型時需要...点赞(0) 踩踩(0) 反馈 访问所需:1 积分 同意申明访问第三方链接 ...
UVM还提供了内建的sequence来检查寄存器模型和DUT状态,以及高级用法,如driver驱动的自动预测和monitor监控的交易更新。寄存器模型的mirror操作用于同步DUT和模型,而predict操作则用于设置参考模型的值,不影响实际DUT。UVM支持从reg_block、reg到reg_field的randomize操作,但需确保field类型支持写操作。寄存器模...
envcfg0.RAL_regblock_inenvconfig.reg_map.set_auto_predict(.on(0));//这应该是不要用使用UVM自带的自建predictor功能 pred0.map = envcfg0.RAL_regblock_inenvconfig.reg_map; pred0.adapter = a0.adpt0; 至此RAL的基础内容就简单地总结了一下,最后记录一个目前还没解决的问题:我在windows的questasim...
1.3.3. reg.predict regm.thres.predict('h100); reg的predict本质就是依次去调用其中所有reg_field的predict函数,然后将reg predict参数中的寄存器值分别拆成对应field的predict,传给reg_field.predict。针对UVM_DIRECT_PREDICT,也是一般验证中常用的predict,无论reg的access为甚么类型,都能够直接修改value,m_desired和...
7.7 寄存器模型的高级用法 此前曾介绍过寄存器模型通过driver完成前门访问读操作的方式,当driver将读取值返回后,寄存器模型会更新寄存器的镜像值和期望值,这个功能被称为寄存器模型的auto predict功能,可以在建立寄存器模型时使用如下的语句打开 rm.default_map.set_auto_predict(1); ...
如果用户并没有集成独立的predictor在环境中,而是利用寄存器的操作来自动记录每一次寄存器的读写数值,并在后台自动调用predict()方法的话,这种方式被称之为自动预测。这种方式简单有效,然而需要注意,如果其它一些sequence直接在总线层面上对寄存器进行操作(跳过寄存器级别的write()/read()操作,或者通过其它总线来访问寄存器...
第二种:加入rbus_mon和reg_predictor来主动获取rbus bus上的讯息(具体用法见UVM实战chapter7.7.1)...
predict操作会更新镜像值和期望值。 当然可以,以下是两个使用UVM中mirror操作的例子: 1.在仿真中不断调用mirror,使寄存器模型的值和DUT的值一样: 复制代码 class my_test extends uvm_test; my_dut dut; my_reg_model model; `uvm_component_utils(my_test) function new(string name, uvm_component parent)...