我在cygwin下以TCL模式运行Vivado并注意到我没有得到任何输出以回复我输入的一些命令。
根据我的判断,不返回任何内容的命令似乎是非内置命令或需要操作系统交互的命令
请考虑以下示例:
$ vivado -mode tcl
puts HelloTcl
****** Vivado v2015.4.2 (64-bit)
**** SW Build 1494164 on Fri Feb 26 04:18:56 MST 2016
**** IP Build 1491208 on Wed Feb 24 03:25:39 MST 2016
** Copyright 1986-2015 Xilinx, Inc. All Rights Reserved.
HelloTcl
puts 2
2
expr 1 + 2
puts 5
5
help synth_design
read_vhdl
ERROR: [Common 17-163] Missing value for option 'files', please type 'read_vhdl -help' for usage info.
package require Tcl
pwd
exit
exit
INFO: [Common 17-206] Exiting Vivado at Fri Jul 14 13:44:28 2016...
未返回预期输出的命令是expr 1 + 2
,help synth_design
和pwd
(可能还有package require Tcl
)。
情况与“正常”tclsh相同。
谁能帮助我理解这种行为的原因是什么?
我的操作系统是Win7 Pro 64位。使用cmd或Powershell一切正常。在Linux下的终端中运行Vivado时,行为也是预期的。
答案 0 :(得分:1)
似乎vivado只是在您明确要求时才写出值,这与标准的交互式tclsh不同,也写出每个命令的结果(前提是它不是空的)串)。您需要编写明确的puts […]
。
puts [expr 1 + 2]
puts [pwd]
只要你知道它,我想这不是太大的交易。只是有点烦人。