1 buffer是什么?
所謂增加buffer,buffer一般是幾級器件尺寸逐步增大的反相器或類似結(jié)構(gòu)的電路,以使得電阻在獲得所需的驅(qū)動能力時,在功耗延時積上也達(dá)到最優(yōu)。前后級的最佳驅(qū)動比例在2.718左右。buffer實(shí)際就是兩個串聯(lián)的反相器,常用于時鐘路徑中,用于增加時鐘驅(qū)動能力,使得時鐘clock具有良好的上升沿和下降沿。時鐘buffer本身是輸入負(fù)載較小,輸出驅(qū)動能力較強(qiáng)。因此前級電路驅(qū)動buffer容易,而buffer驅(qū)動后級電路也比較容易。
2 不插buffer會發(fā)生什么情況
不插buffer會導(dǎo)致驅(qū)動能力不夠,通常是兩種情況
第一種是輸出電流不夠,導(dǎo)致信號狀態(tài)異常,這常常發(fā)生在后級電路對輸入電流有要求的時候,另一種則是輸出電流不夠,導(dǎo)致信號上升下降沿太差,這常常發(fā)生在后級電路的輸入電容較大的情況。
驅(qū)動能力強(qiáng):擺幅大,上升快
驅(qū)動能力弱:擺幅下,上升慢
圖1:不同驅(qū)動能力下的時鐘翻轉(zhuǎn)情況
3 驅(qū)動能力
所謂驅(qū)動能力,是指前級電路的輸出信號可以使得后級電路有效響應(yīng),這個有效的包含兩層意思:第一是前級輸出信號能被后級電路識別,第二是在規(guī)定的時間內(nèi)被后級電路識別。
4 應(yīng)用場景-1:通過插buffer減少負(fù)載數(shù)量
如圖所示,時鐘驅(qū)動16個reg時,負(fù)載很大,時鐘上升很慢,并且時鐘擺幅小,此時插入4個buffer。加buffer之前你的時鐘直接驅(qū)動寄存器或者很多個寄存器。加buffer以后你的時鐘只驅(qū)動buffer,而你的buffer會去驅(qū)動寄存器。時鐘buffer本身是輸入負(fù)載較小,輸出驅(qū)動能力較強(qiáng)的。而且通常會做成一個時鐘buffer網(wǎng)絡(luò)來驅(qū)動設(shè)計(jì)里面全部的寄存器,并保證整個時鐘網(wǎng)絡(luò)上的信號有很好的transition,以及平衡從時鐘源到所有寄存器的insertion delay.寄存器的CK端接在時鐘上面, 在時鐘上加入buffer是在做時鐘樹的時候讓時鐘到每一個寄存器的CK端的SKEW盡可能的小,還有增加驅(qū)動的功能。(圖中的16個寄存器為舉例數(shù)字,實(shí)際IC設(shè)計(jì)中并不一致。)
圖 2 :時鐘路徑buffer插入
5 應(yīng)用場景-2:減少連線負(fù)載
當(dāng)數(shù)據(jù)連線很長時,連線負(fù)載電容很大,導(dǎo)致存在很大的延時。此時插入buffer將連線分割成幾個連線,每個buffer驅(qū)動的負(fù)載較小,因此能夠有效減少延時,雖然buffer本身也具有延時,但是插buffer減少的連線延時明顯大于buffer自身延時就可以采用插buffer的方式。
6 插buffer減少延時的原理:
通過插buffer的方式減少了電路的負(fù)載電容,負(fù)載電容減少后,同樣電壓的情況下,對電容充電速度快(上升沿陡峭),同樣電容小時存儲的電容小,放電所需的時間短(下降沿陡峭)。一句話來說就是: 插buffer的方式減少了電路的負(fù)載電容,從而增大了電路驅(qū)動能力。