报错内容
# ** Fatal: (vsim-3363) The array length (1) of VHDL port 's_axis_data_tlast' does not match the width (32) of its Verilog connection (8th connection).
# Time: 0 ps Iteration: 0 Instance: /FIR_TB/u_FIR/inst_fft File: ../../../../FIR.srcs/sources_1/new/FIR.v Line: 71
# FATAL ERROR while loading design
# Error loading design
原因
常见情况是在仿真时选择了混合语言,导致的端口位宽不匹配。
根本原因是混合语言库声明顺序不正确。问题可能发生在布尔信号或std_logic_vector信号上,因为VHDL和Verilog之间不存在1:1映射。
解决办法
1.将混合语言换成单一的语言仿真
tools->settings->simulation->simulation language
根据自己使用的语言选择
2.在modelsim命令行使用如下代码,作用是设置Verilog库的优先级高于VHDL
vsim -L work -L unisims_ver -L unimacro_ver -L unisim -L unimacro -L secureip -voptargs=\"+acc\" -t 1ps glbl <filelist>
注意:根据问题描述修改位宽是解决不了问题的,因为问题不是位宽不匹配