马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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
|