- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IC设计实现流程自动化
IC设计实现流程自动化
摘要:IC设计从代码设计到最终的投片(tapout),中间会经过多步实现流程,一般来说,包括前端的代码风格检查、cdc(clock domain Cros sing)检查、综合、功能一致性检查、静态时序分析以及整个后端的PR。本文提供一种流程自动化的平台设计,以提高设计实现的效率以及准确性,该平台主要针对于前端的实现流程,不包括后端的PR流程。
1 概述
一般来说,IC产品从一开始的spec定制到最终tapout,都要经过一些特定的步骤。特别是其实现过程,即从代码设计完成,到tapout,其中要经过包括前端的代码风格检查(如leda)、跨时钟域路径(cdccheck)检查、综合(synthesis)、功能一致性检查(如form~)、静态时序分析(STA)。有的时候,因设计的需要,可能还会包括power的分析、可测试性设计(DFT)、边界扫描设计(DSD)等等。在这之后会有一版正式的网表(neflist)和约束文件(sdcfile)提供给后端以做布局布线,并最终得到tapout所需的GDSII文件。在整个后端PR的同时或者tapout之前,还必须不停地做功能一致性检查和静态时序分析,以保证PR的改动不会影响到我们设计所期望的功能和性能。
在上述这些步骤中所用到的工具均不一样,并且每一步可选用的工具也很多。目前市场上有synopsys、cadence、mentor、spyglass等多家公司提供相应的工具,这使得负责设计实现的工程师不仅要熟悉每一个步骤的技术上的原理,同时要对各种工具的用法有一定了解。但是工具的更新不可避免,而项目负责人的变更也比较正常,这两个原因使得设计实现流程上存在着不少弊端,因而也很大程度上影响了项目的进度和可靠性。这些弊端一般有以下几点:
1.每个步骤的运行的品质极大地依赖于运行的人(下面简称owner);
2.owner的变更有可能导致项目进度的延缓;
3.工具的变换或者更新,会影响运行结果,使得早期未记录工具版本的结果无法顺利重现;
4.每个项目重新开始,有许多重复性操作,效率不高;
5.当不熟悉这些步骤的owner以外的工程师想得知该步骤的运行结果时,必须要从owner那里获得。
基于以上的弊端,本文提出一种自动化的实现流程方法,该方法在一个成熟的流程样板的基础之上,利用perl语言脚本和csh简单程序以及一个简单的项目配置文件,自动生成实现流程中所需要的所有tcl脚本和运行文件。这样,当一个项目开始时,可以仅仅通过修改项目配置文件,用简单的命令来得到所有的所需的文件和脚本,降低了人为错误,提高了效率。由于本方法的基础是一个成熟的流程,这个流程是经过同组或相关负责人认可的,所以也在一定程度上降低了每个步骤运行质量对owner的依赖程度。最后,在owner将整个flow环境调试好了并将其checkin到版本管理系统(如SVYI)中以后,其他同组人员可以快速地从版本管理系统中得到这个环境,井决速地运行以得到结果。
2 实现流程自动化平台的搭建
实现流程自动化平台的搭建包含三个部分:成熟的流程模板、文件版本管理系统和规范化的统一运行环境。
成熟的流程模板
在实现流程的各个步骤中,每一个步骤都是一个子流程,如synthesis子流程,sta子流程等。为这些子流程建立一个成熟的流程模板是实现流程自动化的基础。这些子流程的模版必须经过严格的讨论,须保证在大部分情况下其设置都是适用的。
流程模板实际上就是运行工具时所需的脚本文件,其内容包括设置的项目变量、流程控制变量、运行流程所用工具特有的变量、环境变量以及运行的命令(command)等。当工具全面运行完脚本里面的所有command后,该子流程应该全部结束,并提供所需的报告文件和下一步所需的输入文件。
项目变量是根据项目的变化而设置的变量,这样该脚本在改变了项目名以后还可以被继承使用;流程控制变量是用以控制流程的变量,如在本流程中要做哪些事情,要得到哪些报告,是否备份等;运行所用工具特有的变量则是与该子流程直接相关的变量,这些变量都是工具本身定义的变量,用以控制实际执行命令的行为,例如,如何优化、如何对待常数寄存器等;环境变量主要定义一些读取文件的地址以及名称、报告存放的地址及文件名称等;运行的command则是流程的主要部分,因工具的不同而不同。
一个完整的流程模版可以是一个完整的tcl脚本文件,也可以是多个子文件,被一个顶层的tcl文件调用,这些子文件放在规范化的目录机构中。以synthesis为例,若当前项目名为projectl,使用synopsys的design compile工具,
文档评论(0)