You are on page 1of 291

声 明:由于本人英文水平有限,文中翻译如有不妥之处,请参照原英

文手册,本翻译仅供参考。另外,本人从事数字后端,欢迎志同道合的

朋友一起交流学习。

Lynx 设计系统介绍

Lynx 设计系统是一个为实现自动和交互式管理设计的芯片设计环境。它集成
设计方法和工具,将其融入到一个经流片验证的 RTL-to - GDSII 的生产流程—从综
合(SYN)、设计计划(DP)、布局布线(PNR)和设计完成到流片(tape-out)。

Lynx 设计系统包括:
 经流片验证的生产流程,集成 RTL-to - GDSII 设计实现的业界标准设计方法
 易于使用的图形界面,用于设置和管理设计项目、程序块、数据和变量可视化
的运行系统管理器( RTM )
 流程编辑器(flow editor)。用于创建,编辑和交互管理的图形化界面。
 执行监视器(Execution Monitor)。调用工具,执行监控和自动化执行流程步骤和
任务交互的图形界面
 管理舱(Management Cockpit)。用于分析和报告设计流程的执行情况,及全面指
标(comprehensive metric)的报告组件。
 自适应资源优化器(ARO)。利用基于历史数据的动态优化分配工作,计算 farm
资源的队列引擎
 技术组件。用于库中工艺节点的配置、质量保证和资源优化的可选附加组件。
 工艺节点配置插件。利用 Foundry 指定工艺节点配置脚本和流程文件,来迅速
设置和配置生产流程。
 质量保证(Quality Assurance)插件:数据检测和整体检测(Integration Check)。利
用自动的库质量保证脚本来配置和提前测试库和技术文件。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
LYNX 设计系统允许设计工程师,从 cohesively-knit 环境中实现独特的项目设
计,同时满足特定工具的能力、方法和第三方工具的集成需求。例如,利用 LYNX
设计系统,能够迅速启动设计,通过仿照现有块或模版创建一个模块。能为你的设
计快速配置如 DC Ultra,ATPG 等 synopsys 工具,用于综合或 DFT。对于设计规划
(DP),你可以为多个电压域或虚拟 flat 设计配置设计流程。在布局布线阶段,可以
进行信号完整性规避、DFM 和 DFY 优化,在芯片完成阶段,可以实现 MCMM sign-
off 和先进的形式化验证。总之,你能抓取关键的设计执行指标到报告中,用于分
析和设计优化。LYNX 设计系统包括内建的支持同步建模分析和在整个 sign-off 流
程,包括静态时序分析、形式验证和 ATPG,以及可靠性分析,如对电源和信号网
络 EM 和 IR Drop 分析。

利用 LYNX 设计系统,可以:
 设置和快速启动设计,用于 RTL-to - GDSII 生产流程,
 可视化地创建、配置和管理设计
 交互式创建、配置和编辑流程
 交互式执行,管理和监控步骤和任务
 通过 GUI 或 CLI 设置和管理变量
 完成模块级执行、运行时间数据管理、流程调试和监控
 分析设计流程执行指标
 加快项目启动和嵌入技术指定检测

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
特点和优势
Lynx 关键的优势包括:
实现
 全芯片层次化的 RTL-to - GDSII 的生产流程
 Synopsys Galaxy 实现平台参考方法学
 设计优化的内建方法学,包括功耗、面积和性能等的优化
 预验证的标准单元库和代工厂技术数据,利用技术插件加快项目启动
 层次化流程支持
 决策任务支持
 在基于用户定义标准流程的不同分支中选择
 内建支持恢复或重建设计数据
 特定工艺设置,指导改善代工
 领先的语言和测试平台,并行的验证流程(VHDL、RVM 等)
易于使用
 GUI 和 CLI 模式
 直观的可视化技术,容易用于流程创建、管理和项目报告
 基于 XML 的流程执行结构
 基于 TCL 的环境-为了减少复杂度,没有 makefile 或环境变量
 在运行流程前不需要设置 shell 和环境变量
 安装时无需指定 Tech-lib
 基于 GUI 的变量管理
 通过运行系统管理器编辑系统变量
 通过用户参考分组变量
 直观的创建变量定义
 错误检测
 版本控制支持
 流程输出
 工具的互操作性
 简化关键流程行为,例如设置工作环境,管理工作执行顺序,指定 licence 需求

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
结 构
Lynx 是一个包含功能性结构的模块化系统,自定义组建包含生产流程、RTM、
ARO 和为工艺节点配置和库质量保证的技术插件

在 Lynx 设计系统的安装过程中,利用 synopsys 的标准安装,这些组建被放到


一个由变量$LYNX_HOME 指定的位置。$LYNX_HOME 包括:
 admin/: 证书和系统文件
 flow/: Lynx 设计系统的生产流程文件,包含相同的设计
 plugins/: 为工艺节点配置和库质量保证的技术插件,包括验证脚本,如数据
校验、整体检查、特定工艺技术插件
 mc/: 管理舱文件
 rtm_shell/:运行系统管理器文件
在设计工程师利用 Lynx 设计系统启动时,这些组件被从中央位置向个人工作
区域调用或复制,设计项目是通过安装在生产流程中各个工作区内初始化的。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
生产流程
Lynx 设计系统生产流程是四步 RTL-to-GDSII 流程, 包括多种实现、分析、
流程配置和数据管理任务。
实现任务是关键设计行为, 如 elaboration、电源插入和布线。
分析任务包括设计检查和报告, 如静态时序分析(STA) 或形式化验证。
流程配置任务需参阅可选实施方式,确定设计的可行性。

数据管理任务在生产流程的步骤中,调用数据的设置和恢复
在 Lynx 设计系统中, 四步 RTL-to-GDSII 生产流程通过在 XML 文件中可重
配置定义,被明确地实现为分层抽样设计(dtop)项目。XML 文件定义任务的脚本,
参数,并通过调用设计工具来执行任务所需的依赖关系的互连,而这又是通过在
TCL 中定义的任务脚本驱动的。所有的 constituent 流程,不管是实现流程还是分析
流程,都在 XML 文件中。可以通过运行系统管理器中的流程编辑器,利用图表查
看和配置 XML 文件。通过执行监视器执行、监控和调试。

当安装流程初始化一个项目时,Lynx 设计系统的生产流程被从中央位置复制
到个人工作区域。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Lynx 设计系统的生产流程包括:
 综合 (SYN)
 设计计划 (DP)
 布局布线 (PNR)
 设计完成 (FINISH)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
综合 (SYN)
Lynx 设计系统综合步骤在应用设计、功耗和物理约束后,将 RTL 代码调用编
译成完全映射的门级网表。它支持单步将 RTL 加载到工具、自上而下的合成、自
下而上的合成与块级网表以及抽象的时序模型,子层模块利用 LM 流程或结合在顶
层设计中所产生的网表或 ddc 文件综合到门级,子层模块综合到门级以及顶层设计
的 ILM。

主要任务包括:
实现
 RTL 到 GTECH
 时钟门插入
 应用设计、电源和物理约束
 利用 UPF 和 DCT 支持,将 GTECH 编译到门级
 为扫描和扫描压缩等插入 DFT

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
分析
 形式验证
 多场景静态时序分析
 ATPG 模式生成和仿真
流程配置
 设计探索
 数据管理
 建立,促进和恢复数据管理

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设计规划 (DP)
Lynx 设计系统的设计规划步骤涉及平面规划的创建和电源管理。支持模块或
芯片级的设计,自底向上的平面规划(预先设计的 IP 块在平面规划时被合并到顶层),
自顶向下的平面规划(软核在被重新整合在设计的顶层之前,是被 PNR 单独处理过,
如果需要的话可以在软核中重新定义平面规划)

关键任务包括:
实现
 创建平面布局
 DFM 单元,endcap 单元,welltie 单元,dcap 单元和 spare 单元的插入
 电源插入
 引脚分配
 电源连接验证
 布线 halos 插入
 端口保护二极管插入
 计划组转化为软宏(Conversion of plangroups to soft macros)
 DFT 优化
 HFNS
 软核引脚分配
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 时序优化
 预算
 ODL 专用处理
 MIM 专用处理
分析
 多模式下的 DRC 检查
 形式验证
流程配置
 为设计规划创建快速时序模型
 从源格式创建 milkyway 库
 设计探索
数据管理
 建立,促进和恢复数据管理

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
布局布线 (PNR)
Lynx 设计系统布局布线步骤,涉及设计的平面规划到时序收敛的版图

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
主要任务包括:
实现
 布局
 布局和前时钟树优化
 Tie 单元插入
 端口保护二极管重新插入
 时钟树综合
 CTS、CTO 和后 CTO 优化
 ICG 分割
 布线
 初始具体布线
 为 MV 设计的辅助电源布线
 CTS 布线
 信号布线
 后布线优化
 时钟屏蔽
 线扩展或加宽
 接触孔优化
 最终时序清理
 分析
 信号 EM 分析和修复
 分析和修复时钟网络
 利用 Formality 进行形式验证
 为多会话开展静态时序分析
 流程配置
 设计勘查
 数据管理
 建立,促进和恢复数据管理

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设计完成
Lynx 设计系统的设计完成步骤涉及到后处理的版图,以符合设计规则和生成
GDSⅡ文件。

关键任务包括:
实现:
 Filler 单元的插入
 DRC 自动修复
 金属填充插入
分析
 形式验证
 多 scenarios 的静态时序分析
 ATPG 模式生成和仿真
 功耗验证
 物理验证
数据管理
 建立,促进和恢复数据管理

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行系统管理器( RTM )
RTM 是安装,配置和管理通过 RTL 到 GDSII 的生产流程重要的接口。它包括
用于创建、编辑和管理流程的流程编辑器(Flow Editor)、调用工具和自动化执行的
步骤和任务的执行监视器(Execution Monitor)。它为设置和管理设计模块及相关变
量提(system、common 和模块变量编辑器)供了可视化界面。RTM 包含一个可选的
命令行界面来执行 Tcl 命令。

使用 RTM ,你可以同时在同一个工作区管理多个设计。在项目管理层面,内
置的版本控制功能允许大的设计,可以在多个站点和多个用户传播,使多用户,多
站点的操作成为可能。RTM 被高度配置以能够在任何类型的计算机环境下使用,
它包含 out-of-the box,支持最常见任务分配系统,如 LSF 和 GRD。它支持工具加
载系统,如模块文件,或者可以使用环境设置,或根据需求配置第三方工具。
在 Lynx 设计系统安装过程中,RTM 被安装在计算机环境中,安装该生产流程
后,它可以远程调用个人用户工作区。
流程编辑器(Flow Editor)
流程编辑器是一个直观,易于使用的界面,用于交互式地创建,编辑和管理设
计流程。它包括容易配置和互连的预定义任务对象,来定义设计过程和数据流程的
大小和方向。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
关键预定义任务对象包括:
 流程实例(Flow Instance):一个或多个互连对象的实例
 工具任务(Tool Task):运行任务脚本,调用工具
 Joiner Task:单目标调用多个任务的虚拟任务
 分支任务(Branch Task):根据条件执行任务的四支决策任务;例如在设计示例
中的 manage_data 和 configure_dp 任务。
 关联组(Connect Group):任务的执行列表(如流程,模块或分析任务)
 多任务(Mux Task):提供流程交替和并联路径选择的流程通路转换器
 Generator Task:数据生成任务;例如设计示例中的 STA-Model 或者 StarRC–
SPEF
 Note:需要添加其他说明
这些对象使用 Connectors 互连,这代表了流程的顺序和方向。 流程编辑(Flow
Editor)器包含了模块流程管理器(Block Flow Manager),他提供了一个图形界面,用
于管理制定模块所有组件流程。
流程定义被存储在一个或多个流程文件中。流程以一个 XML 格式文件,定义
任务脚本的互连、任务脚本参数和任务相关性。在层次的流程中,流程文件定义了
流程之间的互连,执行监视器(Execution Monitor)执行在 XML 文件中定义的流程。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
执行监视器(Execution Monitor)
执行监视器提供了可视化界面调用,控制和监控流程执行的状态。使用执行监
视器,可以根据多步或多任务的标志和目标调用一个完整的流程,或者同时调用流
程中的独立任务。你可以同时运行多个流程,或同时运行单个流程的多个会话。当
任务执行时,可利用颜色指示实时检查流程的状态。

对于运行在 RTM 的每个设计,你可以调用执行监视器来查看相关的任务列表。


它包括交互方式运行任务调试功能、显示所有特定任务被执行时所运行的脚本的分
层视图的脚本示踪功能。.pass 和.fail 文件报告显示任务的执行,脚本的 sourcing,
进程的调用。至于.fail 文件存放生成的特定错误。View Files 选项可以用来查看特
定任务的 HTML 报告、设计以及 RTM 文件。另外,也可以在 CLI 中通过 TCL 命
令使用执行流任务。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
管理舱(Management Cockpit)
管理舱是查看、分析和报告 Lynx 设计系统的 RTL - to-GDSII 流程执行的指标
报告系统,负责收集、处理和存储设计流程执行过程中被 Lynx 设计系统生成的指
标,使它们可用于查看、分析和生成报告。

利用管理舱可以:
 查看 Lynx 设计系统的实时指标, 如面积、运行时、内存、最坏的 slack 等
 在 Lynx 设计系统的项目、模块、步骤和任务之内或之间,通过设置基准目标
指标,进行比较和分析。
 生成表格或指标的图形化报告。例如:
 工具和 License 使用情况, 它提供了任务和工具的使用表格视图(license)
 Flow Snapshot,它提供任务与用户定义的指标的逐步表格视图
 流程执行文档,它提供了一个 Gantt 视图的流程进度
 运行时间分析,提供一段时间资源的图形表示(工具、步骤、任务或模块)
 趋势分析,它提供了跨时间的项目关键指标的性能趋势
 Metric Vs Metric,提供相互间某一指标的性能趋势对比
 Dashboard Summary,它提供了跨项目、流程、步骤、任务和用户的自定义指
标表格视图
 ARO 报告,它提供计算集群的运行信息

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 记录(Record),提供完整的工作和 ARO 指定信息
 趋势(Trend),提供内存和运行时间详细信息
 相关性(Correlation),提供了整体 ARO 性能状态
 根据事件或时间自动生电子邮件报告
 基于项目或用户组织并保存在本地报告,对服务器进行网络访问。
 通过基于特权的目录访问、电子邮件或独立于平台的门户网站的共享报告

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
自适应资源优化(APO)
Lynx 设计系统包括计算 farm 资源优化引擎 ARO,可在基于历史队列的数据的
基础上,动态优化工作分配参数。ARO 收集指标,如实际和要求的运行时间或内
存的消耗,然后用指标来优化后续运行。例如,ARO 可以自动修改初始工作的内
存请求,以优化增加或减少分配的集群存储。ARO 可与 LSF、SGE 和 UGE 一起工
作,并且可适于任何一种特有环境。

使用 ARO ,可以通过任务下面优化执行:
 为每个任务预测预期的资源需求
 根据以往工作执行指标,修改工作分布参数,如所需的内存和估计的运行时间
 根据上述预期要求,添加确定性和保守缓冲
 基于优化运行时间或内存,调整任务提交队列
ARO 包括自适应优化器和自适应均衡器模块。在提交到 Job Scheduler 之前,
ARO 自适应优化器模块使用从数据库中复制的优化信息缓存。自适应均衡器工作
在后台,用于分析已完成的工作和创建优化工作需要的自适应优化结果。自适应均
衡器访问的工作信息(job information)和其他指标都存储在 ARO 指标数据库,用于
分析数据。
资源优化流程
随着 ARO 安装在计算环境中,工作排队系统(LSF 的 aro_sub_lsf 和 GRD 的
aro_sub_grd)周围的 wrapper 被调用,而不是直接 bsub 或 qsub 命令。Wrapper 传递
job name、初始内存及队列中的请求到 ARO 进程。ARO 进程检查是否作业历史记
录存在优化。如果有足够的历史,ARO 进程提供一个优化的内存/队列值回到
aro_sub,反过来优化值替换到原始 bsub 或 qsub 命令。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
在作业结束后,作业使用的实际内存工具被捕获并传送到 ARO 进程。ARO 进程会
周期性的触发一个脚本,捕获关于最近已完成的所有工作排队系统作业的信息。这
些信息包括 LSF/GRD 专用信息,如从 LSF / GRD 的视角内存使用情况,挂起的时
间。从历史和最新运行的 Job information,结合解析的脚本信息,为每一个 Lynx job
输出创建一个单一的 ARO 指标文件。这些信息被送到 MC Getter 并保存在数据库
服务器的 ARO 数据库中。
ARO 报告
安装 ARO 功能的 Lynx 设计系统为管理舱提供计算集群运行时间信息,生成
ARO 报告。

这些报告是基于由 Lynx 设计系统运行系统管理器生成的指标。根据 ARO 报


告,你可以安排和适当的运行工具改善流程和资源使用率,节省运行时间和内存。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
技术插件(Technology Plug-ins)
技术插件是可选的附加组件,可以通过库质量保证和过程节点配置,允许利用
Lynx 设计系统,进行代工厂专用生产设计。

技术插件包括:
 处理节点配置插件(Process Node Configuration Plug-ins):代工厂专用包含脚
本和流程文件的附加组件,可以迅速设置和配置 Lynx 设计系统特定的库和技术数

 库质量保证插件(Library Quality Assurance Plug-ins):流程的实用工具,用于
预验证标准单元库和工艺技术数据,以确保输入数据和 IP 是正确以及适当配置的。
 数据检测(Data Check):检查并验证或修正库和技术数据的一致性, 可用性和
独立设计的观点正确性
 集成检测(Integration Check): 从设计流程的角度验证库和技术数据。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
支持的平台
Lynx 设计系统的运行管理系统支持和 DC、ICC 等其他 synopsys 工具相同平台
支持的工具
Lynx Design System H-2013。03-SP2 支持:
 Custom Designer
 Design Compiler
 Design Compiler Explorer
 Formality
 Galaxy Constraints Analyzer
 Hercules
 HSpice
 IC Compiler
 IC Validator
 IC Workbench
 Leda
 Milkyway
 MVTools
 NanoSim
 PrimeRail
 PrimeTime
 PrimeYield-LCC
 StarRC
 TetraMAX
 TCL
 VCS
 Library Compiler
 Verdi3 Automated Debug Platform/Monet-LP

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Licensing:
Lynx 设计系统需要 Lynx-TSL 或者 Lynx-DS/Lynx-FRS 证书。RTM 和 MC 需
要这个证书,RTM 的每个运行实例都需要一个 license,但是用户仍然在管理登录,
桌面客户端也使用一个 license。Lynx-FRS 证书只用于初始安装。
启动
RTM 是安装,配置和管理通过 RTL 到 GDSII 的生产流程重要的接口。它包括
用于创建、编辑和管理流程的流程编辑器(Flow Editor)、调用工具和自动化执行的
步骤和任务的执行监视器(Execution Monitor)。它为设置和管理设计模块及相关变
量提(system、common 和模块变量编辑器)供了可视化界面。RTM 包含一个可选的
命令行界面来执行 Tcl 命令。
当 Lynx 设计系统安装在环境中,可以通过安装该生产流程和插件脚本到本地
项目文件夹来启动。然后调用 RTM,根据环境和技术库中的数据进行配置。您可
以尝试构建示例设计如 dhm,或组成模块之一,如 dsmb 或 dsma,以熟悉流程、环
境和接口。随后,可以使用现有的示例设计或模板作为起点快速创建自己的设计模
块。
通过下列启动 Lynx 设计系统:
 安装项目流程脚本
 查看目录结构(可选)
 调用运行系统管理器
 使用流程编辑器查看示例设计流程(可选)
 使用执行监视器执行示例设计(可选)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
术 语

块(Block): 设计元素。从实现的角度来看,一个块可以是平坦的、分层的、分层
芯片的子块、或一个完整的芯片。
任务(Task): 可执行的工具脚本。任务运行在定义的目录结构运行,在脚本中用变
量进行定义,用于控制输入、输出、处理和报告。脚本通常是基于TCL的,并且通
常由脚本文件的名称简称。例如detail_route.tcl 脚本的任务叫detail route,在RTM的
流程编辑器中,任务是可视化的对象:
 设计改造对象:读取,修改和写入数据的设计
 设计分析对象:读取设计数据和生成报告
 数据管理对象:复制,链接或从一个地方到另一个地方移动数据
 决策对象:执行基于静态或动态的决策变量的不同路径
 生成器对象:流程执行时,创建新的任务,动态地插入到流程中。

步骤(Steps):设计特异性,相关的任务集合的步骤包括:
 SYN :合成
 DP :规划设计
 PNR :布局布线
 完成:设计完成
步骤是设计特定的,没有一个一一对应的工具,一步可以使用多种工具来完成任务。
流程(Flow):任务和/或其他流程的集合,例如静态时序分析或逻辑综合。流程中包
含流程实例或任务的对象,当在流程中存在多个流程时,一个流程被指定为顶端流
程。顶端流程定义为一个块的整个设计流程,它可以包含流程对象(为当前模块调
用流程)、连接组对象(为子层模块调用块流程)和/或任务的对象。流程是通过 XML
文件实现的,它定义任务互连脚本,任务脚本参数,以及所需任务相关性,以运行
在 TCL 文件中定义的任务,这反过来又调用工具和执行设计任务。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
为项目安装流程脚本
在 Lynx 设计系统,设计项目在本地工作区初始化。首先,在本地系统中创建
一个项目目录来初始化一个项目,然后再安装生产流程的脚本。另外,注意验证网
络环境设置。
注意:尽管可以在一个单独的安装环境中运行多个项目,除非项目在技术和流程上
是紧密相关的,否则一般不推荐这样。Lynx 设计系统通常是在一个项目工作区的
顶层进行初始化。例如,在 synopsys 中,所有项目为基础的 Lynx 设计系统是在
/spse/prj/<project_name>路径下进行初始化的。然而,这并不是强制性的,你可以在
任何位置初始化 Lynx 设计系统,包括你的 home 目录。
安装流程脚本前
使用 setenv 或 explort 命令验证 $LYNX_HOME 路径和 license 环境设置。验
证以后,利用 mkdir 命令创建一个项目目录然后切换到那里。例如:
Unix> setenv SYNOPSYS_RTM $LYNX_HOME/rtm_shell/lynx_rtm_<version>
Unix> setenv PATH $SYNOPSYS_RTM/bin:$PATH
Unix> setenv SNPSLMD_LICENSE_FILE <license_server>
Unix> mkdir <flow_install_directory>
Unix> cd <flow_install_directory>
安装流程脚本
要安装流程脚本,运行 install_flow.tcl - tech_conf_plugin all 命令
选项包括:
-tech_conf_plugin <plugin_name>:指定技术插件安装;–tech_conf_plugin all 选项
将安装所有可用的插件
注意:技术插件是脚本和设置的集合,调整 Lynx 设计系统的全局流程,以适合代
工特定技术。例如 icc_insert_filler_cells.tcl 技术插件就是利用 ICC 在 TSMC40LP
技术环境下插入 filler 单元。
[–plugins_version <version>]:指定技术插件从哪个版本来安装插件;默认技术插
件版本和安装的 rtm_shell 版本一样。
[-lite]:无需开关语句的流程安装,包含的信息不适用 Tech-Libs 和 blocks
[-flow_only]:只安装流程,跳过安装技术插件;只有在没有技术插件列出的版本可
用部分时使用此选项
[-overwrite]:执行新的安装之前覆盖已存在的安装目录

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
目录结构
安装 Lynx 设计系统流程,在本地系统中为设置和管理 RTL-to-GDSII 设计实
现,创建下面的目录结构

顶层目录包括:
 user/:包含多个用户名目录,名称必须不是UNIX用户名。
 doc/:关于Lynx设计系统的环境和基本流程脚本的在线和打印格式的文档。
 bin/:管理工具版本的实用和示例模块命令脚本 。
 release/:数据管理释放(release)和恢复操作的初始位置。
 cache/:默认情况下综合缓存位置
注意:release/和 cache/目录的位置是可以修改的,release/目录是由 system.tcl 的
SEV (release_dir)变量定义。项目中 cache/目录可以在用户之间共享,加快综合优
化,定义在 scripts_global/conf /system_setup.tcl 中。
user/目录包含 workarea/,这构成了独立的工作空间。 Lynx 支持在一个设计中有
多个用户,也支持每个用户包含多个工作区。通常情况下,多用户、多工作区设置
在实施不同版本模块设计或单块在不同的流程试验时是很有用的。
该工作区包含了两个关键的脚本和设计数据的目录: /scripts_global 和 /blocks。
scripts_global /目录包含了全局流程、步骤、任务、配置、特定技术的 XML 文件和
脚本。/blocks 目录包含了设计数据和块特定的脚本,包括向 scripts_global /目录的
符号链接。脚本从生成的数据分离有利于版本控制的执行。sample_design /目录
dhm 示例设计的 RTL 文件的默认目录,块的 RTL 源代码或网表的实际位置是通过
TEV (read_rtl_design)变量定义。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
关键的 scripts_global/ 目录包括:
 conf/:包含配置和安装脚本,包括 system.tcl、system_setup.tcl 和 rtm_init.tcl,
rtm_shell GUI 的工具包脚本和支持文件
 system.tcl:包含 SEV 变量的变量定义文件,这是一个项目中使用的所有任务,
系统配置和 shell 环境变量。它们包括关于项目设置、指标、工具版本和工作分配
等。system.tcl 是在流程中每个任务开始时被 sourced 的,每工作区只有一个
system.tcl。
 system_setup.tcl: 提供基本的服务,如变量解析、启动处理、为生成的数据的
目录创建和记录等。
 rtm_init.tcl:包含了一组为 Lynx 设计系统预先定义的 TCL 程序
 flows/:包含用于示例设计和技术的默认流程 XML 文件。XML 文件定义任务
脚本的互连、参数和需要通过调用设计工具执行任务的相关性,而这又是 TCL 所
定义的任务脚本驱动的。需要查看是否分步实现流程或分析流程被压缩在这个
XML 文件中。
 Task Script 目录: 包含默认或基本全局脚本和流程文件,如 PNR /、DP /、ATPG
 Technology Plug-in 目录: 多种技术插件由 SEV(techlib_name)定义的特定技术
的脚本安装。每个技术的插件目录中包含一个模板文件夹。该模板文件夹包含对于
不同的模块类型特定技术的默认流程定义,如硬宏、软宏和 UPF 为基础的设计,
以及最上层的层次化设计。当为新模块给定技术,创建一个新的块作为流程配置起
点时,这些模板复制到用户工作区。
 common.tcl: 包含 SVAR 变量的定义文件,是流程配置和技术库数据变量,在
一个全局或模块级范围的流程中被一个或多个任务调用。它们包括属于块设置、数
据管理和技术库。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
注意:某些目录名称对应步骤的名称,如/ SYN、/ DP 和/ PNR,这只是按照惯例,
对全局脚本并没有强制性的命名约定。
blocks/ 目 录 下 存 放 的 是 设 计 模 块 。 在 每 一 个 blocks/$SEV
(techlib_name)/<block_name> 文 件 夹 下 , 是 一 个 包 含 特 定 脚 本 的 脚 本 目 录
scripts_block/。此目录中的脚本允许自定义(hold your customizations)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
调用运行系统管理器(RTM)
你可以在 GUI 或 shell 模式调用运行系统管理器。您可以从任何工作区或任何
工作区中的子目录来调用。例如 cd user/example_user/example_workarea。

注意:你必须有一个有效的技术目录(technology directory)并且定义 techlib 名称来


调用 RTM。如果您使用的是 install_flow.tcl 中可用的默认节点之一,那么编辑由
SEV(techlib_dir)指定的技术目录路径。如果正在使用初始节点,则改变 system.tcl 中
的 SEV(techlib_name)变量。了解更多详情,请参阅配置技术目录。
调用:
GUI 模式:输入 rtm_shell –gui
Shell 模式:输入 rtm_shell
注意:使用-rm (lcrm_shell )切换 RTM 到 LCRM 模式

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
您也可以从 shell 启动 GUI 或使用标准的 gui_start、start_gui、gui_stop 或 stop_gui
命令启动或停止 GUI。
启动流程编辑器(Flow Editor)
调用 RTM 以后,启动流程编辑器查看 dhm 示例设计。可以通过在 RTM 中点击 Edit
Block Flow,选择 dhm 模块启动,流程编辑器打开并显示模块的顶层设计流程。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行示例设计:
通过启动执行监视器运行示例设计。在 RTM 中通过点击执行监视器指定一个
模块,此时执行监视器打开并显示模块的可执行任务列表。点击运行,在运行流程
选项窗口,点击执行,流程开始执行,你能够通过颜色指示器看到执行过程。代表

成功完成任务, 代表运行任务, 代表尚未完成的任务, 代表失败的

任务。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
示例设计(dtop)
Lynx 设计系统包括一个多层的示例设计 dtop,包括 dhm、dsmb 和 dsma。
dhm 是 DES 硬核的一个实现方案,完成 DES 的加密和解密。初始情况下,设计存
放在/user/example_user/example_workarea/sample_designs/目录。
注意:该设计只用于 TSMC65LP。
dtop and dhm

dtop 包括:
dhm:在分步的流程中作为一个独立的物理实现, dhm 是一个设计和被用于初始化
技术和库设置的验证的标准单元。
注意:这个模块必须在 dtop 设计启动之前建立,因为这是 dtop 设计中的示例
dhm_upf:和 dhm 一样,但是利用了基于 MVDD 流程的 UPF,运行不同模块区域
的低电压和/或低功率设计
• dtop:包含多个硬宏块实例的分层设计(不是多 VDD 的版本),其中包括虚拟平面
规划、电源规划、多软核、自上而下和自下而上的平面布局,以及 DFT 插入。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
• dsma 和 dsmb:从顶层平面布局、单独物理综合、带 DFT 的布局布线、时序、功
耗和物理模型继承的真正的软核。
• dhm_ram:带 SRAMs (dhm_ram)的硬核,在分开的流程中作为一个单独的物理模
块实现。这是一个基于标准单元和 SRAM 的设计,可用于技术和库设置初始验证。
• dtop_upf:利用基于 MVDD 流程的 UPF 分层多电压设计,运行不同模块区域的低
电压和/或低功率设计、硬宏模块的多个实例(多 VDD 版)、虚拟平面规划 、电源规
划、多软核、自上而下的平面布局以及 DFT 插入。
可以使用 Lynx 设计系统的生产流程,利用预测试的技术配置插件来建立这些设计。
这些设计也能被内置到一个倒装芯片的配置(flip-chip configuration)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用 RTM
RTM 是安装,配置和管理通过 RTL 到 GDSII 的生产流程重要的接口。它包括
用于创建、编辑和管理流程的流程编辑器(Flow Editor)、调用工具和自动化执行的
步骤和任务的执行监视器(Execution Monitor)。它为设置和管理设计模块及相关变
量提(system、common 和模块变量编辑器)供了可视化界面。RTM 包含一个可选的
命令行界面来执行 Tcl 命令。通过 RTM,你可以通过选择存在的示例设计或者参考
模块快速启动创建一个模块。当一个模块从一个现有的模块中创建后,它继承了原
来模块的设置:流程文件、任务脚本、系统和流程配置,以及技术库数据设置。这
些文件、脚本和设置必须根据每一个设计的需求,再通过 GUI 或通过直接编辑这
些文件来定制。你可以通过在流程编辑器中自定义编辑它们流程,定制设计之后,
通过执行监控执行它。

使用 RTM 可以:
 创建,配置和管理您的设计模块
 管理数据块
 设定系统和模块变量,用于交流环境,系统设计、流程和任务设置
 通过流程编辑器创建,编辑和管理
 通过执行监视器调用、执行、控制、调试和监控任务的执行
 利用版本控制系统配置和工作

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
RTM 包含一个可选的控制命令行,便于关键的任务输入 TCL shell 命令。强烈推荐
使用 GUI 界面,这样有助于确保流程的一致性,并能协助及早发现由于其内置的
错误检查和数据管理程序导致的潜在问题。
运行 RTM 的 GUI
运行系统管理器图形界面使得用户能快速和方便的访问所有的设计模块。当创建了
一个模块以后,它被列在 RTM 的图形界面,无论是定制或执行,用户可以轻松访
问它。对于每个模块,图形界面包含直接访问到:
 block.tcl,其中包含块特定的变量定义,它可以通过块的变量编辑器中设置
 流程文件,它可以通过流程编辑器进行编辑
 流程执行,它可以通过执行监视器进行
你可以通过系统设置和通用设置的变量编辑器设置全局系统、流程配置和
Tech-Lib 数据设置,也可以直接从图形界面配置和管理你的版本控制系统。
另外,你可以查看 RTM 用户手册(Help > View Man Pages),在线帮助(Help >
View Online Help),以及 rtm_shell 详情,(Help > About rtm_shell),提供关于有关版
本的详细信息,建立,日期和运行管理的重要设置,或者,您可以使用样式菜单来
设置皮肤,如 Windows、CDE、plastique 或者 Cleanlooks。
Exit When Idle 选项允许在执行流程和任务后,退出 RTM 和释放(release)证书。
状态栏提供有关文件和会话状态的指示

 指示未保存的文件
 指示未保存 system.tcl
 指示未保存 common.tcl
 指示活动会话窗口

运行 RTM 的 CLI
RTM 包含强大的 TCL 控制命令行。您可以从 CLI 交互执行完整的流程或单个
任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
例如:
current_techlib #显示加载的 techlib
show_variables #显示所有变量的列表
rtm_view_graph #产生一个点图。
要查看所有命令,输入命令 rtm_xxx – help;查看手册页的任何命令输入 man
rtm_xxx,键入 help 列出所有可用的命令,历史记录选项卡提供了会话过程中执行
的所有命令的列表,选择一个命令,并点击 Execute 运行它,也可以使用编辑选项
来修改命令,使用保存内容选项的命令保存为一个 TCL 文件。

TCL CLI
Lynx 设计系统的安装还包括独立的 tcl_shell。您可以使用 tcl_shell 作为工具执
行 TCL 任务。

rtm_init.tcl
rtm_init.tcl 文件是控制运行系统管理器的操作的关键文件之一,它由 RTM 启
动时 source,包含了一组预先定义的 TCL 程序。您可以根据您的环境的要求修改
这些现有的程序内容,但不能添加附加的程序。
所有 rtm_init.tcl 程序使用 rtm_<function>的命名约定
关键 rtm_<function>命令

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
该 rtm_init.tcl 在启动时被 sourced,而且直接被 RTM 的流程引擎使用。不过,
您可以单独运行这些程序。本节提供了关键程序的概述,每个命令的各个变量具体
描述请参阅手册页。
new_block:此命令可以直接调用或通过 GUI 命令执行,它定义了创建一个新的目
录块程序,还包含用于检查这些目录和版本控制的 hooks,但是该过程的执行,需
要修改程序(It also contains hooks for checking these directories into revision control,
but the procedure would need to be edited to do this)。
new_techlib:此命令可以直接调用或 GUI 命令执行,定义了创建新的 techlib 目录
程序,创建 scripts_global/<NEW_TECHLIB>和 blocks/<NEW_TECHLIB>。也包含
用于检查这些目录和版本控制的 hooks,但是该过程的执行,需要修改程序。
rtm_clean:此命令可以直接调用或通过 GUI 命令执行。 它定义删除旧的设计数据
的程序。数据可为特定的任务或一个全局的步骤删除。
rtm_export_flow:此命令可以直接调用或通过 GUI 命令执行。 它定义了导出设计
流程快照的程序,可以在运行时管理器之外运行。也包含用于检查这些目录和版本
控制的关系,但是该过程的执行,需要修改程序。
rtm_release:此命令可以直接调用或通过 GUI 命令执行。它定义了从用户工作区释
放(release)或复制设计数据的到中心释放(release)区的程序,这样它可以被其他用户
访问。
rtm_restore:此命令可以直接调用或通过 GUI 命令执行。它定义了一个程序,用于
将中心释放(release)区设计数据存储或复制到个人用户工作区。
rtm_view_graph:这个命令可以被用来产生一个流程的点图。
rtm_notify:这个程序可以用于通过 E-mail 发送通知,如流程结束或流程中的错误
rtm_export_workarea: 这个程序可以用来导出一个工作区。
rtm_init.tcl 文件加载有关版本控制系统、作业调度系统和工具的选择的功能指
定文件,包括:
rtm_init_rc_*.tcl (rtm_init_rc_$SEV(rc_method).tcl): 版本控制程序的文件。
SEV(rc_method) 的选项代表可用文件,如 perforce、cvs 或者没有。包括:
rtm_rc_method:这个程序可以用来定义基于 RC 检查的版本控制(RC)方法和执行。
rtm_rc_file: 该命令可以直接由最终用户来调用, 但也可直接通过在 RTM 的 GUI
中按钮调用,它定义了版本控制系统的基本文件推出的命令。它内置了对 Perforce
的支持, 如果您使用的是不同的版本控制系统,则需要修改.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
rtm_rc_files_status: 该命令可以直接由最终用户来调用, 但也可直接通过在 RTM
的 GUI 中按钮调用,它定义了版本控制系统的基本文件的状态命令。它内置了对
Perforce 的支持, 如果您使用的是不同的版本控制系统,则需要修改
rtm_rc_files_checkin: 该命令可以直接由最终用户来调用, 但也可直接通过在
RTM 的 GUI 中按钮调用。它定义了版本控制系统的基本多文件调入命令。它内置
了对 Perforce 的支持, 如果您使用的是不同的版本控制系统,则需要修改
rtm_rc_files_update: 这个程序可以用来从版本控制系统中更新文件。
rtm_rc_files_checkin_dir
rtm_init_js_*.tcl: 作业调度程序的文件; SEV(job_app)选项代表可用文件,如 lsf
或 grd. 包括:
rtm_job_cmd: 这个命令常用于流程引擎,不常被用户直接调用。该命令是工
作分配支持定义的地方。内置提供了 LSF 和 GRD 支持。这个程序可以根据您的环
境进行定制,来为其他职位分配系统的提供支持。
rtm_kill_cmd: 这个命令常用于流程引擎,不常被用户直接调用。如果用户正在使
用不是 LSF 或 GRD 的任务分配应用,那么这个程序需要修改。

rtm_init_tools.tcl: 工具设置文件和模块文件的程序,包括:
rtm_tool_query: 这个命令可以被单独调用,但也被其他 rtm_<function>命令调用.
如果要添加一个附加的工具到流程中,此过程将需要修改。返回关于可用工具的有
用信息,例如 SEV(ver_*) 变量,显示该工具是否可被 list 在流程的 XML 文件里,
该工具是否有视图目标的支持。也可以返回所有版本变量、所有的工具、所有的
XML 工具、以及所有视图工具的完整列表 SEV(ver_*)。。
rtm_shell_cmd: 这个命令常用于流程引擎,不常被用户直接调用。该命令执行工
具加载并定义了该工具应该如何从 UNIX 命令行调用 (例如,GUI 或 shell 模式;
64 位或 32 位)。如果用户添加第三方工具,此过程将需要被修改。另外,对于工具
加载,Lynx 提供 out-of-the box 支持使用模块文件或者无工具加载。模块文件是工
具加载推荐的应用程序,任何用户可自由下载,加载工具的机制在其中定义。
rtm_tool_cmd: 这个命令可以被单独调用,但也被其他 rtm_<function>命令调用。
如果用户添加第三方工具,此过程将需要被修改。该程序定义了在流程中调用每个
工具的基本指令。例如 icc_shell。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置运行系统管理器(RTM)全局选项
在运行系统管理器配置选项包括全局流程、执行和外部工具选项。全局选项包
括对任务属性编辑器模式的默认设置和 global_scripts 文件编辑提醒。任务属性编
辑器模式选项在流程编辑模式或块覆盖模式里启动任务属性编辑器窗口。每一次更
改 global_scripts 文件夹文件时,可以选择让运行系统管理器提醒您。全局执行选项
包括的任务、作业轮询、传递文件的创建和通知设置。任何本地流程设置都会被全
局流程选项设置覆盖,全局外部工具包括设置默认查看器、编辑器和浏览器选项。
注意:使用全局错误检查编辑器来设置全局流程执行错误检查
设置方法:
1、在 RTM 中,点击 Configure rtm_shell,出现配置 RTM 窗口,显示配置类别
2、选择类别并设置选项。
全局选项
选择默认任务属性编辑器模式
选择 I always want to be in block override mode first,则总是在 Block Override
模式下启动任务属性。
选择 If the task has overrides, I want to be in block override mode first; otherwise,
I want to be in flow edit mode,则如果 Block Override 选项存在,打开 Block
Override 模式
选择 I always want to be in flow edit mode first,则总是在 Flow Edit 模式下打
开任务属性
连接任务对象时,选择默认的源选项
选择 Always ask if the 'Source' property of the 'to task' should be updated。
选择 Always change the 'Source' property of the 'to task'。
选择 Never change the 'Source' property of the 'to task'。
选择 Provide a warning when checking out a file from the scripts_global directory。
从 scripts_global 目录中检查出文件时给出通知。
执行选项
指定 Task Limit 中数量,限制同时执行任务的最大数量。
选择 Disable popup notifications on Flow/Task finish 关闭流程和任务完成通知
选择 Add Time Stamp to View target destinations,增加 Time Stamp
选择 Enable Milestones during Flow execution,启用标志

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置停止控制选项:
如果任何任务失败,选择 Halt the Flow if any Task Fails,停止流程执行
如果流程停止,选择 If the Flow is Halted. Kill any Running Tasks 终止所有
正在运行的任务。
选择通过文件控制,选项有:
Create Pass file if Log file contains no errors or fatals:只有当没有任何错误或
严重错误,通过文件(pass files)才会被创建。
Create Pass file if Log file contains no fatals (允许误差):除非有严重错误。否则将创
建通过文件(所有错误都会被推迟考虑)。
Always create the Pass file regardless of any errors or fatals:在任务的最后总会创建通
过文件,所有的错误和严重错误都会推迟考虑。
设置 Notify on Flow Event 选项:
电子邮件( S):指定的电子邮件 ID 来发送通知。
选项:指定 1,启用通知; 0 禁用通知。
外部工具:
查看器工具(Viewer Tool):指定 CLI 程序
或者选择打开带 XTerm 的查看器,指定模式并打开文件的具体位置
编辑器工具(Editor Tool):指定文档编辑器
或者选择打开带 XTerm 的查看器,指定模式并打开文件的具体位置。
浏览器工具(Browser Tool):指定 Web 浏览器
3、点击 OK

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置项目
在 Lynx 设计系统中,项目是通过将生产流程(production flow)安装到项目目录进
行初始化的,安装流程为您创建目录结构来设置和创建模块。
设置项目的关键步骤涉及:
1、通过安装生产流程(production flow)来安装 project
安装流程创建工作区,包含:
 全局流程脚本和任务脚本
 变量定义文件(system.tcl and block.tcl),包含初始的环境、系统、设计、流程和
任务配置设置
 模块数据目录
 示例设计模块
2、如果有需要的话,通过环境配置 rtm_init.tcl
3、调用 RTM
4、通过系统变量设置编辑器(System Setup Variable Editor),设置 system.tcl 中的环
境变量,如项目、工具版本、指标、任务分配等。
5、通过通用变量设置编辑器(Common Setup Variable Editor)设置 common.tcl 中的流
程配置和技术库数据变量,例如模块、数据管理、技术库。
6、另外,可以通过建立示例设计 dhm,验证设置。
7、利用存在的示例模块作为基本或者模版,创建新的设计模块
特定模块变量定义文件(block.tcl)被创建
基本的示例流程被输入
8、也可以在全局、工艺(Technology)或者模块级定制流程
全局:编辑全局流程文件和脚本(gscripts)
模块:使全局脚本模块级,编辑流程文件和脚本(bscripts)
工艺:编辑特定工艺流程文件和脚本(tscripts)
9、执行流程
设置流程目标
也可以使用模块和任务选项覆盖全局设置,从而控制执行

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
关于变量
在 Lynx 设计系统中,三种变量被用于交互环境、系统、设计、流程和任务配
置设置和参数:
 系统环境变量(SEV)
 静态变量(SVAR)
 任务环境变量(TEV)
这些变量被集中定义,或者依据类型和范围在模块或任务级中定义,可以通过
GUI 编辑器(系统设置,常用设置,模块变量,或流程编辑器中的任务属性)、命令
行或通过直接编辑相应的定义文件(system.tcl、common.tcl、block.tcl、<task>.tcl.)对
他们进行设置。
注意:被 RTM 应用的变量格式是在外部的 variables.xm 文件中定义的。在启动并
应用变量之前,你必须首先在 variables.xml 文件中定义该变量,然后指定它的格式。
变量定义编辑器提供了一个可视化界面,用于 variables.xml 文件创建和添加变量。
如需 variables.xml 文件和变量定义编辑器的详细信息,参考文档:Advanced
Configurations > Using Variable Definition Editor。

系统环境变量(SEV)
SEVS 是一个项目中使用的所有任务的系统配置和 shell 环境变量,它们包括关于
项目设置、指标、工具版本、工作分配等。
例如:
 SEV(job_dist):指定工作分配系统,如 LSF、GRD
 SEV(ver_tcl):为 TCL 定义版本
SEVs 是在 scripts_global/conf/system.tcl 文件中被集中定义的,它在流程的每一个任
务开始被调用,这些变量是通过系统设置变量编辑器,或通过直接编辑 system.tcl
文件进行设置。
通常情况下,SEVS 包括:
 项目:基本项目目录设置
 工作分配(Job Distribution):配置并启用在计算环境中的工作分配
 指标:配置并启用指标采集和报告设置
 工具版本:所有工具的默认版本
 其他:其他变量,如日志级别

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 版本控制:配置并启用版本控制
 环境:Shell 环境变量
注意:所有 SEVS 是预先定义的,您可以修改现有 SEV 的值。要添加 SEV,使用
变量定义编辑器定义 variables.xml 的文件中的变量。此外一些 SEVS,如 SEV
(tem_dir),未在 system.tcl 定义,因为它们是在流执行过程中动态生成的。

静态变量
SVARs 是流程中被用于一个或多个任务的流程配置和技术库变量,具有全局或块
级作用域。它们包括属于模块设置、数据管理、技术库等。SVAR 变量被定义为设
计中所有的库类型,例如,标准单元、IO、PLL、RAM,而且基于 OC 类型,模式
类型和 RC 类型。库类型 SVAR 变量列出了在使用的所有可能的库
例如:
 SVAR(dft,scan_chain_count ):指定的扫描链的数目
 SVAR(route,delay_calculation):在布线操作时,控制如何执行延迟计算。
SVARs 定 义 在 scripts_global/$SEV(techlib_name)/common.tcl 和
blocks/$SEV(techlib_name)/<blocks>/scripts_block/conf/block.tcl 文件中。对于特定技
术的所有模块的任务,在 common.tcl 定义的 SVARs 提供一个全局参照。在 block.tcl
中的 SVARs 覆盖 common.tcl 中对应的值。SVARs 变量可以通过通用设置或块变量
设置编辑器、命令行或直接编辑 common.tcl 或 block.tcl 文件来进行设置。运行时
管理器(RTM)中用到的的变量格式在 variables.xml 的文件中被定义。
通常情况,SVARs 分为:
 Auto Variable Expansion
 Block Specific
 DFT
 Data Management
 Design Planning
 Hier
 Library - Cells
 Library – General
 MCMM
 Misc

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Power
 Route
 Synthesis
 Tags
 Tech-DRC/LVS
 Tech-Extraction/Adjust
 Tech-ExtractionSetup
 Tech-Milkyway
 <Unclassified>
注意:您可以为特定技术需求指定自己的 SVAR。要添加 SVAR ,您必须在
common.tcl 和 block.tcl 中定义变量,并且 variables.xml 文件中指定格式。

任务环境变量(TEV)
TEVS 是一个流程中特定任务的动态流程配置变量,他们提供了执行独立任务
的命令选项。Lynx 设计系统中的基线(Baseline)流程脚本被设计成允许通过 TEV 变
量,进行脚本行为矫正。这种方法最大限度地减少了必须修改一个项目的脚本数量,
并且还允许在流程中使用多个上下文中相同的脚本。
例如
 TEV(compile_options):为 dc_compile 任务指定 dc_shell 编译选项
TEVs 定义在 scripts_global/<step>/<task>.tcl 脚本文件中,可以通过任务或流程
属性编辑器,也可以通过直接编辑任务脚本对其进行设置。当一个流程或任务执行
时,这些初始的值可以在 flow.xml 文件中,或者命令行中被覆盖。辅助 TEVS 用于
将信息传递给子脚本。
你可以创建自己的 TEV 变量。一旦在脚本中创建,这些变量可以被用在整个
脚本中,控制动作或提供参数给命令。TEV 变量的语法为:
## NAME: TEV(variable_name)
## TYPE: boolean | file | float | integer | oos | string | mos| directory
## INFO:
## * description
set TEV(variable_name) default_value
TEV 数据类型包括:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 boolean
 file
 float
 integer
 string
 oos (one of string type)
 mos (multiple of string)
 directory

比较
关键不同之处包括:
SEV SVAR TEV
定义 系统环境变量 Synopsys 变量 任务环境变量
范围 项目(Project) 设计流程(全局和模块级) 任务
设计环境信息传递 用于设计流程中跨任务静态 用于设计流程中,
 用于一个设计流程中 设 计 流 程 配 置 (technology, 指定任务的动态设
的所有任务 library, and design flow)信息的 计流程配置信息的
传递。 传递。
 用于设计流程的多任务  用于设计流程中的
 变量名是唯一的,代表整个设 单个任务
计流程中信息  在不同任务之间变
 2 级:全局(common.tcl)和模块 量名不需要是唯一
用途 (block.tcl)级 的,能代表不同任
 模块值会覆盖全局值 务中的不同信息。
Lynx 分类 SVAR 变量如下:
 SVAR(tech,*)技术信息
 SVAR(lib,*)库信息
 SVAR(*,*)流程配置信息

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
scripts_global/conf/sy scripts_global/$SEV(techlib_n scripts_global/<step
stem.tcl ame) >/<task>.tcl
/common.tcl
位置 blocks/$SEV(techlib_name)/<b
locks>
/scripts_block/conf/block.tcl
注意:模块值覆盖全局值
scripts_global/conf scripts_block/conf/block.tcl: scripts_global/pnr/i
/system.tcl: - SVAR(design_name) cc_place_opt.tcl:
- SEV(techlib_name) - SVAR(dft,scan_chain_count) TEV(place_opt_opt
- SEV(ver_icc) SVAR 类别: ions)
 SVAR(tech,*): TEV(port_buffer)
示例
SVAR(tech,ant_enable)
 SVAR(lib,*):
SVAR(lib,ram_des,use_ccs)
 SVAR(*,*):
SVAR(mcmm,enable_dc)
文件位置

命名约定
有没有严格的命名约定,不过,依然建议下面方式:
SEV:SEV(variable_name)
SVAR:简单变量 SVAR(variable_name),相关变量 SVAR(variable_name,related_name)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
TEV:TEV(variable_name)
变量定义(系统/通用/模块)
SEVS 在 system.tcl 文件中定义,SVARs 在 common.tcl 和 block.tcl 文件中定义,
TEVS 在独立的任务脚本文件中定义。在这些文件中,每个变量的值是通过使用 TCL
set 命令。
RTM 使用的 SEV 和 SVAR 变量格式在 variables.xml 文件中定义,如果你需要
在设计中使用这些变量,则必须在 variables.xml 的文件中指定。例如,要使用新的
SEV 变量 example_sev,您必须先指定其在 variables.xml 文件中的定义。一旦变量
在 variables.xml 的文件中定义,RTM 在系统变量编辑器(system.tcl)中利用定义来列
表变量 SEV(example_sev)。
注意:谨慎使用变量定义编辑器;避免修改现有的变量,而不是重复兼容变量和修
改他们的定义;进行相关性检查,清理孤立定义的脚本。有关 variables.xml 的文件
和变量定义编辑器的详细信息,参考 Advanced Configurations > Using Variable
Definition Editor。
system.tcl
所有用户可修改 SEVS 和 shell 环境( ENV )变量都是在 system.tcl 文件中定义
的 。 system.tcl 是 在 每 个 流 程 任 务 开 始 时 被 加 载 (sourced) 的 , 存 放 在
scripts_global/conf/system.tcl 路径中。这些变量可以通过系统设置变量编辑器,或通
过直接编辑 system.tcl 文件来设置,每工作区只有一个 system.tcl。
注意:在流程执行时,有动态的 SEVs 生成,如定义了运行时的临时数据目录的
SEV(tmp_dir)变量没有在 system.tcl 文件中定义。此外,在流程执行过程中的任务
和流程级,定义工具版本的变量能够被动态地覆盖。系统设置变量编辑器(System
Setup Variable Editor)提供了一个可视化界面编辑 system.tcl 变量

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
common.tcl
SVARs 都在 common.tcl 文件中定义,在 common.tcl 定义的是 SVARs 默认值,
为特定工艺所有模块任务提供了一个全局参考。common.tcl 文件是 specific to a
technology,位于 scripts_global / $ SEV(techlib_name)/common.tcl。流执行过程中
block.tcl 的 SVARs 覆盖 common.tcl 对应的值。这些变量可以由通用设置变量编辑
器(Common Setup Variable Editor)、命令行或直接编辑 common.tcl 文件进行设置。
通用设置变量编辑器提供了一个可视化界面,来编辑 common.tcl 变量

common.tcl 也包含了设计中所有的库类型的 SVAR 定义。例如,标准单元、IO、

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
PLL、RAM,也有基于 OC 的类型、模式类型,以及 RC 类型(and also based on OC
types, Mode types, and RC types)。

block.tcl
特定模块 SVARs 均在 block.tcl 文件中定义。该 block.tcl 文件是具体到一个模
块,位于 blocks/$SEV(techlib_name)/ <blocks>/scripts_block/conf / block.tcl。流程执
行过程中 block.tcl 的 SVARs 覆盖 common.tcl 对应的值。这些变量可以通过模块变
量编辑器、命令行中或通过直接编辑 block.tcl 文件进行设置。

模块变量编辑器提供了一个可视化界面,用于编辑 common.tcl 变量。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
TEVs in <task>.tcl
<task>.tcl 脚本文件包含 TEVs,它是流程中特定任务的动态流程配置变量。它
们提供了执行独立任务的命令选项。
TEVs 在 scripts_global/<step>/<task>.tcl 脚本文件中定义,TEVS 由任务或流程
属性编辑器,或直接编辑任务脚本文件进行设置。当流程或任务执行时,这些默认
值可以在 flow.xml 文件或命令行(或 GUI)上被覆盖。辅助 TEVS 用于将信息传递给
子脚本。
TEVS 和它们的默认值在任务脚本中定义。例如:
## NAME: TEV(num_cores)
## TYPE: integer
## INFO:
## * Used to specify how many cpu's should be used for multi threading coarse
## * placement.
set TEV(num_cores) 2
下面的代码片段,显示了一个 TEV 变量覆盖一个<flow>.xml 任务的定义。
<variables>
<variable name="TEV(pre_script)" value="$SEV(bscript_dir)/syn/pre_co
mpile.tcl"></variable>
<variable name="TEV(post_script)" value="$SEV(bscript_dir)/syn/post_
compile.tcl"></variable>
</variables>
当你执行一个流程(例如,通过运行 run_flow –tev {{TEV(num_cores) 4}}),独立的
任务运行起来,此时将在 logs/目录对应的任务下创建一个<task_name>.tev.varfile 文
件,这是从任务脚本中接收到的输入命令生成的,之后是 run_flow/run_task 命令。
在任务脚本的默认值可以被 flow.xml 文件中的值覆盖,而反过来,这又可以被命令
行中指定的值覆盖。
## NAME: TEV(num_cores)
## TYPE: integer
## INFO:
## * Used to specify how many cpu's should be used for multi threading coarse
## * placement.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
set TEV(num_cores) 2
sproc_source -file $env(LYNX_VARFILE_TEV)
sproc_source -file $SEV(bscript_dir)/conf/block_setup.tcl
sproc_script_start
下面是<task_name>.tev.varfile 文件的片段
## -----------------------------------------------------------------------------
## START - RTM Generated Code: TEV Variable Definitions
## -----------------------------------------------------------------------------
set TEV(file_type) "db_nldm_filelist"
puts "SNPS_INFO : SCRIPT TEV(file_type) = $TEV(file_type)"
set TEV(error_code) "FRSCHK-0002"
puts "SNPS_INFO : SCRIPT TEV(error_code) = $TEV(error_code)"
set TEV(file_type) "mw_reflist"
puts "SNPS_INFO : FLOW TEV(file_type) = $TEV(file_type)"
## -----------------------------------------------------------------------------
## STOP - RTM Generated Code: TEV Variable Definitions
## -----------------------------------------------------------------------------

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用变量编辑器
变量编辑器提供了一个可视化的界面来管理 system.tcl、common.tcl 和 block.tcl
文件中定义的变量,使用相应的变量编辑器,你可以检查文件、进行编辑、设定值,
并保存它们。变量编辑器包括通过名称或值筛选变量、鉴别非默认值,以及撤销编
辑等选项。
通用设置(common.tcl)和模块(block.tcl)变量编辑器包含附加的选项,来重置变
量和执行缺失值、错误的数据类型或格式,以及无效的情形(invalid scenarios)等完
整性检查。

变量编辑器在分类功能的基础上,例举了所有的功能分类,左侧的分类树,允许你
查看所有的变量或者特定类别的变量。对于每一个分类,变量显示区显示名称和值,
描述区提供每个独立变量详尽的描述。
注意:如果您要在设计中使用 SEV、SVAR 和环境变量,必须在 variables.xml 的文
件来指定它们。例如,要使用新的 SEV 变量 example_sev,您必须先在 variables.xml
的文件中指定其定义,一旦该变量在 variables.xml 的文件中定义,运行系统管理器
(RTM) 使 用 它 的 定 义 在 系 统 变 量 编 辑 器 (system.tcl) 中 列 出 该 变 量 , 如 SEV
(example_sev)。使用变量定义编辑器为新的变量指定定义。关于 variables.xml 的文
件和变量定义编辑器 更进一步的信息,参考 Advanced Configurations > Using
Variable Definition Editor

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
打开变量编辑器
从运行系统管理器中打开变量编辑器:
 点击 Edit System Setup,打开系统设置变量编辑器(system.tcl)
 点击 Edit Common Setup,打开通用设置变量编辑器(common.tcl)
 点击 Edit Block Variables,对一个特定的模块,打开模块变量编辑器(block.tcl)
 点击 File > Close Window,关闭

编辑变量
注意:您必须检查出 system.tcl 和 common.tcl 文件,并对它们进行编辑,检查出来
使文件可写。检查方式,点击 Check Out,点击 OK 确认警告。
编辑方式:
1、 在 Variable Editor,从名称中选择变量进行编辑,该值显示在变量列表下方的编
辑区
2、 根据值的类型
 Text Box:指定的值(单击以选中目录),然后点击
 Boolean:选择 True 或 False
 List Box: 选择一个值

 List:点击 添加行,指定的值,然后单击 ; 删除行

注:编辑以黄色突出显示

3、点击 Save 保存( )

该值将会写入变量文件中
通常情况下,可以打开 system.tcl、common.tcl 或 block.tcl 档手动查看或编辑它们。

从相应的变量编辑器打开一个变量文件,点击 Edit( ),则在默认的编辑器中打

开文件。注意,必须首先检查出 system.tcl 和 common.tcl 文件来进行编辑,编辑完

成后,使用 reload( )选项重新加载该文件。

例子:
在 common.tcl 中,SVAR 变量 setup.lib_types_list 指定的所有库,您可以添加
或删除任何库列表,当您将库添加到列表中,新库被追加到 setup.lib_types_list 值。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
添加方式
1 在 Common Variable Editor 中选择 SVAR 变量 setup.lib_types_list。
该值显示在编辑区中的变量列表下方。
2 点击添加行,指定的值,然后单击确定。新库被追加到 setup.lib_types_list 值。

舍弃编辑(Discarding Edits)
使用 Reload 选择舍弃目前的编辑,并重新加载最近保存的变量文件。
注意:从源变量文件中重新加载。例如,如果你修改了一个或多个变量的值,修改
后的值与黄色突出显示的变量相对。从相应的变量文件重新恢复为原始值,一旦文
件被保存,任何先前的值将被覆盖,无法恢复。

重置变量(Resetting Variables)
模块变量编辑器(Block Variable Editor)具有针对每个变量的范围指示器,显示
是否 block.tcl 变量的值与 common.tcl 的相应值同步。对一个变量,在块变量编辑

器(block.tcl)中,点亮的范围指示器( ),表示该值在 common.tcl 和 block.tcl 是不

同的;同一变量,熄灭的指示器( )表示该值在 common.tcl 和 block.tcl 是相同的;

您可以重新同步单个变量的值,或者设置该变量的值为一个其它模块。您也可以一
次性重设在 common.tcl 或 block.tcl 中所有变量的值,此外,您可以轻松地过滤掉
非默认值和更改后的值。

复位或设置方法:
单个变量:

 对所需变量,点击 Reset Value ( ),Reset SVAR(<variable>)窗口出现,并显

示当前值,列表出 common.tcl 和其他模块的值。


 选择值,然后单击 OK
所有变量:
 点击 Variables > Set All Variables,则 Reset Variables 窗口出现显示源模块和
将要重置的模块。从 Choose Source Block 中选择源,从 Choose Block to Reset 中
选择重置模块,点击 OK。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
当复位或设定值时,使用主工具栏中 Show Only Non-Default ( )和 Show Only

Changed ( )选项,快速筛选变量。注意:这些 Filter 通过指定类别,仅列出所


选类别中的变量。

使用过滤器来搜寻变量
您可以通过指定一个名称或数值模式筛选变量

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
进行完整性检查
通过进行完整性检查,找出问题,比如在 system.tcl、common.tcl 和 block.tcl 中
的缺失值,错误的数据类型或格式,以及无效的情况。
执行检查:
1、点击 Variable > Sanity Check All Variables.
Sanity Check SVAR File 窗口出现,并显示普通和模块的 SVAR 文件
2、选择 SVAR 文件并单击 Sanity Check.
检查执行结果返回显示错误.
3、另外,可选择层次的细节:
 Errors: 阻止流程执行
 Warnings:可能导致运行错误
 Infos:对流程的执行没有影响

通过 Shell 命令设置变量
您可以在 common.tcl 和 block.tcl 中使用 var_set 的 shell 命令设置 SVARs
设置方法:
 common.tcl 中的 SVAR:运行 var_set var_name "value"。
如:var_set pwr,upf_enable "1"
 block.tcl 中的 SVAR:运行 var_set var_name “value” –block_name <block_name>
如:var_set pwr,upf_enable "0" -block_name dhm_upf

添加新变量
为了满足设计要求,可以添加新的变量。但是,在设计中使用他们之前,您必
须首先指定其在 variables.xml 的文件中的定义。例如,要使用新的 SEV 变量,
example_sev,必须先指定其在 variables.xml 文件中的定义。一旦该变量被定义,运
行管理器(RTM)使用该定义,在系统变量编辑器下列出 SEV (example_sev)变量 。
您可以使用变量定义编辑器(Variable Definition Editor)来为新的变量指定定义。
注意:谨慎使用变量定义编辑器,避免修改存在的变量,而不是重复兼容变量并修
改它们的定义。进行相关性检查和清理孤立的定义脚本。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
管理模块
初始化一个项目以后,你可以创建自己的模块并将其配置,用于 Lynx 设计系
统生产流程的执行。在运行系统管理器中,模块通过使用现有的样本模块为基础或
作为参考模板进行创建。当您使用现有的模块为基础时,在 RTM 从 blocks/
<TECHLIB> / <block_name> /下复制模块数据到新的模块区域。使用模板时,它从
scripts_global / <techlib> /block/ <template_name> /下复制模块数据。
当你创建了一个新的模块,它就会被列在 RTM 的图形用户界面,让您可以轻
松地访问它,进行定制或执行。

您可以使用 Manage Block Data( )选项备份(Duplicating)或(释放(release))数据。

每一个释放(release)是由一个用户指定的释放(release)名称进行鉴别的。当您还原已
经释放的模块数据时,它被恢复到默认的工作区。
利用 RTM 可用于:
 Creating Blocks(创建模块)
 Cleaning Blocks(清除模块)
 Managing Block Data(管理模块数据)

创建模块

1、在 RTM 中,点击 Create Block ( ). Create Block 窗口出现

2、在 New Block Name 指定名称


3、从 Create Block From 选择 Existing Block 或 Template.
 Existing Block:从 blocks/ <TECHLIB> / <block_name> /下复制模块数据
 Template:从 scripts_global / <techlib> /block/ <template_name> /下复制模块数据
4、另外,可以选择 Check In,到您的版本控制系统检查(check in)新的模块
5、点击 OK.

要删除一个模块,单击删除模块( )。从删除块对话框中,选择要删除的模
块,然后单击确定,单击是确认删除。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
清除模块

1、在 RTM 中,点击 Clean Blocks ( )。Clean Project 窗口出现的目录列表显示.


2、选择清洁目录
3、点击 OK.
注意:您可以清楚一个模块,无需在执行监视器(Execution Monitor)中指定模块。

管理模块数据

您可以使用 Manage Block Data( )选项备份(Duplicating)或(释放(release))数据。

每一个释放(release)是由一个用户指定的释放(release)名称进行鉴别的。当您还原已
经释放(release)的模块数据时,它被恢复到默认的工作区。使用选项而不是脚本来
管理设计数据,如 MDB。
管理方法:

1、在 RTM 中,点击 Manage Block Data ( )。Manage Data 窗口出现,并在标


签页显示释放(release)和还原选项
在 Release 标签中:
a、Release Name 指定 release 名称。
b、Block 选择模块来释放数据
c、Directories to Release 发布释放目录
d、选择 Force 覆盖同名的释放
在 Restore 标签中:
a、从 Block 选择模块来恢复数据
b、从 Release Name 中选择名称
c、Directories to Release 为恢复数据选择目录
d、选择 Force,覆盖存在的模块数据
2、点击 OK.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
创建 Tech-Lib
您可以从运行系统管理器图形用户界面,或从 CLI 中使用 new_techlib 命令创
建 一 个 新 的 技 术 -Lib , 在 Tech-Lib 的 项 目 目 录 中 , 通 过 creates
scripts_global/<NEW_TECHLIB>和 blocks/<NEW_TECHLIB>创建一个 Tech_Lib,
你必须指定一个名称和合适的 Tech-Lib 模版,
来复制数据和脚本到新的技术-Lib 区
域。默认模版存放在 user/example_user/example_workarea/scripts_global/<techlib>中。
或者,你可以创建后立即在新技术-Lib 的检查你的版本控制系统。
创建方式:
1、在 RTM 中,点击 Create TechLib (),则 Create TechLib 窗口出现。
2、在 New TechLib Name 中指定名称
3、从模板列表中选择模板。
4、选择 Check In 在新技术-Lib 的检查你的版本控制系统
5、点击 OK
利用 CLI,在 RTM 的 CLI 中输入
new_techlib –old_techlib <reference_techlib_to_copy_common.tcl from> -new_techlib
<new techlibname>。
例如:new_techlib –old_techlib SAED90NM.SNPS.A –new_techlib TSMC130.TSMC.A
这 在 scripts_global/ and blocks/ 下 为 TSMC130.TSMC.A 创 建 了 目 录 , 并 且 从
SAED90NM.SNPS.A 复制了 common.tcl 到 scripts_global/TSMC130.TSMC.A 区域。
编辑 system.tcl 设置 SEV 变量指向新的 Tech-Lib:
Set SEV(techlib_dir) <path to techlib root directory>
创建新 Tech-Lib 之后,必须通过更新相应的系统变量进行配置。

配置技术目录
system.tcl 的 SEV(techlib_dir)和 SEV(techlib_name)变量定义了 Tech-Lib 的数
据。您必须根据您的项目要求先设置这些变量。您可以通过系统设置变量编辑器
(System Setup Variable Editor)或通过直接编辑 system.tcl 文件来配置它们。有关
system.tcl 以及如何使用系统设置变量编辑器更多资料,请参阅文档使用变量编辑
Using Variable Editors
配置方式:

1、在 RTM 中,点击 Edit System Setup ( )


翻译:曾义和 联系方式:zengyihe@ict.ac.cn
2、从项目类别设置:
 Tech-Lib 名称
 选择 techlib_name.

 在编辑区域中指定的值,然后单击 .

 Tech-Lib 根目录
 选择 techlib_dir.

 指定值(单击 以选中目录),然后点击 .

 选择设置 project_dir, project_name, and release_dir.

3、点击 Save ( ).

4、重启 RTM.
注意:如果你修改 SEV(techlib_name)变量后不重新启动 RTM,会出现下面错误。

重新启动后,变量得到更新。要通过直接编辑 system.tcl 进行配置,在文本编辑器


中打开 scripts_global/conf/ system.tcl。
指定 Tech-Lib 的根目录路径:set SEV(techlib_dir) <path to Tech-Lib root directory>
指定 Tech-Lib 的名称:set SEV(techlib_name) <Tech-Lib_name>
指定 SEV(project_dir), "flow_install_directory";SEV(project_name) "project_name";
以及 SEV(release_dir) "flow_install_directory/release"
最后,保存 system.tcl。
从运行系统管理器图形用户界面,修改 common.tcl。使用通用安装程序(Common
Setup),指向新的 Tech-Lib,所有的文件都关联上新的 Tech-lib。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
更新 Tech-Lib 变量
当你从一个存在的 Tech-Lib 创建一个新的 Tech-Lib 时,它继承了原来 Tech-
Lib 的变量和值。这些变量必须被更新为适用于新 Tech-Lib 的指定设置和文件。
注意:最好是检查所有部分,并根据需要进行更新。这个过程中介绍的东西只是一
个很好的起点。更多有关 common.tcl 和如何使用通用设置变量编辑器,请参阅使
用变量编辑 Using Variable Editors。
更新方式:

1、在 RTM 中,点击 Common Setup Editor ( )。出现通用设置变量编辑器

(common.tcl)窗口
2、更新技术特定的变量和文件:
a、General(一般性)
All Variables > Auto Variable Expansion:更新库类型、寄生角落(parasitic corners)、
操作条件
All Variables > Block-Specific:更新链接库和目标库
b、Library(库)
All Variables > Library-Cells 按照新的 Tech-Lib 更新这部分指定单元的类(classes)
All Variables > Library-General 更新库的名称、操作条件和现场尺寸
All Variables > MCMM 根据新定义的操作条件和寄生角落,更新任何变化的情景
(scenarios)
c、Power
All Variables > Power 利用新库单元的电源引脚,更新/创建新的 PG 连接脚本
d、Route
All Variables > Route 更新电源、时钟和非默认规则的布线设置
e、Technology
All Variables > Tech-DRC/LVS 更新新平台版本的指针(使能相关工具)
All Variables > Tech-ExtractionSetup
更新用到的新 TLU+ 和 NXTGRD 文件的指针
All Variables > Tech-Milkyway 更新 techfiles、信号-EM 约束和过孔优化设置
f、Library file lists
All Libraries > <Library-Type>更新到新 Tech-Lib 文件的所有文件指针。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
配置 ARO(Advanced Resource Optimization)

Lynx 设计系统集成了高级资源优化器(ARO),ARO 相关的配置选项包括:


 SEV(aro_enable):使能 ARO
 SEV(aro_port): 定义 ARO 服务器上的端口
 SEV(aro_server): 定义 ARO 服务器的名称
 SEV(job_misc3): 设置–aro_no_opt to,没有 ARO 优化捕捉 ARO 指标
您可以通过系统设置变量编辑器(System Setup Variable Editor)(system.tcl)设置这
些选项,是在作业调度分类中进行定义的。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用版本控制
Lynx 生产流程和技术的插件是一组文件和目录,而且应该保持在终端用户版本控
制下。这些目录和文件可以存储在任何版本控制系统,除了使用传统的命令行功能
(例如,check-in、update、check-out 等等)。RTM 具有集成的版本控制功能,可以实
现简单的按钮式版本控制功能。只要模块和 scripts_global 的内容已经从版本控制
库中签出(checked out)以及 RTM 被正常配置工作,RTM 的版本控制功能就可以被
利用。

Lynx 设计系统中必须加以控制,来重建一个完整的设计或重新运行了一步的源文
件包括:
 Tech-Lib 的脚本和设置文件
 全局脚本
 模块脚本
 设计源文件(HDL、约束等)
 设计数据
 任务和步骤的输出
 完成的设计模块
注意:设计数据的中间文件,DB / MDB 文件、日志或报告文件不需要被控制,来
重建一个完整的设计或重新运行一个步骤。
在一个多用户环境中使用版本控制功能,文件和目录必须在项目开始时签入
(checked into)到您的版本控制系统。对于指定模块的设置、约束和脚本的修改都会
被签入版本控制,以及用户之间共享。例如,一个项目成员在一个特定块上工作,
个人用户检查复制所需要的文件或目录,如 scripts_global 或 sample_designs 到本
地工作区。(If a user modifies a file, these modifications are made available to other users
following a check-in of the modified files and a check-out or sync by the other users)

通常情况下,Lynx 设计系统支持 Perforce 和并行版本系统(CVS)。但是,您可以为


其他系统定制它,例如版本控制系统(Revision Control System ,RCS),在 system.tcl
的 SEV(rc_method)变量定义了版本控制系统,并且在默认情况下设置为 none。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
GUI 控制
运行系统管理器图形界面的版本控制选项可用于:

 从主菜单中的当前工作区中的所有文件(check in ( ), update ( ), and check

status ( ))。
 变量编辑器窗口的 system.tcl、common.tcl 和 block.tcl
 任务属性编辑器窗口和脚本跟踪对话框的脚本文件
 流程编辑器的 XML 文件
 在创建 Tech-Lib 或模块窗口的时候,用到的 Tech-Lib 或模块目录

版本控制程序(Revision Control Procedures)


版本控制是通过在 rtm_init_rc_cvs.tcl 中定义的 TCL 外挂程序实现的,这是由
scripts_global/conf/ rtm_init.tcl 脚本加载的。或者,您可以从 UNIX 命令行执行这些
任务,按照惯例,这些程序的名称的前缀为 rtm_rc_。包括:
 rtm_rc_method:验证并返回选中的版本控制方法;初始的是 none;编辑切换
到其他系统(CVS、Perforce 或者 none)。
 rtm_rc_file: 更新库中的文件,如果有必要,使其可编辑;如果该文件已被本
地修改,或者如果该文件是最新的,不同步的文件
 rtm_rc_files_update:更新当前工作区中的所有文件
 rtm_rc_files_checkin:检查在当前工作区到库中的所有文件的变化
 rtm_rc_files_status:从 RTM 调用时检查所有 scripts_global 的状态和所有块
scripts_blocks 目录;从一个任务脚本调用时,检查 scripts_global 的状态和当前块
scripts_block 目录;如果一个文件过时,产生一个错误信息。
创建一个新的 Tech-Lib 时,如果 Check In 版本控制选项被选中,RTM 创建新的
Tech-Lib,然后导出 techlib 目录到版本库。
检查目录到版本控制(示例)(Checking directories into Revision Control (example))
您可以到 CVS 中检查所有的安装文件和目录,如下面的示例程序:
Unix> cd <your_flow_install_directory>
Unix> mkdir cvs_root
Unix> setenv CVSROOT $PWD/cvs_root
Unix> cd user/example_user/example_workarea

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Unix> ../../../bin/cvs_setup.tcl blocks sample_designs scripts_global
Unix> cd ../..
Unix> mkdir <user_name>
Unix> cd <user_name>
Unix> mkdir <work_area>
Unix> cd <work_area>
Unix> cvs co blocks sample_designs scripts_global

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
配置版本控制系统
system.tcl 中 SEV(rc_method)变量定义了版本控制系统,默认情况下为 none。
通过系统变量编辑器,你可以在编辑区中指定它,更改为指向到 CVS、Perforce 或
任何值。
要添加一个新的系统、创建一个文件,rtm_init_rc_<SYSTEM_NAME>.tcl 定义
了 如 何 使 用 新 系 统 。 System.tcl 自 动 检 测 <system_name> 并 使 其 可 作 为 SEV
(rc_method)可选值之一.或者,您也可以编辑 rtm_init_rc_cvs.tcl 文件,来集成其他
系统。

更新和取出文件
您可以更新您的工作区中的所有文件,或单独取出共用文件,如 system.tcl
更新或取出文件:

 在 RTM 主菜单上点击 RC Files Update ( ),来更新当前工作区中的所有文


件。
 在系统设置程序(system.tcl),通用设置(common.tcl)或模块 (block.tc)变量编辑

器窗口,点击 Check Out ( )检查出独立变量文件。

 流程编辑器窗口点击 Check Out ( )来检测独立流程文件

 在任务属性编辑器窗口或脚本跟踪器点击 Check Out File ( )检查独立的脚


本文件

检查文件(Checking in Files)
您可以在您的工作区同时检查所有文件,在创建的时候,你也能够检查 Tech-
Lib 和模块目录。检查文件:

 在 RTM 的菜单目录,点击 RC Check In ( ) 检查当前工作区的所有文件.


 从 Create Techlib 或 Block 窗口选择 Check In,在创建的时候,检查 Tech-Lib
和模块目录

检查版本控制状态
状态控制选项生成一个报告,指示:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 是否文件处于在版本控制
 是否文件是最新的
 是否文件已经在本地被修改
 是否文件已过时
 未知版本控制状态的文件列表
 是否所有的文件是最新的

检测状态:

在 RTM 菜单选项中,点击 RC Status ( )检查当前工作区的所有控制文件的


状态。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
编辑流程
在 Lynx 设计系统中,流程是通过 RTM 流程编辑器进行编辑、创建和管理的。利用
流程编辑器,您可以编辑现有的 Lynx 设计系统的 RTL-to - GDSII 生产流程来定制,
以满足您的要求。您可以利用它的可配置任务对象,直观地创建新的流程,以及流
程流动的顺序和方向模型。配置完成后,你可以通过直接调用流程执行监视器执行
流程。
注意:Lynx 的参考脚本存储在 scripts_global/<step>/;但这不是强制性的,如果你
需要编辑程一个全局的脚本,以应用到项目中的多个或者所有模块,那么创建一个
名为 scripts_global/<project>的新目录,并用它来存储被编辑的,或新的全局性脚本。
如复制 scripts_global/syn/dc_compile.tcl 到 scripts_global/<project>/syn/dc_compile.tcl,
然后编辑流程文件,来参考这个新的脚本版本。如果你需要改变一个全局脚本,或
者在仅有一个模块中添加使用一个新的脚本,则在<block_name>/scripts_block/<step>
下,作为一个本地脚本创建即可。

启动流编辑器
使用流编辑器可以直观地创建,编辑和管理设计流程。

从 RTM 中启动流程编辑器,点击 Edit Block Flow( ),指定一个特定的模块。流


程编辑器打开,显示的是顶端流程。或者,您也可以通过执行监视器,选择任务并

单击 Open in Flow Editor( )启动流程编辑器。

要关闭流编辑器,单击 File > Close Window( )

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用流程编辑器
流程编辑器是一个可视化的图形界面,用于创建、编辑和管理设计流程。它包括一
组容易配置和互连的预定义任务对象,来定义设计过程和数据流程的大小和方向。
每个任务对象都有一组属性,这些属性通过任务属性编辑器被设置和访问。在 RTM
中,每一个模块都有相关的顶层设计流程文件,就是顶层流程。例如,在示例设计
dtop 中的 hier.xml。通过模块流程管理器,一组流程被指定为顶端流程。模块流程
管理器允许您能够方便地集中管理属于独立模块的流程。

流程编辑器运行在 XML 流程文件和其他 ASCII 控制文件下。

任务对象
任务对象是预定义的、可配置的实体,能用于可视化创建和测试流程,包括:
 流程实例(Flow Instance):一个或多个互连对象的实例
 工具任务(Tool Task):运行任务脚本,调用工具
 Joiner Task:单目标调用多个任务的虚拟任务
 分支任务(Branch Task):根据条件执行任务的四支决策任务;例如在设计示例
中的 manage_data 和 configure_dp 任务。
 关联组(Connect Group):任务的执行列表(如流程,模块或分析任务)
 多任务(Mux Task):提供流程交替和并联路径选择的流程通路转换器
 Generator Task:数据生成任务;例如设计示例中的 STA-Model 或者 StarRC–
SPEF
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Note:需要添加其他说明
这些对象使用 Connectors 互连,这代表了流程的顺序和方向。 流程编辑(Flow
Editor)器包含了模块流程管理器(Block Flow Manager),他提供了一个图形界面,用
于管理制定模块所有组件流程。
一个流程能够包含多个任务或流程对象,一个流程示例任务对象可以实例化其
他流程,使得流程中包含流程成为可能。一旦创建和配置后,您可以通过流程编辑
器浏览整个层次组织的流程文件。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器
每个任务对象有一组可编辑的属性,这些属性必须为执行监视器设置,来运行基础
的任务,属性是特定于任务对象,并通过任务属性编辑器设置。

根据不同的任务对象,关键任务属性包括:
 Basic Controls: 名称、工具、脚本、源目录和目标目录等
 Edges: 流程实例的输入和输出边缘(Incoming and Outgoing edges)
 Script Description: 任务的文字说明
 TEV: 特定任务的变量
 Aux TEV: 辅助特定任务的变量
 Tool Versions: 在流程中使用的工具版本的详细信息
 Metrics/Job Control: 计算集群作业分配设置
 Error Checks: 全局和特定任务的错误检查设置

任务属性编辑器包含覆盖给定模块的任务设置选项,而无需修改底层全局 XML 流
程文件,它还包括状态指示灯,可以快速识别全局和块变量

编辑属性
任务属性可有两种模式编辑:覆盖模式和流程编辑模式。
在覆盖模式下的编辑,保存在 block.xml;在流程编辑模式下的编辑,则保存在
<flow>.xml 中。
 流程编辑模式:变量如 TEV,是在任务脚本(默认值)和流程文件中被指定的。
您可以通过任务属性编辑器编辑任务脚本变量,然后在流程文件中更新。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
在任务属性编辑器中,任何变量:

 指示变量是从脚本读取,而不是流程文件

 指示变量是从脚本读取,并在流程文件中

 表示该变量被从流程文件中读取的,并且在流程文件

默认情况下,如果 TEV 的值与任务脚本中的值匹配,则没有写入流程文件

 表明所显示的值与在任务脚本是一样的(默认);

 显示修改后的值

 表示该值不在流程文件中;

 表示该值在流程文件中;

例如,如果你为 dc_elaborate_baseline 任务更新 syn.xml 文件,并保存为流程的 XML


文件,该文件利用 TEV 变量/值进行更新
</tool_task>
<tool_task name="dc_elaborate_baseline">
<step>10_syn</step>
<script_file>$SEV(gscript_dir)/syn/dc_elaborate.tcl</script_file>
<src>000_inputs</src>
<dst>010_dc_elaborate_baseline</dst>
<tool>dct</tool>
<variables>

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
<variable name="TEV(read_rtl_design)"
value="$SEV(bscript_dir)/conf/read_rtl_design.tcl"></variable>

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 覆盖模式:在任务属性编辑器,对于一个给定模块的任务设置,覆盖模式可以
让你无需修改底层全局 XML 流程定义文件。模块流程覆盖保存在 block.xml

覆盖模式,是由周围的任务属性蓝色边框标识,编辑器的可编辑的属性是由 Enable

Override( )指示器指示,不可编辑的属性是灰色的。在流程编辑器中,一个具

有模块覆盖值的任务是用蓝色边框指示的。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
覆盖信息被捕获到:
/blocks/SEV(techlib_name)/<block>/scripts_block/conf/ block.xml

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
模块流程管理器(Block Flow Manager)
模块流程管理器允许你管理指定模块的所有流程

利用模块流程管理器,您可以实现指定模块流程任务,例如:
 查看流程的详细信息,包括流程示例、相关的文件和子任务
 添加、删除、创建或编辑流程
 指定一个流程实例作为顶层流程
 转换全局流程到指定模块
 设置流程目标
在运行系统管理器中每个块都有一个关联的顶层流程文件称为 Top-Flow,例如,
dtop 示例设计中的 hier.xml 文件。一个流程是通过模块流程管理器设置为 Top-Flow
的。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
流程文件
使用流编辑器创建的流程都保存为 XML 文件格式,默认情况下,Lynx 设计系统的
流程文件保存在:
 Global flows(全局流程): /scripts_global/flows/
 Block-specific flows( 指 定 模 块 流 程 ) :
/blocks/SEV(techlib_name)/<block>/scripts_block/conf/block.xml
 Data checks(数据检测): /scripts_global/data_check_flows/
 Integration checks(集成检查): /scripts_global/integration_check_flows/

报告
流程编辑器报告功能包括:
 任务覆盖报告(Task Overrides Report ):与当前被重写模块相关的任务列表。
 检查流程报告(Check Flow Report ):检查与当前模块相关联的所有流程文件,
并提供了一个状态摘要

流程导航(Navigating Through Flows)


一个流程可以包含多个任务和/或流程对象,一个流程示例任务对象可以实例化其
他的流程,这使得流程内调用流程成为可能。一旦流程被创建和配置,流程编辑器
允许浏览流程文件整个层次组织。
在流编辑器中

 点击 Previous ( )把以前的流程带到前面(bring previous flow to the forefront)

 点击 Push In ( ) 向下查看子层对象

 点击 Pop to Top ( ) 跳转到顶层流程(Top-Flow)

此外,使用 Zoom 设置来调整放大设置

打开流程
打开一个流程,进行查看或编辑。
注意:Lynx 的参考脚本存储在 scripts_global/<step>/;但这不是强制性的,如果你
需要编辑程一个全局的脚本,以应用到项目中的多个或者所有模块,那么创建一个
名为 scripts_global/<project>的新目录,并用它来存储被编辑的,或新的全局性脚本。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
如复制 scripts_global/syn/dc_compile.tcl 到 scripts_global/<project>/syn/dc_compile.tcl,
然后编辑流程文件,来参考这个新的脚本版本。如果你需要改变一个全局脚本,或
者在仅有一个模块中添加使用一个新的脚本,则在<block_name>/scripts_block/<step>
下,作为一个本地脚本创建即可。
打开方式:

1、在流程编辑器中,单击 Open Flow ( ),Get Flow 窗口出现

2、浏览到所需的位置,选择流程文件,然后单击 Open,流程出现在一个标签页

您也可以直接打开从运行系统管理器,通过点击 Edit Block Flow( ),打开相应模

块流程,根据需求,编辑和自定义 Lynx 设计系统的生产流程,点击 Check Out( ),

使得流程文件可写。

要关闭一个流程,选择指定的流选项卡,然后单击 Close Flow( )。你无法关闭与

模块相关联的顶级流程。
添加任务
添加任务,并编辑流程:
1、在流程编辑器中,打开流程来添加任务

2、点击 Add Item( )下拉列表,选择任务对象

注:Add Item 也可通过 Object > Add Object 实现


3、选择要添加的任务对象,任务对象出现在编辑器。
4、拖动任务对象的位置。

5、单击 Properties( )来配置对象:

注:Properties 也可以通过右键单击>属性。
Setting Tool Task Properties
Setting Joiner Task Properties
Setting Branch Task Properties
Setting Connect Groups Properties
Setting Generator Task Properties
Setting Mux Task Properties
Setting Flow Instance Properties
6、添加连接(Add connectors)
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
按照要求,添加任务对象和连接器

7、点击 Save Flow ( );点击 Save Flow As ( )按照另外的名字保存新建的流程。

流程编辑器创建一个流程的 XML 文件,并保存流程对象和连接器配置。要删除一

个任务,选择任务,然后单击 Delete( ),或者选择任务和<CTRL>+ X,或者右键>

Delete,若要删除多个任务,拖动鼠标选中多个任务,然后单击 Delete( )。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
添加任务连接(Adding Task Connections)

任务对象是通过连接器(Connectors, )互连的,这代表了流程的顺序和方向。

1、在流程编辑器中,点击 Draw & Edge Mode ( )。

边缘模式是由一个灰色的背景上的 光标表示

2、在所需的源任务和目标任务对象之间拖动和绘制连接
3、当绘制连接时:

 :表示无法连接

 :表示可能的连接

 :表示一个已建立的连接

4、根据连接对象:
 对于流程实例:选择 Flow instance Object,出现窗口
选择一个对象,然后单击 OK。
 对于分支任务对象:选择 Branch Port 出现窗口
从 Pick Branch Decision Port 选择值,然后点击 OK。
 对于复用任务对象,绘制边缘所需的端口(draw edge to required port)
注意:端口编号为 0-9 和 AF ,并且可以从任务属性编辑器设置
 对于其他对象,值是通过任务属性编辑器进行设置
注意:当连接到一个任务,如果源(source)和任务属性编辑器中定义的不同,流程编
辑器会提示您在源(sources)之间选择。

根据需要添加连接。

5、点击 Draw & Edge Mode ( )来切换出边缘模式(to switch out of Edge Mode)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
要删除连接,请选择连接,然后单击 Delete( )。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置任务属性
每个任务对象都有一组可以通过任务属性编辑器设置的可编辑属性,要打开任务的
属性,在流程编辑器中,双击任务对象。或者,选择任务对象并单击鼠标右键>
Properties,您也可以选择一个任务,从执行监视器中打开任务属性编辑器,然后
右键单击> Task > Open Properties in Flow Editor

利用覆盖模式
任务属性可编辑方式有两种:覆盖模式和流程编辑模式。覆盖模式可以让你无需修
改底层全局 XML 流程定义文件,而对于一个给定模块的任务进行设置。模块流程
覆盖保存在 block.xml。

使用方式,点击 Enter Override Mode( )。周围是一个蓝色边框的属性编辑器表

示是覆盖模式,可以被覆盖的值是由 Enable Override( )按钮指示的,点击 来编

辑指定的值,此时变 ,更新值,并点击 Save( ),点击 Press to View Override

Values,查看标签上的所有覆盖值。退出覆盖模式,点击 Exit Override Mode( )。


任务属性编辑器用于:
设置工具任务属性
设置 joiner 任务属性
设置分支任务属性
设置连接组属性
设置 generator 任务属性
多路复用器设置任务属性
设置流程实例属性

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
工具任务(Tool Tasks)
设置工具的任务( )对象属性,然后通过调用一个工具来运行任务的脚本。
注意:使用覆盖模式,无需修改全局 XML 流程文件,可给特定模块定制任务设置。
设置方式:
1、选择任务对象并单击鼠标右键> Properties.
任务属性编辑器<object name>窗口出现。
2、在 Basic Controls 标签页中:
a、在 Task Name 中指定名称,来标记显示流程编辑器和执行监视器的对象。
b、选择 Milestone Task 指定任务的标志(milestone); 预标志的任务可以在不影响
后期标志任务下,反复运行。
c、选择 Analysis Task 指定任务,分析任务。
d、从 Tool Name 中选择工具运行任务; 工具名称从 rtm_init_tools.tcl 中读取
e、从 Bit Mode 选择 64 或 32 模式来运行工具。
f、选择 GUI Mode 在前台运行工具
g、指定或选择脚本文件执行动作
 点击 浏览并选择文件

 点击 检查文件进行编辑

 单击 使用文本编辑器编辑文件

 单击 放弃更改并重新加载最近保存的文件

 点击 保存全局脚本文件为特定模块的文件,例如

在 example_workarea/scripts_global/syn 中的 dc_compile.tcl 到
example_workarea/blocks/TSMC40LP.SNPS.A/dhm_ram/scripts_block/syn
h、在 Step Name 中指定步骤目录来保存数据。例如:
10_syn、20_dp、30_pnr、或者 40_finish.
i、在 Source 选择目录,加载数据,目录是<step>/work/<source>
j、或则选择 Lock Source 锁定源目录;原始任务保持不变,不随流程边沿变化。
k、选择 Auto Source to use parent task's destination as the source。
l、选择 Destination 目录,写入数据,如报告、设计和日志文件
 设计数据: <step>/work/<destination>

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 报告: <step>/rpts/<destination>
 日志文件: <step>/logs/<destination>
3、在 Script Description 标签页,可选类型描述任务。
4、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

Text box:指定值(单击 以选中目录),然后点击 ;

也可以使用 ,使全局脚本文件作为特定模块文件。

Boolean:选择 True 或者 False.


List box:选择一个值。

List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

5、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

6、在 Tool Versions 标签页, 编辑或查看用于任务的工具的版本详细信息:


 通过双击行编辑工具版本和指定值
查看变量的状态:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个

任务被加载,辅助工具选项允许为特定的任务来加载附加的工具。
7、在 Metrics/Jobs 标签页中,设置指标和计算集群作业选项:
a、设置指标选项
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
b、 选择 ARO Enable 使能自适应资源优化器(ARO) 用于执行优化作业
c、 选择 Job Enable 允许运行系统管理器通过后续选项,按照指定作业触发任
务, 如工作分配模式;禁用时任务在和 RTM 实例相同的 shell 下执行。
d、在 Job Distribution Method 中指定支持的工作分配方法; 例如 Load Sharing
Facility (LSF) or Global Resource Director (GRD).
e、在 Job Queue 中指定队列,覆盖在 system.tcl 指定的缺省值
f、在 Job Resources 中为任务指定资源,覆盖在 system.tcl 指定的缺省值。
g、在 Job Options 中指定命令行选项。
h、在 Job Miscellaneous Options (#1 - #4) 指定其他选项,传递给 rtm_job_cmd
as –job_misc[1-4];这些选项以用于定义在 rtm_init_js_*.tcl 中的 rtm_job_cmd proc
8. 在 Error Checks 标签页中, 设置错误检查选项:
 从 Global Error Checks 选择 Disable 为当前任务禁用所有全局错误检查
 从 Pass File Control 选择条件,为创建 pass 文件定义条件,选项包括:
 创建 pass 文件(如果日志文件不包含任何错误或严重错误)
 创建 pass 文件(如果日志文件不包含任何严重错误(允许误差));所有错误都暂
时不考虑。
 不管任何错误或严重错误,总是创建 pass 文件;所有的错误和严重错误都暂时
不考虑

 在 Task-specific Error Checks 中指定检查,创建特定任务的检查:


a、点击 添加行。
b、从 Rule 选择检查类型。
c、在 Pattern 指定模式。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
d、选择 Severity。
注意:Count 是强制性的 must_allow 和 must_allow_exact 检查
9、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Joiner Task
设置 Joiner 任务( )对象的属性来调用单目标的多个任务,当您使用执行监视器运
行 Joiner 任务时,它会调用所有加入的任务,并行执行它们。
注意:每个任务调用其相应的 license;同时并行工作的数量可以通过在 run_task 菜
单命令的任务限制选项进行控制。
注意:使用覆盖模式,无需修改全局 XML 流程文件,来定制特定块的任务设置。
设置方式:

1、选择任务对象并单击鼠标右键> Properties ( )。

任务属性编辑器<object name> 窗口出现.


2、在 Basic Controls 标签页中:
a、Task Name 指定名称标记对象,用于在流程编辑器和执行监视器中显示
b、Step Name 中指定步骤目录来保存数据。例如:10_syn、20_dp、30_pnr 或
者 40_finish.
c、选择 Milestone Task 指定任务的标志(milestone); 预标志的任务可以在不影
响后期标志任务下,反复运行。
3、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
分支任务(Branch Task)
设置分支任务( )对象属性来连接流程文件中的多个分支任务,按条件地执行一
个任务。分支任务有一个单独的输入源,可以连接编号为 1 至 16 的多达 16 个输出
源。使用分支任务自动执行一个不同的流程还是一个分支流程,取决于先前任务的
结果。例如,如果初始编译没有满足定时要求,则可以运行一个附加的增量编译。
分支任务必须决定输入应连接到哪个输出目的地的, 然后使用一种特定程序
sproc_broadcast_decision 来 传 播 这 个 决 定 。 可 以 根 据 静 态 用 户 通 过
TEV(decision_override)指定的变量,也可动态地根其他用户定义的设计或者脚本质
量指标作出决定,当脚本被设置为自动决定,TEV(decision_overrride)应被设置为 0
分支任务通常用于在默认流程中,决定是用之前生成的数据恢复,还是从源数据中
重新生成,分支任务示例脚本在 scripts_global / demo 目录中。
注意:使用覆盖模式,无需修改全局 XML 流程文件,可给特定模块定制任务设置。
设置方式:
1、选择任务对象并单击鼠标右键> Properties.
任务属性编辑器<object name>窗口出现。
2、在 Basic Controls 标签页中:
a、在 Task Name 中指定名称,来标记显示流程编辑器和执行监视器的对象。
b、选择 Milestone Task 指定任务的标志(milestone); 预标志的任务可以在不影响
后期标志任务下,反复运行。
c、选择 Analysis Task 指定任务,分析任务。
d、指定或选择执行的行动和决策的广播脚本,在 TEV(decision_override)定义。
 点击 浏览并选择文件

 点击 检查文件进行编辑

 单击 使用文本编辑器编辑文件

 单击 放弃更改并重新加载最近保存的文件

 点击 保存全局脚本文件为特定模块的文件,例如

在 example_workarea/scripts_global/syn 中的 dc_compile.tcl 到
example_workarea/blocks/TSMC40LP.SNPS.A/dhm_ram/scripts_block/syn
e、在 Step Name 中指定步骤目录来保存数据。例如:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
10_syn、20_dp、30_pnr、或者 40_finish.
f、在 Source 选择目录,加载数据,目录是<step>/work/<source>
g、或选择 Lock Source 锁定源目录;原始任务保持不变,不随流程边沿变化。
h、选择 Auto Source to use parent task's destination as the source。
i、选择 Destination 目录,写入数据,如报告、设计和日志文件
 设计数据: <step>/work/<destination>
 报告: <step>/rpts/<destination>
 日志文件: <step>/logs/<destination>
j、设定指标选项。
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
k、选择 Enable Run-Time Branching Only,在静态和动态分支之间做出选择
3、在 Script Description 标签页,可选类型描述任务。
4、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

 Text box:指定值(单击 以选中目录),然后点击 ;

 也可以使用 ,使全局脚本文件作为特定模块文件。

 Boolean:选择 True 或者 False.


 List box:选择一个值。

 List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

5、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

6、在 Error Checks 标签页中, 设置错误检查选项:


 从 Global Error Checks 选择 Disable 为当前任务禁用所有全局错误检查
 从 Pass File Control 选择条件,为创建 pass 文件定义条件,选项包括:
 创建 pass 文件(如果日志文件不包含任何错误或严重错误)
 创建 pass 文件(如果日志文件不包含任何严重错误(允许误差));所有错误
都暂时不考虑。
 不管任何错误或严重错误,总是创建 pass 文件;所有的错误和严重错误都
暂时不考虑
 在 Task-specific Error Checks 中指定检查,创建特定任务的检查:
a、点击 添加行。
b、从 Rule 选择检查类型。
c、在 Pattern 指定模式。
d、选择 Severity。
注意:Count 是强制性的 must_allow 和 must_allow_exact 检查
7、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
连接组(Connect Groups)

设置连接组( )对象属性来指定要执行的操作的列表,该对象可以是一个任务或

者任何项目模块的流程。

每个连接组都有一组输入连接(In-connections)和输出连接(Out-connections),当对象
被指定输入连接(In-connections),该对象连接到连接组实例的传入连接(incoming
connection),被指定为输入连接(In-connections)的所有任务都是并行的,并且没有
任何的相互关系。当一个对象被指定为一个输出连接(Out-connections),该对象连接
到连接组实例的传出连接(outgoing connection)。被指定为外连接的所有任务都是并
行的,并且没有任何的相互关系。The connect group adds edges from the input side
to all tasks listed within In-connections and from all tasks listed within Out-
connections to the output side。
连接组引用的任务可以位于其它块中,设置方式:

1、选择任务对象并单击鼠标右键> Properties ( )。

任务属性编辑器<object name> 窗口出现


2、在 Group Name 标签页中,指定 In Connections 和 Out Connections:
 指定 In Connections:
 点击 添加连接

 点击 选择对象

Select Connect 窗口出现,显示连接的对象列表


 选择对象
 点击 OK.

 单击 Push in to Sub-flow ( )在流程编辑器中打开相应的流程

 按照 In Connections 指定 Out Connections.


3、点击 Apply 和 Close.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
生成任务(Generator Task)

设置生成任务( )对象的属性来执行数据生成任务,例如 STA-Model 生成或

StarRC –SPEF 生成。


注意:使用覆盖模式,无需修改全局 XML 流程文件,可给特定模块定制任务设置。
设置方式:
1、选择任务对象并单击鼠标右键> Properties.
任务属性编辑器<object name>窗口出现。
2、在 Basic Controls 标签页中:
a、在 Task Name 中指定名称,来标记显示流程编辑器和执行监视器的对象。
b、选择 Milestone Task 指定任务的标志(milestone); 预标志的任务可以在不影响
后期标志任务下,反复运行。
c、选择 Analysis Task 指定任务,分析任务。
d、指定或选择执行的行动和决策的广播脚本,在 TEV(decision_override)定义。
 点击 浏览并选择文件

 点击 检查文件进行编辑

 单击 使用文本编辑器编辑文件

 单击 放弃更改并重新加载最近保存的文件

 点击 保存全局脚本文件为特定模块的文件,例如

在 example_workarea/scripts_global/syn 中的 dc_compile.tcl 到
example_workarea/blocks/TSMC40LP.SNPS.A/dhm_ram/scripts_block/syn
e、在 Step Name 中指定步骤目录来保存数据。例如:
10_syn、20_dp、30_pnr、或者 40_finish.
f、在 Source 选择目录,加载数据,目录是<step>/work/<source>
g、或选择 Lock Source 锁定源目录;原始任务保持不变,不随流程边沿变化。
h、选择 Auto Source to use parent task's destination as the source。
i、设定指标选项。
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
j、选择 Enable Run-Time Branching Only,在静态和动态分支之间做出选择
3、在 Script Description 标签页,可选类型描述任务。
4、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

Text box:指定值(单击 以选中目录),然后点击 ;

也可以使用 ,使全局脚本文件作为特定模块文件。

Boolean:选择 True 或者 False.


List box:选择一个值。

List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

5、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

6、在 Error Checks 标签页中, 设置错误检查选项:


 从 Global Error Checks 选择 Disable 为当前任务禁用所有全局错误检查
 从 Pass File Control 选择条件,为创建 pass 文件定义条件,选项包括:
 创建 pass 文件(如果日志文件不包含任何错误或严重错误)
 创建 pass 文件(如果日志文件不包含任何严重错误(允许误差));所有错误都暂
时不考虑。
 不管任何错误或严重错误,总是创建 pass 文件;所有的错误和严重错误都暂时

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
不考虑
 在 Task-specific Error Checks 中指定检查,创建特定任务的检查:
a、点击 添加行。
b、从 Rule 选择检查类型。
c、在 Pattern 指定模式。
d、选择 Severity。
注意:Count 是强制性的 must_allow 和 must_allow_exact 检查
7、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
多路复用器任务(Mux Task)
设置多路复用器任务()的对象属性来创建一个流程通路开关,为流程的执行提供交
替通路选项,路径是通过端口定义,有 16 个可用端口(0-9, A-F)。在任务属性编辑
器的多路复用任务端口选择(Mux Task Port Selection)标签页,独立地使能每一个多
路任务。Parent 任务连接到端口上的多路复用器任务,每个端口只能有一个边缘连
接,如果有一个边缘连接的端口,则该端口只能被启用(There can only be a single
edge connection to each port and a port can only be enabled if there is an edge connection.)

RTM 通过 SEV(parent_info)变量为多路复用器任务提供了一个积极的 parent 目标


值(DST)列表,包括:
port_number: 连接的端口号;0–9, A-F
port_enable: 端口的状态;使能(1)或禁用(0)
parent_dst: parent 任务的 DST 值;如果没有 parent, DST 是 “”
您可以使用任务,在并行任务执行时自动化选择结果,你必须为任务进行选择以及
流程的继续执行定义选择标准。例如,两个任务(place_opt1 和 place_opt2),可以通
过定义一个基于特定指标对比的选择标准,连接到多路复用任务。该选择的结果是,
源数据的目标目录被链接到选择的任务目标目录,它可以被修改用于实现任何用户
定义的选择操作和标准,默认参数包括 TEV(src_override),用来指定源目录链接,
而不考虑正常的检查。

设置方式:
1、选择任务对象并单击鼠标右键> Properties.
任务属性编辑器<object name>窗口出现。
2、在 Mux Task Port Selection 标签页中,设置多路复用任务选项:
a、从 Mux Port Count 标签选择端口号,利用 slider (track bar)在流程中显示
b、选择端口,来使能各独立端口
3、在 Basic Controls 标签页中:
a、在 Task Name 中指定名称,来标记显示流程编辑器和执行监视器的对象。
b、选择 Milestone Task 指定任务的标志(milestone); 预标志的任务可以在不影响
后期标志任务下,反复运行。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
c、选择 Analysis Task 指定任务,分析任务。
d、从 Tool Name 中选择工具运行任务; 工具名称从 rtm_init_tools.tcl 中读取
e、从 Bit Mode 选择 64 或 32 模式来运行工具。
f、选择 GUI Mode 在前台运行工具
g、指定或选择脚本文件执行动作
 点击 浏览并选择文件

 点击 检查文件进行编辑

 单击 使用文本编辑器编辑文件

 单击 放弃更改并重新加载最近保存的文件

 点击 保存全局脚本文件为特定模块的文件,例如

在 example_workarea/scripts_global/syn 中的 dc_compile.tcl 到
example_workarea/blocks/TSMC40LP.SNPS.A/dhm_ram/scripts_block/syn
h、在 Step Name 中指定步骤目录来保存数据。例如:
10_syn、20_dp、30_pnr、或者 40_finish.
i、在 Source 选择目录,加载数据,目录是<step>/work/<source>
j、或则选择 Lock Source 锁定源目录;原始任务保持不变,不随流程边沿变化。
k、选择 Auto Source to use parent task's destination as the source。
l、选择 Destination 目录,写入数据,如报告、设计和日志文件
 设计数据: <step>/work/<destination>
 报告: <step>/rpts/<destination>
 日志文件: <step>/logs/<destination>
4、在 Script Description 标签页,可选类型描述任务。
5、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

Text box:指定值(单击 以选中目录),然后点击 ;

也可以使用 ,使全局脚本文件作为特定模块文件。

Boolean:选择 True 或者 False.


List box:选择一个值。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

6、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

7、在 Tool Versions 标签页, 编辑或查看用于任务的工具的版本详细信息:


 通过双击行编辑工具版本和指定值
查看变量的状态:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

 单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个

任务被加载,辅助工具选项允许为特定的任务来加载附加的工具。
8、在 Metrics/Jobs 控制标签页中,设置指标和计算集群作业选项:
a、 选择 ARO Enable 使能自适应资源优化器(ARO) 用于执行优化作业
b、 选择 Job Enable 允许运行系统管理器通过后续选项,按照指定作业触发任务, 如
工作分配模式;禁用时任务在和 RTM 实例相同的 shell 下执行。
c、在 Job Distribution Method 中指定支持的工作分配方法,如 Load Sharing
Facility (LSF) or Global Resource Director (GRD).
d、在 Job Queue 中指定队列,覆盖在 system.tcl 指定的缺省值
e、在 Job Resources 中为任务指定资源,覆盖在 system.tcl 指定的缺省值。
f、在 Job Options 中指定命令行选项。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
g、在 Job Miscellaneous Options (#1 - #4) 指定其他选项,传递给
rtm_job_cmd as –job_misc[1-4] ; 这 些 选 项 以 用 于 定 义 在 rtm_init_js_*.tcl 中 的
rtm_job_cmd proc
9、在 Error Checks 标签页中, 设置错误检查选项:
 从 Global Error Checks 选择 Disable 为当前任务禁用所有全局错误检查
 从 Pass File Control 选择条件,为创建 pass 文件定义条件,选项包括:
 创建 pass 文件(如果日志文件不包含任何错误或严重错误)
 创建 pass 文件(如果日志文件不包含任何严重错误(允许误差));
所有错误都暂时不考虑。
 不管任何错误或严重错误,总是创建 pass 文件
所有的错误和严重错误都暂时不考虑
 在 Task-specific Error Checks 中指定检查,创建特定任务的检查:
a、点击 添加行。
b、从 Rule 选择检查类型。
c、在 Pattern 指定模式。
d、选择 Severity。
注意:Count 是强制性的 must_allow 和 must_allow_exact 检查
10、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
流程示例(Flow Instance)

创建一个新的流程示例的时候,流程示例属性( )被设置,每个流程实例都有一组

输入和输出的边缘,通过流程实例属性编辑器,您可以删除现有的输入和输出边缘。
创建流程实例时,设置属性:
1、在流程编辑器中,打开流程
2、从 Add Item 选择 Flow Instance ( )对象添加流实例。

随着 Block Flow Manager 窗口,任务对象出现在编辑器中


3、从流程列表中,选择 Flow,点击 OK.

设置一个现有的流程实例的属性:
1、选择任务对象并单击鼠标右键> Properties ().
任务属性编辑器<object name>窗口出现。
2、在 Basic Controls 标签中:
 在 Instance Name 指定名称
 也可以查看组成对象

3、在 Edges 标签,也可以删除 Incoming 或 Outgoing Edges 通过点击

4、点击 Apply 和 Close。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用模块流程管理器(Using Block Flow Manager)
模块流程管理器允许你管理指定模块的所有流程。

要改变一个流程,流程文件 XML 状态必须是可写的,改变状态的方式,点击 Check


Out <block>.xml 按钮。
注意:Lynx 全局脚本存储在 scripts_global/<step>/下,但这不是强制性的。如果需
要对一个应用在项目中多个或所有块的全局脚本进行编辑,那么创建一个名为
scripts_global /<project> /的新目录并存储编辑的或新的全局脚本。例如,复制
scripts_global/syn/dc_compile.tcl 到 scripts_global/<project>/syn/dc_compile.tcl,然后
编辑流程文件,来引用这个新的脚本。如果需要改变一个全局脚本,或者增加一个
仅用于一个模块的新脚本,那么在<block_name>/scripts_block/<step>下,作为一个
本地脚本创建。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
要启动模块流程管理器,在流程编辑器中,选择 File > Block Flow Manager( )

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
模块流程管理器用于:
 添加已有流程
 添加新的流程
 编辑流程
 删除流程
 建立特定模块的全局流程
 指派顶层流程
 设置流程目标

添加已有流程
利用模块流程管理器为当前模块增加已有流程

1、在块流程管理器中,单击 Add Existing Flow ( )

Open Flow File 窗口出现


2、浏览到所需的位置,选择流程文件,然后单击 Open.
流程被添加到现有流程列表

增加新的流程
利用模块流程管理器为当前模块增加新的流程
1、在模块流程管理器(Block Flow Manager),点击 Add New Flow ()
<block> New Flow Instance 窗口出现
2、在 Flow Name 指定名称
3、在 File Name 指定文件名
4、点击 OK.
流程被添加到现有流程列表

编辑流程
利用模块流程编辑器改变与流程名称相关的 XML 文件
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name).

2、点击 Edit Selected Item ( ).

<block> Edit Flow Instance 窗口出现

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
3、在 File Name 编辑文件,改变流程文件
4、点击 OK。
流程得到更新。
删除流程
利用模块流程管理器,删除模块相关的流程
注意:顶层流程不可被删除,要删除当前设计的顶层流程,先分配其他流程作为顶
层流程,然后删除流程。
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。
2、点击 Remove Selected Item ().
流程被删除
建立特定模块的全局流程
利用模块流程编辑器,建立特定模块的全局流程
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。

2、点击 Make Selected Globe/Tech Flow a Block-Specific Flow ( ).

Save File As 窗口出现


3、指定位置并保存文件。

指定顶层流程
利用模块流程管理器,指定顶层流程。(任何流程都可以被指定为顶层流程)
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。

2、点击 Make Selected Flow Top-Flow ( ).

Top Flow Name 得到更新

设置流程目标
流程目标是用户指定的流程执行终点。设置流程目标,允许您从指定任务流程的开
始进行执行(enables you to execute a flow from the beginning of the flow to a specified
task),而不影响流程其余部分。利用模块流程管理器。在流程中指定特定任务作为
流程目标。
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。
2、从任务列表中选择一个任务(Object Name)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
3、点击 Make Selected Task the Flow Goal ( ).

Top Flow Foal 得到更新

创建新流程
为定制模块需求创建新的流程
注意:Lynx 全局脚本存储在 scripts_global/<step>/下,但这不是强制性的。如果需
要对一个应用在项目中多个或所有块的全局脚本进行编辑,那么创建一个名为
scripts_global /<project> /的新目录并存储编辑的或新的全局脚本。例如,复制
scripts_global/syn/dc_compile.tcl 到 scripts_global/<project>/syn/dc_compile.tcl,然后
编辑流程文件,来引用这个新的脚本。如果需要改变一个全局脚本,或者增加一个
仅用于一个模块的新脚本,那么在<block_name>/scripts_block/<step>下,作为一个
本地脚本创建。
1、在流程编辑器中,单击 New Flow ().
在选项卡中打开了一个新流程
2、增加流程对象和连接器,按照需求设置独立属性

3、点击 Properties ( )。

Flow Properties 对话框出现。


4、在 Flow Name 中指定名称
5、点击 OK.

6、点击 Save Flow ( ); 点击 Save Flow As ( ),以另一名保存新创建的流程

流程编辑器创建一个 XML 流程文件,并保存流程对象和连接器配置。

备份任务(Duplicating Tasks)
为设计探索备份(Duplicating)任务时,它继承了原来任务的 TEVs 和其他值
1、在流程编辑器中,选择将要备份(Duplicating)的任务对象
选择的对象由一个红色边框表示。
2、右键单击> Duplicate ( ).

一组名为<object_name> - copy 的备份(Duplicating)对象得到创建。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
复制任务(Replicating Tasks)
复制一个任务,来创建任务的多个示例
注意:只有工具任务和选择任务可以被复制
1、在流程编辑器中,选择将要备份(Duplicating)的任务对象
选择的对象由一个红色边框表示。
2、右键单击 > Replicate ().
复制的 <object_name> 窗口出现
3、在 How many to replicate 中指定复制创建的数目?
4、在 Start indexing at 指定 number,利用 number 为复制对象名添加后缀。
5、在 Task name mask 查看任务名称模式; 任务名称会加上索引号.
6、在 Destination mask 中,查看目标目录名称模式; 目标目录会加上索引号。
7、或者选择 Task Overrides Option? 启用覆盖模式。
注意: Copy Task Overrides 选项,仅当 block.xml 文件是可写时有效
8、选择 Replace existing task names?
9、也可选择 Create joiner target 自动创建联接所有复制任务的 joiner 任务
10、(可选)设置 Script Name Options; 选项如下:
 Keep original script
 Copy and rename scripts: 创建后缀为索引号的脚本副本。
 在 Mask 查看文件名模式; 文件后缀为索引号。
 选择 Overwrite existing scripts? 用相似的名称替换现有文件
11、点击 OK。
复制以后,按照需求,设置增加的任务属性

输入任务(Importing Tasks)
输入任务可以从一个文件到另外一个文件复制脚本

1、在流程编辑器中,点击 Import ( ).

Import Tasks 窗口出现

2、点击 Get File ( ),浏览并选择要导入的文件的任务。

任务列表出现如下:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Name
 Type
 Step
 Source
 Destination
 Tool
 Script
3、选择一个或多个导入的任务
4、点击 OK.

重新加载流程(Reloading Flows)
舍弃当前编辑,重载最新保存的流程文件。

1、在流程编辑器中,点击 Reload Flow ( )。

如果存在未保存的修改,则会出现警告。
2、点击 Close without Saving.
流程恢复到最近一次保存流程文件设置。

利用缩放选项
使用缩放来调整放大设。
 Zoom In ( ) 放大显示

 Zoom Out ( )缩小显示

 Zoom Fit ( )适合流程显示

 Zoom 1:1 ( )重置缩放级别

另外,也可以滚动鼠标滚轮来放大或缩小

设置图标选项(Setting Graph Options)


使用图形选项来调整显示

Show Grid ( )显示对象定位网格。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Snap Objects to Grid ( )自动对齐对象到网格。

Align Left ( )对齐对象到左边。

Crop ( ):

 Expand Up ( )向上扩展编辑器

 Expand Left ( )向左扩展编辑器

 Expand Down ( )向下扩展编辑器

 Expand Right ( )向右扩展编辑器

生成报告(Generating Reports)
1、在流程编辑器中,点击 Reports.
2、选择生成报告类型;包括:
 Task Overrides
 Check Flow > Generate Report
流程编辑器生成报告,并显示出来。
也可以利用下面的选项:
Take Snapshot: 创建一个流程编辑器内容图像的 PNG 文件格式

在执行监视器中打开任务

1、在流程编辑器中,对于选定的任务,右键单击> Open in EM ( ).

Select Session to Open 窗口出现


2、选择一个存在的会话或 <new session>.
执行监视器打开选定的任务。

流程检测、报告和文档
流程编辑器包含内建的检查和报告,另外通过命令行,可以为一个选择的模块,自
动生成一个完整流程的 HTML 格式的文档。
检查
 内建的检查验证流程的可执行性,关键的流程检查包括:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 缺少顶层流程或实例
 不正确的流程实例引用
 在流程中的循环依赖
 重复的流程名称
 缺少或无法识别的默认流程目标
 不正确的流程边缘引用
 流程边缘源或目标(SRC / DST)不匹配
 重复的模块、步骤、任务或目标目录(DST)
 解析模块和流程 XML 文件中的错误
 无法识别的工具名称
 缺少任务脚本
 在任务或 joiners 中未定义步骤
 无法识别的任务覆盖

这些检测分配的严重级别:
Error: 阻止流程执行
Warning: 可能导致运行错误
Information: 对流程执行没有影响
检查到的 error 严重级别,会阻止流程加载到 EM,你可以按项目要求为一些流程
检测指定安全级别。
报告
内建的报告包括:
 Task Overrides Report:列举与当前被覆盖值的模块相关的任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Check Flow Report:检查与当前模块相关的所有流程文件,并提供一个状态报

 文档
文档功能为选定模块,自动生成 HTM 文件格式的完整文档

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
自动生成文档功能,为选择模块生成与关键文件、函数和变量相关的,详细的步骤
列表。可以深入了解到各个任务的详细信息,例如工具、步骤、SRC、DST、脚本
和变量。更多信息,参考 Generating Documentation

设置检查严重等级
通过 Check Flow Configuration Dialogue 选项,你可以按项目要求,为一些流
程检测指定安全级别。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
指定方式:
1、在流程编辑器中,点击 Reports > Check Flow > Configure Reports.
2、Check Flow Configuration Dialogue 窗口出现
3、通过对每个检查下拉菜单中,选择级别指定检查的严重性:
 Error: 阻止流程执行
 Warning: 可能导致运行错误
 Information: 对流程执行没有影响
注意:某些检查有固定的严重等级
4、点击 OK

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
生成报告
1、在流程编辑器中,点击 Reports.
2、选择生成报告类型;有以下选项:
 Task Overrides
 Check Flow > Generate Report
流程编辑器生成报告,并显示出来。也可以利用下面的选项:
 Take Snapshot:创建一个流程编辑器内容图像的 PNG 文件格式

生成文档
以为一个选择的模块,自动生成一个完整流程的 HTML 格式的文档。
可 以 利 用 rtm_generate_flow_docs 命 令 , 这 个 命 令 定 义 在
scripts_global/conf/rtm_generate_flow_docs.tcl 中。
生成方式,在 rtm_shell 下,输入:
rtm_generate_flow_docs -dir <dir> -block <name>
选项包括:
 -block Astring:指定要记录的块
 -dir Astring:指定要创建的文件目录
 [-force]:强制删除现有的文件目录
 [-debug]:用于调试的文档功能
例如:rtm_generate_flow_docs -dir /1303_SP1/Docs -block dhm –force
-dir /1303_SP1/Docs 是文件输出目录,-block dhm 是要记录的模块,-force 是强制覆
盖现有的文件目录
查看流程文档,浏览到文件夹,用网页浏览器打开 index.html,从主页的超链接点
击访问详细文档。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
执行流程
在 Lynx 设计系统中,流程是通过 RTM 的执行监视器执行的。通过执行监视器,您
可以一次性执行整个流程,或交互的调试各个步骤或任务。您可以运行多个流程或
同时执行单个流程的多个会话。执行监视器包含脚本跟踪器功能,一个特定的任务
被执行时,它可以提供所有正在运行的脚本的分层视图。它生成报告如.pass 和.fail
文件,.pass 文件记录任务执行,脚本 sourcing,过程调用的进展,.fail 鉴别错误来
源。查看文件选项允许特定任务的 HTML、报告、设计和 RTM 文件。

启动执行监视器

从运行系统管理器启动执行监视器。在执行监视一个特定的块单击 。执行监视器

打开,显示模块中可执行的任务列表,你也可以直接从流程编辑器中直接启动执行
监视器:右键任务> Open in EM;从 Select Session to Open 窗口,选择一个已有的
会话或者启动一个新的会话来启动执行监视器。

关闭执行监视器:点击 File > Close Window( )

使用执行监视器
执行监视器提供了一个可视化界面,用于调用、控制和监控流程执行状态。使用执
行监视器,你可以同时调用一个包含多个步骤或任务的完整流程,或者流程的多个
独立任务。由于颜色指示器显示流程执行的状态,你可以实时查看流程的执行、步
骤 或 任 务 。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
在执行监视器中,会话是模块的一个运行时实例化,对于给定的模块,你可以创建
多个会话(sessions),使得你可以并行地运行不相关的步骤和任务。

会话由执行监视器中的标签页体现,当前流程是当前选中,且在前面的标签。您可
以通过在标签栏上,将其从一个位置拖动到另一个标签页,实现重新排序。围绕一
个会话标签的黄色边框,表示该会话和创建它的流程 XML 文件不同步(Dirty
Session)。

注意:会话共享相同的运行数据目录,因此,通过多个会话并行执行相同的任务或
步骤会覆盖运行数据,另外,会话仅仅在 RTM 持续时间内有效。

流程的执行
流程的执行是指执行流程中的一组任务或者步骤,对于流程中的每一个任务,执行
监视器以表格格式显示以下详细信息:
Step: 在流程编辑器中的 Step Name 中指定的步骤名称,如 10_syn、20_dp、30_pnr、
Type 和 Type Name:流程编辑器任务的对象类型; gen 和 endgen 是由一个发生器
任务在运行时所产生的虚拟任务。
 Milestone:指示是否任务达到标志(Milestone)
 Pass Status:指示执行状态
 Combined Status:运行和空闲时指示组合状态
 Dst:目标目录
 Src:源目录
 Block:模块名
 Log TimeStamp:当生成日志的时间

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Pass TimeStamp:成功执行任务的时间
 Object:流程编辑器任务对象的名称

运行选项
流程的执行是通过运行选项进行控制的,运行选项在流程执行的开始进行设置,利
用运行选项,你可以设置:
Basic: 流程的停止和 pass 文件创建条件、指标、GUI 模式和跟踪设置等
Aux TEV: 附加的 TEVS 设置
Tool Versions: 执行流程工具版本选择设置
Job Control: 计算群集作业分配设置(Compute cluster job distribution settings)

执行状态
在执行监视器中,流程的状态是通过颜色指示的

Pass Status: 指示执行状态

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Combined Status:指示运行和空闲时的组合状态

流程运行:

流程空闲:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
当流程执行时,脚本通过下列优先级加载:
1、通用程序
 scripts_global/conf/procs.tcl
 scripts_global/conf/procs_flow.tcl
 scripts_global/conf/procs_metrics.tcl
 scripts_global/conf/procs_user.tcl
2、Techlib 设置
 scripts_global/<TECHLIB>/common.tcl
3、模块设置
 blocks/<TECHLIB>/$SEV(block)/scripts_block/conf/block.tcl
 blocks/<TECHLIB>/$SEV(block)/scripts_block/conf/block_setup.tcl

任务执行
您可以运行单独的任务和交互调试失败任务,或探测每个设计中任务的结果,
任务执行的选项:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Don’t Run:工具启动,设置搜索路径以及其他环境变量,之后显示一个命令提示符。
你可以剪切和粘贴任务脚本的内容,放到工具窗口,并按照脚本一步一步执行。
Don’t Exit: 工具启动并执行全部的脚本,然后提示一个命令符。你可以根据需求,
利用本机工具(native tool)命令探测和调试设计或脚本

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
流程目标
流程目标是用户指定的流程执行终点。设置流程目标,允许您从指定任务流程的开
始进行执行(enables you to execute a flow from the beginning of the flow to a specified
task),而不影响流程其余部分。

任务导航(Task Navigator)
任务导航(Task Navigator)提供了整个流程执行过程的全面的可视状态,在任务导航
器的每一行分别对应于任务表中独立的项目。当运行有大量任务的流程时,您可以
根据颜色状态提示,使用导航来快速滚动到特定的任务,就和执行监视器的色彩指
示一样。

任务导航器出现在执行监视器右侧

追踪日志(Trace Log)
Trace 是一个(single flat)脚本,它重现任务脚本执行过程中的所有行为。Trace 文件
与日志文件和 pass/fail 文件生成的目录是一样的。可以利用 Trace 进行调试。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Milestones
Milestones 是用户指定的检查点,迭代运行序列任务,而不影响前后 milestones
任务。当流程执行时,Milestones 为独立任务进行设置。根据需求,利用 Task
Properties Editor 来为独立任务设置 milestones。

脚本追踪(Script Tracer)
脚本追踪展示了一个特定任务执行时的所有脚本的分层视图

预览流程(Preview Flow)
预览流程生成一组特定任务文件,用于在不执行流程时导出一个流程。预览生成通
过 rtm_export_flow 命令,导出生成.rtm_shell.preview.<block>文件。运行视图在一
个临时数据库中创建运行数据的一个副本,并提供一个工具提示用于交互。利用运
行视图,你可以执行 GUI 或 CLI 分析和调试,并使用该数据作为一个自定义脚本
起点。运行单任务(Run Single Task)和运行视图(Run View)之间的主要区别在于其数
据读取和写入的地方。对于运行单任务(Run Single Task)而言,数据从源目录读取
写入目标目录,对于运行视图(Run View),数据被拷贝到一个临时区域并读取。Run
作用在流程中的主要数据,View 作用在数据的副本,所以不影响相关性。

任务文件
.pass 和.fail 文件显示了任务执行的过程、脚本加载、函数调用以及特定错误生
成的情形。

菜单命令(Menu Commands)
执行监视器的命令都可以在菜单和工具栏中找到,流程执行,任务执行命令可
以通过右键菜单中的任务表等价执行。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
命令行执行
可以通过 RTM 的 CLI 运行一些执行监视器命令

显示设置
根据需求改变显示设置,执行监视器显示设置包括:
 设置列
 排序行
 设置字体

设置列(Setting Columns)
利用 Table Setup 选项增加或移除在执行监视任务表的显示项目,另外你可以显示
运行指标。该表可以通过右键列标题,逐列存储。

1、在执行监视器中,单击 Table Setup ( ).

Table Setup 窗口出现


2、在 Columns 标签页,针对 Column Name 中的项,在 Visible 中选择 Show
3、在 Metrics 标签页
a、点击 Add Metric.
Select Metric Name 窗口出现.
b、选择一个或多个 metric:
可以在 Metric Name 编辑名称
也可以在 Column Header 编辑名称
4、点击 OK.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
排序行(Ordering Rows)
在 Per Table Set Up、Per Log File Time 或 Per Flow Order 基础上,重新排列任务
表项。设置方式:
在执行监视器中,重排任务:
点击 Per Table Set Up( ),按对象类型进行排序。

点击 Per Log File Time( ),按日志文件时间排序任务

点击 Per Flow Order( ),按流程 XML 文件中定义排序任务

另外,点击 Hide Downstream Flow Tasks( )来隐藏超出流程目标的任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置字体(Setting Fonts)
调整执行监视任务表中的字体设置:

1、在执行监视器中,单击 Table Font ( ).

Choose Font 窗口出现


2、选择选项:
 从 Fon 选择字体
 从 Font Style.选择字体类型
 从 Size 选择字体大小
 也可选择 Strikeout 穿过字体放置水平线
 也可选择 Underline 在字体下放置水平线
 也可以从 Writing System 选择语言
3、点击 OK.

管理会话(Managing Sessions)
当从 RTM 中调用执行监视器时,会自动创建一个特定模块的会话。也可以为一个
模块增加一个会话,来并行运行不相关的步骤和任务。会话在执行监视中由标签标
识。
会话管理可以:
 创建会话
 打开会话
 复制会话
 刷新会话
 删除会话
创建会话
创建一个新的会话运行流程或任务。可以为模块创建多个会话:

1、在执行监视器中,单击 New Session ( ).

Select Block to View 窗口出现


2、选择模块
3、点击 OK.
注意:当在 RTM 的 GUI 调用执行监视器或利用执行监视器 Create New Session 选

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
项创建一个新的会话时,milestones 被设置给定义在 XML 中的文件(milestones are
set to those defined in the flow XML file)
也可以利用 View > Rename Session Tab 选项重命名会话
打开会话(Opening Sessions)
打开一个关闭的会话来重新运行流程或任务。执行监视器保留从当前 RTM 会话开
始的所有会话。可以打开任何保留的会话:

1、在执行监视器中,单击 Open Session ( ).

Select Session to View 窗口出现


2、选择一个会话
3、点击 OK。
也可以直接从流程编辑器中打开一个会话:在流程编辑器中,鼠标右键单击任务
> Open in EM,从 Select Session to Open 窗口,选择存在的会话并打开。

关闭一个活动的会话:点击 Close Session( ),与删除会话相比,关闭会话并不删

除数据。

复制会话(Copying Sessions)
复制一个会话用于并行运行任务,或以不同的设置选项重新运行任务或流程。
注意:当复制会话的时候,milestones 保持和源会话一样

复制会话:点击 Copy Session( ),会话被复制并以一个新标签出现。执行监视器

利用增量会话号(incremental session numbers),自动添加新会话名。

刷新会话(Refreshing Sessions)
刷新会话丢弃所有当前流程编辑,然后重新加载会话最开始的流程文件。(Refresh
a session to discard all current flow edits and reload the flow file that was at the beginning
of the session),当前流程文件的编辑呈现(Presence of edits)是由会话标签周围黄色
边缘指示的。
注意:如果你改变在执行监视器中的 milestones,然后重新加载流程,会话中的
milestones 会被保留。(If you change the milestones in the Execution Monitor and reload
the flow, milestones in the session are retained)。

刷新当前会话,点击 Refresh Session( )。流程文件会被重新加载,会话标签页的


翻译:曾义和 联系方式:zengyihe@ict.ac.cn
黄色边缘消失。

删除会话(Deleting Sessions)

删除会话将关闭会话并删除会话运行数据,删除方式:点击 Delete Session( )

设置流程目标(Setting Flow Goal)


流程目标是用户定义的流程执行终点。为一个指定模块设置流程目标,允许您从一
个流程的最开始执行,而不执行或影响其他流程。(Setting flow goal enables you to
execute a flow from the beginning of the flow to a specified task without executing or
impacting the rest of the flow):
1、在执行监视器中,选择将要设置流程目标的任务
选择的任务以蓝色(blue)高亮显示
2、点击
流程目标任务变橙色(orange)
也可以利用 Run Flow to Here 选项,来为一个特定任务运行流程

Using Milestones
Milestones 是用户定义的检查点,他为一个任务迭代运行一个序列,而不影响之前
或之后的 milestone 任务。milestone 是为单个任务设置的,他在流程执行时被考虑
进来 (honored when a flow is executed)。根据需求,利用任务属性编辑器(Task
Properties Editor)为单个任务设置 milestones。
Milestones 和执行监视器会话
当在 RTM 的 GUI 调用执行监视器或利用执行监视器 Create New Session 选项创建
一个新的会话时,milestones 被设置给定义在 XML 中的文件。如果复制会话,
milestones 保留和源会话一样。如果在执行监视器中改变 milestones,然后重新加载
流程,会话中的 milestones 被保留下了。

在流程中使用 milestones:在执行监视器的工具条中点击 Honor Milestones( )。

指示 milestones 被考虑进来(indicates milestones are honored)。单一的 milestones

被任务表中的 指示。使能或禁止单独的 milestones,选择任务,右键选择 Task >

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Toggle Milestone
运行流程(Running Flows)
运行流程执行一组任务。根据需求,利用 Run Flow Options,设置基本流程执行选
项,或覆盖初始的流程设置。例如 auxiliary TEVs、工具版本和工作控制设置(job
control settings)。
注意:在 RTM UI 中利用 Exit When Idle 选项自动退出 RTM,并在执行流程后释
放 license。
运行方式:

1、在执行监视器中,点击 Run Flow( )

Run Flow Options 窗口出现

2、点击 Execute( )

你可以在执行监视器中查看执行过程: 代表成功完成任务, 代表运行任

务, 代表尚未完成的任务, 代表失败的任务。你可以浏览 log( ),pass( ),

fail( )文件查看与执行任务相关的更多细节。

运行流程选项
为选择基本流程执行选项设置 Run Flow Options(To set Run Flow Options for
selecting basic flow execution options),或者覆盖初始的流程设置:
1、在 Run Flow Options > Options 标签页,设置基本流程选项:
a、选择 Halt the Flow if any Task Fails ,在失败的任务事件中,停止流程的执行。
b、选择 If the Flow is Halted. Kill any Running Tasks ,在失败的任务事件中强制
关闭所有当前任务。
c、在中为创建 pass 文件选择标准:
 Create Pass file if Log file contains no errors or fatals
 Create Pass file if Log file contains no fatals(errors are allowed);所有的 error 都
被暂时容忍
 Always create the Pass file regardless of any errors or fatals;所有的 error 和
fatals 都被暂时容忍
d、选择 Use GUI ,在前台运行工具
e、选择 Ignore File Changes,覆盖文件编辑(override file edits)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
f、从 Trace 选择选项,管理 logs;
 Off
 Normal
 Verbose
2、在 Aux TEV 标签页,选择指定 auxiliary TEV 变量:

点击 添加行,指定值,然后单击

3、在 Tool Versions 标签页中,编辑用于任务的工具版本详细信息


 通过双击行和指定值编辑工具版本

单击 放弃编辑并重新加载最近保存的脚本或流程,返回

4、在 Metrics/Jobs 标签页中,设置指标和计算集群作业选项


a、从 Metrics Enable 设置选项,控制指标的产生和传递:
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
b、 选择 ARO Enable 使能自适应资源优化器(ARO) 用于执行优化作业
c、 选择 Job Enable 允许运行系统管理器通过后续选项,按照指定作业触发任
务, 如工作分配模式;禁用时任务在和 RTM 实例相同的 shell 下执行。
d、在 Job Distribution Method 中指定支持的工作分配方法; 例如 Load Sharing
Facility (LSF) or Global Resource Director (GRD).
e、在 Job Queue 中指定队列,覆盖在 system.tcl 指定的缺省值
f、在 Job Resources 中为任务指定资源,覆盖在 system.tcl 指定的缺省值。
g、在 Job Options 中指定命令行选项。
h、在 Job Miscellaneous Options (#1 - #4) 指定其他选项,传递给 rtm_job_cmd
as –job_misc[1-4];这些选项以用于定义在 rtm_init_js_*.tcl 中的 rtm_job_cmd proc

要停止运行流程,点击 Halt Flow( ),通过点击 Run Flow( ),你可以恢复一个


暂停流程。为指定任务重新运行流程,你必须清除以前运行的所有任务 pass 文件。

利用 Delete Current and All Prior Pass Files( )选项,删除所有 pass 文件,也可

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
以清除指定模块来重新运行流程。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行任务(Running Tasks)
运行任务,以交互方式执行单个任务。根据需求,利用 Run Task Options 设置基
本任务执行选项,或者覆盖初始流程设置,如 TEV,辅助 TEVs(auxiliary TEVs),
工具版本以及工作控制设置。交互运行任务,来调试失败任务。或者检测设计中每
一个任务的结果。使用运行任务选项 Run Task Options:
Don’t Run:工具启动,设置搜索路径以及其他环境变量,之后显示一个命令提示符。
你可以剪切和粘贴任务脚本的内容,放到工具窗口,并按照脚本一步一步执行。
Don’t Exit: 工具启动并执行全部的脚本,然后提示一个命令符。你可以根据需求,
利用本机工具(native tool)命令探测和调试设计或脚本
运行方式:
1、在执行监视器中,从任务列表中选择任务运行

2、点击 Run Single Task( )

Run Task Options 窗口出现

3、点击 Execute( )

运行任务选项(Run Task Options)


为选择基本任务执行选项设置 Run Task Options,或覆盖初始任务设置:
(To set Run Task Options for selecting basic task execution options or overriding default
task settings)
1、在 Run Task Options > Options 标签中,设置基本任务选项
a、取消选择 Don't Run;选择 Don't Run 启动工具,设置搜索路径和其他环境变量,
之后提出了一个命令提示符(and then presents a command prompt)
b、可以选择 Force 重新运行任务,覆盖之前的 pass 文件
c、可以选择 Don't Exit,在运行任务之后保持任务工具打开
d、可以选择 Preview 来生成 RTM 文件,例如 manage_data
e、可以选择 GUI 在前台运行工具
f、可以选择 Ignore File Changes ,跨过当前流程编辑,并利用在会话开始时加载
的 XML 文件运行任务
g、可以选择 Check Log File Only ,来重新解析任务 log 文件而不用重新运行任
务;只适合于重新运行的任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
h、从 Trace 中选择选项,管理 logs,选项包括:
 Off
 Normal
 Verbose
i、从 Tool Name 中选择工具运行任务;工具名是从中读取的。
j、从 Bit Mode 中选择 64 或 32 位模式运行工具
k、可以选择 GUI Mode,用于在前台运行工具
i、指定或选择脚本文件,执行行动和决策的广播(performs actions and broadcasts
decisions)

 点击 浏览和选择文件

 点击 检查(check out)用于编辑的文件

 点击 利用文本编辑器编辑文件

 点击 放弃更改,重新加载最新保存的文件

m、可以在中指定关于任务的描述
n、在 Source 中指定加载数据目录
o、在 Destination 中指定写数据目录
2、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

Text box:指定值(单击 以选中目录),然后点击 ;

也可以使用 ,使全局脚本文件作为特定模块文件。

Boolean:选择 True 或者 False.


List box:选择一个值。

List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

3、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

4、在 Tool Versions 标签页, 编辑或查看用于任务的工具的版本详细信息:


 通过双击行编辑工具版本和指定值
查看变量的状态:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个任务被加

载,辅助工具选项允许为特定的任务来加载附加的工具。
5、在 Metrics/Jobs 标签页中,设置指标和计算集群作业选项:
a、设置指标选项
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
b、 选择 ARO Enable 使能自适应资源优化器(ARO) 用于执行优化作业
c、 选择 Job Enable 允许运行系统管理器通过后续选项,按照指定作业触发任
务, 如工作分配模式;禁用时任务在和 RTM 实例相同的 shell 下执行。
d、在 Job Distribution Method 中指定支持的工作分配方法; 例如 Load Sharing
Facility (LSF) or Global Resource Director (GRD).
e、在 Job Queue 中指定队列,覆盖在 system.tcl 指定的缺省值
f、在 Job Resources 中为任务指定资源,覆盖在 system.tcl 指定的缺省值。
g、在 Job Options 中指定命令行选项。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
h、在 Job Miscellaneous Options (#1 - #4) 指定其他选项,传递给 rtm_job_cmd
as –job_misc[1-4];这些选项以用于定义在 rtm_init_js_*.tcl 中的 rtm_job_cmd proc

停止运行任务,点击 Halt Task( )

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用运行视图(Using Run Views)
运行视图在一个临时数据库中创建运行数据的副本,并提供一个工具提示用于交互。
运行视图执行下列:
 在 CLI 或 GUI 界面,为任务调用工具
 创建运行数据副本,避免对源数据的修改
 打开运行数据的副本
使用运行视图,可以执行 GUI 和 CLI 分析和调试,并利用这些数据作为一个定制
脚本的起点。在运行单任务(Run Single Task)和运行视图(Run View)的关键差别在于
数据从哪里读和数据写在哪里。对于运行单任务(Run Single Task)而言,数据从源
目录读取写入目标目录,对于运行视图(Run View),数据被拷贝到一个临时区域并
读取。Run 作用在流程中的主要数据,View 作用在数据的副本,所以不影响相关
性。
例如在示例设计中,如果你利用 icc_create_floorplan 的运行视图(Run View)选项,
执行监视器调用 ICC,在 VIEW.icc_create_floorplan 中创建运行数据副本,并提供
一个 icc_shell 提示。你可以执行设计分析、重复修改 floorplan、生成报告、调试然
后在 ICC 中利用 write_floorplan 选项写入新的 floorplan 到当前流程中。用于 ICC
的运行视图用$SEV(gscript_dir)/view/view_icc.tcl
注意:您也可以为 TCL 任务调用运行视图(Run View)
根据需求,利用 View Design Data Options 设置基本任务执行选项,或覆盖初始流
程设置,如 TEV ,辅助 TEVS ,工具版本和作业控制设置(TEV, auxiliary TEVs, tool
versions, and job control settings)
To view:
1、在执行监视器中,从任务列表中选择将要查阅的任务(select task to view)

2、点击 Run View ( )

View Design Data Options 窗口出现

3、点击 Execute( )

查看设计数据选项(View Design Data Options)


为选择基本任务执行选项设置 View Design Data Options,或覆盖初始任务设置:
1、在 Run Task Options > Options 标签中,设置基本任务选项

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
a、取消选择 Don't Run;选择 Don't Run 启动工具,设置搜索路径和其他环境变量,
之后提出了一个命令提示符(and then presents a command prompt)
b、可以选择 Force 重新运行任务,覆盖之前的 pass 文件
c、可以选择 Don't Exit,在运行任务之后保持任务工具打开
d、选择 Edit Source,禁用复制到默认目标目录。
e、可以选择 GUI 在前台运行工具
f、可以选择 Ignore File Changes ,跨过当前流程编辑,并利用在会话开始时加载
的 XML 文件运行任务
g、可以选择 Check Log File Only ,来重新解析任务 log 文件而不用重新运行任
务;只适合于重新运行的任务
h、从 Trace 中选择选项,管理 logs,选项包括:
 Off
 Normal
 Verbose
i、从 Tool Name 中选择工具运行任务;工具名是从中读取的。
j、从 Bit Mode 中选择 64 或 32 位模式运行工具
k、可以选择 GUI Mode,用于在前台运行工具
i、指定或选择脚本文件,执行行动和决策的广播(performs actions and broadcasts
decisions)

 点击 浏览和选择文件

 点击 检查(check out)用于编辑的文件

 点击 利用文本编辑器编辑文件

 点击 放弃更改,重新加载最新保存的文件

m、可以在中指定关于任务的描述
n、在 Source 中指定加载数据目录
o、在 Destination 中指定写数据目录
p、选择 Add Time Stamp,抓取并添加当前时间到目标目录名
2、在 TEV 标签页,编辑或查看在任务脚本被指定的任务所使用的 TEV 变量
 根据类型编辑值:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Text box:指定值(单击 以选中目录),然后点击 ;

也可以使用 ,使全局脚本文件作为特定模块文件。

Boolean:选择 True 或者 False.


List box:选择一个值。

List:点击 添加行,指定值(单击 选中目录),然后单击 。

注:未保存的修改以黄色突出显示.
 查看变量的状态:

 表示该变量被从脚本中读取和不在流程文件中

 表示该变量被从脚本读取,且在流程文件。

 表示该变量被从流程文件中读取,并在流程文件中。

 写入文件,或放弃更改从文件中读取:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

3、在 Aux TEV 标签页中,选择指定的辅助 TEV 变量,将信息传递给子脚本:

 点击 添加行,指定值,然后单击确定

4、在 Tool Versions 标签页, 编辑或查看用于任务的工具的版本详细信息:


 通过双击行编辑工具版本和指定值
查看变量的状态:

 点击 写入变量/值到流程文件中;返回 。

 单击 放弃编辑并从脚本或流程重新加载;返回 。

单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个任务被加

载,辅助工具选项允许为特定的任务来加载附加的工具。
5、在 Metrics/Jobs 标签页中,设置指标和计算集群作业选项:
a、设置指标选项
 从 Generation Mode 选择 Generate SYS Metrics Only 或者 Generate All

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Metrics 指定生成的指标类型。
 从 Transfer Mode 中选择 Do not send Metrics、Send SYS Metrics Only 或
Send All Metrics 来把指标转移到管理舱(Management Cockpit)
b、 选择 ARO Enable 使能自适应资源优化器(ARO) 用于执行优化作业
c、 选择 Job Enable 允许运行系统管理器通过后续选项,按照指定作业触发任
务, 如工作分配模式;禁用时任务在和 RTM 实例相同的 shell 下执行。
d、在 Job Distribution Method 中指定支持的工作分配方法; 例如 Load Sharing
Facility (LSF) or Global Resource Director (GRD).
e、在 Job Queue 中指定队列,覆盖在 system.tcl 指定的缺省值
f、在 Job Resources 中为任务指定资源,覆盖在 system.tcl 指定的缺省值。
g、在 Job Options 中指定命令行选项。
h、在 Job Miscellaneous Options (#1 - #4) 指定其他选项,传递给 rtm_job_cmd
as –job_misc[1-4];这些选项以用于定义在 rtm_init_js_*.tcl 中的 rtm_job_cmd proc

6、点击 Execute( )

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
重新运行流程(Re-running Flows)
当运行一个流程时,执行监视器检测 .pass 文件任务是否存在 (the presence of
task .pass files)。重新运行流程时,你必须删除之前的.pass 文件,另外,你也可以
清除指定模块来重新运行流程:
1、在执行监视器中,从任务列表中选择流程目标

2、点击 Delete Current and All Prior Pass Files( )

所有的 pass 文件都被删除

3、点击 Run Flow( )

重新运行任务(Re-running Tasks)
当运行一个任务时,执行监视器检测 .pass 文件任务是否存在 (the presence of
task .pass files)。重新运行任务时,你必须删除之前的.pass 文件:
1、在执行监视器中,选择重新运行的任务

2、点击删除当前 pass 文件( )

任务的 pass 文件被删除

3、点击 Run Single Task( )运行文件

跳过任务(Skipping Tasks)
跳过一个任务来执行流程执行过程中的任务。要跳过一个任务,define TEV(skip) as
a TEV or an Aux TEV,然后在任务属性编辑器(Task Properties Editor)中设置为 1,
跳过的任务被流程编辑器中一个(s)符号指示。

如 ,跳过方式:

1、在执行监视器中,选择任务右击> Task > Open Properties in Flow Editor


Task Properties Editor-<object name>窗口出现

2、在 Basic Controls 标签页中,点击 ,利用文本编辑器编辑任务文件


3、增加 TEV(skip)到任务 TCL 文件中,例如:
## NAME: TEV(skip)
## TYPE: boolean
## INFO:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
## * Set to 1 to skip this task.
set TEV(skip) "0"
4、在 TEV 标签页中,设置 TEV(skip)为 1
5、点击 Apply and Close。
跳过的任务被流程编辑器中一个(s)符号指示

放弃失败的任务(Waiving Failed Tasks)


放弃一个失败的任务,跳过该任务并继续执行流程
1、在执行监视器中,点击要放弃的任务

2、点击 Touch Current Pass File( )

放弃的任务以黄色高亮显示

放弃任务以后,点击 Run Flow( )继续流程执行,利用 Touch Current and All

Prior( )选项,放弃选定的任务的所有任务。

启用追踪日志(Enabling Trace Log)


Trace 是一个(single flat)脚本,它重现任务脚本执行过程中的所有行为。Trace 文件
与日志文件和 pass/fail 文件生成的目录是一样的。可以利用 Trace 进行调试。
执行监视器提供两级 Trace:
 Normal
 Verbose
为流程启用追踪(Trace),在 Run Flow Options 中选择 Normal 或 Verbose,为任务
启用追踪(Trace),在 Run Task Options 中,选择 Normal 或 Verbose

使用脚本追踪器(Using Script Tracer)


脚本追踪器展示了当执行一个任务正在运行时,所有脚本的层次视图

1、在执行监视器中,点击 Script Tracer( )

<task> Script Tracer Dialog 窗口出现,展示了当执行一个任务正在运行时,所


有脚本的层次视图
2、也可以:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
点击 Edit( ),在文本编辑器中打开选择的文件

点击 Check Out( ),检查(check out)用于编辑的选中的文件

指示文件可写。

监视日志文件(Monitoring Log Files)


日志文件提供了单一任务执行的实时信息,如脚本加载(scripts sourced),时间节点
(time stamps),以及资源利用率(resource utilization)

监视方式,任务执行或执行完毕后,在执行监视器中,点 Monitor Log File( ),


Monitor 窗口出现,显示执行的详细信息。

使用任务导航(Task Navigator)
任务导航(Task Navigator)提供了整个流程执行过程的全面的可视状态,在任务导航
器的每一行分别对应于任务表中独立的项目。当运行有大量任务的流程时,您可以
根据颜色状态提示,使用导航来快速滚动到特定的任务,就和执行监视器的色彩指
示一样。任务导航器出现在执行监视器右侧,使用方式:
1、在任务导航器中(Task Navigator):
查看状态:
指示没有错误的成功完成任务

指示正在运行的任务

指示正在挂起的任务

指示失败的任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
指示放弃的任务

通过拖动选择器( )导航,滚动任务列表

通过右键单击并选择显示设置:
 View by Pass File Status
 View by Combined Status

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用命令行(Using Command Line)
从命令行运行流程,你必须参考将要执行的流程对象名称。参考流程对象:利用
current_block 设 置当前 模 块 到一 个 有 效 的 值 , 之后 , 你 可以 通 过 get_objs or
report_objs 命令得到这个模块可用流程对象的列表。例如:
rtm_shell> get_blocks
dhm dhm_upf dsma dsmb dtop
rtm_shell> current_block dhm
dhm
rtm_shell> run_flow –background 1 –id dhm –job_enable 1 \ –obj
/SAED90NM.SNPS.A/dhm/tf_hard_macro/all_analyze
单个任务可以通过使用 run_task 命令运行,run_task 命令执行单一任务,完成后会
生成一条消息。你必须指定一个有效的会话 ID,flow_object 必须是 current_block
流程对象之一,- obj 和-ID 参数是必须的。如:
rtm_shell> run_task -id dhm/1 -background 1 -obj sf_finiish/icc_run_drc -gui 0 -trace 0
-metrics_enable 2 -job_enable 1
上面的命令以 current_techlib 和 current_block,运行 run_task 命令;会话是 dhm/1;
目标流程对象是 icc_run_drc,并关闭了 GUI;trace_mode 为 none;生成和获取指
标;job_enable 使能。从命令行打开 ARO,在 run_flow, run_task, or run_view 命令
时,带上–aro_enable 选项

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
清除模块(Cleaning Blocks)
清除模块删除流程执行过程中生成的所有运行数据,清除模块用于重新运行流程:

1、在执行监视器中,单击 Clean Blocks( )

Clean Project 窗口出现


2、从 Data Directories 中选择目录,抹去特定块的运行数据
3、点击 OK

查看报告和文件(Viewing Reports and Files)


运行系统管理在任务的执行过程中,生成多个报告和文件,查看:
1、在执行监视器中,选择要查看文件的任务:

2、点击 View Files( )

View Files 窗口出现


3、打开文件:

 点击 View HTML Files ( )

 点击 View Reports Files ( )

 点击 View Design Files ( )

 点击 View RTM Files ( ),查看在运行视图生成的文件

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
处理错误
关于流程执行错误
在执行监视器中,流程执行错误一旦匹配用户定义的条件,需要通知或采取行动。
错误检测需要解析预定义模式下,任务执行的日志文件。
If error checking determines that errors are::
 Present: 生成一个<task_name>.fail 命名的概要文件(summary file)
 Not present: 生成一个<task_name>.pass 命名的概要文件
两种情况下,消息的概要总是会被写入.pass 或.fail 文件。.pass 形成一个流程的依
赖检查(The .pass files form the dependency checking of a flow);如果没有创建.pass 文
件,流程停止在一个失败的任务上。.fail 文件创建一个包含遇到错误的日志文件的
摘要。
rtm_check 程序,用于执行错误检测,它在每个任务的最后都被调用。为了提供特
定任务的错误检查,错误检测在步骤流程文件中被执行 (The error checking is
performed in the step flow files in order to provide task-specific customization of error
checks)。

错误模式规则(Error Pattern Rules)


错误是在解析预定义模式任务执行,所产生的日志文件时被鉴定的 (Errors are
identified by parsing the log files generated during task execution for pre-defined patterns)。
有 5 种错误规则,可以被应用到模式匹配(can be applied to a pattern match):
 must_have: 必须至少有一个匹配
 must_not_have: 不必有任何匹配
 must_allow: 可以有任意数量的匹配
 must_allow_exact: 可以有确切指定数目的匹配
 must_allow_max: 可以有指定数量的匹配,而不会产生一个错误条件
范围
依据范围,错误可以定义成如下级别:
Global :适用于所有块和任务
Task :适用于一个特定的任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
全局(默认)检查,定义在 scripts_global/conf/global_error_checks.xml,这可以通过
Global Error Checks Editor 在整个项目中,根据需要添加模块或工具的特定错误
检查。特定任务的错误检查,是通过流程编辑器使用 Task Properties Editor 指定的。

严重级别
初始情况下,错误分为:
 警告:尽管有轻微异常,流程依然能继续的事件。可能会影响后续步骤
 错误:流程可能应该停止的事件,用户可以选择允许流程继续
 严重错误(Fatal):流程不应该或不能继续,例如(the occurrence of a tool core dump)

pass 文件的创建是由下面的任务或流程执行特定的选项控制的:
 创建 pass 文件,如果日志文件不包含任何错误或严重错误;默认选项
 创建 pass 文件,如果日志文件不包含任何严重错误(允许 error)
 不管任何错误或严重错误,总是创建的 pass 文件
下面的例子显示了错误定义,他们的规则和级别定义在 global_error_checks.xml
(The following examples show error definitions with rules and levels as defined in
global_error_checks.xml):
<must_not_have regexp="^Release = .* Architecture = .* Program = .*" severity="fatal"/>
<must_not_have regexp="^Error: Internal licensing error number -35" severity="fatal"/>
<must_not_have regexp="can't read &quot;.*&quot;: no such variable" severity="error"/>

任务失败(Task Failures)
在一个流程执行过程中,任务可能会失败。任务失败的主要原因是:
1、SNPS_ERROR :验证错误,这是设计特定的错误,通过检查内置的 RTL 到
GDSII 的生产流程触发。
2、Unexpected tool errors :特定工具错误,由执行任务的工具生成
3、Expected messages not appearing in the log file:
 例如,formality 的 Verification SUCCEEDED 信息
 START_TIME 和 STOP_TIME 信息
如果任务失败,该任务会生成一个.fail 的文件,查看该文件并找出错误原因

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置全局错误检测(Setting Global Error Checks)
全局错误检查规则文件,global_error_checks.xml 中有所有列出的错误模式。当任务
运行时,它会针对这个文件中的错误模式,检查日志文件(When a task is run, it checks
the log file against the error patterns present in this file)。错误类型不匹配时,任务失
败。全局错误检测,补充通过任务属性编辑器指定的单个任务的错误检查(The
Global Error Checks supplement individual task error checks specified through the Task
Properties Editor)。
global_error_checks.xml 文件位于 scripts_global/conf/目录,
你可以通过 Global Error
Checks Editor 点击并编辑全局错误检测规则文件。

注意:更改全局错误检查规则文件(global_error_checks.xml),由执行监视器中黄色
边缘的会话标签指示。
设置:

1、在 RTM 中,点击 Project > Edit Global Error Checks( )

Global Error Checks Editor 窗口出现,显示当前全局错误检查组的列表


2、点击 Check Out ,使 global_error_checks.xml 文件可写

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
3、在 Error Check Groups 下,点击 Create Group( )增加新的检查组。

4、点击 Edit,在描述中指定检查的说明(specify description of check in Description)


5、选择检查适用的工具:
 所有工具
 选择的工具
6、根据需求增加/修改新的错误模式:

1. 点击( ),增加列

2. 选择规则:
 Must Have :日志文件必须包含的一个模式
 Must Not Have:日志文件不能包含一个错误模式
 Must Allow:如果在日志文件中作为一个错误存在,RTM 将忽略的一个模式
(For patterns that the RTM will ignore if present as an error in the log file)
 Must Allow (Exact):如果在日志文件中作为一个错误存在超过一定数量,RTM
将忽略的一个模式(For a count, such that the RTM will ignore if present as errors the
exact number of times as mentioned in the count)
 Must Allow (Maximum):如果在日志文件中作为一个错误存在超过最大允许数
量,RTM 将忽略的一个模式(For a count, such that the RTM will ignore if present as
errors the maximum allowable times as mentioned in the count)
3. 在 Pattern 中指定错误模式
4. 在 Severity 中指定错误级别
5. 指定模式发生数量(Specify pattern occurrence in Count)
注意:数量对于 must_allow 和 must_allow_exact checks 是必须的
7、点击 Save
8、点击 Close
您可以在 Task Properties Editor 中通过 Global Error Checks 选项,为一个特定的
任务启用或禁用全局错误检查。您可以选择覆盖全局选项,并在 Task Specific Error
Checks 下,根据要求指定需要的检查。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置任务错误检查(Setting Task Error Checks)
指定特定任务的检查:

1、在 Error Checking 标签中,点击 ,为 Task-specific Error Checks 增加列

2、选择规则:
 Must Have :日志文件必须包含的一个模式
 Must Not Have:日志文件不能包含一个错误模式
 Must Allow:如果在日志文件中作为一个错误存在,RTM 将忽略的一个模式
(For patterns that the RTM will ignore if present as an error in the log file)
 Must Allow (Exact):如果在日志文件中作为一个错误存在超过一定数量,RTM
将忽略的一个模式(For a count, such that the RTM will ignore if present as errors the
exact number of times as mentioned in the count)
 Must Allow (Maximum):如果在日志文件中作为一个错误存在超过最大允许数
量,RTM 将忽略的一个模式(For a count, such that the RTM will ignore if present as
errors the maximum allowable times as mentioned in the count)
注意:数量只有在 Must Allow (Exact) 和 Must Allow (Max)选项下开启
3、根据需求增加多个规则。
例如:

增加的检查附加到全局错误检测列表中,并由 RTM 执行模式匹配


您可以在 Task Properties Editor 中通过 Global Error Checks 选项,为一个特定的
任务启用或禁用全局错误检查。您可以选择覆盖全局选项,并在 Task Specific Error
Checks 下,根据要求指定需要的检查。
打开或禁止全局检查:

1、选择任务对象并单击鼠标右键> Properties( )

Task Properties Editor-<object name>窗口出现


翻译:曾义和 联系方式:zengyihe@ict.ac.cn
2、 在 Error Checking 标签页中,从 Global Error Checks 中选择或取消 Disable,
打开或关闭任务的所有全局错误检查
3、点击 Apply and Close

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看任务文件(Viewing Task (Log, Fail, Pass) Files)
1、在执行监视器中,选择任务,查看文件:
2、打开文件:

 点击 View Log File ( )

 点击 View Pass File ( )

 点击 View Fail File ( )

文件在默认的文本编辑器中打开

使用任务文件(Using Task (Log, Fail, Pass) Files)


.pass 和.fail 文件显示了任务执行的过程、脚本加载、函数调用以及特定错误生
成的情形。
当一个任务失败,任务生成一个.fail 文件,查看.fail 文件来找到失败的原因。
<task>.fail File Details

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
每一个<task>.fail 文件,包含下列部分:
 错误详情(Error Details)
 错误设置(Error settings)
 信息代码(Message codes)
 信息汇总(Message summary)
 指标汇总(Metrics summary)
 指标服务器汇总(Metrics server summary)

错误详情(Error Details)
在<task>.fail 文件中,这部分详细介绍了在任务执行过程中,脚本和程序调用执行
过程中遇到的错误,这也包括通过脚本或程序产生的其他错误。

个别错误提供:
 Message Codes:对应于 violation 或 waived 的错误模式代码
 RTM-201, RTM-202,RTM-203: Violation
 RTM-204,RTM-205: Waived
 Source
 SNPS_ERROR:任务执行过程中遇到的, Lynx 或用户定义的错误
 ERROR:任务执行过程中遇到的工具生成的错误
 Error:错误的描述
 Current Script:触发错误的任务脚本
 Current Proc:触发错误的脚本中的具体程序

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 Log File Line:错误日志文件中的行号

错误设置(Error settings)
这部分总结了错误检查过程中的预定义设置

模式:错误是在解析预定义模式任务执行,所产生的日志文件时被鉴定的(Errors are
identified by parsing the log files generated during task execution for pre-defined patterns)。
有 5 种错误规则,可以被应用到模式匹配(can be applied to a pattern match):
 must_have: 必须至少有一个匹配
 must_not_have: 不必有任何匹配
 must_allow: 可以有任意数量的匹配

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 must_allow_exact: 可以有确切指定数目的匹配
 must_allow_max: 可以有指定数量的匹配,而不会产生一个错误条件
范围
依据范围,错误可以定义成如下级别:
Global :适用于所有块和任务
Task :适用于一个特定的任务
严重级别
初始情况下,错误分为:
 警告:尽管有轻微异常,流程依然能继续的事件。可能会影响后续步骤
 错误:流程可能应该停止的事件,用户可以选择允许流程继续
 严重错误(Fatal):流程不应该或不能继续,例如(the occurrence of a tool core dump)

信息代码(Message codes)
这部分显示相应的错误模式的 RTM 代码:

Violation
must_not_have: RTM-201
must_not_have/-must_allow_exact: RTM-202
must_have: RTM-203
Waived
must_not_have/-must_allow: RTM-204
must_not_have/-must_allow_exact: RTM-205

信息汇总(Message summary)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
这部分打印出脚本的执行过程中产生的所有信息和警告消息,但是不包括生成的任
何错误。它即包括流程追踪和指标信息,也包括在任务执行过程中,指示库和环境
设置命令的 SNPS_SETUP 信息。

指标汇总(Metrics summary)
这部分详细描述了所有相关的指标捕捉消息,并总结了任务的执行过程中捕获的指
标(This section details all the messages related to metrics capture and summarizes the
metrics captured during the execution of the task.)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
指标服务器汇总(Metrics server summary)
这部分提供了指标服务器的详细信息

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
高级配置(Advanced Configurations)
Lynx 高级配置和概念包括:
 使用变量定义编辑器(Using Variable Definition Editor)
 设计和流程的探索(Design and Flow Exploration)
 设置工具版本(Setting Tool Versions)
 定义其他程序(Defining Additional Procedures)
 升级 Lynx 设计系统(Upgrading Lynx Design system)
 使用模块安装(Using the Modules Installation)
 支持层次化设计(Supporting Hierarchical Designs)
 集成第三方工具(Integrating 3rd Party Tools)
 设置用户首选项(Setting User Preferences)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用变量定义编辑器(Using Variable Definition Editor)
Lynx 设计系统的变量,如定义在 system, common 和 block.tcl 文件中的 SEV, SVAR
和 env,在特定技术的 variables.xml 文件中,使用集中的变量定义(use variable
definitions centrally specified in technology-specific variables.xml files)。RTM 利用这
些定义,在 system, common 和 block 设置编辑器中,动态生成和列表变量。

对于设计中将要使用的所有的 SEV, SVAR 和 env 变量必须在 variables.xml 文件中


指定。例如,要使用新的 SEV 变量 example_sev,您必须先指定其在 variables.xml
文件中的定义。一旦变量在 variables.xml 的文件中定义,RTM 在系统变量编辑器
(system.tcl)中利用定义来列表变量 SEV(example_sev)( the Runtime Manager uses the
definition to list the variable as SEV(example_sev) on the System Variable Editor
(system.tcl))。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
example_sev 在 variables.xml 文件中的定义为:
<variable class="sev" name="example_sev">
<output_format>string</output_format>
<fields>
<field type="string" source="from_user"
</fields>
</variable>

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
变量定义编辑器(Variable Definition Editor)
变量定义编辑器为 variables.xml 文件提供了一个图形界面,用于创建和管理的
变量定义。

利用变量定义编辑器,可以
 通过指定创建新的变量定义:
 变量类型,如 SEV,SVAR 或 env

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
 变量名
 说明
 输出格式,如列表或字符串
 字段,如名称,数据类型和源数据
 根据该变量列出分类
 保存选项
 关联完整性检查程序
 更新现有的变量定义
 使用新名称复制变量定义
 删除已存在的变量定义
变量定义编辑器允许您轻松地创建 SEV 和 SVARs,用于集成第三方工具。你也可
以添加附加的 SVARs,用于你创建的自定义流程。当创建一个新的定义时,最好通

过使用 Duplicate Definition( )选项,复制现有的定义(duplicate an existing definition

that is similar to the one you want)。

调用变量定义编辑器:从 RTM 中选择 Project > Variable Definition Editor( )

变量类型(Variable Types)
使用变量定义编辑器,可以为以下变量类型指定定义:
 SEV:新指定的 SEV 变量,在系统变量编辑器(system.tcl)中被作为 SEV
(example_sev)列出
 env : 新 指 定 的 env 变 量 , 在 系 统 变 量 编 辑 器 (system.tcl) 中 被 作 为
env(example_env)列出
 SVAR:新指定的 SVAR 变量,在通用和模块编辑器(common.tcl/block.tcl)中被
作为 SVAR(example_svar)列出
您还可以使用扩展选项指定定义自动生成变量,你可以使用默认的扩展列表,或者
创建自己的扩展字符串。在自动变量扩展分类下扩展选项出现在通用或块设置变量
编辑器。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
默认扩展字符串包括:
SVAR(setup.lib_types_list) (Master Library List)
SVAR(setup.oc_types_list)
SVAR(setup.rc_types_list)
例如,可以创建和扩展新的 SVAR,example_exp_svar,通过 Master Library List,
SVAR(setup.lib_types_list) 将变量添加到 common.tcl/block.tcl

使用变量定义编辑器,您可以指定自己的扩展字符串创建和扩展相同模式的变量。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
输出格式和 RTM GUI 渲染(Output Formats and Runtime Manager GUI Rendering)
RTM 使用在 variables.xml 文件中的定义,在 System, Common Setup 和 Block Setup
变量编辑器中,动态生成和列表变量。根据您指定的输出格式类型,RTM 生成值
的字段,如下所示:

list:由一个 图标指示;点击 增加列表选项。列表选项可以是 Field 指定的任

何字段类型。

String:该值可以是由字段类型指定的任何类型

指定变量定义(Specifying Variable Definitions)


利用变量定义编辑器指定新的变量定义,增加新的 SEV、SVAR 或 env 变量。你可
以利用扩展选项,创建一个简单的 SEV、SVAR 或 env 变量定义,或一个 SVAR 定
义,来自动生成变量。你可以利用默认的扩展列表,也可以通过指定扩展字符串,
创建自己的扩展列表。扩展选项出现在自动变量扩展分类下的 Common 或 Block
Setup 变量编辑器。根据指定的输出格式类型,RTM 生成字符串或列表类型的值域。
另外,你也可以根据它出现在变量编辑器指定列的顺序,或在多个分类下列出变量。
注意:谨慎利用变量定义编辑器。避免修改现有变量,instead duplicate compatible
variables and modify their definitions。进行相关性检查和清理孤立定义的脚本。
指定:

1、在 Runtime Manager 中选择 Project > Variable Definition Editor ( ).

Variable Definition Editor 窗口出现

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
2、点击 New Definition ( ).

Enter New Definition Name 窗口出现


3、在 Variable Name 选择变量类型,并指定名称:
SEV:指定一个唯一的名称
env:指定一个唯一的名称
SVAR:指定一个唯一的名称;根据扩展选项,可以选择显示高级选项(Show
Advanced Options):
注意:为了创建一个在名称中包含字符串的自动扩展变量。Use expansion string
enclosed in double hash (##) before or after the variable name delimited by a coma. For
example, to create a new SVAR, example_exp_svar and expand it by the existing Master
Library List, SVAR(setup.lib_types_list), specify example_exp_svar,##LIB##. For
additional expansion by user-defined string, specify the expansion string enclosed by
double hash (##) delimited by a coma. For example,
example_exp_svar,##LIB##,##OC_TYPE##。
 对于没有扩展的 SVAR,不选择选项
 对于 Master Library List (SVAR(setup.lib_types_list))扩展的 SVAR,选择 This
variable be expanded by the Master Library List
 对于 Master Library List 和现有扩展变量扩展的 SVAR,选择 This variable be
expanded by the Master Library List 和 This variable be expanded by an
从 Common Setup or Block Setup 变量编辑器 Variable Name
expansion variable,
中的 Auto Expansion Variable 中指定一个现有的字符串名。
 对于用户定义字符串扩展的 SVAR,选择 This variable be responsible for
expanding other values , 在 Expansion String 中 指 定 字 符 串 名 。 例 如
##EXAMPLE_STRING##
注意:扩展字符串字段拒绝小写字母和除#之外的所有特殊字符。
对于唯一扩展变量扩展的 SVAR,选择 This variable be expanded by an expansion
variable,从 Common Setup or Block Setup 变量编辑器 Variable Name 中的 Auto
Expansion Variable 列表里指定存在的字符串名
点击 OK
4、点击 Edit Text,利用 HTML 编辑器增加变量描述;描述说明出现在变量编辑器
的 Description 字段
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
5、指定 Output Format;选择:
 String:选择在变量编辑器中以字符串显示变量值数据(Select to display variable
value data as string)
 List:选择在变量编辑器中以列表的形式显示变量值数据;也可以选择 No
Duplicate Values,迫使每个列表只有一个相同名称的表项。
6、指定字段(Fields):
 增加新的字段
1、点击 New Field,并指定:
2、Name:在变量编辑器中的列标题
3、Type:变量数据类型;包括:
 bool
 directory
 file
 float
 integer
 string
4、Source:数据读取源;包括:
 from_user: 用户可以使用任何值.
 from_proc: 从程序中获取合法值的列表
 from_var: 从另一个变量获取合法值的列表
 from_values: 从-values 值选项,获取合法值的列表
5、Source Data:利用-values 选项指定的值
 编辑已有的字段(Edit Existing Field)
选择已有的字段,点击 Edit Field,修改 Name, Type 或 Source
 删除已有字段(Delete Existing Field)
选择已有字段,点击字段

也可以使用 Move Up/Down( ),重新排列变量编辑器的列位置

7、指定 Categories;指定或选择值,来分类变量

:点击清除值的名称

:点击添加指定的值作为分类;一个值可以被列表在多个分类下

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
:点击删除选择的分类。

也可以使用上移/下移,在 variables.xml 的优先定义变量的位置


8、在 Save in block.tcl 中指定保存选项,包括:
 Always
 When the variable is different from Common Only
 Never
9、在 Sanity Check Procedure 中指定程序,执行变量一致性检查
10、选择 Must Restart RTM on value change,显示变量更新后,重新启动通知
11、点击 Apply Changes,并点击 Save 保存

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
备份变量定义(Duplicating Variable Definitions)
备份(Duplicating)变量的定义涉及创建定义的副本,并用新名称保存它。利用备份
(Duplicating)选项创建和已有定义相似的新的定义。创建方式:
1、在 Variable Definition Editor 中,从将要备份(Duplicating)的列表里,选择变量
定义

2、点击 Duplicate Definition( )

Enter Duplicate Name 窗口出现


3、选择变量类型,在 Variable Name 中指定名称
SEV :指定一个唯一的名称
env :指定一个唯一的名称
SVAR :指定一个唯一的名称;也可以根据扩展选项,包括由##环绕的扩展字符串。
4、点击 OK

删除变量定义(Deleting Variable Definitions)


删除设计中不再使用的孤立的定义:
1、在 Variable Definition Editor 中,从删除列表选择变量定义

2、点击 Delete Definition( )

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设计和流程探究(Design and Flow Exploration)
探究(exploration)是通过改变设计、流程和工具的关键属性,决定设计的最佳流程输
出的过程。利用 Lynx 设计系统,你可以通过抓取结果到管理舱报告,量化功能和
性能,,权衡设计和流程,探究(Exploration)替代方案。

您可以通过更改命令选项、备份(Duplicating)任务、增加新的步骤,重复模块,或通
过重复工作区,进行流程探究(Exploration)。根据上下文,基于探究对象(exploration
objectives)使用适合的方法。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用控制命令选项探究(Exploration Using Command Options)
你可以通过编辑控制脚本操作的 TEV 变量,使用不同的选项(参数)与基本命
令,实现基本的探究(Exploration)。结果可以抓取到管理舱报告用于分析,例如
Metric vs Metric report。

例如,在 SYN 步骤中,TEV(compile_cmd)为 dc_compile 任务指定命令,你可以通


过 compile_ultra 命令使用的-gate_clock 默认选项,改变 TEV(compile_cmd)的值,
进而探究(Exploration)不同的编译选项。改变 TEV(compile_cmd)的值,并不会改变
脚本,它仅仅改变从流程文件中传递给脚本的参数。
注意:你可以通过 Variable Editors、Flow Editor 或者 Execution Monitor 中的某个,
编辑 TEV 变量。探究(Exploration)(如示例设计的 dc_compile):
1、在流程编辑器(Flow Editor)中,为 dc_compile 打开 Task Properties Editor
2、在 TEV 标签页中,编辑 TEV(dc_compile)变量,修改-gate_clock 参数到下列值:
 -scan
 -no_autoungroup
 -no_boundary_optimization
 -check_only
 -no_seq_output_inversion
 -exact_map
编辑完成以后,执行流程或任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通过备份或复制任务探究(Exploration by Duplicating (or Replicating) Tasks)
你可以通过备份任务、修改一个或多个备份任务的属性,对比他们的运行结果实现
探究(Exploration)。探究(Exploration)方式:创建一个或多个备份,修改 TEV 变量或
者在使脚本本地化以后,改变基本任务脚本。你可以手动选择运行备份任务,或者
根据特定需求,并行地使用 joiner 任务。生成报告或检查日志文件让你鉴别哪一个
任务的变化产生了最佳的总体效果。可以利用 Replicate 选项创建多个副本。
注意:Lynx 的参考脚本存储在 scripts_global/<step>/;但这不是强制性的,如果你
需要编辑程一个全局的脚本,以应用到项目中的多个或者所有模块,那么创建一个
名为 scripts_global/<project>的新目录,并用它来存储被编辑的,或新的全局性脚本。
如复制 scripts_global/syn/dc_compile.tcl 到 scripts_global/<project>/syn/dc_compile.tcl,
然后编辑流程文件,来参考这个新的脚本版本。如果你需要改变一个全局脚本,或
者在仅有一个模块中添加使用一个新的脚本,则在<block_name>/scripts_block/<step>
下,作为一个本地脚本创建即可。
例如,你可以在 SYN 步骤中,备份(duplicate) dc_compile 任务,创建 dc_compile_1
任务,并改变 dc_compile_1 的 TEVs 和脚本文件用于探究(Exploration)
注意:如果需要,利用复制(replicate)选项创建多个副本,详看 Replicating Tasks。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
探究(例如,示例设计中的 dc_compile):
1、在 Flow Editor 中,备份 dc_compile,然后重命名备份的任务为 dc_compile_1
2、改变 dc_compile_1 的目标目录到 020_dc_compile_1,避免数据写覆盖
3、连接(Connect) dc_compile_1 和 dc_elaborate,这样 dc_compile_1 可以从
dc_elaborate 获得数据
4、编辑 dc_compile_1 属性,修改 TEV 和/或脚本文件
 TEVs:编辑 dc_compile_1 变量
注意:编辑 dc_compile_1 TEV 变量不影响 dc_compile 的值

 脚本文件:通过 Make Script Local ( )选项,使得全局脚本本地化,并保

存文件到模块脚本目录($SEV(bscript_dir)/syn/dc_compile.tcl),然后编辑文

5、从 Execution Monitor 中,如果流程已经被运行,而且 dc_compile_1 不在默认
流程的依赖关系链(is not in the dependency chain of the default flow.),手动运行
dc_compile_1。
注意:如果一个备份任务不在默认流程的依赖关系链,它不会自动运行,如果
一依赖任务存在,执行监视器自动检测并运行任务。
6、通过生成报告或检测日志文件验证最好的结果
7、在流程中,连接最好的任务到并发的任务(Connect the best-result task to the
subsequent task),断开流程中与其他的连接(disconnect the other from the flow)
注意:为了避免数据被重写, (Any existing tasks around the task being connected
to)都应该被移除。示例中,dc_compile_1 执行的更好,因此,移除 dc_compile
的连接,然后连接 dc_compile_1 to dc_dft。

执行备份任务(Executing Duplicated Tasks)


一个新创建的备份任务,如果不在流程依赖关系链中,是不会自动执行的。你
必须通过调用执行监视器手动运行,执行监视器也会运行设置为依赖的任务
(will come up with any dependent tasks set to run also)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
示例中,dc_compile_1 任务必须手动执行,因为 dc_compile_1 是在流程执行之
后被添加进来的。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Using Joiners for Duplicated Tasks
可以利用 joiner tasks,并行运行多个副本任务。当利用执行监视器运行 joiner
tasks 时,它调用所有的 joiner tasks,然后并行执行他们。

注意:每个任务调用对应的 license;通过 run_task 菜单命令的任务限制选项,可


以控制同时并行的任务数量。

验证最佳结果(Identifying Best Results)


通过任务备份探究(Exploration by task duplication),可以检查各种替代方案,用于
处理设计,来为给定任务得到最好的结果。决定最好的结果需要多个结果的分
析,和/或工程角度的多个指标(metrics from an engineering perspective)。
你可以利用管理舱的报告规格,如仪表盘汇总(dashboard summary),抓取运行指
标,选择生成报告。也可以侦测日志文件来验证哪个任务变量产生了最好的整体
结果。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
基本的管理舱指标,如示例中,对比跨任务的有限的数据点,尽管多个变量仍然
需要考虑,对于继续进行验证最好的选项很有帮助。(is useful for comparing a
limited number of data points across tasks to identify the best option to proceed with
despite the multiple variables that still have to be accounted for)。

利用最好的结果继续流程(Continuing Flow Using Best Results)


决定最优结果之后,通过把它作为流程后续步骤的源,利用优化选项继续流程执
行。任务周围任何被连接的存在的任务,应该被移除来避免数据被写覆盖(Any
existing tasks around the task being connected to should be removed to avoid data being
overwritten)。

在示例中,决定了 dc_compile_1 是最好的结果,移除 dc_compile 的连接,连接


dc_compile_1 任务到 dc_dft 任务

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
自动结果选择(Automating Result Selection)

在并行任务执行过程中,你可以利用 Mux Task( )对象自动选择结果。但是你必

须为任务定义选择标准,来进行选择并继续流程执行。

例如,两个任务(place_opt1 and place_opt2),根据指定指标的比较,定义选择标准,


可以被连接到 Mux task。选择的结果是源数据的目标目录被连接到选择任务的目标
目录。它可以被修改以实现任何用户定义的选择操作和标准。 初始参数包括
TEV(src_override),指定用于链接(link)的源目录,而不考虑正常的检查。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用流程分支探究(Exploration Using Flow Branching)
利用分支任务自动执行不同流程或根据前面任务结果的流程分支来探究。例如,如
果初始的编译不满足时序要求,运行一个增量编译会很有帮助。分支任务有一个单
独的输入源,可以连接(contact)编号 1-4 四个输出源。分支任务必须决定输入应连
接到哪个输出目的地,并利用一个特殊程序 sproc_broadcast_decision,广播这个决
定。决定可以基于 TEV(decision_override)变量指定的静态用户值,或者动态基于其
他用户指定的设计,或脚本的 QoR 指标,当脚本做出自动执行的决定时,
TEV(decision_overrride)应该被设置为 0。

分支任务通常在默认的流程中使用,决定恢复之前生成的数据还是从源数据重新生
成数据。

数据管理示例(Data Management Example)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
在这个用于许多初始流程的示例中,数据的源是通过用户指定
TEV(decision_override)设置进行控制的。
如果设置为 1, SYN 步骤的数据是通过从设置到发展被再生的
如果设置为 2, SYN 步骤的数据是通过恢复之前释放的数据生成的

DP 流程的配置示例(DP Flow Configuration Example)


除了在数据管理方面使用,一个附加的分支用于决定是否通过缩短/简化的 DP 流
程来处理模块;这是通过设置模块指定变量 SVAR (dp,limited)进行控制的。

如果为 true,则使用简化的流程
如果为 false,则使用全 DP 流程

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
动态流程分支(Dynamic Flow Branching)
增量编译分支(Incremental Compile Branch)
为一个增量编译分支使用动态分支流程,例如,如果有一个 dc_compile 任务,如果
有必要,检查 QoR,运行一个附加(additional)的增加编译,如果需要的 QoR 满足,
采用分支 2,否则采用分支 1。
注意:这不是一个迭代循环,只是一次单一的决定。

分支的源/目标(Branch Source/Destinations)
利用动态流程分支在两个分支之间选择,例如,如果你想要分支 1 和分支 2 的结果
成为 dc_dft 任务的源。但 dc_dft 任务只能有一个源,解决方法可以使 dc_dft 的源
是 compile_branch 的目的。那么 compile_branch 任务会链接 dc_compile 任务的输
出到它的输出目录,或调用 incremental_compile 任务来运行。compile_branch 会
将其数据写入到 compile_branch 任务的输出(Then the compile_branch task will
either link the output of the dc_compile task to its output directory or will cause the
incremental_compile task to run which will write its data to the output of the
compile_branch task)。这样,incremental_compile 和 dc_dft 任务之间的连接描述任
务 相 关 性 , 但 不 描 述 数 据 流 程 (which is from incremental_compile back to
compile_branch)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
注意:这个例子只显示单个任务的分支,如果需要,任务的附加字符串可以被添加
进去(additional strings of tasks can be added as required)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通过添加新的步骤探究(Exploration by Adding New Steps)
可以通过增加新的步骤到初始的 Lynx 设计系统的步骤中,执行探究。Synthesis
(SYN), Design Planning (DP), Place and Route (PNR), and Design Finish (FINISH)。增
加新的步骤允许你在一个步骤中修改一个或多个任务中的一个或多个参数,并检查
此参数对整个步骤的影响。例如,你可以在 PNR 步骤中改变 place_opt and/or route_opt
选项。

当你增加一个新的步骤时,你必须合并相应的步骤目录到默认的 Lynx 设计系统目录结构

(incorporate the corresponding step directory to default Lynx Design System directory structure)

对于创建附加的步骤目录名称没有限制,默认的在名称前带数字的名称约定,只是
用于标识管理舱的报告顺序。但是,在示例设计中初始的脚本和约束,则是做出关
于使用的步骤名称假设。例如,当步骤名称以 30_pnr 或 40_finish.开始时,PNR 或
FINISH 特定约束被应用。只有当你想在其他设计中,不经修改重用初始约束时,
需要关注这些,但这是不可能的。你可以使用一个备用的名称 30_pnr_alt,它仍然
匹配以 30_pnr 开始的正则表达式。
To add (for example, pnr_alt):
1、通过从其他步骤复制和重命名文件结构,创建 30_pnr_alt 步骤目录
2、通过流程编辑器或手动创建 alt_pnr 步骤流程文件。
a. 创建流程文件
 流程编辑器
1) 利用 Save As 选项,以 alt_pnr.xml 保存 pnr_flow
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
2) 根据需求编辑 alt_pnr
3) 在流程中为每个任务改变步骤名称到 30_pnr_alt,防止数据的写覆盖
4) 保存 alt_pnr
 手动
1) 浏览到 pnr.xml,利用文本编辑器打卡文件
2) 利用全局查找/替换选项编辑
3) 以保存文件 alt_pnr
b. 利用流程编辑器或手动改变流程名称,使得模块内的流程名称参考是唯一的

流程编辑器:不选中任务,点击 Properties( )并编辑流程名称

手动:编辑 pnr.xml 的 header,改变名称。


c. 保存 alt_pnr.xml
3、配置模块流程
a. 增加一个新的流程示例到模块级流程。
b. 编辑流程属性,指向新创建的 alt_pnr.xml 文件
流程示例名称改变,代表流程内部的名称定义。在配置模块流程以后,在它被
实例化之前,增加新的步骤流程到模块流程管理器(Block Flow Manager)
(The flow Instance name changes to reflect the name defined inside the flow. After you
configure block flow, add new step flow to the Block Flow Manager before it is
instantiated)
4. 连接替换步骤流程
连接新任务,使得它和原来的 pnr 流程是并行的。
注意:进行连接时,流程编辑器提示你在源和目标流程内的连接目标,例如, sf_dp
的 from 将会全部都是目标, sf_pnr_al 将会是目标设置; 对于 sf_alt_pnr 和 sf_finish
的连接也是同样. Finish 步骤默认会使用 30_pnr 步骤目录的 sf_pnr 生成的数据。你
需要看看从步骤替代版本的结果,然后决定哪一个能给出最优的 QoR. 最终,你需
要通过编辑 finish 步骤的设置任务来配置流程,并从流程中选择最好的结果。
(Note: When making connections, Flow Editor prompts you for the objects inside the
source and destination flows to connect to. For this example, the from for sf_dp will be
the object all, the to for sf_pnr_alt will be the object setup; similarly for connecting
sf_alt_pnr to sf_finish. The finish step by default will use the data that was generated in
the original sf_pnr which uses the 30_pnr step directory. You need to look at the results
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
from alternate versions of a step and decide which flow will give the best QOR. Ultimately,
you will need to configure the flow by editing the setup task of the finish step to select the
best results from the flow (and flow step) giving the best results.)
5. 从执行监视器中,并行执行 pnr 和 pnr_alt

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通过重复模块探究(Exploration by Repeating Blocks)
你可以通过重复模块探究,为相同模块创建一个完全新的流程。相同的模块可以在
相同的工作区目录下不同目录名称运行。默认情况下,目录的名称希望和模块的名
称一样,但是这可以被 block.tcl 文件中指定的模块特定变量 SVAR(design_name)覆
盖(By default the name of the directory is expected to be the same as the name of the
block, but this can be overridden by the block specific variable SVAR(design_name)
specified in the block.tcl file)。

利用两个不同的目录,你可以用两种不同的流程运行相同的设计,或利用同一个流
程运行两种不同版本的设计。
To repeat (for example, dhm_a from dhm):
1、从 RTM 或 CLI 创建模块 dhm_a

RTM:点击 Create Block( ),在 New Block Name 中指定 dhm_a,从 Existing

Block 中选择 dhm。


CLI:输入 new_block -block dhm_a -existing_block dhm
2、从 RTM 中调用 block.tcl,设置 SVAR(design_name)到 dhm
(Set SVAR(design_name) to dhm by invoking block.tcl from Runtime Manager)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通过重复工作区探究(Exploration by Repeating Workarea)
重复整个流程的一个方式就是使用多个工作区。这对于对比相同设计完整流程的不
同版本很有帮助。这种方式也允许不同全局脚本的使用,通过改变 common.tcl,不
同库数据版本也可以。

重复一个工作区,使用:unix% cp –r workarea workarea_2

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
DP 探究流程(DP Exploration Flow)
Lynx 包含一个为 floorplans 探究的流程。流程建立在 Galaxy 设计平台参考方法上,
并允许你自动生成一组初始化的 floorplans。

探究流程由多个不同参数和设置的 icc_dp_explore 任务。所有的 placement 任务能


通过运行 dp_explore_summary 执行,执行任务导致所有的 icc_dp_explore 任务被执
行,通过执行外部 perl 脚本$SEV(gscript_dir)/dp/gen_explore_table.pl,任务也创建
一个 HTML 对比报告,该报告在报告目录可用。

创建完 floorplans,你可以利用管理舱(Management Cockpit),通过生成有 WNS、

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
TNS、Wirelength, congestion 等相关细节的报告对比 floorplans。
利用管理舱对比流程探究结果(Comparing Flow Exploration Results using MC)
你可以使用 Dashboard report 对比跨任务、流程、模块的多个参数,趋势分析报告
(Trend analysis reports)有助于对比给定的步骤的 QoR 型指标的短期趋势。资源分析
(Resource analysis)可以对比不同探究选项中的运行时间。

这个 dashboard 显示了跨越 3 个流程变量的多任务对比,这个流程变量显示运行在


3 个不同工作区的相同设计。在工作区中,多个 TEV 参数被改变。行代表了不同过
的工作区,列代表了从每个工作区和步骤中收集的指标。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
支持层次化设计(Supporting Hierarchical Designs)
Lynx 支持层次化设计流程风格,在自顶向下或自底向上的方法中,允许你通过分
割一个功能上的实现流程,增量处理以达到设计收敛。
(Lynx Design System supports several hierarchical design flow styles, which allow you
to incrementally progress toward a design closure by partitioning an implementation flow
in terms of functionality, implementation logistics, or design maturity within either a top-
down or bottom-up approach)
Lynx 术语:
Logic Macro: 单独的合成模块,被 merged or flattened 成为顶层模块或自底向上综
合流程中的硬核; may or may not be committed as a soft macro during DP
• Hard Macro: 在一个单独的 Lynx Design System 流程中创建的; 假设是 flat 的,
但也可以是层次化的。
• Soft Macro: 由顶层模块驱动的的模块;物理和时序约束从父顶层传递给子层软

• Top Level: 可是是 flat 的模块,也可以是逻辑宏,软宏,或者一个或多个硬宏的
实例化的层次结构。
• Chip: 包含 IO pads 的模块;一个芯片并不自动实现着层次结构

层次流程(Hierarchical Flow)
层次化流程是一个特定种类的顶层流程,下面的示例是 dchip 的顶层流程,它和 dhm
有相同的组件,但是有附加的 Connector Group,可以为层次流程进行定义。
(A hierarchical flow is a special kind of Top-Flow. The example below is Top-flow of
dchip. This Top-Flow has all the similar components as dhm; but there is additional
Connector Group to define for Hier flow)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
• syn_for_all_macros
• pnr_for_hard_macros
• pnr_for_soft_macros
• finish_for_hard_macros
• finish_for_soft_macros
这些连接器组件调出任务在 HIER 块中执行子块,例如,syn_for_all_macros 的属性
如下,为它的每个 hier 模块的综合任务都被 Connector –group 调用。
(These Connector groups calls out tasks to execute a sub-block in the Hier block. As an
example, the properties for syn_for_all_macros is shown below, and the synthesis tasks
for each of its hier block are called within the Connector -group)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
为分层模块建模(Modeling For Hierarchical Blocks)
在整个 Lynx 流程中,物理和时序模型在不同点创建,其目的是提供一系列的模型,
增加整个流程中,模块执行的精确性。这使得早先的顶层工作在子模块完成之前启
动(This allows for early top-level work to be started before sub-blocks are completed),
当 is_chip 设置为 0 时,设计的模型生成,但根据宏列表变量的设置,不同的模块
会被用于流程的不同部分。

PrimeTime 时序模型
ILM 模型是在 DC、ICC 和 PT 的不同步骤生成的。PT ILM 模型仅仅用于基于 PT
的层次时序分析。

逻辑宏模块流程(Logic Macro Flow)


逻辑宏流程实现了综合和 DFT 流程(可选),如果 DFT 是在逻辑模块合并之后,在
顶层模块完成的,那么 DFT 不是必须的。为更好的实现,The resulting design 被合
并或 flattened 到一个顶层模块综合流程中(The DFT processing is not required if DFT
is to be performed in the top level block after the logic macro is merged. The resulting
design is merged or flattened into a top level block synthesis step for further
implementation)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
输入:
•RTL
•扫描配置
•时序约束
•电源约束
•DC 的物理约束 (Topographical mode)
输出:
• Verilog&DDC
• SDC
• ILM 模型
硬宏流程(Hard Macro Flow)
硬宏流程和逻辑宏流程的启动一样,但是增加了物理实现步骤,用于 Floorplanning,
PNR, and Finishing。硬宏流程用于实现核或 IP 模块,它在顶层中作为一个完成的
模块。

输入:
• RTL
•扫描配置
•时序约束
•电源约束
• floorplan 和 PNR 的物理约束
输出:
• Verilog&DDC
• SDC
•物理模型
•ILM 时序模型

软宏流程(Soft Macro Flow)


软宏流程实现一个层次设计的子模块,输入是一个已经布局规划 MDB 和时序约束。
floorplan 包含了 minimum, port placements 和 power structures。它通常还包含硬宏
placements,以及布线布线框区域。它的输出和硬核流程一样:一个 Verilog 网表,
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
SDC,物理模型和 ILM 时序模型。

输入:
•布局规划 MDB
•时序约束
输出:
• Verilog&DDC
• SDC
•物理模型+ ILM 的时序模型
软宏的 Floorplanning 是可选的,初始的布局规划是从顶层设计 pushed down,只要
端口和/或电源到顶层的结构接口不被修改,附加的布局规划就可以被执行。默认
情况下,在 Lynx 流程中,当软宏从顶层设计 pushed down 以后,没有对 floorplans
附加的修改。(Floorplanning of a soft macro block is optional. The initial floorplan is
pushed down from the top level design. Additional floorplanning can be performed as
long as ports and/or power structure interface to the top level are not modified. By default,
in the Lynx flow, no additional modifications are made to the soft macro floorplans after
they are pushed down from the top level.)。

顶层流程(Top Level Flow)


顶层汇流程汇集了设计的所有硬宏和逻辑宏,其输入是 HM 时序和物理模型,以及
用户支持的顶层 RTL 和时序约束。LM 网表、HM 时序模型或 ddc 文件在 SYN 步
骤中输入。

在 floorplanning 阶段,可能会通过软宏划分设计。SM 和 HM 流程输出的物理和时


序模型,被用于 PNR 和 FINISH 步骤顶层的输入。如果没有软宏被使用,该流程和
HM 流程相同(If no soft macros are used, this flow is identical to the HM flow)。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
层次化定义 SVRs(Hierarchy Definition SVARs)
在 Lynx 中,有 7 种 SVAR 配置变量,用于定义模块的层次结构
1、SVAR(is_chip):SVAR(is_chip)在 Common Setup Editor > All Variables > Block
Specific > SVARs (*)中定义
设置为 1 时,把模块认为是芯片
设置为 0 时,把模块认为是硬宏或软宏
SYN
为 模 块 设 置 uniquify_naming_style ; 这 意 味 着 多 次 实 例 化 模 块 使 当 前
BLOCK_NAME 模块嵌入其中。
在模块使能 set_isolate_ports
为模块创建一个 ILM 时序模型并复制它到输出目录。
DP
在模块内插入 placement 和 routing keepout halos
为 non-chip 模块执行 insert_port_protection_diode
为模块创建一个 ILM 时序模型并复制它到输出目录。
对于功耗分析:
为芯片使用 Power Pads 作为 PG source
为 non-chip 模块使用 block pins 作为 PG source
PNR
为模块创建 FRAM 视图和 port-wrapper
为模块使能 set_isolate_ports
为模块创建一个 ILM 时序模型并复制它到输出目录。
2. SVAR(dp, data_block) : SVAR (dp,data_block) 在 Common Setup Editor > All
Variables > Design Planning > SVARs (*)中定义。如果该模块是从不同的模块获得其
规划布局的信息,利用这个变量指定其他的模块名称。如果不是这种情况,则该变
量设置为一个空字符串。
3. SVAR(hier,bbox_inst_list):该列表标识所有该块的子块的未知宏(black box
macro),此信息用于后期布局规划的集成控制,此信息应以以下格式作为实例列表
输入:{inst1 inst2 }…
4. SVAR(hier,characterize_parent_design)
这个变量是自上而下流程特征的一部分,它指定父层设计名称。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
5. SVAR(hier,macro_info):有 5 种变量用于定义模块、以及设计中的主模块和可
选模型类型。变量在 Common Setup > All Variables > Hier > SVAR(*)中定义。
• SVAR(hier,macro_info)
• hier.characterize_parent_design
• hier.bbox_inst_list
• hier.model_type
• hier.mim_master_inst_list
对于硬宏和逻辑宏,集成时要用到的模型类型必须被指定
• ddc: 使用由 DC 生成的 DDC 数据库
• ddc_ilm:由 DC 生成的 ddc/ilm 模型
• icc_ilm: 使用由 ICC 生成一个 ILM 模型
当使用层次化 DC (Topographical mode)流程时,需要 ddc 模型类型。因为它们包含
有关子模块内部单元的物理位置信息。
对于 Hardmacro_list 和 Logicmacro_list
 形式验证:读取硬宏的 UPF,创建一个顶层的组合(creates a combine for top-level)
 DFT 插入:为子层设计抽象模型跳过 check_scan_def 命令
对于 Logicmacro_list:
 DC Gen-Flat 网表:为顶层创建一个 Full flat 的网表
对于 Softmacro_list:
 Design Planning:为引脚分配使用单独的软宏约束(max_signal_layer)
6. SVAR(hier,mim_master_inst_list):该列表标识块中的所有的 MIM masters,该
信息主要用于 floorplanning,除非正在使用 MIM 流程,否则列表应保持为空。此
信息应以以下格式作为实例列表输入:{inst1 inst2}...
7. SVAR(hier,model_type):该变量用于控制是否 ICC 生成 ILM 或抽象模型。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置工具版本(Setting Tool Versions)
在 Lynx 中,RTM 通过调用计算机环境中的工具执行任务。工具必须在环境中可用,
以便成功调用 Lynx,你也必须设置指定工具版本来执行任务。

环境中加载工具(Loading Tools in Environment)


你可以在环境中加载工具:
Module:加载指定工具,使得它的功能可用
注意:默认下,首选的方法,并适用于所有的 Synopsys 电脑集群。
关于 module 的更多信息,参考 http://sourceforge.net/projects/modules
None:调用在 Unix 搜索路径下找到的工具;需要合理设置独立的工具路径
注意:如果 SEV(ver_enable)变量设置为 1,Lynx 会加载工具执行任务。默认下,设
置 SEV(ver_enable)导致 Lynx 为工具加载 modulefile;你也可以配置和使用其他工
具加载程序。如果 SEV(ver_enable)设置为 0,则工具需要提前被预进环境中。
SEV(ver_<tool name>
SEV(ver_<tool name>在 scripts_global/conf/system.tcl 中定义指定执行任务的工具

你可以通过下面设置 SEV(ver_<tool name>:


• System Setup Editor (system.tcl)
• Flow Editor
• Execution Monitor (Flow and Task)
• Shell Command

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用系统设置编辑器设置工具版本(system.tcl)
手动或利用系统设置编辑器,编辑 system .tcl 文件设置工具版本:

1、在 RTM 中,点击 Edit System Setup( )

系统变量编辑器(System Variable Editor)窗口打开


2、从 Category 中选择工具版本
3、从变量列表中选择工具并编辑(Select tool from Variable List to edit)

4、在变量编辑区(Variable Edit Area)指定值,编辑当前值并点击

5、点击 Save( )

手动编辑:在文本编辑器中打开 scripts_global/conf/system.tcl,每个变量有一个虚线
框描述边界,以及括在双引号中的变量名和值,工具版本以 SEV(ver_*)为前缀,更
新工具版本并保存文件。

利用流程编辑器设置工具版本(Settings Tool Versions Using Flow Editor)


从流程编辑器设置工具版本,覆盖 system.tcl 中的设置:

1、在流程编辑器中,选中任务并右击 Properties( )

Task Properties Editor-<object name>窗口出现


2、在 Tool Version 标签页,双击并指定值,编辑用于任务的工具版本详情。
3、点击 Apply and Close

利用执行监视器设置工具版本(Settings Tool Versions Using Execution Monitor)


从执行监视器中设置工具版本,覆盖 system.tcl 和流程文件设置。你可以在执行监
视器为一个流程或独立的任务设置工具版本:

1、在执行监视器中,点击 Run Flow( )

Run Flow Options 窗口出现。


2、在 Tool Versions 标签页,双击值并指定,编辑用于任务的工具版本详情

3、点击 Execute( )

执行监视器为当前运行流程使用最新指定的工具版本。如果退出运行系统管理器,
这些值只在 RTM 会话期间保留,并恢复恢复到 system.tcl 中存储的默认值。
设置方式:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
1、在执行监视器中,从任务列表中选择运行的任务

2、点击 Run Single Task( )

Run Task Options 窗口出现


3、在 Tool Version 标签页,双击 Tool Version 中的值并指定,来编辑用于任务的工
具版本详情

4、点击 Execute( )

执行监视器为当前运行流程使用最新指定的工具版本。如果退出运行系统管理器,
这些值只在 RTM 会话期间保留,并恢复恢复到 system.tcl 中存储的默认值。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
定义其他程序(Defining Additional Procedures)
您可以通过在 technology 或 block_setup.tcl 创建相同名称的程序,定义 technology
或块级的其他程序。RTM 按下面的顺序执行程序:
1. Common Procedures
 scripts_global/conf/procs.tcl: System-related static procedures, including SYS
metrics
 scripts_global/conf/procs_flow.tcl: Flow-related procedures
 scripts_global/conf/procs_metrics.tcl: Metrics-related procedures, including non-
SYS metrics
 scripts_global/conf/procs_user.tcl: Empty placeholder for user-defined procedures
2. Techlib Setup
 scripts_global/<TECHLIB>/common.tcl
3. Block Setup
 blocks/<TECHLIB>/$SEV(block)/scripts_block/conf/block.tcl
 blocks/<TECHLIB>/$SEV(block)/scripts_block/conf/block_setup.tcl
注 意 : 在 RTM 的 pre-11-09 版 本 , 所 有 的 任 务 脚 本 是 从 存 储 在
scripts_global/conf/tool_wrapper.tcl 中的工具包脚本中运行的。在它实际调用流程目
标中指定的任务脚本之前,这个脚本反过来加载一组脚本(This script in turn sources
a series of scripts)
如果您需要修改现有的程序,或添加新的程序来支持你的项目中使用的流程或脚本,
使 用 scripts_global/conf/user_procs.tcl 文 件 。 一 个 典 型 的 使 用 这 种 方 法 : 修 改
sproc_sta_metrics 程序,生成附加的项目特定指标(generate additional project-specific
metrics)

第三方程序(3rd Party Procedures)


除了标准的文件,你可以通过指定 scripts_global/conf/user_procs.tcl 中的文件位置来
加载包含其它程序的文件(source files containing other procedures)。如果指定了该文
件,那么它将在执行实际任务的工具脚本之前被加载。因此,它可以被用来定义脚
本所使用的新的程序,或重新定义一些用于 Lynx 定义的默认程序。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
升级 Lynx(Upgrading Lynx Design system)
你可以升级你目前的 Lynx 设计系统到较新的版本,使用更新的功能、修复或性能
改进。您可以根据需求,在全面升级和部分升级之间进行选择,或者利用 RTM 设
置解决并完全避免升级,以适应微小的变化。
注意:不要在一个项目中做全面升级(Do not do a full upgrade amidst a project)

升级注意事项(Upgrade Considerations)
升级之前,请考虑:
1、Requirements. 如果功能更新和修补程序跨多个步骤或工具进行全面升级。为一
个单一的步骤或任务执行部分升级。也可以,例如在工具版本变化的情况下,避免
升级沿用现有选项。
 对于一个活跃的项目,你可以移动到较新的工具版本(for example, IC Compiler
2011.09-SP5) 而不用改变流程脚本到新版本。如果你遇到 Galaxy 工具的版特
定版本问题,可以这样做(Do this if you encounter problems with a specific version
of Galaxy tools)
 您可以分别移动到一个新的运行系统管理器或管理舱,而不用改变流程脚本到
新版本。如果遇到 RTM 或 MC 问题,可以这样做。
 为流程的一个步骤进行局部升级
 如果你开始一个新的项目,并希望重用前一个项目使用的组件,做全面升级
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
注意:不要在一个项目中做全面升级(Do not do a full upgrade amidst a project)
2、Existing Customizations。在生产环境中典型的自定义设置包括:
 改变工艺(technology)相关的脚本和文件,指定 common.tcl 和 system.tcl,自定
义特定工艺(technology)和特定工艺(technology)的脚本,如用于流程中 filler cell
的插入。
 改变流程脚本,自定义设计
 为项目创建附加脚本和流程
 改变报告和度量的捕获脚本和程序
Identifying, collating, and merging changes due to the new version scripts and flows and
due to the necessary project or company specific edits can be challenging. However, with
some forward planning and by following some basic guidelines, the challenge can be
minimized and reduced to a practical and manageable level
3、Using Revision Control。备份 user/example_user/example_workarea/目录,其中包
含了原始的脚本和流程文件,使用版本控制使您能够有一个不变的参考,针对该新
版本中的脚本和流程文件,可以很容易地比较。比较新的版本和以前的版本文件,
在没有任何本地修改的情况下,使得更容易理解什么改变了,在编辑的脚本和流程
中,什么必须升级。
4、Technology Related Changes。通常特定工艺(technology)的脚本不受版本更新影
响,它们被存储在分开的区域,并且通常是写入运行(are generally written to run),
而不与其他脚本交互。
5、变量和流程文件(5. Variables and Flow Files)。
 common.tcl。更改 common.tcl 是不可避免的,您可能已添加变量到您自己的环
境中。在此文件在升级时,如果变量名可能已更改和/或变量可能已被添加或删
除,该问题最可能遇到
 Flow XML Files。流程脚本的改变是不可避免的,然而,这些变化和修改应该
尽量减少升级所造成的任何影响。如果您已经添加变量到 XML 文件中,你需
要将它与新的版本进行比较,并根据需要将合并更改(incorporate changes)。为
变量和流程检查更改的详细信息版本。
6、Using Local Scripts。如果您需要更改全局脚本,或在一个块中添加使用一个新
的脚本,那么在<block_name>/scripts_block/<step>下,创建一个本地脚本。
Use Project Specific Global Scripts:Lynx 全局脚本存储在 scripts_global/<step>/下,

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
但这不是强制性的。如果需要对一个应用在项目中多个或所有块的全局脚本进行编
辑,那么创建一个名为 scripts_global /<project> /的新目录并存储编辑的或新的全局
脚 本 。 例 如 , 复 制 scripts_global/syn/dc_compile.tcl 到
scripts_global/<project>/syn/dc_compile.tcl,然后编辑流程文件,来引用这个新的脚
本。

回归测试(Regression Testing)
在任何升级(包括工具改变)之后,执行 Regression Testing,例如,尽管只是简单的
改变工具的版本,如果默认的工具变量或命令选项已更改,现有的脚本可能需要额
外的修改。另外,即使你更改的工具所有的脚本可能工作,这并不意味着在运行流
程时,你将不会看到任何问题。考虑改变设计编译工具版本的情况下,你必须测试
流程的所有设计编译器脚本并验证一切都运行良好。但是,有可能是设计编译器有
问题,但直到你开始运行的 ICC 或 PT 时才显现。在进入程序前,你应该用新的工
具版本,以一个小的块或者示例设计中的 dhm 回归测试整个流程。

避免升级(Avoiding Upgrades)
您可以通过使用在 RTM 中的工具版本设置,避免全部或部分升级导致的工具版本
的变化:
 Change Tool Version for All Tasks: Settings Tool Versions Using system.tcl
 Change Tool Version for a Single Task: Settings Tool Versions Using Execution
Monitor (Task)
 Change Tool Version for a Single Flow: Settings Tool Versions Using Execution
Monitor (Flow)
您也可以从流程编辑器编辑工具版本(Settings Tool Versions Using Flow Editor)

更改为非标准工具版本(Changing to a Non Standard Tool Version)


您可以更改工具版本为非标准版本的情况,如:
 Version released for a hot fix
 Version not yet installed in the current compute environment
 Loading tools using methods different from module files
作为一个工具版本加载的等效,您可以直接指定可执行文件来使用变量
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
SEV(cmd_dc)运行(As an equivalent to control tool version loading, you can directly
specify the executable to be run using the variable SEV(cmd_dc)),每一个工具默认值
定义在 scripts_global/conf/rtm_init_tools.tcl 文件:
set SEV(cmd_dc) dc_shell
rtm_init_tools.tcl 中的代码片段:
proc rtm_tool_cmd { args } {
global env SEV SVAR TEV
set options(-show) 0
parse_proc_arguments -args $args options
set SEV(cmd_dc) dc_shell
set SEV(cmd_fm) fm_shell
set SEV(cmd_gca) gca_shell
set SEV(cmd_hercules) hercules
set SEV(cmd_nettran_h) nettran
set SEV(cmd_hspice) hspice
set SEV(cmd_icc) icc_shell
set SEV(cmd_icv) icv
您可以通过使用 SEV(cmd_dc)变量,指定可执行文件的完整路径,绕过任何工具版
本加载工具。

进行部分升级(Performing Partial Upgrade)


为一小步骤或工具改变执行部分升级,例如,从较新的版本结合具体流程改变(such
as incorporating specific flow changes from a newer version)
To upgrade (IC Compiler example):
1、利用 System Setup Editor(system.tcl)更改 ICC 工具版本
2、利用新版本替换现有的 scripts_global/pnr/ and scripts_global/finish/的 ICC 脚本
如果需要,替换包含在 scripts_global/< techlib>/下的工艺相关的 ICC 脚本
3、利用新版本替换相应的流程文件,或者编辑流程文件到对应的改变
部分升级后,用新版本使用一个小块或 dhm 样本设计对整个流程进行回归测试。
如果您遇到问题,退步检查(regressively check):
Variable Changes: 新的脚本可能包含老版本没有的 SVAR 或 TEV 变量

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Script Name Changes: 脚本名称可能在版本之间有差异
Sproc Changes: 新脚本可能对应 sproc 但不存在 procs_*.tcl 中;增加 sprocs.
(The new scripts might refer to sproc that do not exist in the current procs_*.tcl; add the
sprocs.)

执行完整升级(Performing Full Upgrade)


如果功能更新和修补程序跨多个步骤或工具进行全面升级。执行全面升级所需的努
力正比于当前 Lynx 设计系统安装定制化水平。
注 意 : If you have not captured your customizations into a separate
scripts_global/<project>/ directory,执行全面升级,将导致您的自定义丢失。不要在
一个项目中做全面升级(Do not do a full upgrade amidst a project)
To upgrade:
1、查看最新的文档,评估变化的范围
检查新的或修改的 SVAR 变量。
2、更新节点。
如果新增或变更的 SVAR 变量存在,则更新 common.tcl。
如果需要,比较节点目录中所有脚本并更新。
3、备份现有的 scripts_global /目录。
4、更换现有的 scripts_global /目录中的内容与新的版本。
5、复制备份 scripts_global / <project> /目录到新的 scripts_global /目录
 只有当你做任何全局定制时候需要。
 合并定制,利用新的全局脚本版本启动(To incorporate customization, re-do
them starting with the new version of the global scripts.)
6、更换或用旧版本合并新的 scripts_global/conf/目录。
手动检查文件的变化,如工具版本。
7、在<block>/scripts_block/<step>/目录中,更新本地流程文件。
全面升级后,利用新版本,使用一小块或 dhm 样本设计执行回归测试

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Using the Modules Installation
Modulefiles 是 Lynx 中装载工具的首选方法。示例工具 modulefiles 附带在 Lynx 中,
如果你没有 Modulefiles,根据描述下载安装:
unsetenv MODULE_VERSION
setenv MODULESHOME <modules_install_dir>/Modules/3.2.7
source $MODULESHOME/init/tcsh (Also available (bash, csh, ksh, python, zsh)

配置示例 Modulefiles(Configuring Sample Modulefiles)


所有工具的示例 modulefiles 在<flow_install_directory>/bin/example_modulefiles 中,
如有必要,编辑示例 modulefiles。
注意:示例文件是为 Synopsys lumen DSA cluster 配置的,你必须根据您的计算环
境将其配置。

使用配置的 Modulefiles
在启动 RTM 之前,利用<your_flow_install_directory>/bin/example_modulefiles 运行
module,proceed with the rest of Lynx Design System installation and configuration。
Hercules 工具的 modulefiles 示例:
#%Module1.0
## -----------------------------------------------------------------------------
## HEADER $Id: //sps/flow/dwip/bin/example_modulefiles/hercules/2008.09-SP3#1 $
## HEADER_MSG Lynx Design System: Production Flow
## HEADER_MSG Version 2011.09-SP3
## HEADER_MSG Copyright (c) 2012 Synopsys
## HEADER_MSG Perforce Label: lynx_flow_2011.09-SP3
## HEADER_MSG
## -----------------------------------------------------------------------------
## DESCRIPTION:
## * Example module file
## -----------------------------------------------------------------------------
set list [ split $ModulesCurrentModulefile / ]
set app_name [ lindex $list end-1 ]

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
set version [ lindex $list end-0 ]
## The following 2 lines must be modified
set tool_path "/global/apps5/hercules_${version}"
prepend-path SNPSLMD_LICENSE_FILE 26585@us01_lic5:26585@us01_lic4
module-whatis "hercules (Hercules)"
## -----------------------------------------------------------------------------
## Select the correct architecture
## -----------------------------------------------------------------------------
set architecture "not_set"
proc get_platform { } {
global architecture
set os_type [exec uname]
set machine_details [exec uname -m]
set os_release [exec uname -r]
set is_suse [file exists /etc/SuSE-release]
switch -glob $os_type {
SunOS* {
switch $machine_details {
default {
set architecture SUN.32
if {[file exists /bin/isainfo]} {
set isa_line [exec isainfo -n]
if {[regexp {[Ss][Pp][Aa][Rr][Cc][Vv]9} $isa_line]} {
set architecture SUN.64
}
}
}
}
}
Linux* {
switch $machine_details {

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
x86_64 {
set architecture AMD.64
if {$is_suse} {
set architecture SUSE.64
}
}
default {
set architecture IA.32
if {$is_suse} {
set architecture SUSE.32
}
}
}
}
}
}
get_platform
## -----------------------------------------------------------------------------
## Required setup
## -----------------------------------------------------------------------------
prepend-path PATH $tool_path/scripts
prepend-path PATH $tool_path/bin/$architecture
setenv AVANTI_SYSTYPE $architecture
setenv SYNOPSYS_SYSTYPE $architecture
setenv HERCULES_HOME_DIR $tool_path
setenv XNLSPATH $tool_path/lib-u/X11/nls
setenv XKEYSYMDB $tool_path/lib-u/X11/XKeysymDB
setenv LTL_HOME_DIR $tool_path
## -----------------------------------------------------------------------------
## Output Messages
## -----------------------------------------------------------------------------

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
if { [ module-info mode load ] } {
puts stderr "architecture is $architecture"
puts stderr "Hercules ${version} loaded\n"
}
if { [ module-info mode remove ] } {
puts stderr "Hercules ${version} unloaded\n"
}
## -----------------------------------------------------------------------------
## End of file
## -----------------------------------------------------------------------------
您可以将其复制此到适当的位置,并根据需要修改模板 modulefile。当你加载 RTM
时,它会自动引用的所有工具的所有 moduflefiles。

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
集成第三方工具(Integrating 3rd Party Tools)
要添加第三方工具,请执行下列步骤:
1、编辑 scripts_global/conf/variables.xml,增加新的变量到 system.tcl (for example,
SEV(ver_newtool))。
注意:新工具只是一个标签并不一定是实际的工具名称,如果新工具需要一些
新 SVAR 来控制他。这也可以通过编辑 variables.xml 实现。
2、通过复制现有视图脚本,为另一个工具创建视图脚本。
scripts_global/view/view_newtool.tcl,编辑 view.xml,为新工具创建 view_task,
对应于新创建的视图脚本
3、编辑 rtm_init_tools.tcl:
a. Edit rtm_tool_cmd to define SEV(cmd_newtool).
b. Edit rtm_shell_cmd to add switch for tool newtool.
c. Edit rtm_tool_query to add information for new tool. SEV(ver_*) variable for
each tool as to if it is supported in XML and/or whether it has view support.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置用户偏好(Setting User Preferences)
运行系统管理器支持多级偏好(preference)设置,定义和控制的用户环境中的行为。
这些包括通用的偏好(preference)设置,诸如颜色或字体,以及 UI 特定的选项,如
默认情况下,中在流程编辑器或块覆盖模式下打开任务属性编辑器。您可以在
enterprise (system), project 和个人用户级别设定或实施偏好(preference)。

偏好设置(Preference Settings)
在 RTM 中,所有偏好(preference)主要在下面文件中指定
$LYNX_HOME/rtm_shell/lynx_rtm_<version>/auxx/rtm/conf/rtm_preferences.xml,它
包 括 了 可 以 通 过 运 行 系 统 管 理 器 UI 设 置 的 偏 好 (preference) , 例 如 配 置

rtm_shell( )、执行监视器设置、流程检测选项等,它们只能通过编辑

rtm_preferences.xml 文件进行设置。这些偏好(preference)分为 rtm、edit、exec、general、


monitor 以及 flow_check_config 设置。
(In the Runtime Manager, all preferences are primarily specified in the
$LYNX_HOME/rtm_shell/lynx_rtm_<version>/auxx/rtm/conf/rtm_preferences.xml file.
These include preferences that can be set through the Runtime Manager UI (such as,
Configure rtm_shell (), Execution Monitor settings, Flow Check options, etc) and others,
which can only be set by editing the rtm_preferences.xml file. These preferences are
grouped into rtm, edit, exec, general, monitor, and flow_check_config settings)

在 rtm_preferences.xml 文件中,每个偏好(preference)设置有:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Description: 设置描述包围在(enclosed in) <!-- -->
Settings key: 设置的名称
Control: 可配置的模式(Configurable modes):
 Locked (user cannot change setting)
 Limited (user can change setting, but the settings are non-persistent)
 None (user can change setting)
Value: 设置的默认值
根据控制设置(locked, limited, and none),RTM 使能或限制单个用户设置可用于 UI
的偏好(preference)(Depending on the control settings (locked, limited, and none), the
Runtime Manager enables or limits individual users to set preferences that are available
through the UI),例如:
<!--
This setting controls the initial state of the task property editing dialog.
'edit_overrides_always' : Dialog always starts in override mode.
'edit_overrides_auto' : Dialog starts in override mode if the task has overrides.
'edit_overrides_never' : Dialog never starts in override mode.
-->
<setting key="task_override_edit_mode" control="Locked"
value="edit_overrides_always"/>
在上面例子中,control="Locked",Settings key="task_override_edit_mode",禁止
UI 中任务属性偏好选项(Task Properties preference option),
value="edit_overrides_always"设置,默认在块覆盖模式下,启动任务属性编辑器

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
偏好级别(Preference Levels)
RTM 支持 enterprise (system), project 和单独的用户级别的偏好(preference)设置,在
enterprise 级别,rtm_preferences.xml 文件安装在$LYNX_HOME,对所有的偏好
(preference)设置提供管理员控制。在 rtm_preferences.xml 文件中的控制设置(locked,
limited 和 none) 允许或限制单个用户可以通过用户界面设置偏好(preference)。当单
个 用 户 设 置 一 个 偏 好 , 则 在 本 地 保 存 在
<home_directory>/.config/Synopsys/rtm_preferences.xml 文件中。Project-level 的偏好
设置是通过<workarea_directory>/scripts_global/conf/rtm_preferences.xml 文件实现的。

利用 save_preferences_file 命令保存偏好:
save_preferences_file -filename <file_name>

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
参考(References)
RTM 窗口:

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
系统设置变量编辑器(System Setup Variable Editor (system.tcl))

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Consistency Identifies:
Report  Presence/absence of variable definitions in variables.xml
 Presence/absence of variable “set” statements in the system, common,
and block TCL files

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通用设置变量编辑器(Common Setup Variable Editor (common.tcl))

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
块变量编辑器(Block Variable Editor (block.tcl))

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
变量定义编辑器窗口(Variable Definition Editor Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Edit
New Click to create a new variable definition; on Enter New Definition
Definition Name, specify type, name, and expansion option.

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Output Select output format; format types include:
Format String: Select string if data is to be returned as a string

List: Select string if data is to be returned as a list; optionally, select List


Must Be Unique to enforce only one item per list by the same name

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
全局错误检测编辑窗口(Global Error Checks Editor Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
管理数据释放标签(Manage Data Release Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
管理数据存储标签(Manage Data Restore Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
配置 RTM 全局选项(Configure Runtime Manager Global Options)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
配置 RTM 执行选项(Configure Runtime Manager Execution Options)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
配置 RTM 全局错误检测(Configure Runtime Manager Global Error Checks)

配置 RTM 外部工具(Configure Runtime Manager External Tools)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
创建模块窗口(Create Block Window)

清除项目窗口(Clean Projects Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
创建技术库窗口(Create Tech-Lib Window)

执行监视器窗口(Execution Monitor Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
清理项目窗口(Clean Project Window)
任务导航窗口(Task Navigator Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
表设置列标签(Table Setup Columns Tab)

表设置指标标签(Table Setup Metrics Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
选择指标名称窗口(Select Metric Name Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行流程选项 选项标签(Run Flow Options Options Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行流程选项 Aux TEV 标签页(Run Flow Options Aux TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行流程选项 Tool Versions 标签页(Run Flow Options Tool Versions Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行流程选项 Job 控制标签(Run Flow Options Job Control Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行任务选项 option 标签(Run Task Options Options Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行任务选项 TEV 标签(Run Task Options TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行任务选项的 AUX TEV 标签(Run Task Options Aux TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
运行任务选项 Tool Versions 标签(Run Task Options Tool Versions Tab)

运行任务选项 Job Control 标签(Run Task Options Job Control Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看设计数据选项 Options 标签(View Design Data Options Options Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看设计数据选项 TEV 标签(View Design Data Options TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看设计数据选项 Aux TEV 标签(View Design Data Options Aux TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看设计数据选项 Tool Versions 标签(View Design Data Options Tool Versions
Tab)

查看设计数据选项 Job Control 标签(View Design Data Options Job Control Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
示例 log 文件(Sample Log File)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Sample .pass File

Sample .fail File

查看文件窗口(View Files Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Log File Monitor Window

脚本追踪窗口(Script Tracer Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
流程编辑器窗口(Flow Editor Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
模块流程管理窗口(Block Flow Manager Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
复制任务窗口(Replicating Task Window)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器 Basic Controls 标签(Task Properties Editor Tool Task Basic
Controls Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器 Task Description 标签(Task Properties Editor Tool Task
Description Tab)

任务属性编辑器 Task TEV 标签(Task Properties Editor Tool Task TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器 Aux TEV 标签(Task Properties Editor Tool Task Aux TEV Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器 Tool Version 标签(Task Properties Editor Tool Task Tool Version
Tab)

任务属性编辑器 Job Control 标签(Task Properties Editor Tool Task Job Control
Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
任务属性编辑器 Error Checking 标签(Task Properties Editor Tool Task Error
Checking Tab)

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Port Selection Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Basic Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Description Tab

Task Properties Editor Mux Task TEV Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Aux TEV Tab

Task Properties Editor Mux Task Tool Version Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Job Control Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Error Checking Tab

Task Properties Editor Joiner Task Basic Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Note Note Entry Tab

Task Properties Editor Generator Task Basic Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Generator Task Description Tab

Task Properties Editor Generator Task TEV Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Generator Task Aux TEV Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Generator Task Error Checking Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Flow Instance Properties Editor Basic Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Flow Instance Properties Editor Edges Tab

Connect Group Properties Editor Group Name Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Branch Task Basic Controls Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Branch Task Description Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Branch Task TEV Tab

Task Properties Editor Branch Task Aux TEV Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Branch Task Error Checking Tab

翻译:曾义和 联系方式:zengyihe@ict.ac.cn

You might also like