前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PrimeTime DMSA 的目录问题

PrimeTime DMSA 的目录问题

作者头像
icsoc
发布2020-07-06 15:03:45
1.7K0
发布2020-07-06 15:03:45
举报
文章被收录于专栏:ICSOC.TECH

Synopsys 的 Timing sign off 工具 PrimeTime 支持的 DMSA 模式,通过一个 Master Process,在分布式计算平台上启动多个 Remote Slave Process,同时进行多个 scenario 的时序分析,大大加快了 Timing sign off 的速度。

引入 Master Process 和 Slave Process 后,执行目录和输出文件位置是一个比较容易引起混淆的问题。

Invoking Directory of Master Process

代码语言:javascript
复制
unix_shell > pt_shell -multi_scenario

上面的命令启动的就是一个特殊的 DMSA PrimeTime shell。和普通的 PrimeTime shell 相比,它们支持不同的命令,命令输出的内容也不同,帮助命令man的支持程度也不一样。DMSA PrimeTime 启动目录会保存在这个变量 $sh_launch_dir 中,可以供后面的脚本使用,而不受当前目录切换的影响。也可以把这个目录保存在一个变量(如$master_dir)中,然后传递到 slave process 的执行环境中,如下示例。

代码语言:javascript
复制
pt_shell > set master_dir [exec pwd]
pt_shell > create_scenario -specific_variables { master_dir } -specific_data "slave.tcl"

Working Directory

Working Directory 指定了 DMSA 各个 scenario 的工作目录。通常在这个目录下,会自动以 scenario 的名字建立各个 scenario slave process 运行的子目录。下面的命令就是在启动目录下指定一个子目录 work (自动建立) 做为工作目录。

代码语言:javascript
复制
 pt_shell>set multi_scenario_working_directory ./work

Launch Directory of Remote Slave Process

各个 scenario 运行时都以这个子目录(如 ./work/func_wcl_cmax)为当前目录,所以如果在 slave 的脚本中有相对目录结构 ( relative directory structure )的使用,一定要以这个目录为基准目录进行命令的书写。当然有些同学为了方便,使用绝对路径(absolute directory path)也是可以的,不过这是以丧失灵活性为代价的。

write_changes

有些 PT 命令是和目录有紧密联系的。例如这节标题提到的 write_changes,在旧版本中只支持下面的命令格式,这个命令会在每个slave process(scenario)的目录里都写出一个 pt_eco_change.tcl,一模一样的若干份,看着一点都不绿色环保。

代码语言:javascript
复制
pt_shell > remote_execute { write_changes -format icctcl -output pt_eco_change.tcl }

PrimeTime Version P-2019.03write_changes 引入了一些变化。

代码语言:javascript
复制
pt_shell > write_changes -format icctcl -output pt_eco_change_master.tcl

这样 pt_eco_change_master.tcl 只会在 Master Process 的启动目录里写出来一份,看着就不那么浪费了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 icsoc 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Invoking Directory of Master Process
  • Working Directory
  • Launch Directory of Remote Slave Process
  • write_changes
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档