不知道大家有沒(méi)有想過(guò)沧烈,拿到手一個(gè)標(biāo)準(zhǔn)單元的lib敛纲,它里面的那些參數(shù)是怎么得出來(lái)的喂击?我們做出來(lái)的芯片成品,真的會(huì)按lib里描述的那樣淤翔,timing的值分毫不差嗎翰绊?可能很多人覺(jué)得在仿真工具上這個(gè)芯片完全沒(méi)問(wèn)題,流片出來(lái)的就也一定沒(méi)問(wèn)題旁壮,其實(shí)不一定监嗜。這些lib都是由fab做好了之后給我們的,而他們要保證自己的lib沒(méi)有問(wèn)題抡谐,就一定要進(jìn)行流片后的測(cè)試秤茅。
其實(shí)芯片在流片出來(lái)之后,我們所能觀察的手段就非常有限了童叠,應(yīng)用最多的方法就只是伸進(jìn)去一個(gè)探針框喳,來(lái)測(cè)芯片某一點(diǎn)的邏輯信號(hào)。但只要用這種方法厦坛,再加上一些特別的設(shè)計(jì)五垮,就可以達(dá)到測(cè)試標(biāo)準(zhǔn)單元timing的目的!
具體的設(shè)計(jì)方法可以總結(jié)為:把相同的cell串成環(huán)杜秸,通過(guò)反饋電路讓他們自己起振產(chǎn)生震蕩波形放仗,而后用探針來(lái)測(cè)輸出波形,并與仿真波形比對(duì)撬碟,就可以推出cell的性能是否真的如lib里寫(xiě)的那樣诞挨。整個(gè)設(shè)計(jì)非常類(lèi)似環(huán)形振蕩器(ring oscillator)。這種方法實(shí)現(xiàn)的原理是ring出來(lái)的震蕩波的頻率是由cell的delay決定呢蛤,如果測(cè)出來(lái)的頻率和仿真的頻率不一致惶傻,就說(shuō)明仿真時(shí)用的cell delay不對(duì),就說(shuō)明lib有問(wèn)題其障。反之如果頻率能對(duì)上银室,就說(shuō)明lib的某一部分沒(méi)有問(wèn)題。
這種測(cè)試電路的設(shè)計(jì)也需要注意很多問(wèn)題。比如說(shuō)蜈敢,要盡可能覆蓋多的使用場(chǎng)景辜荠,假設(shè)測(cè)一個(gè)buffer的delay,為了測(cè)出不同input transition和output load組合時(shí)delay的大小抓狭,設(shè)計(jì)ring的時(shí)候就要做出不同組合伯病。其次我們不希望繞線過(guò)多影響結(jié)果,cell就擺的很近否过,讓繞線盡量短狱从,并且cell都會(huì)擺的很規(guī)整。而且為了避免芯片其它部分的影響叠纹,還會(huì)圍boundary等等季研。
這種思路其實(shí)不僅僅可以測(cè)delay,還可以測(cè)很多東西誉察,比如OCV相關(guān)的与涡,POCV的分布,就可以用header控制每個(gè)cell持偏。當(dāng)ring的cell數(shù)最多時(shí)驼卖,測(cè)出的頻率最靠近mean的頻率,而后依次減少ring cell的數(shù)量鸿秆,就可以測(cè)出頻率的sigma酌畜。還有很多,但核心思想都是來(lái)測(cè)ring的震蕩波形卿叽。另外不僅僅可以測(cè)cell桥胞,還可以測(cè)一些繞線的pattern,比如兩根很長(zhǎng)的平行metal制造出來(lái)是不是會(huì)有short考婴,可以用已知的cell贩虾,連很長(zhǎng)的線來(lái)做ring。
其實(shí)我也只知道測(cè)試原理了沥阱,真正設(shè)計(jì)這種測(cè)試電路也會(huì)很復(fù)雜的缎罢。想想我們平常拿到手的lib,也是要很多人花費(fèi)非常多心血的考杉。
這是我的第28篇文章策精。微信公眾號(hào):偉醬的芯片后端之路