LVS check的一点经验体会

时间:2007-04-29

LVS check的一点体会
一些简单的经验,希望对刚刚入门的人有点启发
也许你刚刚从事LAYOUT不久,当你终于做了很多个小小的cell之后,终于完成了一个比较大的block了,于是你迫不及待的运行了DRACULA,想看看结果,找到一点成就感,可是你可能看到LVS的结果时,也许感到十分沮丧,因为那里可能有成百上千个UN-MATCH在对你微笑,而你感到茫然失措,几个错误是很有可能的,但是我会犯那么多错误吗?别担心,可能你也不过犯了几个错误而已,甚至你的版图画得没有错,原因也可能来自其他方面,LVS改错不可怕,但LVS后准确找到错误所在倒是问题的关键。
下面就谈谈根据鄙人肤浅的见识所了解到的一些常见问题所在:
1. Label打对了吗?
如果你的layout是hierarchy结构的,那么在block中会看到大量的底层cell的label,在command file中规定只去认top层的label,这样才能确保不会抓错label造成误会。另外,注意label所选的layer,如果选的是TEXT,那么注意在重叠的layer上是否能被DRACULA正确的识别出该label是打在哪一层上。用Metal TEXT打label比较保险一点,因为其本身就已经针对不同的metal作了区分。相同的label出现在不同的电位节点和不同的label出现在相同的电位节点都是不被允许的。
2. power & Ground连接得没问题吗?
如果LVS的结果中看到大量的错误,多得如同好莱坞战争巨作中的场面一般壮观,那么不要忙着查错,先去跑一下ERC吧,power & ground不能保证正确的话,会导致大量的错误,特别是有memory结构在电路中时错误场面更加宏大。在不仅仅有一组power & ground的chip中更要注意,这两组不要混淆。
3. 认真研究design rule了吗?
不仅仅是DRC时会用到design rule,LVS一样可能用到,特别是你的电路中有比较特殊的device时,比如双极型的管子,特别工艺电阻电容等等,其实这种问题比较容易辨别,因为类型不同嘛,认真搞清楚了design rule,就知道怎么去画这些东西了。需要注意的是poly电阻,注意定义它的layer,一定有某层dummy layer用于指定它为电阻以与poly导线相区别的,如果没有加上这样的layer很可能被认为是导线而造成short的报错。
4. 你得到的files确实可靠吗?
为什么总是有些器件类型认不到?你得有点怀疑精神了,netlist可靠吗?technology file & command file可靠吗?不要太信任这些东西,特别当你这个porject的designer同样是个刚刚上道的新手时,更要有充分的心理准备,好好检查一下netlist中器件类型的命名是否符合规范。有问题的话联系designer,让之去改。
5. 你确信自己没犯低级错误吗?
真的不会连错线?就算你lay版图lay了好几年也不要那么自信,是人都可能犯错,是错都可能有人犯。谁能保证自己永远不走神呢,也许怀念了一下故乡亲人,也许垂涎了一下美女帅哥,也许幻想了一下奔驰宝马,也许只是规划了一下晚上吃点什么……在此期间,你可能连错了一根线,用错了一个via……办法很简单,检查,找到它,改正它。
6. 真的一切都很可靠吗?
在你进行过大量细致的检查后还是不明白为什么犯了错误,左看右看,上看下看,怎么看也不明白,我想你开始觉得心烦意乱了吧,再这样下去,你会发怒,会随着这社会一起浮躁,会想砸东西,想打人,想上厕所,想对老板说你TMD不干了……镇静,“hold, my brother, hold”。你该喝点茶,或者脑白金,或者太太口服液,然后站起来走走,呼吸呼吸新鲜空气,等你冷静下来的时候请再回来,好好想想,到底是哪里出了问题呢?我怎么知道,自己想啦。只是有一点,有时候看似越可靠的东西,越有可能给你造成麻烦。这里说一下我自己的经历吧,也许对你有点启发。我曾经出差到另外一个城市的分公司去完成一个项目,到了那里我就开始认真的干,没少了加班,但到的时候,却有问题不断的出现。明明是已经通过了LVS验证的block,怎么过了段时间给老板重新验证演示的时候就不过了呢,真是郁闷阿,“你不是说已经过了吗?”面对老板和同事的质疑,我感到非常的无辜,真tmd见鬼了,如果前两天我不是在梦游的话,那么我确实亲眼看到是过了,而且这里还有保留的备份文档,我发誓不是我伪造的。在经过一系列的排除法之后,一个很偶然的发现让我终于自己找到了问题,挽回了面子。刚过来的时候,就得到了这个公司提供的一个map file,是用来供virtuoso对应layer的,或者说,是针对这个制程,让virtuoso能够正确识别每个layer的一个辅助文件,可是包括老板在内没有人注意到这里边潜在的问题,这个file里对layer number的定义与technology file中的定义不一致!导致在stream out的时候有些layer会丢失!怪不得工作中间就曾出现过莫名其妙的错误,有时能通过有时却没通过,这是因为有时我加载了map file有时我忘了加载。不加载反倒是正确的!只是当时忙得焦头烂额没注意到这样的细节问题,以为是自己不小心弄错了。所以,请你确信一切都可靠才行,有些看起来可靠的东西,可能正是出问题的地方。而如果遇到一些反常的现象也该多留心,也许这些小问题正预示着以后碰到的大麻烦,唉,我白白付出了多少个晚上的代价才得出的结论啊,本来我该用那些时间去江边赏月的……
好,基本上就想到了这些,一定有很多人有更丰富的经验和更深刻的见解!请多多指教。



  
上一篇:可降低下一代IC测试成本的确定性逻辑内置自测技术
下一篇:印制板技术水平的标志

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料