在Cygwin运行Vivado HLS
我有一个用Vivado HLS运行的tcl脚本(Vivado_HLS-f run_vhls.tcl)在Cygwin运行Vivado HLS,cygwin,xilinx,http-live-streaming,vivado,Cygwin,Xilinx,Http Live Streaming,Vivado,我有一个用Vivado HLS运行的tcl脚本(Vivado_HLS-f run_vhls.tcl) 当我使用内置的Vivado HLS tcl shell运行它时,一切正常。 注意:显然shell是基于Cygwin的(当我做pwd时,它给出:/cygdrive/c/etc) 当我使用Cygwin shell运行tcl脚本时,它生成所有hls输出,与内置VHLS shell相比,有两个警告/错误: 在运行开始时: @I[HLS-10]正在运行 'C:/Xilinx/Vivado_HLS/2
- 当我使用内置的Vivado HLS tcl shell运行它时,一切正常。 注意:显然shell是基于Cygwin的(当我做pwd时,它给出:/cygdrive/c/etc)
- 当我使用Cygwin shell运行tcl脚本时,它生成所有hls输出,与内置VHLS shell相比,有两个警告/错误:
- 在运行开始时:
(cd $(dir_impls)/$(tuple) && vivado_hls -f run_vhls.tcl)
在显示第2条消息后,它很快就会中断,并显示以下消息:
Makefile:103:target'/cygdrive/c/path/latency_values.tcl'的配方
生成失败:**[/cygdrive/c/path/latency_values.tcl]错误2
有人知道我为什么只在Cygwin外壳中看到这个消息吗
有什么问题吗?我该怎么解决
由于所有hls结果都是使用Cygwin shell正确生成的,有没有办法告诉vivad_hls忽略此错误?这样我的makefile过程就不会中断。如果使用一种解决方案而不是另一种解决方案,并且是由于环境变量,最好是在这两种情况下打印它们并进行比较:
set fd [open "foo.txt" w]
foreach key [array names ::env] {
puts $fd "$key: $::env($key)";
}
close $fd
在一种情况下使用foo.txt
,在另一种情况下使用bar.txt
。然后,在Cygwin外壳中:
$ sort foo.txt > foo1.txt
$ sort bar.txt > bar1.txt
$ diff foo1.txt bar1.txt
一旦找到了不同的环境变量,就可以在启动vivado_hls
之前在Cygwin shell中设置它们进行测试:
export VARNAME1=VARVALUE1
export VARNAME2=VARVALUE2
...
vivado_hls -f run_vhls.tcl
如果成功,请修改您的makefile,您就可以完成。第二个错误可能是第一个错误的结果:Vivado_hls记录发生了错误,并将第二个错误作为摘要发布。第一个错误可能是由于您的语言设置。请尝试使用LANG、LC_CTYPE…环境变量。可能吧。谢谢您的介绍t、 我该怎么做?在环境变量列表中(用户和系统),我没有你提到的两个。