0

我有一个与 Vivado HLS (vivado_hls -f run_vhls.tcl) 一起运行的 tcl 脚本。

  • 当我使用内置的Vivado HLS tcl shell运行它时,一切正常。注意:显然外壳是基于 Cygwin 的(当我执行 pwd 时,它给出:/cygdrive/c/etc)

  • 当我使用Cygwin shell运行 tcl 脚本时,它会生成所有 hls 输出,与内置的 VHLS shell 相比有两个警告/错误:

    1. 在运行开始时:

@I [HLS-10] 运行 'C:/Xilinx/Vivado_HLS/2015.2/bin/unwrapped/win64.o/vivado_hls.exe' C:/Xilinx/Vivado_HLS/2015.2/tps/tcl/tcl8.5/tzdata/Europe /伦敦打不开。 对于主机“ee-at3410”上的用户“at3410”

给定路径中没有“tzdata”文件夹。

  1. 最后,当生成所有 hls 输出时,说:

    @I [WVLOG-307] 为“CalcSpatConsts”生成 RTL Verilog。 > @E [HLS-70] 调用 'vivado_hls' 时出错;尝试“-help”。 @I [HLS-112] 总经过时间:262.13 秒;峰值内存使用量:1.59 GB。@I [LIC-101] 签入功能 [ap_opencl]

我在生成文件中调用 vhls 命令

(cd $(dir_impls)/$(tuple) && vivado_hls -f run_vhls.tcl)

并在显示第 2 条消息后很快中断,并显示以下消息:

Makefile:103: 目标“/cygdrive/c/path/latency_values.tcl”的配方失败 make: *** [/cygdrive/c/path/latency_values.tcl] 错误 2

有人知道为什么我只在 Cygwin shell 中看到此消息吗?

问题是什么?我该如何解决?

由于所有 hls 结果都是使用 Cygwin shell 正确生成的,有没有办法告诉 vivad_hls 忽略这个错误?这样我的 makefile 程序就不会中断。

4

1 回答 1

0

如果事情适用于一种解决方案而不是另一种解决方案,并且是由于环境变量,最好是在两种情况下都打印它们并进行比较:

set fd [open "foo.txt" w]
foreach key [array names ::env] {
  puts $fd "$key: $::env($key)";
}
close $fd

foo.txt在一种情况下使用,另一种情况下使用bar.txt。然后,在您的 Cygwin shell 中:

$ sort foo.txt > foo1.txt
$ sort bar.txt > bar1.txt
$ diff foo1.txt bar1.txt

一旦你发现哪些环境变量不同,你可以在启动前在 Cygwin shell 中设置它们来测试vivado_hls

export VARNAME1=VARVALUE1
export VARNAME2=VARVALUE2
...
vivado_hls -f run_vhls.tcl

如果它有效,请调整您的makefile,您将完成。

于 2015-09-29T12:07:10.193 回答