IC设计实现流程的自动化

发布时间:2025-05-21 08:38

厨房设计中如何实现工作流优化 #生活技巧# #家居技巧# #家居设计灵感#

C 设计实现流程的自动化 张伸,王永流 ( 上海华虹集成电路有限责任公司) 摘要:I C 设计从代码设计到最终的投片( t a p o u t ) ,中间会经过多步实现流程,一般来说,包括前端的代 码风格检查、c d c ( c l o c kd o m a i nc r o s s i n g ) 检查、综合、功能一致性检查、静态时序分析以及整个后端 的P R 。本文提供一种流程自动化的平台设计,以提高设计实现的效率以及准确性,该平台主要针对于前 端的实现流程,不包括后端的P R 流程。 1概述 一般来说,I C 产品从一开始的s p e c 定制到最终 t a p o u t ,都要经过一些特定的步骤。特别是其实现过 程,即从代码设计完成,到t a p o u t ,其中要经过包括 前端的代码风格检查( 如l e d a ) 、跨时钟域路径( c d c c h e c k ) 检查、综合( s y n t h e s i s ) 、功能一致性检查( 如 f o r m a l ) 、静态时序分析( S T A ) 。有的时候,因设计的 需要,可能还会包括p o w e r 的分析、可测试性设计 ( D F T ) 、边界扫描设计( D S D ) 等等。在这之后会有 一版正式的网表( n e t l i s t ) 和约束文件( s d cf i l e ) 提 供给后端以做布局布线,并最终得到t a p o u t 所需的 G D S I I 文件。在整个后端P R 的同时或者t a p o u t 之 前,还必须不停地做功能一致性检查和静态时序分 析,以保证P R 的改动不会影响到我们设计所期望 的功能和性能。 在上述这些步骤中所用到的工具均不一样,并 且每一步可选用的工具也很多。目前市场上有 s y n o p s y s 、c a d e n c e 、m e n t o r 、s p y g l a s s 等多家公司提供 相应的工具,这使得负责设计实现的工程师不仅要 h s d n ,J I A A ,- j ,m m 熟悉每一个步骤的技术上的原理,同时要对各种工 具的用法有一定了解。但是工具的更新不可避免,而 项目负责人的变更也比较正常,这两个原因使得设 计实现流程上存在着不少弊端,因而也很大程度上 影响了项目的进度和可靠性。这些弊端一般有以下 几点: 1 每个步骤的运行的品质极大地依赖于运行的 人( 下面简称o w n e r ) ; 2 o w n e r 的变更有可能导致项目进度的延缓; 3 工具的变换或者更新,会影响运行结果,使得 早期未记录工具版本的结果无法顺利重现; 4 每个项目重新开始,有许多重复性操作,效率 不高; 5 当不熟悉这些步骤的o w n e r 以外的工程师想 得知该步骤的运行结果时,必须要从o w n e r 那里获 得。 基于以上的弊端,本文提出一种自动化的实现 流程方法,该方法在一个成熟的流程样板的基础之 上,利用p e r l 语言脚本和c s h 简单程序以及一个简 单的项目配置文件,自动生成实现流程中所需要的 万方数据 所有t c l 脚本和运行文件。这样,当一个项目开始时, 可以仅仅通过修改项目配置文件,用简单的命令来 得到所有的所需的文件和脚本,降低了人为错误,提 高了效率。由于本方法的基础是一个成熟的流程, 这个流程是经过同组或相关负责人认可的,所以也 在一定程度上降低了每个步骤运行质量对o w n e r 的 依赖程度。最后,在o w n e r 将整个f l o w 环境调试好了 并将其c h e c k i n 到版本管理系统( 如s v n ) 中以后, 其他同组人员可以快速地从版本管理系统中得到这 个环境,并快速地运行以得到结果。 2 实现流程自动化平台的搭建 实现流程自动化平台的搭建包含三个部分:成 熟的流程模板、文件版本管理系统和规范化的统一 运行环境。 成熟的流程模板 在实现流程的各个步骤中,每一个步骤都是一 个子流程,如s y n t h e s i s 子流程,s t a 子流程等。为这些 子流程建立一个成熟的流程模板是实现流程自动化 的基础。这些子流程的模版必须经过严格的讨论, 须保证在大部分情况下其设置都是适用的。 流程模板实际上就是运行工具时所需的脚本文 件,其内容包括设置的项目变量、流程控制变量、运 行流程所用工具特有的变量、环境变量以及运行的 命令( e o m m a r l d ) 等。当工具全面运行完脚本里面的 所有c o m m a n d 后,该子流程应该全部结束,并提供 所需的报告文件和下一步所需的输入文件。 项目变量是根据项目的变化而设置的变量,这 样该脚本在改变了项目名以后还可以被继承使用; 流程控制变量是用以控制流程的变量,如在本流程 中要做哪些事情,要得到哪些报告,是否备份等;运 行所用工具特有的变量则是与该子流程直接相关的 变量,这些变量都是工具本身定义的变量,用以控制 实际执行命令的行为,例如,如何优化、如何对待常 数寄存器等;环境变量主要定义一些读取文件的地 址以及名称、报告存放的地址及文件名称等;运行的 c o m m a n d 则是流程的主要部分,因工具的不同而不 同。 一个完整的流程模版可以是一个完整的t c l 脚 本文件,也可以是多个子文件,被一个顶层的t c l 文 件调用,这些子文件放在规范化的目录机构中。以 s y n t h e s i s 为例,若当前项目名为p r o j e c t l ,使用 s y n o p s y s 的d e s i g nc o m p i l e 工具,那么其流程模版脚 本如下: 项目变量部分: s e tp r o j e c t N a m e p r o j e c t l s e tr u n T y p eD C 流程控制变量部分: s e te x i t d cf a l s e ;# t r u e f a l s e T ob et r u e ,t h ep r o c e s s w i l le x i tD Ca f t e rf i n i s h i n gt h es y n t h e s i s s e tb a c k u p t r u e ; s e tr p t D e s i g n l n f ot r u e 工具特有的变量部分: s e th d l i n _ a u t os a v e _ t e m p l a t e st r u e s e tc o m p i l e n o _ n e w _ c e l l s _ a t _ t o pl e v e lt r u e s e tv e r i l o g o u tn ot r it r u e 环境变量部分: s e th d l F i l e L i s t ”| | h d l l i s t p r o j e c t1 1 s t ” s e tw o r k P a t h s y n w o r k s e tr p t D i r s y r d r p t s c o m m a n d 部分: s o u r c ee c h o v e r b o s e 。| 。| s c r i p t s s y n d e s i g n R e a d l n _ s y n t c l l i n k e h e c k _ d e s i g n s o u r c e - e c h o - v e r b o s e 。| 一| 。s c r i p t s s y n c n s t D s g k , - :一 万方数据 皿诵In藁lo矗电i:igr a t e dC m 。u l t _ - 一c r n a 一 c o m p i l e 、I c l 脚奉被正确、完档地执行完毕后谖予流 程就完成了,所有的m 呻n 和下步于漉程所需的 输入文件都会正确地产生出来J F 存放在规范化的 统一的日录结 对、q q ,。 文件版本管理系统: 文件版奉符弹系统是f | 功化半台小可缺少的一 环H 有项目进入版本管理系统E 文件才能被同组 人或其他有权限的相关_ T 程师所j 嫜,在统一的运 行环境平台下,推漉程c r 的丁程师才能R 延 r 椠些流科l I 快述 4 到结果, 阿前I l J 场J :订多剥一版奉管理I :J 如艮m me 、 c l 嘲r 帆s v n 等等,n f 以甘 槲蛮际情况仟选一 种 规范化的统一运行环境: f f 何个r 1 动化平秆的搭建都必须有一个土见范 化的统一运 r 环境J # 且坝目组巾所有人员韶遵从 这个环境。只有满足选点我”J 运行的环境和脚 本d 能高效地、f 1 动地mI j ;产牛H 来r 程帅就町 以将大部分精力集巾救在项目姑悼技术口1 题的分析 h t t p :W w 哪d 帆a gc o m 和捌酿1 面 统一的运行环境并不足呆板的统化,而是指 宏观上大j ;I ;分架构的统一对1 + 细节的部分也应泼 侏T I l 一定的灵活性如提供一蝗与平台的空接接1 1 等,以便我们的。r 程师可以在其自己所负责的局部 环境里n I h 发挥。 一般米说I c 没计在代_ 隅稳定之前,都要做 c “l i n gs t y l e 的椅盎和r 小检查以雠砭代码的可宴 理性和稳定性+ 减少后l 自J 实现时闪这方嘶的上滑反 复;之后会进 s y n l h “i s 环竹以产生网丧( I l lI ) 和标准的约柬史件( , d c ) 当而积时序初步功耗 都在n T 接受范吲里面并且功能一敛性检青通过之 聍就可以将n e t l i s t 和“l c 提供给后端作枷步的 f l r p l a n 和p rr 然后便进入时片收敛的过程在 这个过张巾每一次I 甜精端交H 都需蟛做功能一致性 传代和m a 分析。当时序收敛后就可眦抽墩一I f 文 件提供缋驻I 正的】程师进行门级仿真了,后端程 师也会进行F 一步的I v s 和t h 清删操作最后到 I t 。 冈此,我“】可以将这个运 ,环境结构规范如下 J 斟1 所小,哪木文的重点n :1 寅现流群的自动化所 以 a y o u l 和v e r i f i c a t i o nH 录结构仪存一个桠略的结 构。 d i C t 日I ,咖Wd w i 哪 F f ! I”I - f _ 【J 【J 一一一,l ,I,j ,L ,1 _ 一、,L ,_ L 一一,J l 竺型酬倒掣I 型【= J 幽l = J 离面 图1 规范化的统一运行目景结柯 万方数据 i 丽藏i 硼 3 自动化实现 当自动化平台搭建的- 个要 素都满足r 后我WJ 就可咀实现这 个自动化流程了。| 整个实现方法如图2 所示。 在这个自动化过程当中会产 牛两大类型的文件:一个是项日运 行环境的目录结构,这个就是规范 化的统一运行环境;另一个就是各 个于流程中所用到的运行文件和 脚本。, 一一一、 、一一, 一、 fm 自f * E _ 、 , 要想针对不同的项目自动产生L 述文件,需哥 两个条件:一个是项目配置文件这个是针对小同项 目而有所不同的文件,自动生成流程中所要用到的 项目信息都必须在这种文件中找到它可以是一个 文件当项目情息鼍特别大的时候,为了提高文件处 理速度也可以由多个配置文件组成;另外一个内容 就实现自动化的程序库,删和o s h 均可以宴现。 由卜可见,自动化实现的过程就是定义项目配 置文件和开发i m r t e s h 脚本库的过程。 项目配置文件一般是定义一些具体项目的信 息,如项目名称、所使用的1 艺、e I k 信息、r e s e t 信 息以及J 具版本 j 息等等能够方便开发p e r l 程序 的所有信息都可以定义其中定义的时候要沣意其 唯一性,方便p a i l 的提取。 析p

展开阅读全文

网址:IC设计实现流程的自动化 https://www.yuejiaxmz.com/news/view/1007058

相关内容

自动化设计流程的实现
RPA自动化流程的架构设计:从想法到实现
自动化实施方案设计流程.docx
专为驱动LRA和ERM触觉反馈设备而优化的电源IC
工业自动化的自动化工艺流程设计.pptx
如何实现自动化?IT实现工作流程自动化的8个步骤
工作流程自动化:实现高效的业务流程管理
如何实现全自动化生产流程?
非标自动化设备设计流程
自动化项目方案设计流程.docx

随便看看