当前位置: 首页 > news >正文

SDC命令详解:使用source命令读取脚本

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

指定回显命令

指定回显命令返回值

指定发生错误时继续执行

sh_continue_on_error(默认值为true)

sh_script_stop_severity(默认值为none)

指定文件名

其他相关变量

sh_command_abbrev_mode(默认值为Anywhere)

sh_command_abbrev_options(默认值为true)


source命令用于读取一个Tcl脚本,并在当前shell环境执行(其实它并不是一个SDC命令,归为此类只是为了方便管理),该命令相对标准Tcl命令source添加了一些功能增强选项。

本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。source命令的BNF范式(有关BNF范式,可以参考以往文章)为:

source [-echo] [-verbose] [-continue_on_error] file //注:该命令的选项和参数顺序任意

指定回显命令

默认情况下,Design Compiler中的source命令与标准Tcl命令一样,会回显其返回值,即Tcl脚本中最后一条执行命令的返回值(如有return语句,则以该语句为准)。如果指定了-echo选项,则在执行Tcl脚本中的命令时,会将其回显,如下所示。

dcnxt_shell> source test.tcl 1 dcnxt_shell> source test.tcl -echo set a 1 # THIS IS A COMMENT set b 1 1 dcnxt_shell>

需要的是:对于Tcl脚本中的注释(#),如果指定了-echo选项,也会回显;对于命令中的变量置换($)、命令置换([])等操作,如果指定了-echo选项,会保持其置换前的形式;回显是按实际执行情况进行的,即如果Tcl脚本提前终止,则后续命令不会被回显。

指定回显命令返回值

-verbose选项指定在Tcl脚本中的命令执行后,回显其返回值,如下所示。-verbose选项可以配合-echo选项一起使用。

dcnxt_shell> source test.tcl -verbose 1 1 1 dcnxt_shell> source test.tcl -verbose -echo set a 1 1 # THIS IS A COMMENT set b 1 1 1 dcnxt_shell>

使用dc(nxt)_shell -f <file>的方式执行Tcl脚本时,相当于启动dc(nxt)_shell后执行source -echo -verbose <file>命令。

指定发生错误时继续执行

-sh_continue_on_error选项用于指定在命令执行出现语法错误(如CMD-005和CMD-010错误)和其他语义错误(实际上,如果sh_script_stop_severity变量为none,非致命的语义错误不会导致Tcl脚本执行终止)后继续执行。

sh_continue_on_error(默认值为true)

该变量用于指定在命令执行出现语法错误和其他语义错误(实际上,即使sh_continue_on_error变量为false,如果sh_script_stop_severity变量为none,非致命的语义错误不会导致Tcl脚本执行终止)后继续执行。

建议使用source命令的-continue_on_error选项,而不是使用此变量,因为该选项只适用于单个Tcl脚本,而不是整个会话。

sh_script_stop_severity(默认值为none)

该变量只在sh_continue_on_error设置为false时生效。当其设置为E时,如果出现了任何错误,终止Tcl脚本执行;当其设置为W时,如果出现了任何警告或错误,终止Tcl脚本执行。

指定文件名

文件名可以是完全展开的文件名,也可以以波浪号~(家目录)开头。在正常情况下,仅根据你输入的内容查找文件。但是,如果系统变量sh_source_uses_search_path设置为true,则会根据search_path变量设置的路径来查找文件。source命令支持多种文件格式,可以是简单的ASCII脚本文件、使用gzip压缩后的ASCII脚本文件。

关于search_path变量的更多信息,可以参考下面的博客。

Design Compiler:搜索路径search_path变量详解https://blog.csdn.net/weixin_45791458/article/details/143085356?ops_request_misc=elastic_search_misc&request_id=cfaa08ac2e40826b6e046b794c56702f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~ElasticSearch~search_v2-1-143085356-null-null.nonecase&utm_term=search_path&spm=1018.2226.3001.4450

其他相关变量

sh_command_abbrev_mode(默认值为Anywhere

该变量用于设置命令名简写模式,作为一种便利功能。如read_file命令可以简写为read_f,只要其代表唯一的命令名即可。

脚本文件中不应使用任何命令或选项的缩写形式,因为这些缩写在后续版本中可能会发生变化,从而导致脚本不兼容或出错。

尽管该变量的默认值是Anywhere,但建议在配置文件中将其设置为Command-Line-Only。同时,也可以将其设置为None,以完全禁用命令缩写功能。

sh_command_abbrev_options(默认值为true)

该变量用于设置选项简写模式,作为一种便利功能。如read_file -format verilog命令可以简写为read_file -f verilog,只要其代表唯一的选项即可。

脚本文件中不应使用任何命令或选项的缩写形式,因为这些缩写在后续版本中可能会发生变化,从而导致脚本不兼容或出错。

尽管该变量的默认值是true,但建议在将其设置为false,以完全禁用选项缩写功能。

http://www.cnnetsun.cn/news/3162493.html

相关文章:

  • topics in life
  • 如何利用downr1n实现iOS设备有线降级与越狱的完整指南
  • C语言 结构体(上)
  • 跨平台macOS组件下载神器:gibMacOS完全指南
  • 深耕 XR 安卓底软开发:Framework 定制、渲染优化与系统稳定性实战
  • TVA对具身智能领域的核心技术支撑(20)
  • 不同进程的线程切换**不一定引起进程切换**,但**必然涉及进程上下文切换(即进程切换)**——这里需要明确概念辨析
  • CCB(Change Control Board,变更控制委员会)是一个由项目干系人代表组成的正式团体
  • 智慧职教自动化学习助手:让在线课程学习更高效
  • 如何高效使用Python无人机地面站:MAVProxy开源工具实践指南
  • 告别传统投屏:scrcpy如何解决Android设备控制的三大痛点
  • Qwen Code新特性来袭:终端支持语音对话
  • TVA推动物理AI的具身智能革命(9)
  • Kubernetes 系列【4】基础概念
  • 医学图像分割神器TotalSegmentator:三步掌握100+解剖结构自动识别
  • AI智能体开发指南:从核心概念到实践应用
  • 开源B站视频下载器:轻松获取高清内容的Python解决方案
  • 告别手动对齐!用UvSquares插件3分钟搞定Blender UV网格重塑
  • 百万瓦的电台,几秒钟换一个频率——从Aspidistra到中亚的发射机房,一段高功率短波的快调谐往事
  • 从零开始学AI:小白程序员必备收藏指南,快速掌握大模型实战技能
  • 收藏!小白程序员必看:揭秘AI大模型记忆管理的真相与优化方案
  • 终极便携式Windows C/C++开发工具链:w64devkit完全指南
  • C++语言基础3:用户自定义类型“class”详细讲解
  • 企业级 MCP 网关:统一授权、限流、协议转换与监控的架构与实现
  • WebPShop:Photoshop专业WebP格式支持的终极解决方案
  • 终极指南:如何免费下载大疆无人机历史固件实现完全控制
  • VLC Android电视版完全指南:从零开始打造你的智能电视媒体中心
  • 为什么我的 AI 创课助手不会写糊——SDD 把追问规范长期挂载、TDD 把每一个 JSON 字段都验证
  • Kimi LeetCode 3464. 正方形上的点之间的最大距离 Python3实现
  • 深度学习项目复现实战:从GitHub代码到可运行结果的系统方法论