在芯片设计中,ECO是指在经过布局布线工具后,将直接对门级网表逻辑进行修改的过程。因为马上就需要投片,没有足够的时间再进行布局布线了,也可以理解为ECO是一个非常小规模的增量综合。
ECO需要完成以下几个步骤:
修复RTL bug
修复RTL中的bug(严重而无法规避bug常常是导致ECO的直接原因),运行针对性的仿真保证bug正确修复并且没有影响到其他的功能。(注意,此时只是保证了RTL的正确性。)
在综合后门级网表中进行ECO
使用spare cells(spare cells是嵌入在设计中的没有任何驱动的冗余cell)重新布线,直接在综合后的门级网表中直接修复bug。前提是现在已经是100%网表之后,没有时间再重新综合了。当然了,如果是大量的逻辑需要修改可能还是需要重新综合的。
运行ECO后网表和RTL之间的逻辑等价性检查
使用formal 工具,运行等价性检查,看看ECO后的门级网表是否改变了原先的RTL其他功能。如果这两种设计是逻辑等价的,从验证的角度也就没有必要针对ECO后的网表重新验证了,功能验证只需针对RTL级即可。(此时保证了综合后网表的正确性)
如果综合后网表和RTL是逻辑一致的,如果RTL是功能正确的,那么综合后网表也是功能正确的。
同理,针对ECO后的门级网表进行布局布线
修复综合后门级网表之后,还要修复布局布线后的门级网表(相比综合后的门级网表,布局布线的网表会插入很多额外的buffer和inverter),甚至布局布线后的网表进行了很多逻辑上的优化。
ECO后的布局布线门级网表和综合后网表等价性比对
对于承接布局布线的后端工程师,他们的输入是综合后的门级网表,将ECO后的布局布线门级网表和ECO后的综合后门级网表进行等价性验证,也就可以保证ECO后的门级网表的功能正确性。
即如果A->B,B -> C, 那么A->C。
A是RTL功能正确,通过大量的RTL仿真保证;
B是综合后门级网表功能正确,RTL和综合后门级网表等价性比对保证;
C是布局布线门级网表功能正确,通过布局布线后门级网表和综合后门级网表等价性比对保证。
芯片研发,环环相扣,一步错,步步错。
逻辑性对于技术类工作是最重要的思维方式。但是,对于商业成功、职场成功,情绪思维才是。
作者:xpuu
原文链接:数字芯片实验室微信公众号:
授权转自数字芯片实验室公众号,请勿二次转载。
推荐阅读
更多数字IC设计技术干货等请关注数字芯片实验室专栏。