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

2021-09-25 07:22:55 字數 1442 閱讀 3131

1 buffer是什麼?

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

2 不**uffer會發生什麼情況

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

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

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

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

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

3 驅動能力

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

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

如圖所示,時鐘驅動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本身也具有延時,但是**uffer減少的連線延時明顯大於buffer自身延時就可以採用**uffer的方式。

6  **uffer減少延時的原理:

通過**uffer的方式減少了電路的負載電容,負載電容減少後,同樣電壓的情況下,對電容充電速度快(上公升沿陡峭),同樣電容小時儲存的電容小,放電所需的時間短(下降沿陡峭)。一句話來說就是: **uffer的方式減少了電路的負載電容,從而增大了電路驅動能力。

sudo cd為什麼不能夠執行

我想要cd到 etc docker,但是它給我乙個許可權不夠的錯誤,然後,我想到使用sudo cd etc docker時,它告訴我sudo cd 找不到命令。於是,鬱悶的我就去上網找了下原因。cd不是乙個應用程式而是linux內建的命令,而sudo僅僅只對應用程式起作用。sudo foo只意味著以...

sudo cd為什麼不能夠執行

ubuntu vm 0 16 ubuntu home cd root bash cd root permission denied ubuntu vm 0 16 ubuntu home sudo cd root sudo cd command not found ubuntu vm 0 16 ubu...

為什麼交換晶元Buffer資源都很小

本文從硬體的角度來解釋就會交換晶元buffer資源稀缺的原因 從乙個簡單的加法器說起 數位電路分為時序邏輯和數字邏輯,以上電路為加法器,為典型的數字邏輯。理想的情況下,輸入訊號1和訊號2,立刻輸出結果。實際的物理電路中,必然會存在時延,inpu1和inpu2訊號本身也是經過其它邏輯器件計算以後的結果...