我在 Linux 上,我正在使用questasim 2012.2b
. 我用VHDL写了以下内容:
dsp: entity work.dsp_c -- a*b+c, 12bit
port map
(
clk => clk_i,
a => a_dsp,
b => b_dsp,
c => c_dsp,
p => p_dsp -- full precision
);
每次我尝试用 questasim 模拟上述内容时,它都会在编译时抛出一个错误:
# Error in macro ./mkProject.tcl line 11
# /software/CAD/Mentor/2013_2014/Questa/HDS_2012.2b/questasim/linux_x86_64/vcom failed.
# while executing
# "vcom hdl/calc.vhd"
# quit
# ** Error: Library xbip_dsp48_macro_v3_0 not found.
# ** Error: Unknown identifier "xbip_dsp48_macro_v3_0".
# ** Error: VHDL Compiler exiting
它指的是上面失败的代码。
在翻找时,我确实找到了一个名为 : 的文件dsp_c.vhd
,它看起来像是该.xci
文件的模拟包装器。
然后我尝试找到该库,我找到了一个文件夹xbip_dsp48_macro_v3_0
,里面有两个文件:xbip_dsp48_macro_v3_0.vhd
xbip_dsp48_macro_v3_0_vh_rfs.vhd
所以我也将那些包含在项目中,它给了我错误:
xbip_dsp48_macro_v3_0.vhd(46)): in protected region
知道可能出了什么问题或我可能需要包括什么吗?我的questasim可能太旧了吗?
更多信息
尝试通过 tcl 以这种方式获取编译文件:
compile_simlib -simulator questa
生成所有 IP 及其相应编译块的文件夹。现在我虽然最初可以添加到.dep:
src ../cgn/dsp_c/dsp_c.vhd
我在运行 make project 时得到了这个:
dsp_c/dsp_c.vhd(56): Library xbip_dsp48_macro_v3_0 not found.
所以我尝试包括库:
src ../cgn/dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0_vh_rfs.vhd
src ../cgn/dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0.vhd
说它受到保护:
dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0.vhd(46)): in protected region.
更多更多信息
我让 vivado 生成位于文件夹 dsp_c 中的库:
dsp_c.dcp dsp_c_funcsim.vhdl dsp_c_stub.v dsp_c.xci synth xbip_dsp48_wrapper_v3_0 xbip_utils_v3_0
dsp_c_funcsim.v dsp_c_ooc.xdc dsp_c_stub.vhdl dsp_c.xml xbip_dsp48_macro_v3_0 xbip_pipe_v3_0
我的 tcl 脚本如下所示:
source firmware/cfg/lib_mappings.tcl
vlib work
vcom firmware/hdl/mydsp_c.vhd
结果
修改为:
vlib work
vlib dsp_c/xbip_dsp48_macro_v3_0
vmap dsp_c/xbip_dsp48_macro_v3_0
然后跑了...
# do mkProject.tcl
# Modifying modelsim.ini
# ** Warning: (vlib-34) Library already exists at "work".
# ** Warning: (vlib-34) Library already exists at "dsp_c/xbip_dsp48_macro_v3_0".
# Reading modelsim.ini
# "dsp_c/xbip_dsp48_macro_v3_0" maps to directory ./dsp_c/xbip_dsp48_macro_v3_0. (Default mapping)
..........
# -- Loading package NUMERIC_STD
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(56): Library xbip_dsp48_macro_v3_0 not found.
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(57): (vcom-1136) Unknown identifier "xbip_dsp48_macro_v3_0".
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(59): VHDL Compiler exiting
# ** Error: vcom failed.