刚好最近一直在忙着芯片的测试工作(发现某些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
好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱IC社区(52-ic.com)也正式上线了。吾爱IC社区(52-ic.com)是一个专业交流和分享数字IC设计与实现技术与经验的IC社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。
打赏的朋友,请长按下方二维码,识别小程序进行打赏,欢迎砸钱过来!小编晚饭能不能加个鸡腿,全靠它了,呵呵!
作者微信:
吾爱IC微信交流群:
领取专属 10元无门槛券
私享最新 技术干货