DPI Error

when i write a command of vsim to simulate my top module , there are a lot of warnings appear and here they are :

vsim work.top

vsim work.top

Loading sv_std.std

Loading work.uvm_pkg

Loading work.top_sv_unit

Loading work.top(fast)

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_check_path’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_deposit’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_force’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_release_and_read’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_release’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_hdl_read’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_get_next_arg_c’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_get_tool_name_c’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_get_tool_version_c’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_regcomp’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_regexec’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dpi_regfree’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_re_match’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_dump_re_cache’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

** Warning: (vsim-3770) Failed to find user specified function ‘uvm_glob_to_re’. The search list was empty.

Using -sv_lib, -sv_root, and -sv_liblist arguments can provide a search list

of shared libraries that will be used to resolve user specified functions.

Time: 0 ns Iteration: 0 Instance: /top File: top.sv

then , when i write a command of run all , that is what appears :

run -all

** Fatal: (vsim-160) D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh(27): Null foreign function pointer encountered when calling ‘uvm_dpi_get_next_arg_c’

Time: 0 ns Iteration: 0 Process: /uvm_pkg File: D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh

Fatal error at D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh line 27

HDL call sequence:

Stopped at D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh 27

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/dpi/uvm_svcmd_dpi.svh 32

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/base/uvm_cmdline_processor.svh 245

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/base/uvm_cmdline_processor.svh 61

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/base/uvm_root.svh 306

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/base/uvm_root.svh 286

called from D:/Flash_mem/Questa_setUp/verilog_src/uvm-1.1d/src/uvm_pkg.sv 0

i am working on Questasim 10.0b , i have also compiled UVM package every time i use it and i have try alot of things to solve this problem and nothing is succeeded , so i will be very grateful if you supply me with a previous tried solution,

Several comments on your question:

  1. The errors you are seeing are due to UVM requiring a DPI library to be compiled and loaded during simulation. You aren’t compiling the DPI code and the errors you are getting are because of this.

  2. Questasim 10.0b is almost 3 years old. I would recommend updating to the latest Questasim version which is 10.3_1.

  3. Questasim contains pre-compiled versions of UVM so you don’t need to compile UVM. The pre-compiled UVM library will automatically be used when you import the UVM library or include the UVM macros. The DPI library will also be loaded automatically when you use the pre-compiled library.

  4. If you insist on compiling the UVM library separately, instructions can be found here.

In reply to cgales:

Thank You Mr. For your answer ,

But i have to ask how to compile the DPI library knowing that the only file of DPI name is in uvm-1.1d/src/dpi/uvm_dpi.cc and uvm_dpi.svh

Please tell me the specific file to compile and how to compile it ( the command )