地彈的形成:
芯片內部的地和芯片外的PCB
地平面之間不可避免的會有一個小電感。這個小電感正是地彈產生的根源,同時,地彈又是與芯片的負載情況密切相關的。下面結合圖介紹一下地彈現象的形成。
簡單的構造如上圖的一個小“
場景”
,芯片A
爲輸出芯片,芯片B
爲接收芯片,輸出端和輸入端很近。輸出芯片內部的CMOS
等輸入單元簡單的等效爲一個單刀雙擲開關,RH
和RL
分別爲高電平輸出阻抗和低電平輸出阻抗,均設爲20
歐。GNDA
爲芯片A
內部的地。GNDPCB
爲芯片外PCB
地平面。由於芯片內部的地要通過芯片內的引線和管腳才能接到GNDPCB
,所以就會引入一個小電感LG
,假設這個值爲1nH
。CR
爲接收端管腳電容,這個值取6pF
。這個信號的頻率取200MHz
。雖然這個LG
和CR
都是很小的值,不過,通過後面的計算我們可以看到它們對信號的影響。
先假設A
芯片只有一個輸出腳,現在Q
輸出高電平,接收端的CR
上積累電荷。當Q
輸出變爲低電平的時候。CR
、RL
、LG
形成一個放電迴路。自諧振週期約爲490ps
,頻率爲2GHz
,Q
值約爲0.0065
。
使用EWB
建一個仿真電路。(很老的一個軟件,很多人已經不懈於使用了。不過我個人比較依賴它,關鍵是建模,模
型參數建立正確的話仿真結果還是很可靠的,這個小軟件幫我發現和解決過很多實際模擬電路中遇到的問題。這個軟件比較小,有比較長的歷史,也比較成熟,很容
易上手。建議電子初入門的同學還是熟悉一下。)因爲只關注下降沿,所以簡單的構建下面一個電路。起初輸出高電平,10
納秒後輸出低電平。爲方便起見,高電平輸出設爲3.3V
,低電平是0V
。(實際200M
以上芯片IO
電壓會比較低,多采用1.5
-2.5V
。)
這個RL
的作用很大。如果這個值是2
歐的話,Q
值增大10
倍。(這是假設,只爲更形象的說明其作用,實際不會做到這麼小的。)可以看到下衝可以到-2.6V
。
而芯片B 接收端信號也惡化很多。信號下衝已經到了-2.5V 。
前面我們只分析了一個輸出變化引起內部地彈的情況。當出現一組數據線同時由高電平翻轉爲低電平時(假設爲10 根),則等效模型爲RL 爲2 歐,CR 爲60pF 。電感兩端波形如下圖所示:(芯片內部地最低到-1.69V ,信號端下衝也達到-1.48V )
芯片加工過程中會採用各用工藝儘可能的縮小LG 的值,並且通過增加地引線的方式減小LG 的值(等效爲並聯)。比如一片1000 腳左右的BGA 封裝芯片。有一組輸出總線寬度爲72bit ,而芯片引出地引腳爲200 根。那麼這個電路可以等效爲下面的形式:
芯片內部地的波形如下圖所示:(下衝只有320mV )
可以看到,一方面通過增加地引線數目,地彈現象得到了很大的改善;另一方面,72 根數據線同時翻轉的機率也很低,所以地彈得到了很有效的控制。然而,不是所有的芯片都能提供足夠多的地,除了BGA 封裝,其它封裝地引線還是比較少的。如果一個芯片有18 個輸出,只有4 個地引腳。那麼RL 變爲1.25 歐,CR 爲96pF ,LG 爲0.25nH ,芯片地上的地彈情況就會比起初假設的情況更糟了。可以看到下衝已經到了-1.23V 。
地彈的影響:
看到了上面地彈分析和相關波形,我們第一感覺總會認爲地彈最大的危害是給輸出信號增加了下衝。其實不然,地彈最大的危害其實在於對輸入的影響―― 會形成二次觸發。下面結合圖分析一下二次觸發是怎麼形成的。
再構造一個簡單模型。在前面的模型基礎上給芯片A 加入了一個輸入端―― 構造一個觸發時鐘的上升沿。模擬場景爲:在9.8ns 的時候這個上升沿產生,上升時間大概爲660ps 。在10ns 的時候時鐘信號達到高電平並觸發了所有輸出由高電平翻轉爲低電平。
真實情況下,時鐘輸入端的6pF
電容(管腳電容)下邊應該接到芯片地的,但那樣波形會比較複雜(不是一個單調的上升沿),爲獲得一個單調的上升沿,以更直觀的說明問題,暫把電容模型直接並在時鐘輸入與PCB
的地之間。
可以看到下面的波形情況:
而對芯片來說,接收端的信號是相對內部地的。也就是說對於芯片A 來說,它認爲輸入時鐘是信號與內部地的差。即芯片理解的波形是下面的樣子:
可以看到芯片內會認爲時鐘上有一個回溝,從而造成觸發器的二次觸發。如果是一個計數器時鐘輸入的
話一個上升沿就會被計爲兩個上升沿;如果是鎖存器的話,就會重新鎖存一下數據,這裏需要注意,這個回溝會疊加到每一個輸入信號端。也就是說二次觸發時鎖存
到的數據可能是錯誤的數據!
這裏仿真的回溝幅度比較大,主要是一次觸發後的那個下降沿(對應電感兩端的上升沿)。如果情況真的如我們上面看到的波形一樣,那芯片怎麼還能正常工作呢??下面來解釋一下:
其實,上面爲了更好的理解對輸入的影響,對大家做了一個誤導。
關鍵就在那個輸入端的
6pF
電容!把這個小電容按實際情況接到芯片內部地上的話,情況就大不一樣了。
下面看一下相對 PCB 地平面輸入時鐘波形和芯片內部地的電平變化:(高的一條線爲輸入時鐘信號,低的一條爲芯片內部地。在 9.8ns 和 10ns 分別有一次正向跳變。)
這時,內部認爲輸入信號電平低然是兩者之差:
怎麼會這樣?回溝完全沒有了!?只是在 10ns 後出現了一個小臺階 … 下面我們分析一下原因 ^_^
小臺階的出現是因爲芯片 B 的輸入端積累的正電荷反灌了回來,而又不能馬上通過電感(電感的電流不能瞬間變化),於是在電感兩端產生了一個與輸出電壓相等的電勢。而在 9.8ns 的時候由於時鐘信號的高電平,已經有電流通過輸入端小電容,然後又通過電感了。於是電感中已經允許有電流通過,在 10ns 的時候電流再回灌的話就可以通過電感了,(這個時候前邊時鐘輸入端的小電容基本不過電容了,所以看到前一個波形裏時鐘會有兩個跳變)於是回溝就看不到了(但並不是沒有了,圖上看不到回溝主要是因爲 10ns 的時候時鐘信號在中心電平附近,還和很多條件相關,比如:把輸入時鐘端的電容設爲 4pF 的話,就又有了一個小回溝,就不細說了,要不今天就甭吃晚飯了 ^_^ )。
下面再做一點很小的修改(在時鐘信號線或芯片管腳與 PCB 的地之間有一個小電容 1.5pF ):
呵呵,是不是有想吐的感覺?它又出來了 …
地彈的測量:
地彈要測量芯片內部的地電平變化,總不能割開芯片去測吧?確實是沒有辦法直接測到,不過,對CPLD 或FPGA 可以大致的測量內部地彈情況的。可以把某一個管腳設爲低電平輸出。大多芯片內部地與輸出低電平之間的壓差是基本不變的。測量這個低電平輸出的電壓波形就能反應出內部地彈情況了。示波器帶寬要夠啊!對測試技巧要求也比較高^_^
地彈的規避:
通過上面的分析,我們瞭解了地彈的機理,可以採取一些措施來規避(暫時只能想到這些了):
1 、 設計CPLD 或FPGA 等邏輯器件的時候儘可能不要同時對大量的輸出進行翻轉。
2 、 輸出不要帶太多負載。
3 、 加始端串阻匹配。相當於增大了開始建的模型裏的RL 。
4 、 終端並聯匹配也能起到很好的效果。(電流可以不單走電感了)
5 、 對芯片前邊的輸入也不容忽視,可以看到例中1.5pF 小電容的作用^_^ (一個小過孔焊盤與地之間的電容也近0.3pF 呢。)
芯片製造商也可以:
1 、 引比較多的地線,減小LG 。
2 、 改進製造工藝,減小LG 。(幾乎是到頭了… )
3 、 芯片內部將輸入和輸出地分開,這樣輸出引起的地彈就不會影響到輸入端了。也就避免了二次觸發。
4 、 採用差分結構。差分結構裏也有電感,但是對差分結構進行分析的話,不難發現電感中的電流在0 和1 的邏輯狀態是方向和大小都不變的。不會有電平翻轉後電荷不能通過電感的現象。
和地彈機理相同,還有電源彈射呢^_^ 機理相同,就不再重複了。
下面附上一些常見封裝的引腳電感LG 。
14 腳DIP :8nH 。
68 腳DIP :35nH 。
68 腳PLCC :7nH 。
絲焊:1nH 。(將一個未密封的管芯背向放在PCB 板上,把芯片上的小焊盤和PCB 之間的小焊盤用細線焊接起來,很少用)
BGA :0.1nH 。