公司一般承担不起太多的流片失败。
但是在大学的研究所里,那可太多了。
第一类:糊涂虫
A. 某做电源的师兄,版图画完,DRC/LVS跑通,但是VDD忘记连PAD了。芯片回来就是砖。
B. 做ADPLL的师弟,流片回来DCO正常,XO正常,TDC正常,但是PLL锁不住。频谱测出来,不是一个尖刺,而是一个带子。最后发现控制DCO的数字信号符号搞反了,搞成正反馈了,PLL努力在找,但是找不到。成功流了一个带通滤波器。
C. 做mixed-signal的师兄,画toplevel版图的时候点选了一个via,然后他没注意到自己选了东西。做版图的都懂,你不按esc或者ctrl+D取消选择的话,光点鼠标他还是选着的。于是他接着按了一下c,不小心把via复制移到了digital里面。芯片版图很大,按F压根发现不了数字里多了一个via。由于我们流片fab没有给我们standard cell的full view,LVS把整个数字模块black box了。所以DRC/LVS通了。流片回来VDD和VSS短路。成功流了一条导线。
D. 做Serdes的师兄,数字部分code的时候把一个enable信号暂时tie low, 然后注释TODO,说记得流片前要改。结果当然是没改。砖。
E. 我本人,设计了一个快启动的晶振,带一种dithering算法。当时设想的是dither的时钟由片外提供。同时如果晶振不工作的话,片外时钟是我们的数字部分backup时钟。但是本人极度悲观主义,心想万一时钟有问题,我又测不到,那岂不是抓瞎。于是把数字的时钟入口,而不是晶振的出口,接到了output buffer上。但是忙昏了,少加了一个MUX。导致芯片回来,不加片外时钟,跑不了dither;加片外时钟,测不了晶振启动没有。其实也不是不能测,可以用field probe直接看xtal的引脚,但是我们所没有,要去借,还要调pcb什么的,而且我当时已经快毕业了,这个小设计也是锦上添花的东西,就懒得折腾了。最终也没测。当时给师兄弟们解释这个错误的时候,他们全笑翻了,说要不就用XO直接供应dither,去快速启动XO,流了个武当梯云纵,左脚踩右脚。
F. 还是我本人,设计了一个极低噪声的DC偏置。实际上就是偏置电压,接一个超大的RC。然后由于本人极度悲观,觉得万一之破玩意流回来不工作,用这个电压的伙计们岂不是抓瞎?于是计划把这个节点连了pad,万一到时候不行,直接片外输入。还是由于悲观,我怕这个滤波器也不工作,连pad的时候就连了滤波器的输出。但是由于fab没给我们I/O cell的full view,也是没经验,没考虑pad的影响。流回来发现用不了,最后发现是因为RC很大,R很大,但是pad的diode有漏电流,于是IR drop很大,直接把那个电压漏没了。当时如果连的是滤波器输入就没这个问题。好在片外输入以后其他电路还能用,不是砖。只是我总感觉这个片外的电压不够干净,污染了我的其他电路们,测量的时候感觉像是蚂蚁在身上爬,很烦。
G. 某个做超低功耗的师兄设计了一个电流基准。PMOS电流源输出。计划要测这个模块的静态电流。流片的时候要求所有用这个电流的师兄弟,要能关断掉需求的电流镜。芯片拿回来发现静态电流一直很大,复盘发现一个师弟关断的时候只把input NMOS diode的gate接地,没在drain上断开,结果相当于直接短接地了。导致Iref功能上没问题,但是静态电流不可测。
第二类: 倒霉蛋
A. 另一个做PLL的师兄,tool说timing没问题,实际上tool有问题。回来数字不工作。
B. 一个做memristor电路的师弟,拿回芯片发现fab忘记放memristor了,很神奇,很迷。和fab撕逼扯皮,最后fab妥协重流。浪费好几个月。
C. 小老板读博的时候,他的一块芯片fab少生产了一层金属。他钻牛角拿显微镜看出来了。和fab撕逼扯皮,最后fab妥协重流。
D. 做GaN电源电路的师弟,fab说是新工艺,说能handle很大的电流。结果最后流片出来比实测少了很多。其实相当于给fab试错了。
第三类:乐天派
A. 做 >10GHz ADPLL的师兄,第一次流片,让tool综合10GHz的数字电路。tool居然给他通过了,时序也没有报错,至少他本人是这么说的。流片前教授也没有复查。回来成砖。和教授复盘,教授摇头+拍脑门,说,整个英特尔上千人的团队,才把CPU跑到几GHz,你倒好直接给这破工艺上10GHz的强度。
B. 某个第一次做RF-DAC的师兄,低估了把高频信号搞出芯片的难度。本质上就是没带着package model跑仿真。回来成砖。
其他想到再更....
<hr/>屯特大学的Nauta教授曾经说过他很希望业界能出一本刊,叫JFSSC, Journal of Failed Solid-State Circuits,把前人流片踩过的坑记录下来。写这个答案的时候本意是博君一笑,不过还是希望我的回答能起到类似这个假想刊的作用,让各位同学在自己第一次流片的时候,避开这些坑。
<hr/>感觉有必要给我们自己辩解一下,提到的很多错误确实很低级,也的确是由于验证工作不足和flow不完善。不过大佬们评论的时候请给我们一点宽容。这边大学里的流片,尤其是年轻phd的第一块芯片,很可能让你直接上手一个整个所没人会的系统,比如ADPLL;运气差的甚至会是一个没人知道的工艺。从接这个项目,理解最基本的系统原理,搭仿真环境,各种eda tool的setup,到创新,到流片,你大概有一年的时间。
运气好一点的可能写硕士论文的时候就是做的这个题目,接手的时候这个工艺的tooling已经搞得差不多,而且还有小导带一下。运气不好的,上一秒刚啃完拉扎维,觉得自己小信号分析玩得贼6天下无敌了呢,下一秒教授敲门,我有几个点子,来,你拿去流一个PLL,就用这个我刚要来的船新的工艺。
然后一块芯片一般只有两到三个人,一个人做数字,一个人做模拟,再有一个人帮忙做padframe,bias之类的东西。能赶在流片日前toplevel lvs/drc跑通,能有一些sublevel的后仿结果,已经很是要命了,我觉得出错的概率真的蛮高的。
企业里流程很完善,但是大企业里一个RF的ADPLL,大概有10 - 20人的团队,而且大都不是毫无经验的工程师吧。
批评和建议我能接受,但是那些劝我们转行之类的不友善评论我就删掉了哈。
祝大家流片成功。