vcs -debug_all -full64 -sverilog -R file.sv utils.so dpi.so
Compilation error:/usr/bin/ld: warning: librdi_commoncwebtalk.so, needed by /opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: librdizlib.so, needed by /opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so, not found (try using -rpath or -rpath-link)
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `std::thread::_State::~_State()@GLIBCXX_3.4.22'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `uncompress'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `compress2'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `typeinfo for std::thread::_State@GLIBCXX_3.4.22'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())@GLIBCXX_3.4.22'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `IDT::WebTalk::send(char const*, IDT::WebTalk::ProductType)'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `IDT::WebTalk::add(char const*, char const*, IDT::WebTalk::SectionType)'
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/librdi_simulator_kernel.so: undefined reference to `IDT::WebTalk::internal()'
when I try compiling for C++:
vcs -lstdc++ -cpp -debug_all -full64 -sverilog -R file.sv libIp_xfft_v9_0_bitacc_cmodel.so dpi.so
I get the following:make: full64: Command not found
Makefile:107: recipe for target 'product_timestamp' failed
make: [product_timestamp] Error 127 (ignored)
../simv up to date
Error-[EXEC_NEX] Cannot run executable
Cannot run executable 'simv' ; either it does not exist or not executable.
Use -o <exe_name> if different than simv.
How can I compile a DPI when the C code uses another shared lib? Is it possible?So the env is the parent class which instantiate all child classes, thus, the env.sv file includes all other files..
Can I have a handle from the child classes to the env class, even if they compile first?
This is some of the monitor.sv :
class monitor; virtual general_if gen_vif; config cfg; function new(virtual general_if gen_vif) this.gen_vif = gen_vif; endfunction
and some of the env.sv file :
`include "monitor.sv" class environment; virtual general_if gen_vif; config cfg; monitor mon; function new(virtual general_if gen_vif) cfg = new(); mon = new(gen_vif); mon.cfg = cfg; endfunction
Can I have a handle from the monitor to env?
One more thing, I cant import DPI from a class, so if the monitor needs to call a function "some_funtion()" from dpi_import module, how can I establish a handle in the monitor class to this dpi_import module??
This is some of the dpi_import.sv :
module dpi_import (); import "DPI" function void some_function_c (); function void some_function (); some_function_c(); endfunction endmodule
And How can I have a handle to dpi_modul?
Thanks a lot!!
I'm very new to SV and any help would be greatly appreciated.