版图ECO的那点事(下)
时间:2026-02-01 14:42:29
手机看文章
扫描二维码
随时随地手机看文章
-
MCMM的挑战
通常的FAB会提供多个PVT的库,同样,一颗芯片会有多种工作模式(在前文有描述:版图ECO的那点事(上))
同样,还有来自extraction(寄生参数抽取)的一些区别。这样,用户可能会遇到如下的timing signoff组合拳挑战。
以TSMC 40nm 的工艺举例:

可以看到在一个模式和一个寄生参数抽取的前提下,有18个corner(支持DVFS的系统)之多,如果考虑芯片模式和寄生参数的区别,会更为复杂,示例如下:
可以看到,总共有216(12*18)个MCMM需要完成,对于每一天,进行这么多的时序分析也不太现实。但是流片前的真正的时序签收还是一定要full-cover。通常,会把一些比较重要的setup/hold corner在每一天进行检查,例如下面视图:

剩下的corner会在流片前的一两周做最后的全覆盖检查。最后面的ECO基本都是在和这些corner来战斗
-
VT cell的妙用
对于一个数据库,经常会遇到在接近TO的ECO的迭代中,会冒出来一些和修复timing没有关系的微小的setup/hold violation,譬如:3ps的hold violation。这个大多是由于绕线的细微改变,而导致的时序变化。这个时候,VT cell就会派上用场。
使用VT cell进行timng ECO的好处有三点:
-
省时间
-
省时间
-
省时间
使用VT cell进行ECO,最大的方便是省略了ECO 绕线、寄生参数的抽取和STA的re-run。这三个步骤的时间是非常长的。有了VT cell的帮忙,这些时间统统可以省略。
但是VT cell也不是万能的,有如下的一些考量:
-
对时序的影响非常微小:只有在violation 非常小的时候(譬如:10ps以内),才好用
-
对应VT cell的pin是兼容的,VT cell置换时候的任何size_up/size_down都不能省略绕线
一个使用VT cell来修复hold violation的示例如下
# hold_buf_1 original ref_name is: LVT_BUF_2 size_cell hold_buf_1 HVT_BUF_2
这个脚本把一个LVT cell换成一个同等大小的HVT cell,LVT cell的速度比较快,如果换做HVT cell,可以增加延迟,有可能解决hold 延迟。通过XOR,可以看到我们的LVT_BUF_2和HVT_BUF_2有如下的layer 区别,可以看到,VT cell 的替换时无需重绕线的:
-
Metal fill 的影响

由于先进工艺的线距越来越近,之间的耦合电容的影响也越来越明显,所以在先进工艺,一定不能忽略fill对timing的影响,tape-out之前,一定要保证fill的信息完全和真实的数据库匹配,这样跑出来的timing才完整,可信。
在寄生参数抽取的时候,需要使用下面的语句,否则你的fill是没法在timing signoff里边发挥自己的作用的:
【敲黑板划重点】

兼顾metal fill,corner 全覆盖以及VT cell的灵活使用,是ECO后期成功收敛的关键要素终于,历尽九九八十一难,趟过了十万八千里,在ECO的保驾护航中,终于看到了一句:Good Chip!
每一个芯片都是一样的坚实,但每一款芯片都有说不尽道不完的ECO故事!我们的ECO三讲虽然告一段落了,但是国产之芯的路上,依然有无数的ECO等我们去完成。为了那颗心中的芯,一起努力,与君共勉之!





