当前位置: 首页 > news >正文

Innovus常见 ERROR: (IMPOPT-628)全自动解决方案(ecoChangeCell报错问题)

今天给大家分享一个项目后期做timing eco时特别容易出现的典型问题。

Q: 我用pt修完时序导出timing eco脚本,在innovus中导入时报错,请问是什么原因导致的?

报错信息如下:

ecoChangeCell -inst U3775 -cell NOR2XB_X1M_A7TH_C50

Ignoring all MSV checks during this manual ECO operation.
**ERROR: (IMPOPT-628): No equivalent cell found in the library for the substitution. Use “setEcoMode -LEQCheck false” to allow the swapping of cells if the two cells are of different functionality.
Type ‘man IMPOPT-628’ for more detail.

从报错的信息提示我们其实很容易知道问题的主要原因是Innovus认为你当前要把U3775这颗instance换成NOR2XB_X1M_A7TH_C50,而且工具发现这颗cell的功能和原设计功能是不一样的。

如果看不太懂英文,也没有关系。咱们社区钉钉系统支持中文回答工具报的所有错误类型。

在这里插入图片描述

通过分析我们知道U3775这颗instance原来的cell name是NOR2XB,现在PT是给替换成NOR2B。从这两颗cell的符号图可以清晰看到cell的两个输入端的名字都不一样。

在这里插入图片描述

那为何PT在做DMSA时会进行size_cell呢?原因是PT是根据时序库lib中的function来判断cell的功能的,默认情况下PT才不管cell的输入输出pin name是否一致,它只管cell本身功能是否一致。

一般遇到这个错误,我们通常会根据提示来设置如下变量设置

setEcoMode -LEQCheck false

然后再继续执行ecoChangeCell。但是尝试关闭LEQCheck检查后替换,又报pin names不匹配。

**ERROR: (IMPOPT-340): Cannot determine how to connect NAND2XB_X3M_A7TR_C50. There is a mismatch in pin names between the cells being swapped. Use ecoChangeCell -pinMap to specify pin mapping when swapping cells with different pin names。

LEQcheck是进行功能一致性检查,比如buffer和inverter是不能互换的,因为lib中定义了他们的function了。所以开启LEQ检查后这两种cell替换时工具会报错。

这里的setEcoMode -LEQCheck 要改成true。否则formal大概率要出问题,特别是做一些非常规的ECO时。

这里顺便科普一个在实际项目中经常要用到的技能。项目中如何把clock buffer换成clock inverter?

即便开启了LEQ检查false后,还是无法指定替换。因为clock buffer的两个pin分别是I和Z,而clock inverter的两个pin分别是I和ZN。工具会识别到pin名字都不一样,无法替换。

在用ecoChangeCell时需要带上pinMap,具体命令如下。
setEcoMode -LEQCheck false
ecoChangeCell -inst $instance -cell DCCKND8BWP7T35P140LVT -pinMap {Z ZN I I}

所以我们可以尝试把最上面的命令改成如下命令:

ecoChangeCell -inst U3775 -cell NOR2XB_X1M_A7TH_C50 -pinMap {A AN B BN Y Y}

但由于PT DMSA修复setup,transition进行size cell的命令可能有几万行,我们不可能这样一条条去改吧。

那是否有从PT DMSA Flow中做一些提前的规避呢?

答案是真的有!

在PT中我们要善于利用prinvar pin来获取相关的变量。

在这里插入图片描述
关于更多PrimeTime DMSA Flow的教程,特别是PT的physical aware dmsa教程,可以查看社区数字后端知识库。

PrimeTime Physical Aware DMSA Flow可以确保工具在修timing的时候考虑physical物理位置,即工具修setup和hold violation会先看看当前位置是否有空位以及空位是否充足来决定是否修复当前timing violation。
在这里插入图片描述

数字IC后端设计实现中的Post-mask ECO应该怎么做?

所以为了彻底解决这个问题,我们可以在PT做timing fixing前设置如下变量即可。

set eco_strict_pin_name_equivalence true (默认是false)

ARM A75 PrimeTime(PT) DMSA golden流程脚本

相关文章:

  • 智算网络新标杆:全栈AI方案如何实现无损带宽与多租户隔离?
  • 【学习】Codeforces Round 861 (Div. 2) C. Unlucky Numbers
  • leecode Hot100之回溯算法【C++速查】
  • 【Linux】进程的详讲(下)--进程的环境变量
  • 高边MOSFET(High-Side MOSFET)
  • Python Path对象symlink_to方法介绍
  • 文本纠错WPS插件:提升文档质量的利器
  • 关于 CSDN的C知道功能模块 的详细解析,包括 新增的AI搜索(可选深度思考) 和 智能体功能 的具体说明及对比分析
  • 实验三 多表查询和子查询
  • js的es6模块中 暴露的使用方法简介
  • 鸿蒙开发01
  • 三周年创作纪念日
  • WinForm真入门(15)——NumericUpDown控件详解
  • 《灵活的接口设计:如何支持多种后端数据存取实现》
  • Java 在人工智能领域的突围:从企业级架构到边缘计算的技术革新
  • 软考高级系统架构设计师-第11章 系统架构设计
  • c# AI编程助手 — Fitten Code
  • 分布式微服务系统架构第106集:jt808,补充类加载器
  • 车载软件架构 ---单个ECU的AUTOSAR开发流程
  • 如何通过技术手段降低开发成本
  • 马上评|治理计量不准确收费不规范,水电气要有明白账
  • 全球首个AI价值观数据集出炉
  • 古文启蒙佳作!锺叔河《念楼学短合集》出修订版
  • 世界读书日丨这50本书,商务印书馆推荐给教师
  • 纪念沈渭滨︱沈渭滨先生与新修《清史》
  • 直播电商监管新规将公开征求意见,出重拳净化行业生态