不知道大家有沒有想過,拿到手一個標準單元的lib,它里面的那些參數是怎么得出來的?我們做出來的芯片成品,真的會按lib里描述的那樣,timing的值分毫不差嗎?
可能很多人覺得在仿真工具上這個芯片完全沒問題,流片出來的就也一定沒問題,其實不一定。這些lib都是由fab做好了之后給我們的,而他們要保證自己的lib沒有問題,就一定要進行流片后的測試。
其實芯片在流片出來之后,我們所能觀察的手段就非常有限了,應用最多的方法就只是伸進去一個探針,來測芯片某一點的邏輯信號。但只要用這種方法,再加上一些特別的設計,就可以達到測試標準單元timing的目的!
具體的設計方法可以總結為:把相同的cell串成環,通過反饋電路讓他們自己起振產生震蕩波形,而后用探針來測輸出波形,并與仿真波形比對,就可以推出cell的性能是否真的如lib里寫的那樣。整個設計非常類似環形振蕩器(ring oscillator)。
這種方法實現的原理是ring出來的震蕩波的頻率是由cell的delay決定,如果測出來的頻率和仿真的頻率不一致,就說明仿真時用的cell delay不對,就說明lib有問題。反之如果頻率能對上,就說明lib的某一部分沒有問題。
這種測試電路的設計也需要注意很多問題。比如說,要盡可能覆蓋多的使用場景,假設測一個buffer的delay,為了測出不同input transition和output load組合時delay的大小,設計ring的時候就要做出不同組合。
其次我們不希望繞線過多影響結果,cell就擺的很近,讓繞線盡量短,并且cell都會擺的很規整。而且為了避免芯片其它部分的影響,還會圍boundary等等。
這種思路其實不僅僅可以測delay,還可以測很多東西,比如OCV相關的,POCV的分布,就可以用header控制每個cell。
當ring的cell數最多時,測出的頻率最靠近mean的頻率,而后依次減少ring cell的數量,就可以測出頻率的sigma。還有很多,但核心思想都是來測ring的震蕩波形。
另外不僅僅可以測cell,還可以測一些繞線的pattern,比如兩根很長的平行metal制造出來是不是會有short,可以用已知的cell,連很長的線來做ring。
其實我也只知道測試原理了,真正設計這種測試電路也會很復雜的。想想我們平常拿到手的lib,也是要很多人花費非常多心血的。
-
環形振蕩器
+關注
關注
1文章
12瀏覽量
8701 -
OCV
+關注
關注
0文章
25瀏覽量
12517 -
POCV
+關注
關注
1文章
6瀏覽量
12442
發布評論請先 登錄
相關推薦
評論