数字IC设计中ECO的那些事,其实并不是事!

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

点击标题下「蓝色微信名」可快速关注

刚好最近一直在忙着芯片的测试工作(发现某些 bug),都没来得及规划公众号文章的内容,都是想到啥写啥。等后面没那么忙的时候,小编就抽空来整理一个清单,让大家循序渐进,系统地来学习数字后端设计实现的整个环节。so, 今天先跟大家聊聊数字 IC 设计中 ECO 的那些事。ECO 中文翻译就是工程变更(Engineering Change Order)。很多工作几年的朋友,肯定或多或少都接触过这个事情。因为 design 中写的算法难免有 bug,后仿用的 case 无法覆盖 100% 的应用场景,以及实现过程中犯了某些错误等。

大体上数字 IC 设计中的 ECO 可以分为 Tapeout 前的 ECO,Tapeout 过程的 ECO,Tapeout 后的 ECO。

Tapeout 前的 ECO

很多公司(特别是大公司),他们一般都有规定哪个阶段必须 RTL freeze,这个时候不会也不允许再更新新的 RTL,即使后面仿真验证有 bug。为什么不让更新 RTL 呢?因为此时数字后端工程师可能都做好布局布线,timing 也没什么大问题了,都准备开始修 timing 了。如果此时 release 新的 RTL,那就意味着需要重新跑整个 flow,从综合到 PR,再到 fixing timing。一方面会严重影响整个项目的 Tapeout 时间,从而影响 Wafer out 和芯片上市的时间。另外一方面,数字后端工程师可能有想骂人的冲动。

因此,此时数字前端负责写 coding 的工程师只能在 final RTL 的基础上,通过写 ECO 脚本的方式来实现功能上的 ECO。

ECO 代价:时间成本,相对较小

Tapeout 过程的 ECO

当数字后端实现后的 design,timing 已经符合 signoff 标准,DRC 已经 clean,LVS 已经 pass,IR drop,MVRC,Formality,DRCPLUS 等都已经 pass。但是数字前端设计工程师还没来得及做完大部分 case 的后仿,而且芯片又面临着 Timing-TO-Market 的压力。此时,老板可能会说先 Tapeout 吧(就是开始传 GDSII 给 Foundary 厂)。为什么敢这么做呢?是在赌博吗,呵呵。其实肯定有赌博的成分,但是更多的还是自信(认为不会出大问题)。因为,前一周左右 foundary 会 先做 base layer 的加工。只要后期仿真发现的问题,不需要再添加额外的 cell,就不耽误之前的 Tapeout(此处有点像流水线)。即使发现需要新加几个 cell,这个时候仍然可以通过替换后端实现过程中所加的 ECO cell 或者 spare cell 来实现。(如何预先加 ECO CELL 和 spare cell ,后续会专门讨论)

EO 代价:时间成本较大

Tapeout 后的 ECO

当芯片已经回来,在测试过程中发现的 bug,然后又必须 fix 掉的 bug(无法通过软件绕过去或者代价太高)。这个时候需要通过 ECO 来解决。这个时候做 ECO 的代价相对前面两种大很多,都是要消耗很多的真金白银,而且有芯片量产的巨大压力。改动少的可能就改几层 Metal layer,多的可能就需要动十几层 Metal layer,甚至重新流片。做 ECO 之前,老板肯定会让数字前端设计工程师出 ECO 方案,同时让后端工程师进行评估,主要评估需要改动的层数,timing 是否能快速收敛等方面的风险。

ECO 代价:时间成本 + money 较大

下面小编稍微总结下数字 IC 设计中做 ECO 的主要步骤(数字后端工程师必须熟练掌握以下几点工作,第一点除外):

数字前端工程师制定 ECO 方案(验证方案有效性,可行性)

写 ECO 脚本

后端工程师根据 ECO 脚本,进行摆放 cell 和连线(手工或自动的方式)

形式验证(确保后端进行变更后的功能和前端 ECO 方案功能一致性)

确认基于 Tapeout 版本的 GDSII 所有改动的层(通过 calibre 跑 Layout Versus Layout)

重新做 dummy insertion 或者人工改 dummy

再次进行 timing signoff(Fixing all setup,hold,timing drc,etc)

再次跑 DRC&LVS 并 fix violations

Release 新的 GDSII

好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。

如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

  • 基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)

  • 数字 IC 行业百科全书

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 894 星球成员,感谢这894童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

https://mp.weixin.qq.com/s/1rkapHPb0TZCRmuFUpCaqw

数字IC设计中ECO的那些事,其实并不是事相关推荐

  1. 数字IC设计中为什么要避免锁存器(Latches)

    数字IC设计中为什么要避免锁存器(Latches) 上学时,老师说判断语句要把条件写全,不然会生成锁存器,做项目时又说多比特寄存器信号的赋值一定要加if条件,不让出现else的赋值.就很矛盾,本文主要 ...

  2. 数字IC设计中的亚稳态问题

    亚稳态: 亚稳态是由于违背了触发器的建立时间和保持时间而产生的: 同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态: 异步设计中,由于数据和时钟的关系不是固定的,因此会出现违反建立时间和 ...

  3. 数字IC设计中的均衡器

    equalizer均衡器 通信系统中,校正传输信号幅度频率独特性的部件,成为均衡器. 将频率为 f 的正弦波送入传输信道 输出电压与输入电压的幅度比随 f 变化的特性,称为 幅度频率特性,简称幅频特性 ...

  4. 数字IC设计的第一步——Synopsys EDA Tools的安装

    目录 简述 安装环境和文件 1. 环境 2. 文件 安装包链接 1. 环境 2. 文件 安装前踩坑 安装步骤 1. 安装前的准备工作 2. 用Synopsys Installer安装 3. 在wind ...

  5. 数字IC设计之脚本语言

    首先需要了解一下脚本语言在数字IC设计中的作用,C.C++等编程语言是为了开发软件或高性能计算应用,要是开发简单的应用,脚本语言更为简单,缩短了传统的"编写-编译-链接-运行"过程 ...

  6. 树芯计划-ASIC数字IC设计讲解(3)连载中......

    大家好,我是IC修真院的Andy老师,接下来跟同学们一起来分享ASIC数字IC设计. 大家可以想象一下,一个项目,从市场上经过分析,定义了要做的东西,其给我的architecture,经过架构师们努力 ...

  7. 数字IC设计流程总结

    IC设计是一个很复杂漫长的过程,笔者以下图进行总结,其中后端总结的很模糊,后续了解学习后再进行补充.笔者会根据自己的理解,一步步的分享自己理解的设计流程.其中难免有问题错误,望同学老师指出,感谢!哔哩 ...

  8. 数字IC设计工程师笔试面试经典100题

    1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来 ...

  9. 数字IC设计的基本流程和主流EDA工具

    数字IC设计的基本流程和主流EDA工具 IC设计全周期存在迭代,以下按照正常无迭代流程: ~ ~~ ~~ 芯片设计与芯片制造缺一不可,另有一篇博文详细介绍芯片从0-1,传送门 芯片从0到1 spec ...

最新文章

  1. Linux下代码运行不了?看这里设置环境变量
  2. 32.2. ntpdate
  3. 购买Entrust SSL 数字证书?你怎么看?
  4. Kubernetes二进制部署——Flannel网络
  5. 成都python数据分析师职业技能_想成为数据分析师,需要重点学习什么技能?
  6. 16进制数组转成10进制 qt_QT 十六进制字符串转化为十六进制编码
  7. rabbitmq配置文件_RabbitMQ 负载均衡 ( 2 ) — HAProxy
  8. 苹果首席芯片设计师离职 曾领导自A7以来所有芯片设计
  9. 英语四级考试计算机游戏,2017年6月英语四级作文练习:大学生玩游戏
  10. mysql5.7.20官方文档,MySql 5.7.20安装及data和my.ini文件的配置
  11. python下文件以及文件的常用操作-1
  12. STC1_FULLSCREEN_TABLE_CONTROL
  13. mysql2005中文版_SQL Server 2005 sp4 简体中文完整免费版下载
  14. ker矩阵是什么意思_2.Matlab编程基础:矩阵操作
  15. DOM以及DOM事件的处理方式
  16. jupyterlab使用配置
  17. 大数据高级开发工程师——Spark学习笔记(10)
  18. esp32开发快速入门 8 : MQTT 的快速入门,基于esp32实现MQTT通信
  19. echarts之静态与动态地图
  20. HDU 4183 Pahom on Wate【网络流+路径问题】

热门文章

  1. 随笔--C语言--putchar()和putc()函数
  2. 24个基本指标精粹讲解(3)--W%R
  3. 关于大模型的一些问答(持续更新)
  4. 单片机生日快乐歌c语言,如何用单片机 唱生日快乐歌
  5. android gpu性能测试,CPU/GPU以及整体性能测试_手机_手机Android频道-中关村在线
  6. 打开phpMyAdmin 502 Bad Gateway
  7. BeeWare 峰器 中文文档 - 教程 2 - 让它变得有趣
  8. 【统计学笔记】第十一章 一元线性回归
  9. php对一个变量向上取整,PHP向上取整函数 ceil
  10. PHP8编译swoole,php安装swoole