在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6995|回复: 22

[求助] 运行uvm时出现it is not registered with the factory.怎么解决

[复制链接]
发表于 2021-11-15 21:19:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
test代码:
program automatic test;
    import uvm_pkg::*;
    `include "uvm_macros.svh"
    initial begin
        run_test("my_test");
    end
endprogram


my_test代码:
class my_test extends uvm_test;

    `uvm_component_utils(my_test);
    my_env m_env;
    function new(string name = "my_test", uvm_component parent=null);
        super.new(name, parent);
    endfunction

    virtual function void build_phase(uvm_phase phase);
       super.build_phase(phase);
        m_env=my_env::type_id::create("m_env",this);
        uvm_config_db#(uvm_object_wrapper)::set(this, "*.m_seqr.run_phase", "default_sequence", my_sequence::get_type());
    endfunction: build_phase
endclass


vlog和vsim都成功,但是run后就会出现这样的结果:
UVM_WARNING @ 0: reporter [BDTYP] Cannot create a component of type 'my_test' because it is not registered with the factory.
# UVM_FATAL @ 0: reporter [INVTST] Requested test from call to run_test(my_test) not found.

我的my_test不是已经注册到uvm_component_util中了吗,为什么还会报错????求大神解答啊。。。弄了好半天还没解决



image.png
 楼主| 发表于 2021-11-15 22:08:18 | 显示全部楼层
本帖最后由 became_an_icer 于 2021-11-17 16:39 编辑

用vcs后也一样
 楼主| 发表于 2021-11-15 22:11:56 | 显示全部楼层
这是我的questasim的命令行,有没有错误
cd I:/vs_code/testbeach
vlib work
set UVM_HOME K:/questasim/questasim/verilog_src/uvm-1.1d   
set WORK_HOME I:/vs_code/testbeach
vlog +incdir+$UVM_HOME/src  -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF $UVM_HOME/src/uvm_pkg.sv  $WORK_HOME/test.sv
vsim  -c -sv_lib K:/questasim/questasim/uvm-1.1d/win64/uvm_dpi work.test    -voptargs=+acc
 楼主| 发表于 2021-11-15 22:13:57 | 显示全部楼层
本帖最后由 became_an_icer 于 2021-11-17 16:40 编辑

这是我的vcs的命令行,有没有错误   

vcs -sverilog -debug_pp -LDFLAGS -rdynamic \
-P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab \
${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a \
${UVM_HOME}/src/dpi/uvm_dpi.cc -CFLAGS -DVCS \
+incdir+${UVM_HOME}/src   \
${UVM_HOME}/src/uvm_pkg.sv  test.sv \
-R  +UVM_TESTNAME=my_test   +vcs+lic+wait  \
-timescale=1ns/1ns -l com.log

发表于 2021-11-16 09:42:37 | 显示全部楼层
漏了$WORK_HOME/my_test.sv
发表于 2021-11-16 17:08:17 来自手机 | 显示全部楼层
是不是真如楼上所说my_test这个class根本没编译进去
 楼主| 发表于 2021-11-17 14:42:31 | 显示全部楼层
本帖最后由 became_an_icer 于 2021-11-17 16:52 编辑


sfc19910705 发表于 2021-11-16 09:42
漏了$WORK_HOME/my_test.sv


在vcs中添加了这个后 出现了这种结果Error-[SE] Syntax error
  Following verilog source has syntax error :
  "my_test.sv", 1: token is 'uvm_test'
  class my_test extends uvm_test;




发表于 2021-11-17 17:13:21 | 显示全部楼层


became_an_icer 发表于 2021-11-17 14:42
在vcs中添加了这个后 出现了这种结果Error-[SE] Syntax error
  Following verilog source has syntax err ...


淡定,vcs编译命令里面是不是少了$UVM_HOME/src/uvm_pkg.sv
 楼主| 发表于 2021-11-17 20:37:04 | 显示全部楼层


sfc19910705 发表于 2021-11-17 17:13
淡定,vcs编译命令里面是不是少了$UVM_HOME/src/uvm_pkg.sv


哈哈,有的,编译了
vcs -sverilog -debug_pp -LDFLAGS -rdynamic \
-P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab \
${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a \
${UVM_HOME}/src/dpi/uvm_dpi.cc -CFLAGS -DVCS \
+incdir+${UVM_HOME}/src   \
${UVM_HOME}/src/uvm_pkg.sv  test.sv  my_test.sv \
-R  +UVM_TESTNAME=my_test   +vcs+lic+wait  \
-timescale=1ns/1ns -l com.log

发表于 2021-11-17 22:21:31 | 显示全部楼层


became_an_icer 发表于 2021-11-17 20:37
哈哈,有的,编译了
vcs -sverilog -debug_pp -LDFLAGS -rdynamic \
-P ${VERDI_HOME}/share/PLI/VCS/L ...


    import uvm_pkg::*;
    `include "uvm_macros.svh"
program automatic test;
    initial begin
        run_test("my_test");
    end
endprogram
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 07:34 , Processed in 0.023100 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表