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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 39|回复: 0

[求助] UVM项目编译问题

[复制链接]
发表于 昨天 20:53 | 显示全部楼层 |阅读模式

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

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

x
大家好,在github上下了个验证的项目,一直编译不过,问问大家什么问题?昨天搞到了半夜4点也没能正常运行
项目地址:https://github.com/nelsoncsc/ISP_UVM
我自己修改后后的Makefile如下:

UVMC_HOME = /home/cyp/tools/uvmc-2.3.2
UVM_HOME = /home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/uvm-1.2
UVMC_LIB ?= $(UVMC_HOME)/lib/uvmc_lib_vcs
UVM_LIB  ?= $(UVMC_HOME)/lib/uvmc_lib_vcs


SYSCAN = syscan -cpp g++ -cc gcc -cflags -g -cflags -DVCS -cflags -I. \
                -tlm2 -cflags -I$(VCS_HOME)/etc/systemc/tlm/include/tlm/tlm_utils \
                -cflags -I$(UVMC_HOME)/src/connect/sc \
                $(UVMC_HOME)/src/connect/sc/uvmc.cpp                        
VLOGAN = vlogan -q -work uvmc_lib \
                -sverilog +incdir+$(UVM_HOME)/src $(UVM_HOME)/src/uvm_pkg.sv \
                +incdir+${UVMC_HOME}/src/connect/sv \
                $(UVMC_HOME)/src/connect/sv/uvmc_pkg.sv \
                -timescale=1ns/1ps
#VLOGAN = vlogan -q -sverilog -timescale=1ns/1ps +define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR +incdir+$(UVM_HOME)/src+$(UVM_HOME)/src/vcs+$(UVMC_HOME)/src/connect/sv +define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR $(UVM_HOME)/src/uvm_pkg.sv $(UVM_HOME)/src/vcs/*.sv $(UVMC_HOME)/src/connect/sv/uvmc_pkg.sv

VCS_ELAB = -full64 -sverilog -q -sysc=deltasync -lca                                        \
                        -timescale=1ns/1ps                                                   \
           -CFLAGS -DVCS \
                   $(CV_LOPTS) \
                        cvFunction.o call_opencv.o \
                        +vpi \
                        -ntb_opts uvm-1.2 \
                        -sysc sc_main top  # Explicitly specify top module

#VCS_ELAB=-full64 -sverilog -ntb_opts uvm-1.2 -q -sysc=deltasync -lca -sysc -debug_pp -timescale=1ns/1ps uvm_custom_install_recording sc_main $(TOP) $(CV_LOPTS) cvFunction.o call_opencv.o


CV_COPTS=`pkg-config --cflags opencv`
CV_LOPTS=`pkg-config --libs opencv`

# definitions for files
TOP = top
REFMOD = external/refmod
TEST= simple_test
VCS_SIMV= +UVM_NO_RELNOTES +UVM_TR_RECORD +UVM_TESTNAME=$(TEST)

vcs:        clean
        g++ -c $(CV_COPTS) external/call_opencv.cpp  
        g++ -c $(CV_COPTS) external/cvFunction.cpp
        echo "uvmc_lib: $$UVMC_LIB" > ./synopsys_sim.setup
        $(VLOGAN) -full64 $(TOP).sv +define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR
        $(SYSCAN) -full64 $(REFMOD).cpp
        vcs $(VCS_ELAB)   
        ./simv $(VCS_SIMV) +UVM_VERBOSITY=MEDIUM
        rm -f ./synopsys_sim.setup

clean:
        rm -rf *.o simv_elab.daidir
        rm -rf a.out # simulation output file
        rm -rf INCA_libs irun.log ncsc.log # ius
        rm -rf work certe_dump.xml transcript .mgc_simple_ref .mgc_ref_nobuff .mgc_ref_oct # mgc
        rm -rf csrc simv simv.daidir ucli.key .vlogansetup.args .vlogansetup.env .vcs_lib_lock simv.vdb AN.DB vc_hdrs.h *.diag *.vpd *tar.gz # vcs

so_create:
        g++ -g -shared -fPIC -Bsymbolic -DVCS $(UVM_HOME)/src/dpi/uvm_dpi.cc \
            -I $(UVM_HOME)/include -I $(VCS_HOME)/include \
            -L $(UVM_HOME)/lib -L $(VCS_HOME)/vcs/lib -o $(UVM_HOME)/lib/uvm_dpi.so
编译输出如下:

[cyp@eda1 ISP_UVM-master]$ make vcs
rm -rf *.o simv_elab.daidir
rm -rf a.out # simulation output file
rm -rf INCA_libs irun.log ncsc.log # ius
rm -rf work certe_dump.xml transcript .mgc_simple_ref .mgc_ref_nobuff .mgc_ref_oct # mgc
rm -rf csrc simv simv.daidir ucli.key .vlogansetup.args .vlogansetup.env .vcs_lib_lock simv.vdb AN.DB vc_hdrs.h *.diag *.vpd *tar.gz # vcs
g++ -c `pkg-config --cflags opencv` external/call_opencv.cpp  
g++ -c `pkg-config --cflags opencv` external/cvFunction.cpp
echo "uvmc_lib: $UVMC_LIB" > ./synopsys_sim.setup
vlogan -q -work uvmc_lib -sverilog +incdir+/home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/uvm-1.2/src /home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/uvm-1.2/src/uvm_pkg.sv +incdir+/home/cyp/tools/uvmc-2.3.2/src/connect/sv /home/cyp/tools/uvmc-2.3.2/src/connect/sv/uvmc_pkg.sv -timescale=1ns/1ps -full64 top.sv +define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR

Warning-[MXIR-W] VCS-MX build is required
  Please make sure that vlogan is from the intended build.

syscan -cpp g++ -cc gcc -cflags -g -cflags -DVCS -cflags -I. -tlm2 -cflags -I/home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/systemc/tlm/include/tlm/tlm_utils -cflags -I/home/cyp/tools/uvmc-2.3.2/src/connect/sc /home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc.cpp                         -full64 external/refmod.cpp

Warning-[SC-DEPR-COMPILER] Deprecated compiler version
  Support for gcc version '4.8.3' has been deprecated and will be removed in a
  future release.
  Use gcc version '6.2.0' instead.

vcs -full64 -sverilog -q -sysc=deltasync -lca -timescale=1ns/1ps -CFLAGS -DVCS `pkg-config --libs opencv` cvFunction.o call_opencv.o +vpi -ntb_opts uvm-1.2 -sysc sc_main top     

Warning-[LCA_FEATURES_ENABLED] Usage warning
  LCA features enabled by '-lca' argument on the command line.  For more
  information regarding list of LCA features please refer to Chapter "LCA
  features" in the VCS/VCS-MX Release Notes

5 modules and 0 UDP read.
make[1]: Entering directory `/home/cyp/ic_project/ISP_UVM-master/csrc'
g++ -w  -pipe -DVCS -DUVM_DPI_DO_TYPE_CHECK -DVCS -O -I/home/cyp/synopsys_tool/vcs/O-2018.09-SP2/include   -fPIC -c /home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/uvm-1.2/dpi/uvm_dpi.cc

Warning-[SC-DEPR-COMPILER] Deprecated compiler version
  Support for gcc version '4.8.3' has been deprecated and will be removed in a
  future release.
  Use gcc version '6.2.0' instead.


Warning-[SC-DEPR-COMPILER] Deprecated compiler version
  Support for gcc version '4.8.3' has been deprecated and will be removed in a
  future release.
  Use gcc version '6.2.0' instead.

../simv_elab up to date
make[1]: Leaving directory `/home/cyp/ic_project/ISP_UVM-master/csrc'
Connecting an SC-side proxy chan for 'refmod_i.in' with lookup string 'refmod_i.in' for later connection with SV
Connecting an SC-side proxy chan for 'refmod_i.out' with lookup string 'refmod_i.out' for later connection with SV
Chronologic VCS simulator copyright 1991-2018
Contains Synopsys proprietary information.
Compiler version O-2018.09-SP2_Full64; Runtime version O-2018.09-SP2_Full64;  Jul  4 08:44 2025
UVM_INFO /home/cyp/synopsys_tool/vcs/O-2018.09-SP2/etc/uvm-1.2/base/uvm_root.svh(402) @ 0: reporter [UVM/RELNOTES]
----------------------------------------------------------------
UVM-1.2.Synopsys
(C) 2007-2014 Mentor Graphics Corporation
(C) 2007-2014 Cadence Design Systems, Inc.
(C) 2006-2014 Synopsys, Inc.
(C) 2011-2013 Cypress Semiconductor Corp.
(C) 2013-2014 NVIDIA Corporation
----------------------------------------------------------------

  ***********       IMPORTANT RELEASE NOTES         ************

  You are using a version of the UVM library that has been compiled
  with `UVM_NO_DEPRECATED undefined.
  See http://www.eda.org/svdb/view.php?id=3313 for more details.

  You are using a version of the UVM library that has been compiled
  with `UVM_OBJECT_DO_NOT_NEED_CONSTRUCTOR undefined.
  See http://www.eda.org/svdb/view.php?id=3770 for more details.

      (Specify +UVM_NO_RELNOTES to turn off this notice)


Warning-[LCA_FEATURES_ENABLED] Usage warning
  LCA features enabled by '-lca' argument on the command line.  For more
  information regarding list of LCA features please refer to Chapter "LCA
  features" in the VCS/VCS-MX Release Notes

4 modules and 0 UDP read.
make[1]: Entering directory `/home/cyp/ic_project/ISP_UVM-master/csrc'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_scope':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:65: undefined reference to `UVMC_get_uvm_version'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_print_topology':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:85: undefined reference to `UVMC_print_topology'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_wait_for_phase':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:110: undefined reference to `UVMC_wait_for_phase_request'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_raise_objection':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:125: undefined reference to `UVMC_raise_objection'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_drop_objection':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:134: undefined reference to `UVMC_drop_objection'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report_enabled':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:145: undefined reference to `UVMC_report_enabled'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_report_verbosity':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:154: undefined reference to `UVMC_set_report_verbosity'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:166: undefined reference to `UVMC_report'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report_info':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:178: undefined reference to `UVMC_report'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report_warning':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:189: undefined reference to `UVMC_report'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report_error':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:200: undefined reference to `UVMC_report'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_report_fatal':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:211: undefined reference to `UVMC_report'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_print_factory':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:257: undefined reference to `UVMC_print_factory'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_factory_inst_override':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:265: undefined reference to `UVMC_set_factory_inst_override'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_factory_type_override':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:273: undefined reference to `UVMC_set_factory_type_override'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_debug_factory_create':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:280: undefined reference to `UVMC_debug_factory_create'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_find_factory_override':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:288: undefined reference to `UVMC_find_factory_override'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_config_int':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:306: undefined reference to `UVMC_set_config_int'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_set_config_string':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:316: undefined reference to `UVMC_set_config_string'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_get_config_int':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:326: undefined reference to `UVMC_get_config_int'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/uvmc.o: In function `uvmc_get_config_string':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_commands.cpp:338: undefined reference to `UVMC_get_config_string'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::get(tr&)':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:219: undefined reference to `C2SV_get'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::put(tr const&)':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:181: undefined reference to `C2SV_put'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_put(tr const&)':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:195: undefined reference to `C2SV_try_put'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_can_put(tlm::tlm_tag<tr>*) const':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:205: undefined reference to `C2SV_can_put'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_get(tr&)':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:237: undefined reference to `C2SV_try_get'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_can_get(tlm::tlm_tag<tr>*) const':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:252: undefined reference to `C2SV_can_get'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::peek(tr&) const':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:268: undefined reference to `C2SV_peek'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_peek(tr&) const':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:286: undefined reference to `C2SV_try_peek'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::nb_can_peek(tlm::tlm_tag<tr>*) const':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:301: undefined reference to `C2SV_can_peek'
/home/cyp/ic_project/ISP_UVM-master/csrc/sysc/refmod.o: In function `uvmc::uvmc_tlm1_channel_proxy<tr, tr, uvmc_converter<tr>, uvmc_converter<tr> >::transport(tr const&, tr&)':
/home/cyp/tools/uvmc-2.3.2/src/connect/sc/uvmc_channels.h:317: undefined reference to `C2SV_transport'
collect2: error: ld returned 1 exit status
make[1]: *** [product_timestamp] Error 1
make[1]: Leaving directory `/home/cyp/ic_project/ISP_UVM-master/csrc'
Make exited with status 2
make: *** [vcs] Error 2



您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-5 04:26 , Processed in 0.015568 second(s), 8 queries , Gzip On, MemCached On.

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