您的位置:首页 > 健康 > 美食 > 【IC验证】UVM实验lab03

【IC验证】UVM实验lab03

2024/10/6 18:32:42 来源:https://blog.csdn.net/m0_58427556/article/details/139721559  浏览:    关键词:【IC验证】UVM实验lab03

1. TLM端口的创建、例化与使用

创建:

uvm_get_blocking_port #(fmt_trans) mon_bp_port;

例化:

function new(string name = "mcdf_refmod", uvm_component parent);super.new(name, parent);fmt_trans = new("fmt_trans", this);
endfunction

传入数据:

this.mon_bp_port.put(t);

取出数据:

this.mon_bp_port.get(t);

连接:

2. 多向通信

宏声明:

'uvm_blocking_put_imp_decl(_chnl0);

端口创建:

uvm_blocking_put_imp_chnl0 #(data, component_name) chnl0_bp_imp;

例化:

chnl0_bp_imp = mew("chnl0_bp_imp", this);

3. 回调函数的使用

定义callback:

将callback与组件绑定:

对于后续继承于mcdf_base_test的所有子类,例如cb_mcdf_data_consistence_basic_test都不需要再做这个绑定了

在该组件里面插入callback:

在mcdf_base_test里面调用cb_mcdf_base的cb_do_reg方法。相当于是在这里预留了一个修改入口,方便后续继承该类,并对callback里面的方法进行修改

对cb里面的方法进行修改实现:

对callback进行例化添加使用:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com