Linking fftw3 lib into SystemVerilog Simulation with DPI-C - Linking fftw3 lib into SystemVerilog Simulation with DPI-C Hi there, I am trying to run a simulation that makes use of the DPI-C interface so I can compare the FPGA output with the same function being performed in C. For this I need to compile in the FFTW3 libraries for my C code. Below are some examples of the code and compilation set up C Code includes #include "./fftw3.h" #include "svdpi.h" #include "svdpi_src.h" SV code imports import "DPI-C" task fft2d(); Compilation and vsim set up vlog -dpiheader dpi_header.h C:/Data/fpga/DPI_C/fourier_fftw.c # compile toucan testbench vlog -reportprogress 300 -work work +acc C:/Data/fpga/Testbenches/Toucan_tb.sv # # # # Set the top-level simulation or testbench module/entity name, which is # # used by the elab command to elaborate the top level. # # set TOP_LEVEL_NAME Toucan_tb # # # # Set any elaboration options you require. set USER_DEFINED_ELAB_OPTIONS {-c -ldflags "-llibfftw3-3" -ldflags "-llibfftw3f-3" -ldflags "-llibfftw3l-3" -64} # # # # Call command to elaborate your design and testbench. elab # # However, every time I try to run the simulation I get the following fatal error: # ** Fatal: (vsim-3828) Could not link 'vsim_auto_compile.dll': cmd = 'C:/intelFPGA_pro/21.3/questa_fse\gcc-7.4.0-mingw64vc15\bin\gcc.exe -shared -o "C:/Users/ALEXBE~1/AppData/Local/Temp\AlexBeasley@ALEXVIVIDQLAPTO_dpi_34940\win64_gcc-7.4.0\vsim_auto_compile.dll" C:/Data/fpga/Sim/Toucan/libraries/work\_dpi\auto_compile@\win64_gcc-7.4.0\fourier_fftw.o -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 -Wl,-Bsymbolic -L"C:/intelFPGA_pro/21.3/questa_fse/win64" -lmtipli' # (vsim-50) A call to system(C:/intelFPGA_pro/21.3/questa_fse\gcc-7.4.0-mingw64vc15\bin\gcc.exe -shared -o "C:/Users/ALEXBE~1/AppData/Local/Temp\AlexBeasley@ALEXVIVIDQLAPTO_dpi_34940\win64_gcc-7.4.0\vsim_auto_compile.dll" C:/Data/fpga/Sim/Toucan/libraries/work\_dpi\auto_compile@\win64_gcc-7.4.0\fourier_fftw.o -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 -Wl,-Bsymbolic -L"C:/intelFPGA_pro/21.3/questa_fse/win64" -lmtipli) returned error code '1'. # No such file or directory. (errno = ENOENT) # # # FATAL ERROR while loading design # Error loading design # Error: Error loading design # Pausing macro execution # MACRO ./compile_toucan.do PAUSED at line 99 I cannot work out where I am going wrong or what file is being referred to by the "No such file or directory. (errno = ENOENT)" line. The fftw3 files were downloaded directly from the FFTW website as a set of pre-compiled dlls for windows. The lib files were then generated using the lib.exe function within Visual Studio. Any ideas? Thanks Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C Thanks for the sharing. Btw, I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you. Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C Hi there, I worked it out; because the .lib files were in a directory that was not being searched automatically I had to add -L<lib_directory> into the -ldflags command. i.e.: vsim -c -ldflags "-L./ -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3" -64 work.fftw3_tb This now works. Cheers Alex Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C Any further update or concern? Do you able to run the simulation? Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C I think not need to flag those libraries. Questa can run the simulation without flagging those libraries. Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C Hi there, Thanks for getting back to me. I have tried passing in the -64 flag with the -ldflags command using the following commands: vlog -dpiheader myheader.h fourier_fftw.c fftw3_tb.sv vsim -c -ldflags "-llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3" -64 work.fftw3_tb But I still get the following error in the output: # vsim -c -ldflags "-llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3" -64 work.fftw3_tb # Start time: 09:00:33 on Jul 20,2022 # ** Note: (vsim-3812) Design is being optimized... # Loading sv_std.std # Loading work.fftw3_tb(fast) # ** Fatal: (vsim-3828) Could not link 'vsim_auto_compile.dll': cmd = 'C:/intelFPGA_pro/21.3/questa_fse\gcc-7.4.0-mingw64vc15\bin\gcc.exe -shared -o "C:/Users/ALEXBE~1/AppData/Local/Temp\AlexBeasley@ALEXVIVIDQLAPTO_dpi_23316\win64_gcc-7.4.0\vsim_auto_compile.dll" c:/Data/fpga/sim/fftw3_example/work\_dpi\auto_compile@\win64_gcc-7.4.0\fourier_fftw.o -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 -Wl,-Bsymbolic -L"C:/intelFPGA_pro/21.3/questa_fse/win64" -lmtipli' # (vsim-50) A call to system(C:/intelFPGA_pro/21.3/questa_fse\gcc-7.4.0-mingw64vc15\bin\gcc.exe -shared -o "C:/Users/ALEXBE~1/AppData/Local/Temp\AlexBeasley@ALEXVIVIDQLAPTO_dpi_23316\win64_gcc-7.4.0\vsim_auto_compile.dll" c:/Data/fpga/sim/fftw3_example/work\_dpi\auto_compile@\win64_gcc-7.4.0\fourier_fftw.o -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 -Wl,-Bsymbolic -L"C:/intelFPGA_pro/21.3/questa_fse/win64" -lmtipli) returned error code '1'. # No such file or directory. (errno = ENOENT) # # # FATAL ERROR while loading design # Error loading design # Error: Error loading design # Pausing macro execution I don't know if it is looking for the libfftw3 libraries in a certain location? Currently they are in the working directory of QuestaSim. I have attached the example I am using to try and get this working. There is a "compile.do" file which has my commands in to compile the source files and run the simulation. Any ideas? Alex Replies: Re: Linking fftw3 lib into SystemVerilog Simulation with DPI-C Hi, You need to pass your library to 64 bit. For example like this: vsim -c -ldflags "-l<library>" -64 Best regards, Sheng p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution and give Kudos. - 2022-07-18

external_document