很多童鞋应该听过ECO这个名词,今天我们就讲讲这个。
我记得,自己刚工作没多久,大我两届的师兄就告诉我:没有修过ECO的人生是不完整的。结果没过多久我就人生完整了,并且半年修了比他三年修过还多的ECO。当然了,这里有吹牛逼的嫌疑,我也不避讳。作为工程师,你或许看过协议,写过算法,做过验证,跑过仿真,撸过FPGA。但是假如你把所有的bug都kill在了摇篮里,一路顺风顺水就tapeout了,未免有点过于顺利了,人生就缺乏了些啥。
就像王思聪或许会想假如我没那么有钱会怎么样(他真会这么想?),作为工程师,你或许会想,假如在最后阶段,发现bug怎么办?
这就是ECO要干的事情:在后期修正你的bug,弥补你的罪。
讲到这里,我们需要简单介绍下IC设计的flow:
首先老大+牛人们在小黑屋开会,讨论大体架构,定下spec,然后前端工程师吭哧吭哧写代码。写完代码开始搞验证仿真。等到大家仿真验证差不多的时候,几乎不再能抓到什么新bug了,就会进入RTL freeze阶段。
RTL freeze就是说,从今天起,大家谁也不能再修改RTL了。
RTL freeze是一个分水岭。在freeze之前,你仿真也好,看代码也好,FPGA验证也好,发现的任何bug,都可以通过修改RTL的方式进行直接更正。但是freeze之后,被freeze的RTL将会进行综合,STA,然后送给后端人员,做floor plan,电源综合,时钟综合,布局布线等等。这些后端流程都是极其耗时的,而且通常不可逆的,就是说,你让我再做一遍,结果就不能保证了。
那么问题来了,假如说,我在某一天发现了一个bug,我向老大提出要求修改RTL,这个时候后端同事flow已经完成了综合,floor plan和布局,走到布线阶段了。你总不能说我把RTL改了,然后重新综合一遍,让后端的同事再重新从floor plan做起?小心有刀飞过来。
假如运气不好,明天就tapeout了,难道你还要去改RTL,哪有时间让你再做一遍后端的全flow?
运气再差点,已经tapeout了,工艺厂刚刚启动生产线,做完了第一块掩模板的光刻,你跟他们说:停!我还有个bug!要从RTL重新做?

ECO(工程变更订单)是IC设计中用于在后期修正bug的技术。本文介绍了在RTL freeze之后如何通过ECO处理bug,包括pre MASK和post MASK ECO的区别。ECO涉及修改netlist,通过添加或改变晶体管的互连线来解决问题,同时需要进行形式验证确保修复正确。
最低0.47元/天 解锁文章
1140

被折叠的 条评论
为什么被折叠?



