诱人(催人)的流片日(Tape-Out day)迫在眉睫,项目经理天天黑着脸在后端组来回踱步,但依然强(目)颜(露)欢(凶)笑(光):各位后端大神啊,ECO状态如何?这周能不能把芯片TO出去啊?
各位经理,各位同学,先别着急,ECO的最后几轮,才是真正考验数据库、流程、floorplan的关键时候,成王败寇,此刻方才见分晓!
这一讲中,就一起来看看ECO的收尾阶段,到底有什么潜在的坑,让一些chip意外滑过了TO-day。
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的妙用
“ECO的时序信息通常是增量示的,除非你改变了绕线”,这个是需要在ECO后期阶段牢记的一点。这个时期的ECO就是手术刀操作,是时候体现你的微操能力了。
对于一个数据库,经常会遇到在接近TO的ECO的迭代中,会冒出来一些和修复timing没有关系的微小的setup/hold violation,譬如:3ps的hold violation。这个大多是由于绕线的细微改变,而导致的时序变化。这个时候,VT cell就会派上用场。
使用VT cell进行timng ECO的好处有三点:
- 省时间
- 省时间
- 省时间
首先,时间是TO前最值钱的,要知道让FAB做一下hot或者super hot,也就能省一、两天的时间,但是费用基本都是翻倍!
使用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的支持,来保证流片的物理需求,fill是基于绕线和布局的,言下之意就是如果绕线或者布局改变了,就需要重新跑fill。譬如:M4 和 M4 fill
由于先进工艺的线距越来越近,之间的耦合电容的影响也越来越明显,所以在先进工艺,一定不能忽略fill对timing的影响,tape-out之前,一定要保证fill的信息完全和真实的数据库匹配,这样跑出来的timing才完整,可信。
在寄生参数抽取的时候,需要使用下面的语句,否则你的fill是没法在timing signoff里边发挥自己的作用的:
【敲黑板划重点】
兼顾metal fill,corner 全覆盖以及VT cell的灵活使用,是ECO后期成功收敛的关键要素
终于,历尽九九八十一难,趟过了十万八千里,在ECO的保驾护航中,终于看到了一句:Good Chip!
每一个芯片都是一样的坚实,但每一款芯片都有说不尽道不完的ECO故事!我们的ECO三讲虽然告一段落了,但是国产之芯的路上,依然有无数的ECO等我们去完成。为了那颗心中的芯,一起努力,与君共勉之!