Professional Documents
Culture Documents
Lynx设计系统用户手册中文翻译
Lynx设计系统用户手册中文翻译
文手册,本翻译仅供参考。另外,本人从事数字后端,欢迎志同道合的
朋友一起交流学习。
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 和为工艺节点配置和库质量保证的技术插件
翻译:曾义和 联系方式: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)
执行监视器提供了可视化界面调用,控制和监控流程执行的状态。使用执行监
视器,可以根据多步或多任务的标志和目标调用一个完整的流程,或者同时调用流
程中的独立任务。你可以同时运行多个流程,或同时运行单个流程的多个会话。当
任务执行时,可利用颜色指示实时检查流程的状态。
翻译:曾义和 联系方式: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 报告。
翻译:曾义和 联系方式: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。
翻译:曾义和 联系方式: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 变量
翻译:曾义和 联系方式: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 文件进行设置。
翻译:曾义和 联系方式: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: 选择一个值
注:编辑以黄色突出显示
该值将会写入变量文件中
通常情况下,可以打开 system.tcl、common.tcl 或 block.tcl 档手动查看或编辑它们。
例子:
在 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 的相应值同步。对一个变量,在块变量编辑
您可以重新同步单个变量的值,或者设置该变量的值为一个其它模块。您也可以一
次性重设在 common.tcl 或 block.tcl 中所有变量的值,此外,您可以轻松地过滤掉
非默认值和更改后的值。
复位或设置方法:
单个变量:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
当复位或设定值时,使用主工具栏中 Show Only Non-Default ( )和 Show Only
使用过滤器来搜寻变量
您可以通过指定一个名称或数值模式筛选变量
翻译:曾义和 联系方式: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 的图形用户界面,让您可以轻
松地访问它,进行定制或执行。
每一个释放(release)是由一个用户指定的释放(release)名称进行鉴别的。当您还原已
经释放的模块数据时,它被恢复到默认的工作区。
利用 RTM 可用于:
Creating Blocks(创建模块)
Cleaning Blocks(清除模块)
Managing Block Data(管理模块数据)
创建模块
要删除一个模块,单击删除模块( )。从删除块对话框中,选择要删除的模
块,然后单击确定,单击是确认删除。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
清除模块
管理模块数据
每一个释放(release)是由一个用户指定的释放(release)名称进行鉴别的。当您还原已
经释放(release)的模块数据时,它被恢复到默认的工作区。使用选项而不是脚本来
管理设计数据,如 MDB。
管理方法:
翻译:曾义和 联系方式: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
配置方式:
在编辑区域中指定的值,然后单击 .
Tech-Lib 根目录
选择 techlib_dir.
指定值(单击 以选中目录),然后点击 .
3、点击 Save ( ).
4、重启 RTM.
注意:如果你修改 SEV(techlib_name)变量后不重新启动 RTM,会出现下面错误。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
更新 Tech-Lib 变量
当你从一个存在的 Tech-Lib 创建一个新的 Tech-Lib 时,它继承了原来 Tech-
Lib 的变量和值。这些变量必须被更新为适用于新 Tech-Lib 的指定设置和文件。
注意:最好是检查所有部分,并根据需要进行更新。这个过程中介绍的东西只是一
个很好的起点。更多有关 common.tcl 和如何使用通用设置变量编辑器,请参阅使
用变量编辑 Using Variable Editors。
更新方式:
(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)
翻译:曾义和 联系方式: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)
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
GUI 控制
运行系统管理器图形界面的版本控制选项可用于:
status ( ))。
变量编辑器窗口的 system.tcl、common.tcl 和 block.tcl
任务属性编辑器窗口和脚本跟踪对话框的脚本文件
流程编辑器的 XML 文件
在创建 Tech-Lib 或模块窗口的时候,用到的 Tech-Lib 或模块目录
翻译:曾义和 联系方式: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
更新或取出文件:
检查文件(Checking in Files)
您可以在您的工作区同时检查所有文件,在创建的时候,你也能够检查 Tech-
Lib 和模块目录。检查文件:
检查版本控制状态
状态控制选项生成一个报告,指示:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
是否文件处于在版本控制
是否文件是最新的
是否文件已经在本地被修改
是否文件已过时
未知版本控制状态的文件列表
是否所有的文件是最新的
检测状态:
翻译:曾义和 联系方式: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>
下,作为一个本地脚本创建即可。
启动流编辑器
使用流编辑器可以直观地创建,编辑和管理设计流程。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用流程编辑器
流程编辑器是一个可视化的图形界面,用于创建、编辑和管理设计流程。它包括一
组容易配置和互连的预定义任务对象,来定义设计过程和数据流程的大小和方向。
每个任务对象都有一组属性,这些属性通过任务属性编辑器被设置和访问。在 RTM
中,每一个模块都有相关的顶层设计流程文件,就是顶层流程。例如,在示例设计
dtop 中的 hier.xml。通过模块流程管理器,一组流程被指定为顶端流程。模块流程
管理器允许您能够方便地集中管理属于独立模块的流程。
任务对象
任务对象是预定义的、可配置的实体,能用于可视化创建和测试流程,包括:
流程实例(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
在任务属性编辑器中,任何变量:
指示变量是从脚本读取,而不是流程文件
指示变量是从脚本读取,并在流程文件中
表示该变量被从流程文件中读取的,并且在流程文件
表明所显示的值与在任务脚本是一样的(默认);
显示修改后的值
表示该值不在流程文件中;
表示该值在流程文件中;
翻译:曾义和 联系方式: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 ):检查与当前模块相关联的所有流程文件,
并提供了一个状态摘要
点击 Push In ( ) 向下查看子层对象
打开流程
打开一个流程,进行查看或编辑。
注意: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>
下,作为一个本地脚本创建即可。
打开方式:
2、浏览到所需的位置,选择流程文件,然后单击 Open,流程出现在一个标签页
使得流程文件可写。
模块相关联的顶级流程。
添加任务
添加任务,并编辑流程:
1、在流程编辑器中,打开流程来添加任务
注: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
按照要求,添加任务对象和连接器
Delete,若要删除多个任务,拖动鼠标选中多个任务,然后单击 Delete( )。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
添加任务连接(Adding Task Connections)
任务对象是通过连接器(Connectors, )互连的,这代表了流程的顺序和方向。
边缘模式是由一个灰色的背景上的 光标表示
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。
翻译:曾义和 联系方式: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 变量
根据类型编辑值:
也可以使用 ,使全局脚本文件作为特定模块文件。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
翻译:曾义和 联系方式: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 文件;所有的错误和严重错误都暂时
不考虑
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Joiner Task
设置 Joiner 任务( )对象的属性来调用单目标的多个任务,当您使用执行监视器运
行 Joiner 任务时,它会调用所有加入的任务,并行执行它们。
注意:每个任务调用其相应的 license;同时并行工作的数量可以通过在 run_task 菜
单命令的任务限制选项进行控制。
注意:使用覆盖模式,无需修改全局 XML 流程文件,来定制特定块的任务设置。
设置方式:
1、选择任务对象并单击鼠标右键> Properties ( )。
翻译:曾义和 联系方式: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 变量
根据类型编辑值:
也可以使用 ,使全局脚本文件作为特定模块文件。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
翻译:曾义和 联系方式: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 ( )。
点击 选择对象
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
生成任务(Generator Task)
点击 检查文件进行编辑
单击 使用文本编辑器编辑文件
单击 放弃更改并重新加载最近保存的文件
点击 保存全局脚本文件为特定模块的文件,例如
在 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 变量
根据类型编辑值:
也可以使用 ,使全局脚本文件作为特定模块文件。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
翻译:曾义和 联系方式: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.)
设置方式:
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 变量
根据类型编辑值:
也可以使用 ,使全局脚本文件作为特定模块文件。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
List:点击 添加行,指定值(单击 选中目录),然后单击 。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个
任务被加载,辅助工具选项允许为特定的任务来加载附加的工具。
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 ( )对象添加流实例。
设置一个现有的流程实例的属性:
1、选择任务对象并单击鼠标右键> Properties ().
任务属性编辑器<object name>窗口出现。
2、在 Basic Controls 标签中:
在 Instance Name 指定名称
也可以查看组成对象
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
使用模块流程管理器(Using Block Flow Manager)
模块流程管理器允许你管理指定模块的所有流程。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
要启动模块流程管理器,在流程编辑器中,选择 File > Block Flow Manager( )
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
模块流程管理器用于:
添加已有流程
添加新的流程
编辑流程
删除流程
建立特定模块的全局流程
指派顶层流程
设置流程目标
添加已有流程
利用模块流程管理器为当前模块增加已有流程
增加新的流程
利用模块流程管理器为当前模块增加新的流程
1、在模块流程管理器(Block Flow Manager),点击 Add New Flow ()
<block> New Flow Instance 窗口出现
2、在 Flow Name 指定名称
3、在 File Name 指定文件名
4、点击 OK.
流程被添加到现有流程列表
编辑流程
利用模块流程编辑器改变与流程名称相关的 XML 文件
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name).
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
3、在 File Name 编辑文件,改变流程文件
4、点击 OK。
流程得到更新。
删除流程
利用模块流程管理器,删除模块相关的流程
注意:顶层流程不可被删除,要删除当前设计的顶层流程,先分配其他流程作为顶
层流程,然后删除流程。
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。
2、点击 Remove Selected Item ().
流程被删除
建立特定模块的全局流程
利用模块流程编辑器,建立特定模块的全局流程
1、在模块流程编辑器中, 从流程列表中选择一个流程 (Flow Name)。
指定顶层流程
利用模块流程管理器,指定顶层流程。(任何流程都可以被指定为顶层流程)
1、在模块流程编辑器中, 从流程列表中选择一个流程 (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 ( ).
创建新流程
为定制模块需求创建新的流程
注意: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 ( )。
备份任务(Duplicating Tasks)
为设计探索备份(Duplicating)任务时,它继承了原来任务的 TEVs 和其他值
1、在流程编辑器中,选择将要备份(Duplicating)的任务对象
选择的对象由一个红色边框表示。
2、右键单击> Duplicate ( ).
翻译:曾义和 联系方式: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 ( ).
任务列表出现如下:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Name
Type
Step
Source
Destination
Tool
Script
3、选择一个或多个导入的任务
4、点击 OK.
重新加载流程(Reloading Flows)
舍弃当前编辑,重载最新保存的流程文件。
如果存在未保存的修改,则会出现警告。
2、点击 Close without Saving.
流程恢复到最近一次保存流程文件设置。
利用缩放选项
使用缩放来调整放大设。
Zoom In ( ) 放大显示
另外,也可以滚动鼠标滚轮来放大或缩小
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Snap Objects to Grid ( )自动对齐对象到网格。
Crop ( ):
Expand Up ( )向上扩展编辑器
生成报告(Generating Reports)
1、在流程编辑器中,点击 Reports.
2、选择生成报告类型;包括:
Task Overrides
Check Flow > Generate Report
流程编辑器生成报告,并显示出来。
也可以利用下面的选项:
Take Snapshot: 创建一个流程编辑器内容图像的 PNG 文件格式
在执行监视器中打开任务
1、在流程编辑器中,对于选定的任务,右键单击> Open in EM ( ).
流程检测、报告和文档
流程编辑器包含内建的检查和报告,另外通过命令行,可以为一个选择的模块,自
动生成一个完整流程的 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 窗口,选择一个已有的
会话或者启动一个新的会话来启动执行监视器。
使用执行监视器
执行监视器提供了一个可视化界面,用于调用、控制和监控流程执行状态。使用执
行监视器,你可以同时调用一个包含多个步骤或任务的完整流程,或者流程的多个
独立任务。由于颜色指示器显示流程执行的状态,你可以实时查看流程的执行、步
骤 或 任 务 。
翻译:曾义和 联系方式: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)
执行状态
在执行监视器中,流程的状态是通过颜色指示的
翻译:曾义和 联系方式: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 选项增加或移除在执行监视任务表的显示项目,另外你可以显示
运行指标。该表可以通过右键列标题,逐列存储。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
排序行(Ordering Rows)
在 Per Table Set Up、Per Log File Time 或 Per Flow Order 基础上,重新排列任务
表项。设置方式:
在执行监视器中,重排任务:
点击 Per Table Set Up( ),按对象类型进行排序。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
设置字体(Setting Fonts)
调整执行监视任务表中的字体设置:
管理会话(Managing Sessions)
当从 RTM 中调用执行监视器时,会自动创建一个特定模块的会话。也可以为一个
模块增加一个会话,来并行运行不相关的步骤和任务。会话在执行监视中由标签标
识。
会话管理可以:
创建会话
打开会话
复制会话
刷新会话
删除会话
创建会话
创建一个新的会话运行流程或任务。可以为模块创建多个会话:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
项创建一个新的会话时,milestones 被设置给定义在 XML 中的文件(milestones are
set to those defined in the flow XML file)
也可以利用 View > Rename Session Tab 选项重命名会话
打开会话(Opening Sessions)
打开一个关闭的会话来重新运行流程或任务。执行监视器保留从当前 RTM 会话开
始的所有会话。可以打开任何保留的会话:
除数据。
复制会话(Copying Sessions)
复制一个会话用于并行运行任务,或以不同的设置选项重新运行任务或流程。
注意:当复制会话的时候,milestones 保持和源会话一样
刷新会话(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)。
删除会话(Deleting Sessions)
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 被保留下了。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Toggle Milestone
运行流程(Running Flows)
运行流程执行一组任务。根据需求,利用 Run Flow Options,设置基本流程执行选
项,或覆盖初始的流程设置。例如 auxiliary TEVs、工具版本和工作控制设置(job
control settings)。
注意:在 RTM UI 中利用 Exit When Idle 选项自动退出 RTM,并在执行流程后释
放 license。
运行方式:
2、点击 Execute( )
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 变量:
点击 添加行,指定值,然后单击
单击 放弃编辑并重新加载最近保存的脚本或流程,返回
利用 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、在执行监视器中,从任务列表中选择任务运行
3、点击 Execute( )
翻译:曾义和 联系方式: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 变量
根据类型编辑值:
也可以使用 ,使全局脚本文件作为特定模块文件。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个任务被加
载,辅助工具选项允许为特定的任务来加载附加的工具。
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
翻译:曾义和 联系方式: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)
3、点击 Execute( )
翻译:曾义和 联系方式: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:指定值(单击 以选中目录),然后点击 ;
也可以使用 ,使全局脚本文件作为特定模块文件。
注:未保存的修改以黄色突出显示.
查看变量的状态:
表示该变量被从脚本中读取和不在流程文件中
表示该变量被从脚本读取,且在流程文件。
表示该变量被从流程文件中读取,并在流程文件中。
写入文件,或放弃更改从文件中读取:
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
点击 添加行,指定值,然后单击确定
点击 写入变量/值到流程文件中;返回 。
单击 放弃编辑并从脚本或流程重新加载;返回 。
单击 添加工具到辅助工具列表;默认情况下,只有一个工具可以为一个任务被加
载,辅助工具选项允许为特定的任务来加载附加的工具。
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、在执行监视器中,从任务列表中选择流程目标
重新运行任务(Re-running Tasks)
当运行一个任务时,执行监视器检测 .pass 文件任务是否存在 (the presence of
task .pass files)。重新运行任务时,你必须删除之前的.pass 文件:
1、在执行监视器中,选择重新运行的任务
跳过任务(Skipping Tasks)
跳过一个任务来执行流程执行过程中的任务。要跳过一个任务,define TEV(skip) as
a TEV or an Aux TEV,然后在任务属性编辑器(Task Properties Editor)中设置为 1,
跳过的任务被流程编辑器中一个(s)符号指示。
如 ,跳过方式:
放弃的任务以黄色高亮显示
Prior( )选项,放弃选定的任务的所有任务。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
点击 Edit( ),在文本编辑器中打开选择的文件
指示文件可写。
使用任务导航(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)
清除模块删除流程执行过程中生成的所有运行数据,清除模块用于重新运行流程:
翻译:曾义和 联系方式: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)。
翻译:曾义和 联系方式: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 ".*": 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),由执行监视器中黄色
边缘的会话标签指示。
设置:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
3、在 Error Check Groups 下,点击 Create Group( )增加新的检查组。
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)
指定特定任务的检查:
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、根据需求增加多个规则。
例如:
1、选择任务对象并单击鼠标右键> Properties( )
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
查看任务文件(Viewing Task (Log, Fail, Pass) Files)
1、在执行监视器中,选择任务,查看文件:
2、打开文件:
文件在默认的文本编辑器中打开
翻译:曾义和 联系方式: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 设置编辑器中,动态生成和列表变量。
翻译:曾义和 联系方式: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,用于你创建的自定义流程。当创建一个新的定义时,最好通
变量类型(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 生成值
的字段,如下所示:
何字段类型。
String:该值可以是由字段类型指定的任何类型
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
2、点击 New Definition ( ).
7、指定 Categories;指定或选择值,来分类变量
:点击清除值的名称
:点击添加指定的值作为分类;一个值可以被列表在多个分类下
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
:点击删除选择的分类。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
备份变量定义(Duplicating Variable Definitions)
备份(Duplicating)变量的定义涉及创建定义的副本,并用新名称保存它。利用备份
(Duplicating)选项创建和已有定义相似的新的定义。创建方式:
1、在 Variable Definition Editor 中,从将要备份(Duplicating)的列表里,选择变量
定义
翻译:曾义和 联系方式: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。
翻译:曾义和 联系方式: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 的值
存文件到模块脚本目录($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。
翻译:曾义和 联系方式: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,然后并行执行他们。
翻译:曾义和 联系方式: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)。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
自动结果选择(Automating Result Selection)
须为任务定义选择标准,来进行选择并继续流程执行。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用流程分支探究(Exploration Using Flow Branching)
利用分支任务自动执行不同流程或根据前面任务结果的流程分支来探究。例如,如
果初始的编译不满足时序要求,运行一个增量编译会很有帮助。分支任务有一个单
独的输入源,可以连接(contact)编号 1-4 四个输出源。分支任务必须决定输入应连
接到哪个输出目的地,并利用一个特殊程序 sproc_broadcast_decision,广播这个决
定。决定可以基于 TEV(decision_override)变量指定的静态用户值,或者动态基于其
他用户指定的设计,或脚本的 QoR 指标,当脚本做出自动执行的决定时,
TEV(decision_overrride)应该被设置为 0。
分支任务通常在默认的流程中使用,决定恢复之前生成的数据还是从源数据重新生
成数据。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
在这个用于许多初始流程的示例中,数据的源是通过用户指定
TEV(decision_override)设置进行控制的。
如果设置为 1, SYN 步骤的数据是通过从设置到发展被再生的
如果设置为 2, SYN 步骤的数据是通过恢复之前释放的数据生成的
如果为 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
选项。
(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. 利用流程编辑器或手动改变流程名称,使得模块内的流程名称参考是唯一的
翻译:曾义和 联系方式: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
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
通过重复工作区探究(Exploration by Repeating Workarea)
重复整个流程的一个方式就是使用多个工作区。这对于对比相同设计完整流程的不
同版本很有帮助。这种方式也允许不同全局脚本的使用,通过改变 common.tcl,不
同库数据版本也可以。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
DP 探究流程(DP Exploration Flow)
Lynx 包含一个为 floorplans 探究的流程。流程建立在 Galaxy 设计平台参考方法上,
并允许你自动生成一组初始化的 floorplans。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
TNS、Wirelength, congestion 等相关细节的报告对比 floorplans。
利用管理舱对比流程探究结果(Comparing Flow Exploration Results using MC)
你可以使用 Dashboard report 对比跨任务、流程、模块的多个参数,趋势分析报告
(Trend analysis reports)有助于对比给定的步骤的 QoR 型指标的短期趋势。资源分析
(Resource analysis)可以对比不同探究选项中的运行时间。
翻译:曾义和 联系方式: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
的层次时序分析。
翻译:曾义和 联系方式: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 时序模型
输入:
•布局规划 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.)。
翻译:曾义和 联系方式: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,你也必须设置指定工具版本来执行任务。
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
利用系统设置编辑器设置工具版本(system.tcl)
手动或利用系统设置编辑器,编辑 system .tcl 文件设置工具版本:
5、点击 Save( )
手动编辑:在文本编辑器中打开 scripts_global/conf/system.tcl,每个变量有一个虚线
框描述边界,以及括在双引号中的变量名和值,工具版本以 SEV(ver_*)为前缀,更
新工具版本并保存文件。
1、在流程编辑器中,选中任务并右击 Properties( )
3、点击 Execute( )
执行监视器为当前运行流程使用最新指定的工具版本。如果退出运行系统管理器,
这些值只在 RTM 会话期间保留,并恢复恢复到 system.tcl 中存储的默认值。
设置方式:
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
1、在执行监视器中,从任务列表中选择运行的任务
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)
翻译:曾义和 联系方式: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)
翻译:曾义和 联系方式: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.)
翻译:曾义和 联系方式: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
在启动 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)设置有:
翻译:曾义和 联系方式: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
翻译:曾义和 联系方式: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)
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
创建模块窗口(Create Block Window)
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
创建技术库窗口(Create Tech-Lib 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)
翻译:曾义和 联系方式: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)
翻译:曾义和 联系方式: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
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Log File Monitor 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
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Mux Task Aux TEV 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
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Note Note Entry Tab
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Generator Task Description 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
翻译:曾义和 联系方式: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
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
翻译:曾义和 联系方式:zengyihe@ict.ac.cn
Task Properties Editor Branch Task Error Checking Tab
翻译:曾义和 联系方式:zengyihe@ict.ac.cn