1. 程式人生 > >為什麼插入buffer能夠增加驅動能力?

為什麼插入buffer能夠增加驅動能力?

1buffer是什麼?

所謂增加bufferbuffer一般是幾級器件尺寸逐步增大的反相器或類似結構的電路,以使得電阻在獲得所需的驅動能力時,在功耗延時積上也達到最優。前後級的最佳驅動比例在2.718左右。buffer實際就是兩個串聯的反相器,常用於時鐘路徑中,用於增加時鐘驅動能力,使得時鐘clock具有良好的上升沿和下降沿。時鐘buffer本身是輸入負載較小,輸出驅動能力較強。因此前級電路驅動buffer容易,而buffer驅動後級電路也比較容易。

2不插buffer會發生什麼情況

不插buffer會導致驅動能力不夠,通常是兩種情況

第一種是輸出電流不夠,導致訊號狀態異常,這常常發生在後級電路對輸入電流有要求的時候,另一種則是輸出電流不夠,導致訊號上升下降沿太差,這常常發生在後級電路的輸入電容較大的情況。

驅動能力強:擺幅大,上升

驅動能力:擺幅下,上升慢 

                                              圖1:不同驅動能力下的時鐘翻轉情況

3驅動能力

所謂驅動能力,是指前級電路的輸出訊號可以使得後級電路有效響應,這個有效的包含兩層意思:第一是前級輸出訊號能被後級電路識別,第二是在規定的時間內被後級電路識別。

4 應用場景-1:通過插buffer減少負載數量

 如圖所示,時鐘驅動16個reg時,負載很大,時鐘上升很慢,並且時鐘擺幅小,此時插入4個buffer。加buffer之前你的時鐘直接驅動暫存器或者很多個暫存器。加buffer以後你的時鐘只驅動buffer

,而你的buffer會去驅動暫存器。時鐘buffer本身是輸入負載較小,輸出驅動能力較強的。而且通常會做成一個時鐘buffer網路來驅動設計裡面全部的暫存器,並保證整個時鐘網路上的訊號有很好的transition,以及平衡從時鐘源到所有暫存器的insertion delay.暫存器的CK端接在時鐘上面, 在時鐘上加入buffer是在做時鐘樹的時候讓時鐘到每一個暫存器的CK端的SKEW儘可能的小還有增加驅動的功能。(圖中的16個暫存器為舉例數字,實際IC設計中並不一致。)

 圖 2 :時鐘路徑buffer插入5 應用場景-2:減少連線負載當資料連線很長時,連線負載電容很大,導致存在很大的延時。此時插入buffer將連線分割成幾個連線,每個buffer驅動的負載較小,因此能夠有效減少延時,雖然buffer本身也具有延時,但是插buffer減少的連線延時明顯大於buffer自身延時就可以採用插buffer的方式。
插buffer減少延時的原理:通過插buffer的方式減少了電路的負載電容,負載電容減少後,同樣電壓的情況下,對電容充電速度快(上升沿陡峭),同樣電容小時儲存的電容小,放電所需的時間短(下降沿陡峭)。一句話來說就是: 插buffer的方式減少了電路的負載電容,從而增大了電路驅動能力。