首先,什么是LEF?全称为library exchange format,把稳这里的L是library,不要把LIB搞混了,LIB是liberty。它是一种库交流格式,只记录了在APR时所要用到的最基本的物理信息,多一点都不记录。什么意思呢,各位想一想后端设计的时候,我们要摆放连线一个cell或者IP,须要什么信息呢?是只有他的size和出pin的信息的,出pin的信息包括pin的形状,出的层,以及它的mask等。LEF实在就包含这两方面的内容。一个cell、一个ip、一个block,乃至一个chip都可以抽LEF出来。有了LEF,我们就知道了我们要摆的元器件的大小和它的pin,我们就可以摆放和绕线了。以是说LEF是更高层级利用的最基本的物理信息文件。
而GDS就不一样了,它在我们的design设计时实在并不须要,它是我们终极交付给代工厂生产的文件,我们只要记住这一点,这是终极tape out所要用到的终极文件。全体设计流程那么多,用到的文件弗成偻指算,但是末了芯片要生产出来,交给机台的便是GDS。如果不考虑dft测试或者其他的验证事情,实在交付出一份好的GDS就发布设计结束了。那么,GDS会包含哪些信息呢?不知道读者有没有理解芯片制造干系的内容,我大概讲一下,制造的时候分为很多工序,刻蚀啊,注入啊很多,每一个poly、metal、oxide、n well、p substrate都是一步一步天生的。GDS便是详细记录了所有这些实际的材料的物理信息,它们的层数、位置、形状。或者可以这么说,当你拿到一块生产好的芯片,你是完备可以很大略的逆向推出它的gds的。(当然我说的是理论上是很大略的)只要把每一种材料的物理信息一字不落地记录下来便是GDS了。我们在末了PV signoff的时候,就根本不会查看APR的DB,而是直接signoff的GDS。GDS过了,全体芯片的PV才算过了。(什么是signoff、PV会在之后其他文档讲)。

听到这里,可能小伙伴还是有点糊涂,那么我想用一个最大略的问题来加深大家对这两者的理解,也便是本文的标题——LEF和GDS匹配问题。实际上,我们在后端做APR的时候会用到元件的LEF,做完往后天生一份chip的GDS,那我们会用到GDS吗?会的,GDS实在不只包括chip的,每个cell、ip、macro都有自己的GDS。那么问题就来了,既然如此,我们终极抽出来的GDS包不包括cell内部的信息?要知道我们在APR的时候可是把cell算作了一个黑匣子或者说空壳的,只有pin可以被看到。实际上,APR终极出来的GDS确实没有cell或者macro内部的信息,要想终极交付生产,还要把我们chip的GDS和用到的所有元件的GDS merge起来,这样才能形成一份完全的可以交付给工厂的GDS。而在merge的时候,会有可能发生LEF和GDS不匹配的问题。GDS包括所有的物理信息,LEF包括pin和cell大小的信息。如果LEF写的pin的位置和GDS写的pin的位置不一致,会发生什么情形呢?如果这个pin外接的时候直接打了一个via,那么,APR的时候就会把这个via砸在LEF认为的位置,而这个via的信息终极会写在chip的GDS中,这样,chip的GDS和cell GDS merge的时候,这个via的位置可能就不是cell GDS中pin的位置,那样这个pin即是就没有被连上,或者说产生了DRC,这便是很严重的问题了。以是一定一定要担保我们用到的LEF和终极merge的GDS同等才可以。

可能有还没有经历过项目的小伙伴会以为这种情形也能发生?实际上,项目进行的时候,LEF和GDS可能都会在更新的,一样平常会有专人来掩护所有的lib,那么就有可能欠妥心LEF用的是v1,GDS用的v2,这样一定会产生PV的DRC,而这种DRC,在APR tool里是不可能创造的。以是一定要把稳这个问题。
微信公众年夜众号:伟酱的芯片后端之路










