求助:使用uvm_config_db与uvm_config_object来改变配置类的区别
时间:10-02
整理:3721RD
点击:
各位:
最近正在试着用UVM搭建仿真平台。在使用uvm_config_db的时候遇到一些问题,改用uvm_config_object之后却能正常运行。因此,想知道是否是我在使用uvm_config_db的时候有哪里没弄好。
恩,我的config的基类是base_config,然后我用base_config写了一个default_config类,以防环境没有config类跑不起来。然后在实际使用的时候,我从base_config扩展了一个my_config类,然后想使用uvm_config_db#(my_config)::set(this,"tb0*","cfg",cfg)来将maser、slave中的各个config改变为my_config。但是,实际跑出来的是,master和slave中还是采用了default_config类。
当我改变,使用uvm_config_object::set(this,"tb0*","cfg",cfg)时,default_config就成功被my_config替换掉了。因此,我想问一下各位,这到底是怎么回事呀,是否是我使用uvm_config_db的过程中,有什么地方没有注意到呀?
最近正在试着用UVM搭建仿真平台。在使用uvm_config_db的时候遇到一些问题,改用uvm_config_object之后却能正常运行。因此,想知道是否是我在使用uvm_config_db的时候有哪里没弄好。
恩,我的config的基类是base_config,然后我用base_config写了一个default_config类,以防环境没有config类跑不起来。然后在实际使用的时候,我从base_config扩展了一个my_config类,然后想使用uvm_config_db#(my_config)::set(this,"tb0*","cfg",cfg)来将maser、slave中的各个config改变为my_config。但是,实际跑出来的是,master和slave中还是采用了default_config类。
当我改变,使用uvm_config_object::set(this,"tb0*","cfg",cfg)时,default_config就成功被my_config替换掉了。因此,我想问一下各位,这到底是怎么回事呀,是否是我使用uvm_config_db的过程中,有什么地方没有注意到呀?
如果uvm_config_db#(my_config)::set(this,"tb0*","cfg",cfg)中cfg不是my_config类型是会报错的,既然成功了就说明是按照my_config传送的,看看你的get函数是怎么写的。
如果uvm_config_db#(my_config)::set(this,"tb0*","cfg",cfg)编译通过了说明cfg就是my_config类型,要不然会报错的,所以检查下自己的get函数
请问这个问题具体是怎么造成的,我也遇到了差不多的问题,谢谢
是不是因为uvm_config_db针对component,而uvm_config_object针对object。