ECO中文翻译就是工程变更(Engineering Change Order)
> `ECO,简单讲就是直接修改netlist。`
因为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 ,后续会专门讨论)
EEO代价:时间成本较大
## 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
- 电子元器件
- 电阻
- 电容器
- 电感
- 保险丝
- 二极管
- 三极管
- 接插件
- 蜂鸣器
- MOS
- 集成电器基础知识
- 接地的基础知识
- STA
- Skew
- setup和hold
- 问题
- timing path
- Latency
- 跨时钟域的代码检查(spyglass)
- 时间换算
- 名词解释
- 寄存器
- 触发器
- ECO
- 通用芯片和嵌入式芯片有什么区别
- Signoff
- SOC
- VLSI
- NPU
- DDR
- ISP
- Fan-in 和 Fan-out
- 逻辑阈值
- Floorplan
- 寄存器传输的设计(RTL)
- 集成电路设计方法
- Design Rules of Thumb
- Dealing with Resistance
- 芯片设计
- 什么是Scenario?
- 晶圆BUMP加工工艺和原理
- wafer、die、cell
- DFT
- 前端-QC
- CDC
- SDC
- MBIST
- RDC
- Lint
- overview
- PV
- PBA/GPA
- Corner
- PVT
- latency与delay区别
- Power
- LVT, RVT, HVT 的区别
- PPA
- RTL
- 芯片行业的IP是指什么?
- 晶振与晶体的区别
- PLL (锁相环(PhaseLockedLoop))
- 奇偶分频电路
- inverter
- glitch (电子脉冲)
- Power
- Clock Gating
- 低功耗设计
- UPF
- 低功耗单元库
- Power intent
- 亚稳态
- 芯片流程
- 芯片软件
- 亚稳态&MTBF&同步器&AFIFO
- glitch free的时钟切换技术
- max_transition
- MUX
- STA之RC Corner
- process corner 和 PVT
- ICC Scenario Definition
- 寄生电路?
- 晶振
- 信号完整性
- 什么是脉冲?什么是电平?
- 阈值电压
- bump
- IC设计常用文件及格式介绍
- 文件格式
- spef
- 后端
- phy芯片的作用
- MIPI简介
- 异步桥
- 芯片后仿之SDF
- 慕课-VLSI设计基础(数字集成电路设计基础)
- 概论
- MOS晶体管原理
- 设计与工艺接口
- 反相器和组合逻辑电路
- 问题trainning