我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
天线效应定义及常用方法原理解析可以参考往期文章:
公众号完整文章链接:
innovus和ICC2还不一样,ICC2需要读antenna rule,innovus只看antenna lef,所以要检查一下lef里antenna信息全不全,另外如果max_tran和max_ cap设置不合理或者没有优化也会导致antenna问题。
setOptMode -fixDrc true
#setOptMode -fixClockDrv true
工具通过绕线修复antenna问题。
setNanoRouteMode -drouteFixAntenna true
这里需要提到一个名词hop layer,hop layer指的是通过向上跳线解决antenna的方法,例如,一条net上有段M2走线过长导致了antenna问题,可以在M2打via跳到M3上,走一段再打个via跳回M2上。具体原理可以参考公众号文章: 天线效应
通过插antenna cell来修复antenna问题。
setNanoRouteMode -routeInsertAntennaDiode true
#setNanoRouteMode -routeInsertDiodeForClockNets true
setNanoRouteMode -routeAntennaCellName ANTENNA_CELL
antenna cell在lef里通过"ANT" "DIODE"等关键词查找,也可以在innovus中通过dbGet [dbGet head.allCells.numTerms 1-p].name]加关键词筛选。
除了自动antenna cell和跳线,也可以使用插buffer的方法去修antenna,这种办法对时序的影响稍大,更适用于早期解决antenna问题。
1)通过插buffer打断长导线来解决antenna问题。
2)如果库里的antenna cell面积不够,需要插多个antenna cell,也可以把buffer当antenna用(原理不同,这里只是提供更大的gate面积,不泄放电荷),方法就是violation net接buffer输入,让buffer输出floating,把buffer放到violation net的fanout pin附近。