都说PostMask ECO难,到底难在哪里

很多人都说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并不是某一设计阶段的问题,而是产品级别的问题。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值