我們在APR的時候,所用到的std cell或者IP、macro都是要吃LEF的,而最終交付生產的時候要生成GDS文件給工廠。那么這兩個文件都是什么意思呢?需要注意哪些問題?我今天就來詳細探討一下。
首先,什么是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里是不可能發現的。所以一定要注意這個問題。
-
DRC
+關注
關注
2文章
149瀏覽量
36183 -
PIN管
+關注
關注
0文章
36瀏覽量
6325 -
GDS
+關注
關注
0文章
28瀏覽量
6255
發布評論請先 登錄
相關推薦
評論