专栏首页陌上风骑驴看IC跟老驴一起学PR | Innovus 输入

跟老驴一起学PR | Innovus 输入

基于两个事实——工作需求,码文需求 —— 从今儿开始,老驴要系统地学习一下PR,从innovus 的user guide 开始,同时会找个不大不小的设计实操,会将学习笔记发到驴号,这部分内容太过初级,适合于小朋友跟老驴这种从头开始学习的老不懂。

上图是Innovus foundation flow user guide 中的流程图,涵盖了整个PR 过程,今儿从PR 对输入的要求开始,PR 对输入数据的要求跟综合大同小异,关键的部分有:

  • Timing libraries: Innovus 支持NLDM, ECSM, CCS 三种库格式,65nm 之后最好用ECSM 或CCS, 模型更精确,没有NLDM 那么悲观,悲观度可减少5%~10%;通常PR 都要Multi mode Multi corner 同时优化,要保证不同view 之间库的一致性;
  • Physical libraries: Innovus 支持LEF 跟OA <OpenAccess> 两种物理信息描述格式,到目前为止,老驴只用过LEF 还未接触过OA, PR 工具对物理库的要求要比综合工具更严苛,在Genus 中如果某个逻辑库单元没有对应的物理库单元,工具会自动将对应的逻辑库单元设为dont use, 而在Innovus 中如果缺了某个物理库单元工具会报错。同时要为Routing 定义 Non-Default Rules <NDRs>, NDR 可以在LEF 中定义也可以用Innovus 的命令add_ndr 在流程中定义。跟综合一样在读入LEF 时,要先读入technology lef 再读入其他LEF, 要跟library vendor 或foundry 确定拿到的LEF 是最新的,在Tech-lef 中要有routing 用到的所有VIA 的定义,如果没有,可以用innovus 的命令setGenerateViaMode 来产生。
  • netlist: Innovus 要求输入的netlist 是uniquified 的,如果netlist 没有做uniquify 在读netlist 之前可以将变量"init_design_uniquify" 设成1, 工具会在解析netlist 时候自动做uniquify. 对于master/clone partitioning 需要特别处理。有些客户基于特别需求要求输入的netlist 不能有assign 语句,可以在Genus 中用命令:remove_assign_without_optimization 加对应的option 将assign 删掉,如果netlist 有assign 没有被删掉,可以在innovus 中用命令remove_assigns 将其删掉,默认该命令会把assign 换成一条net, 但是有些assign 直连了两个port 如果不加buffer 无法将其删掉,对于这种情况建议用"remove_assigns -buffering" 将其替换成buffer; 其实在Innouvs 优化过程中也会引入新的assign, 如果不让innovus 加入新的assign 可以加变量:set init_remove_assigns 1.
  • 约束:包括SDC 跟用户对设计的约束,如果用的是综合写出来的SDC 且在综合时做了过约,在读入SDC 之前需要修改过约值,另外对于SDC 中的ideal network 跟dont touch network 也要修改,如在综合时可能没修某些DFT 或reset 信号,但在PR 时需要对这些信号做buffering 就需要将对应的ideal 或dont touch 属性去掉,如果在init_design 之后加额外约束需要先执行:set_interactive_constraint_modes [all_constraint_modes -active] 再加对应的命令。除了SDC 命令之外,还有一些约束如dont use 跟dont touch, 这些命令不是SDC 的命令是针对design 中object 设的命令,加的时候不需要设interactive_constraint_modes.
  • Extraction: QRC 文件 <Quantus technology file> 用于RC 抽取,65nm 之前的工艺用Captable 文件即可,但是到了65nm 之后Captable 的精确度已经不够,所以强烈推荐用QRC 文件,在Innovus 的不同阶段会用不同的RC 抽取引擎来抽RC 如TQuantus, IQuantus 等。
  • Signal Intergrity Libs: 在innovus 优化过程中需要对SI 引起的delay 跟glitch 进行分析跟优化,这就需要读入Noise Models, 如ECSMN 和CCSN library, 或者读入cdB library.
  • ViewDefinition: 定义multi-Mode Multi-corner, 需要定义library_set, operation condition, timing condition, rc_corner, delay_corner, constraint_mode, analysis_view, 相互关系如下图所示:

Innovus 输入所需要的文件,跟输入端的设置可以总结为:

本文分享自微信公众号 - 陌上风骑驴看IC(MoShangFengQiLv),作者:陌上风骑驴

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 形式验证 | LEC, CLP, LP-EC 的区别

    年近了,写一些不需要动太多脑子的,前几天有小伙伴问,做了LEC 之后为什么还需要做LP-EC? 做了LP-EC 之后为什么还需要做CLP? 这三者之间有什么区别...

    老秃胖驴
  • IC 圆桌派,DFT 第一场复盘

    近年来DFT 是个大热点,业内需求量暴增,但人才匮乏,以致千金难求一人。IC 圆桌派讨论了半日DFT, 有大神坐阵,干活太多,分两场复盘,第一场内容可概括为:

    老秃胖驴
  • 综合 | LEF, QRC, DEF

    接着《综合 | 概述及 library 检查》继续掰扯综合的输入文件,虽然DEF 要在解析完RTL 之后才读入,但因为LEF, QRC, DEF 都属于物理综合...

    老秃胖驴
  • windows 找不到ie解决办法,Internet Explorer浏览器启用方法

    系统默认的时候一定会带一个版本的,所有没有的话就是我们把ie的功能给关了,我们启用下就好了。 启用方法:

    小蓝枣
  • eLIFE:脑电结合眼动研究:自闭症儿童社交脑网络的早期改变

    社交障碍是自闭症谱系障碍(ASD,Autism Spectrum Disorders)的标志,但是在ASD研究中缺乏针对社交性刺激引起早期社交脑网络改变的证据。...

    用户1279583
  • Java内存区域与虚拟机类加载机制

    一、Java运行时数据区域 ? 1、程序计数器   “线程私有”的内存,是一个较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器。Java虚拟机规范...

    Java高级架构
  • 微信小程序 iOS 虚拟支付遭限制,知识付费有模式,是否有未来?| 晓榜

    知晓君
  • “金牛鹅"限量潮玩预售开启!

    ? A.概述 牛年到,福气到,在这牛势冲天的年份我们推出一款精致感十足的QQ潮玩—GoldenQ金牛鹅。祝大家在新的一年里牛运亨通,牛转新机,传达美好的牛年祝...

    腾讯ISUX
  • Android中的图片优化完全指南

    图片作为内存消耗大户,一直是开发人员尝试优化的重点对象。Bitmap的内存从3.0以前的位于native,到后来改成jvm,再到8.0又改回到native。fr...

    砸漏
  • CynosDB的计算层设计优化揭秘——兼容PostgreSQL版

    CynosDB 是腾讯数据库研发团队推出的自研数据库,有PostgreSQL和MySQL两个版本。本文以兼容PostgreSQL版CynosDB为例,介绍我们的...

    腾讯云数据库 TencentDB

扫码关注云+社区

领取腾讯云代金券