TclOK

仅仅因为 Tcl 脚本 / SDC / UPF 里的一处语法错误,浪费了数小时的 EDA 工具运行时间 ?

困扰已久的问题,交给 TclOK 来解决

% tclok your_top_script.tcl -autorun your_eda_tool -your_eda_tool_options ...
```goat .---------. | 启 动 | '----+----' | v . / \ / \ / \ .--------------------------. / T c l \ 发 现 T c l 语 法 错 误 | 报 告 T c l 错 误 信 息 | + +-------------------------->| | \ O K ? / | 不 启 动 E D A 工 具 | \ / .--------------------------. \ / \ / . | T c l 检 查 通 过 v .--------------. | 正 常 启 动 | | | | E D A 工 具 | '--------------' ```

已经有很多 Tcl 检查器了,TclOK 有什么独特优势?

  • 传统 Tcl 语法检查器只进行 “静态”检查
    • 由于 Tcl 命令没有被实际 “执行”,导致大多数实际运行时的错误无法被发现 🙄
    • 可能误报实际运行时不存在的错误
    • SDC 支持:仅当厂商提供插件时
    • UPF 支持:不支持
    • 层次化检查:无
  • TclOK 采用 “静态+动态” 检查
    • 静态检查通过后,TclOK 还会 “虚拟执行” 脚本中的 Tcl 命令
    • 精准报出1实际运行时会遇到的错误 🤠
    • SDC 支持:原生支持
    • UPF 支持:原生支持
    • 层次化检查:有
    • 更多高级调试功能2

实际案例?

set a 123
if $a {
    puts $a $a $a;        # 内联变量 $a 后 puts 参数错误
}
source bad_filepath.tcl;  # 文件路径错误
Tcl 脚本 任意 EDA 工具 TclOK        其他常见 Tcl 检查器
第 2 行:expr 省略花括号 通过 通过 可能报警告(Noise)
第 3 行:变量内联后错误 报错 / 停止 报错 可能通过(Error Missed)
第 5 行:文件路径错误 报错 / 未被执行 报错 可能通过(Error Missed)

检查报告

视频演示


现在就免费下载试用:


  1. 实际错误发现率与未定义命令的数量有关;用户可通过定义命令约束进一步提升检查精确度 ↩︎

  2. 支持表达式分步求值、循环展开、用户自定义 proc 内部单步调试、虚拟执行至指定行数时打印出指定变量的值等 ↩︎