首页 > 解决方案 > 如何使用幽灵运行多个sp文件

问题描述

我有一堆.sp需要用 Cadence Spectre 模拟的文件。而不是run spectre——

run spectre 1.sp->exit->run spectre 2.sp->exit->...

- Spectre 中是否有某种批处理模式,以便我可以启动 Spectre 一次并按顺序执行这些任务(持有 Spectre 并运行下一个任务)?我怎样才能做到这一点?

我需要这个,因为每次启动 Spectre 时都需要检查许可证并做其他事情,这会浪费不必要的时间。

提前致谢。

错误信息:

invalid command name "if{!0}"
while executing
"if{![eof $log]} {
    puts [gets $log]
  } else {
    close $log
    incr event_flag
  }"
    (procedure "GetData" line 3)
    invoked from within
"GetData file3"
can't wait for variable "event_flag": would wait forever
    while executing

标签: tclcadencecadence-virtuoso

解决方案


您可以在工具交互模式下使用 open 命令

#!/bin/sh  
# \
exec tclsh "$0" ${1+"$@"}

set event_flag 0 

proc GetData {log} {
    global event_flag
    if {![eof $log]} {
        puts [gets $log]
    } else {
        close $log
        incr event_flag
    }
}

# Run the following in loop   
set log [open "|spectre 1.sp"]
fconfigure $log -blocking 0
fileevent $log readable [ list GetData $log ]
vwait event_flag

推荐阅读