修改时间 10-20-2018 04:45 PM
Hi, @juvanto
从报错信息来看是Axi-stream的data端口数据位宽不匹配的问题。你有检查过相关端口吗?
修改时间 10-22-2018 09:41 AM
上述错误所报的positioning.v line 73是对应什么样的代码呢?
能否把示例工程打包上传看一下?
修改时间 10-23-2018 08:42 AM
你发过来的只是顶层及IP wrapper文件,从positioning.v报错部分看,是例化了floating point IP,需要再看一下IP的模型文件。
请将工程打包( File > Project > Archive)上传。如果文件太大,可以去除仿真结果( <project>.sim/sim_1文件夹)再打包,同时打包对话框中去除Include Run Results选项。
修改时间 10-24-2018 09:47 AM
那么你将两个IP的配置文件上传吧,我可以本地尝试重建复现。
FFTprocess1_0.xci
positioning_0.xci
修改时间 10-24-2018 04:18 PM
这两个不是IP Catalog的自带IP,是自己打包生成的,所以还是需要相应的IP文件才能在本地生成。
从EzMove给你发了链接,你注册的邮箱会收到两封邮件,包含地址和临时用户名密码,请登陆上传之前压缩的整个工程。
修改时间 10-26-2018 05:29 PM
@juvanto我在本地打开工程跑仿真获取FFTprocess1_0的文件失败,尝试重新生成这个IP也无法成功。
CRITICAL WARNING: [IP_Flow 19-663] Failed to copy file 'e:/position/testFFT/fftnpo/fftnpo/posi.v', it does not exist.
CRITICAL WARNING: [IP_Flow 19-157] Failed to copy file from 'e:/position/testFFT/fftnpo/fftnpo/posi.v' to '/fftnpo/fftnpo.srcs/sources_1/ip/FFTprocess1_0/e:/position/testFFT/fftnpo/fftnpo/posi.v'.
ERROR: [IP_Flow 19-167] Failed to deliver one or more file(s).
ERROR: [IP_Flow 19-3505] IP Generation error: Failed to generate IP 'FFTprocess1_0'. Failed to generate 'Synthesis' outputs:
是否还有其他自定义打包的IP文件没有包含进来?
positioning_0可以生成。
另外,我看了一下positioning.v,报错的floating point IP输入管脚s_axis_a_tdata由以下内部信号驱动,
reg signed [63:0] p_rec_led_reci_s_data;
但此信号并没有驱动源。
修改时间 10-29-2018 05:24 PM
新发送的工程可以复现此错误。原因是两个自定义的IP中包含的floating_point_0.vhd对于s_axis_a_tdata有不同的位宽定义。
到工程目录的fftnpo1\fftnpo1.sim\sim_1\behav,打开VHDL编译列表testbench_vhdl.prj,
# compile vhdl design source files
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/positioning_0/src/floating_point_0_1/sim/floating_point_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_1/sim/floating_point_1.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/xfft_0/sim/xfft_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_0/sim/floating_point_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_2/sim/floating_point_2.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_3/sim/floating_point_3.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_4/sim/floating_point_4.vhd"
注意到有两个同名的vhdl文件,这两个文件中对报错端口定义是不一样的。
在编译的打印log中,也可以看到相关告警:
INFO: [VRFC 10-307] analyzing entity floating_point_0
WARNING: [VRFC 10-1193] overwriting existing primary unit floating_point_0 [xxx/fftnpo1/fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_0/sim/floating_point_0.vhd:59]
修改时间 11-01-2018 12:12 PM
避免同名的module有不同的定义。
修改时间 11-05-2018 09:00 AM
我的理解是底层的文件名应随IP命名而改变,以区分不同的配置。在你的这个例子里,floating_point_0_1和floating_point_0都对应了同样的文件名floating_point_0.vhd。
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/positioning_0/src/floating_point_0_1/sim/floating_point_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_1/sim/floating_point_1.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/xfft_0/sim/xfft_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_0/sim/floating_point_0.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_2/sim/floating_point_2.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_3/sim/floating_point_3.vhd"
vhdl xil_defaultlib "../../../fftnpo1.srcs/sources_1/ip/FFTprocess1_0/ip/floating_point_4/sim/floating_point_4.vhd"
可以看到,其他的IP都有对应同名的文件名,比如floating_point_1 --> floating_point_1.vhd。
建议均改为完全不同的后缀名试一下。