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

数字后端零基础入门系列 | Innovus零基础LAB学习Day11(Function ECO流程)

###LAB 20 Engineering Change Orders (ECO)

这个章节的学习目标是学习数字IC后端实现innovus中的一种做function eco的flow。对于初学者,如果前面的lab还没掌握好的,可以直接跳过这节内容。有时间的同学,可以熟悉掌握下这个flow。

数字后端零基础入门系列 | Innovus零基础LAB学习Day10

物理验证Calibre LVS Debug案例之通过deleteEmptyModule解决LVS问题

我们这个lab的ECO需求如下:

数字后端实现之Function ECO方法

把两个instance连接到p_data_out[15]和p_data_out[14]的这两条net进行互换(前端集成接错导致的ECO)。

首先我们进入我们ECO的工作目录:

cd /home/ic062/Desktop/FPR/work/ECO

为了说明这个ECO的功能需求,这里以instance i_5324这个cell为例,前后的netlist对比如下。

数字IC后端实现Innovus 时钟树综合(Clock Tree Synthesis)典型案例

在这里插入图片描述

接着,我们执行下面的命令。这个命令的作用是根据eco前后的两个netlist和eco前的database来做ecoRoute。

ecoDesign tdsp_core.dat tdsp_core tdsp_core_eco.v

绕线后可以通过写出def来保存设计相关数据。

图形界面操作步骤如下:

在这里插入图片描述

对应的命令为 defOut -floorplan -netlist -routing tdsp_core.def

ECO route后我们需要检查下这两颗instance的两条net是否已经互换成功。这里简单以instance DECODE_INST/i_5324为例,经过检查ecoRoute后的结果符合我们的更改需求。

在这里插入图片描述

如何获得这颗instance cell的全名呢?

innovus 17> dbGet top.insts.name i_5324
DECODE_INST/i_5324

备注:通过select_object DECODE_INST/i_5324 来选中这颗cell

当然这个检查是我们通过肉眼和我们的经验来做的检查。正常还需要写出netlist和eco netlist做功能对比,即比formal,这样才能确保工具做出来的结果是正确的。

在确保功能是正确的前提下,我们还需要继续走后续的抽RC,跑PT和calibre做DRC和LVS检查(如果是要tapeout的项目,还需要在顶层加dummy)。

补充postMask ECO项目案例:

在咱们社区低功耗四核a7top hierarchical flow项目中,我们教大家两种做post-Mask ECO的方法。

第一种是基于tapeout的PR Netlist进行逻辑修改,如下图左侧的eco netlist。

第二种是通过ECO Scripts来进行逻辑的变更。

该post-Mask Function ECO涉及新增一颗OR2 cell和新逻辑连接的创建。在post-Mask ECO流程中我们会让工具来自动将ECO Filler Cell替换成GOR2 cell。这个改动可以保证base layer是不会发生变化。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

###END OF LAB20


http://www.kler.cn/a/401368.html

相关文章:

  • [控制理论]—位置式PID与增量式PID
  • 【大数据学习 | Spark】RDD的概念与Spark任务的执行流程
  • JMeter实战技巧:使用Java Request Sampler进行接口测试
  • MySQL高级SQL技巧:提升数据库性能与效率
  • 【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
  • Redis配置主从架构、集群架构模式 redis主从架构配置 redis主从配置 redis主从架构 redis集群配置
  • STM32完全学习——外部中断
  • 【第七节】在RadAsm中使用OllyDBG调试器
  • Android 12.0 系统默认蓝牙打开状态栏显示蓝牙图标功能实现
  • postman快速测试接口是否可用
  • css3中的多列布局,用于实现文字像报纸一样的布局
  • 解决Windows + Chrome 使用Blob下载大文件时,部分情况下报错net:ERR_FAILED 200 (OK)的问题
  • Spark RDD各种join算子从源码层分析实现方式
  • 发那科机器人-SYST-348 负载监视器报警(力)
  • 【漏洞复现】某UI自动打印小程序任意文件上传漏洞复现
  • docker 占用空间过大导致磁盘空间不足解决办法
  • 23种设计模式-状态(State)设计模式
  • 【深度学习|目标跟踪】DeepSort 详解
  • MATLAB深度学习(二)——如何训练一个卷积神经网路
  • 1.1 计算机系统概述