加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

小白学PR:Innovus输入

2020/10/14
860
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
基于两个事实——工作需求,码文需求 —— 从今儿开始,老驴要系统地学习一下 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号主,EDA 老油条,热衷于调侃EDA ,钻研数字实现流程,江湖人称老驴。