Пытаюсь воспроизвести пример из данного видео: https://www.youtube.com/watch?v=Oq2Z7zmxUFU
Скачал исходники отсюда: https://www.mathworks.com/matlabcentral ... matlab-fft
Запустил скрипт build_dpi.m, все скомпилилось.
В Questa перехожу в эту папку, выполняю команду do sim.do
На 30ой строчке скрипта (run -all) процесс валится.
наиболее интересная часть лога:
Код: Выделить всё
# Loading .\codegen/dll/fft_checker/libfft_checker_dpi.dll
# Loading .\codegen/dll/gen_wave/libgen_wave_dpi.dll
# Loading D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_fft_checker_initialize' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_fft_checker' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_gen_wave_initialize' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_gen_wave' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ----------------------------------------------------------------
# UVM_INFO @ 0: reporter [RNTST] Running test fft_test_wave...
# ** Fatal: (vsim-160) fft_pkg.sv(119): Null foreign function pointer encountered when calling 'DPI_fft_checker_initialize'
# Time: 0 ns Iteration: 7 Process: /uvm_pkg::uvm_phase::m_run_phases/#FORK#1847_4f611b3e File: fft_pkg.sv
# Fatal error in Module top_sv_unit at fft_pkg.sv line 120
лог целиком:
Код: Выделить всё
# Reading D:/questasim64_10.4c/tcl/vsim/pref.tcl
# // Questa Sim-64
# // Version 10.4c win64 Jul 20 2015
# //
# // Copyright 1991-2015 Mentor Graphics Corporation
# // All Rights Reserved.
# //
# // THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# // WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS
# // LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# // THIS DOCUMENT CONTAINS TRADE SECRETS AND COMMERCIAL OR FINANCIAL
# // INFORMATION THAT ARE PRIVILEGED, CONFIDENTIAL, AND EXEMPT FROM
# // DISCLOSURE UNDER THE FREEDOM OF INFORMATION ACT, 5 U.S.C. SECTION 552.
# // FURTHERMORE, THIS INFORMATION IS PROHIBITED FROM DISCLOSURE UNDER
# // THE TRADE SECRETS ACT, 18 U.S.C. SECTION 1905.
# //
cd D:/projects/DPI_UVM_FFT_MATLAB_example/
ls
# DPI UVM FFT MATLAB example overview.pdf fft_checker.m gen_wave.m top.sv
# README.txt fft_checker_tb.m irun.args vcs.bootstrap
# TB.f fft_pkg.sv irun_gui.tcl vcs.compile
# axi_st_if.svh fft_st.slx irun_gui.tcl.svcf vcs.sim
# build_dpi.m fft_st_wrapper.sv sim.do
#
# codegen:
# dll
#
# hdlsrc:
# DUT.f fft_st
#
# work:
# _dpi _info _lib.qdb _lib1_0.qdb _lib1_0.qpg _lib1_0.qtl _vmake
do sim.do
# ** Warning: (vlib-34) Library already exists at "work".
#
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_32x16b.v
# -- Compiling module SimpleDualPortRAM_32x16b
#
# Top level modules:
# SimpleDualPortRAM_32x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 dataMEM_re_0_1_32x16b.v
# -- Compiling module dataMEM_re_0_1_32x16b
#
# Top level modules:
# dataMEM_re_0_1_32x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_8x16b.v
# -- Compiling module SimpleDualPortRAM_8x16b
#
# Top level modules:
# SimpleDualPortRAM_8x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 dataXMEM_re_1_1_8x16b.v
# -- Compiling module dataXMEM_re_1_1_8x16b
#
# Top level modules:
# dataXMEM_re_1_1_8x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterlyF.v
# -- Compiling module Radix2ButterlyF
#
# Top level modules:
# Radix2ButterlyF
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelF_1.v
# -- Compiling module RADIX2FFT_KernelF_1
#
# Top level modules:
# RADIX2FFT_KernelF_1
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_16x16b.v
# -- Compiling module SimpleDualPortRAM_16x16b
#
# Top level modules:
# SimpleDualPortRAM_16x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 dataMEM_re_0_2_16x16b.v
# -- Compiling module dataMEM_re_0_2_16x16b
#
# Top level modules:
# dataMEM_re_0_2_16x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterlyF_block.v
# -- Compiling module Radix2ButterlyF_block
#
# Top level modules:
# Radix2ButterlyF_block
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelF_2.v
# -- Compiling module RADIX2FFT_KernelF_2
#
# Top level modules:
# RADIX2FFT_KernelF_2
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 ComplexMultiply.v
# -- Compiling module ComplexMultiply
#
# Top level modules:
# ComplexMultiply
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterlyF_block1.v
# -- Compiling module Radix2ButterlyF_block1
#
# Top level modules:
# Radix2ButterlyF_block1
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelF_3.v
# -- Compiling module RADIX2FFT_KernelF_3
#
# Top level modules:
# RADIX2FFT_KernelF_3
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:10 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_4x16b.v
# -- Compiling module SimpleDualPortRAM_4x16b
#
# Top level modules:
# SimpleDualPortRAM_4x16b
# End time: 16:49:10 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 dataMEM_re_4x16b.v
# -- Compiling module dataMEM_re_4x16b
#
# Top level modules:
# dataMEM_re_4x16b
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 ComplexMultiply_block.v
# -- Compiling module ComplexMultiply_block
#
# Top level modules:
# ComplexMultiply_block
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterflyG.v
# -- Compiling module Radix2ButterflyG
#
# Top level modules:
# Radix2ButterflyG
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelG.v
# -- Compiling module RADIX2FFT_KernelG
#
# Top level modules:
# RADIX2FFT_KernelG
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 ComplexMultiply_block1.v
# -- Compiling module ComplexMultiply_block1
#
# Top level modules:
# ComplexMultiply_block1
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterflyG_block.v
# -- Compiling module Radix2ButterflyG_block
#
# Top level modules:
# Radix2ButterflyG_block
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelG_block.v
# -- Compiling module RADIX2FFT_KernelG_block
#
# Top level modules:
# RADIX2FFT_KernelG_block
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 ComplexMultiply_block2.v
# -- Compiling module ComplexMultiply_block2
#
# Top level modules:
# ComplexMultiply_block2
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 Radix2ButterflyG_block1.v
# -- Compiling module Radix2ButterflyG_block1
#
# Top level modules:
# Radix2ButterflyG_block1
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_KernelL.v
# -- Compiling module RADIX2FFT_KernelL
#
# Top level modules:
# RADIX2FFT_KernelL
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_64x16b.v
# -- Compiling module SimpleDualPortRAM_64x16b
#
# Top level modules:
# SimpleDualPortRAM_64x16b
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 dataMEM_re_1_64x16b.v
# -- Compiling module dataMEM_re_1_64x16b
#
# Top level modules:
# dataMEM_re_1_64x16b
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 RADIX2FFT_bitNatural.v
# -- Compiling module RADIX2FFT_bitNatural
#
# Top level modules:
# RADIX2FFT_bitNatural
# End time: 16:49:11 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:11 on Feb 05,2019
# vlog -reportprogress 300 FFT_HDL_Optimized.v
# -- Compiling module FFT_HDL_Optimized
#
# Top level modules:
# FFT_HDL_Optimized
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:01
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 SimpleDualPortRAM_128x32b.v
# -- Compiling module SimpleDualPortRAM_128x32b
#
# Top level modules:
# SimpleDualPortRAM_128x32b
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 HDL_FIFO_ram_128x32b.v
# -- Compiling module HDL_FIFO_ram_128x32b
#
# Top level modules:
# HDL_FIFO_ram_128x32b
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 HDL_FIFO.v
# -- Compiling module HDL_FIFO
#
# Top level modules:
# HDL_FIFO
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 fft_st.v
# -- Compiling module fft_st
#
# Top level modules:
# fft_st
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# ** Warning: (vlib-34) Library already exists at "work".
#
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 fft_st_wrapper.sv
# -- Compiling module fft_st_wrapper
#
# Top level modules:
# fft_st_wrapper
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# QuestaSim-64 vlog 10.4c Compiler 2015.07 Jul 20 2015
# Start time: 16:49:12 on Feb 05,2019
# vlog -reportprogress 300 -sv top.sv
# ** Note: (vlog-2286) Using implicit +incdir+D:/questasim64_10.4c/uvm-1.1d/../verilog_src/uvm-1.1d/src from import uvm_pkg
#
# -- Compiling interface axi_st_if
# -- Compiling package top_sv_unit
# -- Importing package mtiUvm.uvm_pkg (uvm-1.1d Built-in)
# -- Compiling interface axi_st_if
# -- Compiling module top
#
# Top level modules:
# top
# End time: 16:49:12 on Feb 05,2019, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# vsim -L work -L hdlsrc/fft_st/work -sv_lib codegen/dll/fft_checker/libfft_checker_dpi -sv_lib codegen/dll/gen_wave/libgen_wave_dpi "+UVM_TESTNAME=fft_test_wave" -novopt top
# Start time: 16:49:12 on Feb 05,2019
# ** Warning: (vsim-8891) All optimizations are turned off because the -novopt switch is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features please see the User's Manual section on Preserving Object Visibility with vopt.
#
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/work.top
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/work.top_sv_unit
# Loading sv_std.std
# Loading mtiUvm.uvm_pkg
# Loading work.top_sv_unit
# Loading work.top
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/work.axi_st_if
# Loading work.axi_st_if
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/work.fft_st_wrapper
# Loading work.fft_st_wrapper
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.fft_st
# Loading hdlsrc/fft_st/work.fft_st
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.FFT_HDL_Optimized
# Loading hdlsrc/fft_st/work.FFT_HDL_Optimized
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelF_1
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelF_1
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.dataXMEM_re_1_1_8x16b
# Loading hdlsrc/fft_st/work.dataXMEM_re_1_1_8x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_8x16b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_8x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.dataMEM_re_0_1_32x16b
# Loading hdlsrc/fft_st/work.dataMEM_re_0_1_32x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_32x16b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_32x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterlyF
# Loading hdlsrc/fft_st/work.Radix2ButterlyF
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelF_2
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelF_2
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.dataMEM_re_0_2_16x16b
# Loading hdlsrc/fft_st/work.dataMEM_re_0_2_16x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_16x16b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_16x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterlyF_block
# Loading hdlsrc/fft_st/work.Radix2ButterlyF_block
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelF_3
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelF_3
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.ComplexMultiply
# Loading hdlsrc/fft_st/work.ComplexMultiply
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterlyF_block1
# Loading hdlsrc/fft_st/work.Radix2ButterlyF_block1
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelG
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelG
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.dataMEM_re_4x16b
# Loading hdlsrc/fft_st/work.dataMEM_re_4x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_4x16b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_4x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterflyG
# Loading hdlsrc/fft_st/work.Radix2ButterflyG
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.ComplexMultiply_block
# Loading hdlsrc/fft_st/work.ComplexMultiply_block
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelG_block
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelG_block
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterflyG_block
# Loading hdlsrc/fft_st/work.Radix2ButterflyG_block
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.ComplexMultiply_block1
# Loading hdlsrc/fft_st/work.ComplexMultiply_block1
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_KernelL
# Loading hdlsrc/fft_st/work.RADIX2FFT_KernelL
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.Radix2ButterflyG_block1
# Loading hdlsrc/fft_st/work.Radix2ButterflyG_block1
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.ComplexMultiply_block2
# Loading hdlsrc/fft_st/work.ComplexMultiply_block2
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.RADIX2FFT_bitNatural
# Loading hdlsrc/fft_st/work.RADIX2FFT_bitNatural
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.dataMEM_re_1_64x16b
# Loading hdlsrc/fft_st/work.dataMEM_re_1_64x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_64x16b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_64x16b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.HDL_FIFO
# Loading hdlsrc/fft_st/work.HDL_FIFO
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.HDL_FIFO_ram_128x32b
# Loading hdlsrc/fft_st/work.HDL_FIFO_ram_128x32b
# Refreshing D:/projects/DPI_UVM_FFT_MATLAB_example/hdlsrc/fft_st/work.SimpleDualPortRAM_128x32b
# Loading hdlsrc/fft_st/work.SimpleDualPortRAM_128x32b
# Loading mtiUvm.questa_uvm_pkg
# Loading .\codegen/dll/fft_checker/libfft_checker_dpi.dll
# Loading .\codegen/dll/gen_wave/libgen_wave_dpi.dll
# Loading D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_fft_checker_initialize' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_fft_checker' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_gen_wave_initialize' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ** Warning: (vsim-3770) Failed to find user specified function 'DPI_gen_wave' in DPI precompiled library search list ".\codegen/dll/fft_checker/libfft_checker_dpi.dll .\codegen/dll/gen_wave/libgen_wave_dpi.dll D:/questasim64_10.4c/uvm-1.1d\win64\uvm_dpi.dll ".
# Time: 0 ns Iteration: 0 Region: /top_sv_unit File: top.sv
# ----------------------------------------------------------------
# UVM-1.1d
# (C) 2007-2013 Mentor Graphics Corporation
# (C) 2007-2013 Cadence Design Systems, Inc.
# (C) 2006-2013 Synopsys, Inc.
# (C) 2011-2013 Cypress Semiconductor Corp.
# ----------------------------------------------------------------
#
# *********** 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_MUST_HAVE_CONSTRUCTOR undefined.
# See http://www.eda.org/svdb/view.php?id=3770 for more details.
#
# (Specify +UVM_NO_RELNOTES to turn off this notice)
#
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(215) @ 0: reporter [Questa UVM] QUESTA_UVM-1.2.2
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(217) @ 0: reporter [Questa UVM] questa_uvm::init(+struct)
# UVM_INFO @ 0: reporter [RNTST] Running test fft_test_wave...
# ** Fatal: (vsim-160) fft_pkg.sv(119): Null foreign function pointer encountered when calling 'DPI_fft_checker_initialize'
# Time: 0 ns Iteration: 7 Process: /uvm_pkg::uvm_phase::m_run_phases/#FORK#1847_4f611b3e File: fft_pkg.sv
# Fatal error in Module top_sv_unit at fft_pkg.sv line 120
#
# HDL call sequence:
# Stopped at fft_pkg.sv 120 Module top_sv_unit
# called from fft_pkg.sv 149 Function top_sv_unit/fft_scoreboard::build_phase
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_common_phases.svh 54 Function uvm_pkg/uvm_build_phase::exec_func
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_topdown_phase.svh 111 Function uvm_pkg/uvm_topdown_phase::execute
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_topdown_phase.svh 78 Function uvm_pkg/uvm_topdown_phase::traverse
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_topdown_phase.svh 95 Function uvm_pkg/uvm_topdown_phase::traverse
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_topdown_phase.svh 95 Function uvm_pkg/uvm_topdown_phase::traverse
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_topdown_phase.svh 95 Function uvm_pkg/uvm_topdown_phase::traverse
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_phase.svh 1156 Task uvm_pkg/uvm_phase::execute_phase
# called from D:/questasim64_10.4c/win64/../verilog_src/uvm-1.1d/src/base/uvm_phase.svh 1847 Task uvm_pkg/uvm_phase::m_run_phases
#
# Executing ONERROR command at macro ./sim.do line 30
Как я понимаю, проблема не в самом примере. У меня не получилось запустить ни один из сгенерированных кодов матлаба.
Не знаете, что здесь может быть не так и как это исправить?