今天突然想聊一聊route相關(guān)的問(wèn)題,講一講NDR是什么,我也梳理總結(jié)一下我對(duì)NDR的認(rèn)識(shí)。
NDR是non default rule的縮寫(xiě)当宴,它指的是在繞線的時(shí)候給某些net制定的特殊的繞線規(guī)則。現(xiàn)在工具在繞線之前需要制定一個(gè)default rule泽疆,默認(rèn)所有net都按default rule來(lái)繞即供。比如我們規(guī)定某一層的線寬、線間距等于微,tool就會(huì)按照這個(gè)規(guī)則逗嫡,加上自己的繞線算法青自,最后得出符合要求的繞線。而對(duì)于指定了NDR的net驱证,tool就會(huì)額外照顧一下延窜,因?yàn)镹DR的rule和default rule有所區(qū)別,route的最終結(jié)果就會(huì)有所不同抹锄,相應(yīng)的會(huì)影響芯片的各項(xiàng)性能逆瑞。
舉個(gè)例子,我們可以指定某一條net伙单,上了一條簡(jiǎn)單的NDR——讓他在M3的繞線更寬一些获高,tool就會(huì)在繞線的時(shí)候首先保證我們的線寬,因?yàn)閜itch(線間距)的約束吻育,原本可能在它旁邊track上的線就不能這么繞了念秧,也就是說(shuō)這條NDR使這根線占用了更多繞線資源,但好處是得到了更寬的線布疼,顯然對(duì)timing摊趾、EM等會(huì)有好處。NDR的含義很廣游两,不止width砾层,還有pitch、space贱案、繞線的layer等的改變都屬于NDR肛炮。
NDR最重要的用途,就是以犧牲繞線資源的代價(jià)改善timing性能宝踪。對(duì)于CTS的時(shí)鐘線侨糟,timing要求比較高,如果用default rule較難滿(mǎn)足做出比較好的時(shí)鐘樹(shù)肴沫,因此我們一般都會(huì)給時(shí)鐘線上NDR粟害,主要有以下幾個(gè)方面:1.增大線寬蕴忆,這樣能有效減小net上的RC值颤芬,線上delay就會(huì)變小。2.增大線間距套鹅,這樣就能減小crosstalk的影響站蝠,并且我們還會(huì)給一些CTS線加上shielding net(就是一段地線,用以消除串?dāng)_影響)卓鹿。3.繞線層盡量高菱魔,理由同上,因?yàn)楦邔觢ayer本身width吟孙、pitch就會(huì)更大澜倦。而且clock net會(huì)分為trunk以及l(fā)eaf聚蝶,一般leaf就是指連到flip-flop CP pin最后一段net,trunk指除了leaf外的clock net藻治。Trunk和leaf會(huì)用不同的NDR碘勉,trunk的相對(duì)會(huì)更嚴(yán)一點(diǎn),leaf的會(huì)更接近default rule桩卵。
對(duì)于signal線验靡,我們很少會(huì)上NDR,最多也就是在ECO的時(shí)候修timing或EM來(lái)加一點(diǎn)NDR雏节。一般情況下NDR都會(huì)用在CTS階段胜嗓。
需要注意的是,用戶(hù)指定的NDR對(duì)于tool來(lái)說(shuō)不能保證100%遵守钩乍。比如說(shuō)有時(shí)候我們規(guī)定trunk在高層繞辞州,但是因?yàn)槔@線資源的限制,某些trunk net不能完全在高層來(lái)走件蚕,還是要在低層走一段孙技。一般我們會(huì)要求滿(mǎn)足NDR的比率要到一定范圍才行。
這是我的第24篇文章排作。