我写了个tcl脚本,目的是想把某个文件的一行中的关键字替换一下,脚本如下:
set change_hmac_netlist 1
set change_file "hmac_top_syn.v"
set new_file_0 "./output/hmac_top_0_syn.v"
set new_file_1 "./output/hmac_top_1_syn.v"
if {${change_hmac_netlist}} {
echo "" > ${new_file_0}
echo "" > ${new_file_1}
set fp [open ${change_file} r]
set write_enable 0
while {[gets ${fp} line] >= 0} {
set print_line_0 ${line}
set print_line_1 ${line}
if {[string first "module hmac_top" ${line}] >= 0} {
set write_enable 1
set print_line_0 [string map "hmac_top hmac_top_0" ${line}]
set print_line_1 [string map "hmac_top hmac_top_1" ${line}]
}
echo ${print_line_0} >> ${new_file_0}
if {${write_enable}} {
echo ${print_line_1} >> ${new_file_1}
echo ${print_line_2} >> ${new_file_2}
}
close ${fp}
}
}
可是执行时出现如下错误信息:
Error: can not find channel named "file11"
Use error_info for more info. (CMD-013)
error_info
Extended error info:
can not find channel named "file11"
while executing
"gets ${fp} line"
invoked from within
"if {${change_hmac_netlist}} {
echo "" > ${new_file_0}
echo "" > ${new_file_1}
set fp [open ${change_file} r]
set write_enable 0
while {..."
-- End Extended Error Info
不知道是哪里有问题,请大侠们指教!!!多谢!