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 TimingTOMarket的压力。此时,老板可能会说先 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 [笔记]《游戏架构设计与策划基础》第三章 游戏概念及原型设计

数据湖:Iceberg概念及回顾什么是数据湖

javascript-理解05?数组的概念及定义

javascript理解04-?函数的概念及作用

简单理解Hibernate三种状态的概念及互相转化

一文理解 Spark 基础概念及工作原理