ECO概念及理解
Posted KuoGavin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ECO概念及理解相关的知识,希望对你有一定的参考价值。
文章目录
E C O ECO ECO中文翻译就是工程变更(Engineering Change Order)。很多工作几年的朋友,肯定或多或少都接触过这个事情。因为 d e s i g n design design中写的算法难免有 b u g bug bug,后仿用的case无法覆盖 100 % 100\\% 100%的应用场景,以及实现过程中犯了某些错误等。
何为ECO(What is ECO)
E C O ECO ECO要干的事情:在后期修正你的 b u g bug bug,弥补你的罪。
讲到这里,我们需要简单介绍下 I C IC IC设计的 f l o w flow flow:
- 首先老大+牛人们在小黑屋开会,讨论大体架构,定下 s p e c spec spec,然后前端工程师吭哧吭哧写代码。写完代码开始搞验证仿真。等到大家仿真验证差不多的时候,几乎不再能抓到什么新 b u g bug bug了,就会进入 R T L f r e e z e RTL\\ \\ freeze RTL freeze阶段。
- R T L f r e e z e RTL\\ \\ freeze RTL freeze就是说,从今天起,大家谁也不能再修改 R T L RTL RTL了。这是一个分水岭。在 f r e e z e freeze freeze之前,你仿真也好,看代码也好, F P G A FPGA FPGA验证也好,发现的任何 b u g bug bug,都可以通过修改 R T L RTL RTL的方式进行直接更正。但是 f r e e z e freeze freeze之后,被 f r e e z e freeze freeze的 R T L RTL RTL将会进行综合, S T A STA STA,然后送给后端人员,做 f l o o r p l a n floor\\ \\ plan floor plan,电源综合,时钟综合,布局布线等等。这些后端流程都是极其耗时的,而且通常不可逆的,就是说,你让我再做一遍,结果就不能保证了。
那么问题来了,假如说,我在某一天发现了一个 b u g bug bug,我向老大提出要求修改 R T L RTL RTL,这个时候后端同事 f l o w flow flow已经完成了综合, f l o o r p l a n floor\\ \\ plan floor plan和布局,走到布线阶段了。你总不能说我把 R T L RTL RTL改了,然后重新综合一遍,让后端的同事再重新从 f l o o r p l a n floor\\ \\ plan floor plan做起?小心有刀飞过来。
假如运气不好,明天就 t a p e o u t tapeout tapeout了,难道你还要去改 R T L RTL RTL,哪有时间让你再做一遍后端的全flow?运气再差点,已经 t a p e o u t tapeout tapeout了,工艺厂刚刚启动生产线,做完了第一块掩模板的光刻,你跟他们说:停!我还有个 b u g bug bug!要从 R T L RTL RTL重新做?你当然不可能重新从 R T L RTL RTL做起,因为时间耽误不起。后端好不容易做收敛的成果也浪费不起。
幸运的是,上面的情况你都可以用 E C O ECO ECO搞定:
ECO分类(ECO Category)
从 f r e e z e freeze freeze到 t a p e o u t tapeout tapeout之间的 E C O ECO ECO叫 p r e M A S K E C O pre\\ MASK\\ ECO pre MASK ECO;
- Tapeout前的ECO:时间成本相对较小
很多公司(特别是大公司),他们一般都有规定哪个阶段必须 R T L f r e e z e RTL\\ \\ freeze RTL freeze,这个时候不会也不允许再更新新的 R T L RTL RTL,即使后面仿真验证有 b u g bug bug。为什么不让更新 R T L RTL RTL呢?因为此时数字后端工程师可能都做好布局布线, t i m i n g timing timing也没什么大问题了,都准备开始修 t i m i n g timing timing了。如果此时 r e l e a s e release release新的 R T L RTL RTL,那就意味着需要重新跑整个 f l o w flow flow,从综合到 P R ( p l a c e m e n t & r o u t e ) PR(placement \\& route) PR(placement&route),再到 f i x i n g t i m i n g fixing\\ \\ timing fixing timing。一方面会严重影响整个项目的 T a p e o u t Tapeout Tapeout时间,从而影响 W a f e r o u t Wafer out Waferout和芯片上市的时间。另外一方面,数字后端工程师可能有想骂人的冲动。
因此,此时数字前端负责写 c o d i n g coding coding的工程师只能在 f i n a l R T L final RTL finalRTL的基础上,通过写 E C O ECO ECO脚本的方式来实现功能上的 E C O ECO ECO。
- Tapeout过程的ECO:时间成本较大
当数字后端实现后的 d e s i g n design design, t i m i n g timing timing已经符合 s i g n o f f signoff signoff(签发)标准, D R C DRC DRC已经 c l e a n clean clean, L V S LVS LVS 已经 p a s s pass pass, I R d r o p IR\\ \\ drop IR drop, M V R C MVRC MVRC, F o r m a l i t y Formality Formality, D R C P L U S DRCPLUS DRCPLUS等都已经 p a s s pass pass。但是数字前端设计工程师还没来得及做完大部分 c a s e case case的后仿,而且芯片又面临着 T i m i n g − T O − M a r k e t Timing-TO-Market Timing−TO−Market的压力。此时,老板可能会说先 T a p e o u t Tapeout Tapeout吧(就是开始传 G D S I I GDSII GDSII给 F o u n d a r y Foundary Foundary厂)。为什么敢这么做呢?是在赌博吗,呵呵。其实肯定有赌博的成分,但是更多的还是自信(认为不会出大问题)。因为,前一周左右 f o u n d a r y foundary foundary会先做 b a s e l a y e r base\\ \\ layer base layer的加工。只要后期仿真发现的问题,不需要再添加额外的 c e l l cell cell,就不耽误之前的 T a p e o u t Tapeout Tapeout(此处有点像流水线)。即使发现需要新加几个 c e l l cell cell,这个时候仍然可以通过替换后端实现过程中所加的 E C O c e l l ECO\\ \\ cell ECO cell或者 s p a r e c e l l spare\\ \\ cell spare cell来实现。(如何预先加 E C O c e l l ECO\\ \\ cell ECO cell 和 s p a r e c e l l spare\\ \\ cell spare cell,后续会专门讨论)
t a p e o u t tapeout tapeout之后,已经加工完芯片的晶体管,但是还没有做晶体管连线期间的 E C O ECO ECO叫做 p o s t M A S K E C O post\\ MASK\\ ECO post MASK ECO。
- Tapeout后的ECO:时间成本、资金成本较大
当芯片已经回来,在测试过程中发现的 b u g bug bug,然后又必须 f i x fix fix掉的 b u g bug bug(无法通过软件绕过去或者代价太高)。这个时候需要通过 E C O ECO ECO来解决。这个时候做 E C O ECO ECO的代价相对前面两种大很多,都是要消耗很多的真金白银,而且有芯片量产的巨大压力。改动少的可能就改几层 M e t a l l a y e r Metal\\ \\ layer Metal layer,多的可能就需要动十几层 M e t a l l a y e r Metal\\ \\ layer [笔记]《游戏架构设计与策划基础》第三章 游戏概念及原型设计