PostMask ECO到底难在哪里

电子说

1.2w人已加入

描述

很多人都说PostMask ECO难,那么到底难在哪里?我从多个项目的ECO经历中总结了以下几点:

一、只能改金属层,甚至少数几层金属

是的,PostMask ECO一般是芯片流片回来测试才发现bug,这时为了缩短制造时间(重新NTO的turn around时间)和降低制造成本(特别是掩膜版的制作成本),会要求尽量少改,所以做postmask限制只能改金属层,甚至只能改少数几层金属。

以5层金属的设计为例,从poly开始依次是contact、metal1(Bottom Metal层)、via1、metal2、via2、metal3、via3、metal4、via4、metal5(Top Metal层),一共11层,如果全改制造成本非常高。

如果只改metal1、via1、metal2三层,会大大降低成本,同时也可以缩短mask制造时间。

二、不能新加stdcell,加大eco难度

那怎么做到只改金属层呢?我们知道在修改bug时,RTL层面一定会修改逻辑、或增加逻辑、或删除逻辑。

为了在postmask eco时能够实现这些改动,我们需要在APR阶段预先插入一定比例的spare cell(也叫dummy cell)。因为我们无法预测bug会发生在哪个模块,所以会平均撒spare cell。

当然如果对某个设计模块信心不足,就可以在这个模块附近多撒一些。

因为我们也无法得知修改和新增的逻辑的复杂程度,所以会挑选一些“万能”spare cell,比如inv、and2、nand2、or2、nor2、xor2、nxor2、mux、dff,按一定的比例组成spare module。

因为是平均撒,所以在bug发生的位置附近不一定正好有需要的cell。

这时就要么使用距离稍远的cell,要么使用附近其它cell进行组合和变换。例如,如果附近没有and2,就看有没有nand2+inv,或者inv+or2,这种变换就需要靠经验积累了。

三、Timing会变差

一方面,因为postmask eco的sparecell不会正好附近有,总会或多或少的隔着一定距离,这会引起较长的连线,这些长连线上的延时会比较大。

另一方面,spare cell的驱动能力相对固定,没法灵活选择,所以当附近只有驱动能力较小的spare cell时,也会带来较大的延时。

如果原设计的timing,特别是setup,没有留margin,那么这些spare cell的较大的延时只能让setup timing爆掉。

修复一些bug必须要新增dff,新增的dff会映射到spare cell dff上,由于spare cell dff的位置不一定最优,这时dff的时钟和复位信号接入时钟树之后很难达到平衡,这会引起大量的hold timing违例。

因为时钟树上的buffer的延迟是ps级的,想用spare cell buffer/inverter来调整时钟树,难度也是非常大。

四、Transition、Cap违例修不干净

小驱动、长连线等问题必然带来transition和cap修不干净。对于消费电子芯片,实际应用不会工作在极端corner,所以不一定会出问题。但如果是特殊领域,比如汽车电子、军工,就留下了性能的隐患。

五、当资源不足时,只能放弃部分修复

当spare cell不足或者timing/DRC搞不定时,我们一般会尝试简化eco方案;或者删除设计中不重要的功能来释放一些资源。如果还不行,就需要对bug list排排优先级了,放弃修复部分影响不大的小bug了。

当然,如果某些关键的bug不能实现eco,就需要考虑全改版了。或者放弃这个项目。

六、postmask eco需要前后端一起努力

在进行各种讨价还价和折中的时候,需要前后端工程师一起讨论,共同确定最优的eco方案。如果涉及到某些bug无法实现eco,就需要项目经理、市场人员一起研究。所以postmask eco并不是某一设计阶段的问题,而是产品级别的问题。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分