你撒下一粒善良的种_子, 会在暗中蔓延出一片灿烂的花海
分类:
2008-04-24 15:07:01
要不要做Monte
Carlo分析?我在AMD做了10年,针对工艺的分析基本上都只要做corner分析,做4个corner,也就是ff、fs、sf、ss,tt就不算
了。做归做,可是心里总是有点,怎么说......惴惴不安的感觉:是不是只要4个corner通过了,电路就一定能工作?可能基本上是如此,但是也不能
排除performance在p管-n管速度平面上存在着这样的分布,就是在4个corner上它都是work的,但在四个corner构成的矩形区域
内,并不能保证它就能work(在X-Y平面上画一个不规则封闭曲线,曲线通过4个corner,曲线包围的区域为电路可以工作的区域)。反过来讲,是不
是4个corner只要有一个没有通过,电路就不能正常工作了?当然,4个corner都通过当然也没有什么坏处。可是有时出现过这样的情况,一个电路做
了8个月9个月完成后,发现某个corner没有通过,就想难道要重新修改整个设计去满足它吗?万一修改以后满足了这个corner,却丢掉了另一个
corner怎么办?但是,有些corner实际上是根本不会出现的,这个时候,即使仿真的结果说明在这个corner上没有通过,也不一定就说明电路有
问题。因为事实上,一些工艺参数是相关的,比如oxide厚度对Vthn就有影响,oxide越薄,Vthn就越小,而monte
carlo分析却不管这个基本原理,它甚至会去考虑oxide小而Vtn大的情况,显然是不合理的,得到的分布自然也是不可信的。我如果用monte
carlo分析,我一般会自己考虑各个工艺参数之间的关系并把它们代儒到仿真条件中去,是n-reality的,假设管子速度分布在X-Y平面上是一个
圆,经过分析发现电路的工作区域可能是个不规则的图形,老板一看可能说,咦,怎么有一个corner没有包含进来呢,还有这个工作区域太小或者形状和位置
看起来不太舒服,也可能说给你还得给我来点裕量(你要把这个圆完全包含到工作区域中去!)你不能对老板说,有一个corner没通过,但是估计没有什么问
题,老板会说流片前总得给我点信心呀。这时你就可以充分利用Monte
Carlo分析这个工具,告诉老板,喏,根据工艺提供的数据,A参数是这个分布,B参数是那个分布,经过Monte
Carlo分析,说明大概有90%的情况是work的,这样就说服了老板。在XXX做事的时候,基本上都是用Corner分析,后来因为工艺变化太大(几
u到.18u),需要Monte
Carlo工具进行分析。这种分析要进行很多计算,电路扔进去往往要两三天才出来,所以很多engineer,觉得这个好玩。Engineers们就说,
好,老子上班就玩这玩意儿了。碰到什么问题搞不清楚,就把东西扔进去,说让你去掷骰子吧.......
你说这样的分析会有什么意义?总而言之,在做这个分析之前,自己先要分析一下,这些变化参数之间以及和结果之间到底是什么关系,结果应该会是什么样子的,
然后我才会去用它。就是说你不要在那里瞎搞!你在使用这些分析工具之前,必须知道它到底是怎么回事,要弄清它的来龙去脉,这样才是有用的,不能说:管它
呢,让它(分析软件)去扔骰子好了!总之,进去什么出来什么(指如果你连Monte
Carlo分析的机制算法搞什么事情都搞不清,你就不能指望它帮你解决什么问题,扔进去是一团乱麻,出来还是一团乱麻),英文里叫GIGO
(Garbage
In Garbage Out),垃圾进垃圾出。
他的观点也许有点偏颇,例如有些论点的前提不太准确,例如Mento
Carlo分析在保证各输入参数的独立性上面还是有所考虑的,但他的一个关于软体分析的基本观点我是十分赞同的就是:IC设计工程师在
simulation之前一定要弄清楚自己在干什么,希望验证什么以及如何验证,电路模拟软体只能当作一个验证的工具,永远不能指望电脑代替你来做思考。
年轻的工程师往往过分依赖电路分析软件,这一点提醒特别需要注意。