您當前的位置:檢測資訊 > 科研開發
嘉峪檢測網 2025-06-11 08:59
在一個芯片中是必然存在IO電路的,IO電路雖然原理簡單,但在考慮地彈的同時要實現設計指標也許會是一件很困難的事情。此外,由于IO電路和版圖以及封裝管殼都相關,因此IO的設計通常也是一個多部門協作的工作,在設計過程中溝通(扯皮)是避免不了的。其實這也是和其他電路的設計有所不同之處,IO電路設計面臨的折衷不僅來自于電路本身,還來自版圖面積、管殼優化等多個方面。
為了避免抄書,本文的目的不是對IO進行一個事無巨細的描述,而是想更多突出和設計相關的內容。因此去繁就簡之后,本文內容主要包括了以下幾個方面:
1 什么是芯片的IO電路?
2 IO電路的分類
3 IO電路都有哪些參數?
4 IO電路設計的難點或關鍵點是什么?
5 搭建地彈仿真環境的注意事項
6 地彈環境下VIH/VIL測量方法
1、什么是芯片的IO電路?
簡單來說,IO電路其實就是指芯片的信號輸入輸出接口電路,其一般位于芯片版圖的最外圍。IO電路一般有以下幾個功能:
(1)實現電平轉換
(2)提高驅動能力
(3)進行ESD保護
先說電平轉換。芯片內部電路信號的高低電平和外部要求不一致時,這樣通過IO電路可以實現電平的轉換。
再說驅動能力。尤其是數字芯片,一個輸出信號有可能同時有多個扇出,這時候容性負載往往較大,為了使輸出信號的上升下降沿不至于過慢,就要求芯片具備一定的驅動能力。
最后是ESD防護。這是必不可少的一部分。但凡是芯片,在IO電路中都需要增設ESD防護電路,以便芯片在遭受靜電沖擊的時候不至于損壞。
2、IO電路的分類
圖 1 輸入輸出IO的分類
輸入IO比較簡單,根據帶不帶上下拉電阻可以分為兩種。對于一般的輸入IO,其就是反相器構成的BUF。在沒有激勵信號輸入時,帶上拉電阻可以使輸入保持為默認的高,帶下拉電阻可以使輸入保持默認的低。由于上下拉通常都是弱上拉或弱下拉,因此當有外部激勵輸入時,上下拉電阻并不影響信號輸入。
輸出IO基本分為三種。
第一種是推挽輸出結構。推挽輸出就是常見的反相器結構,不必多說。
第二種是OC/OD輸出結構。其為集電極開路/漏極開路輸出,電路如下圖所示。顯然這種結構是沒法直接傳輸高電平的,系統應用時必須要在開路端增加上拉電阻。
圖 2 OC/OD輸出
OC/OD輸出結構具有以下特點:
(1)很方便地調節輸出的高電平,可以進行靈活的電平轉換;
(2)可以實現"線與"功能;
(3)帶來上升沿的延時問題(和外部R大小選擇有關)
第三種是三態輸出結構。如下圖所示,相對于一般門只有0和1兩種狀態,三態門多出了一個高阻狀態。同時,三態門還有單向三態門和雙向三態門之分。
圖 3 三態輸出結構(圖片侵權刪)
高阻態時輸出電阻很大,相當于開路,相當于該門與和它連接的電路處于斷開的狀態。因此三態門可以說是一種擴展邏輯功能的輸出級,可以作為控制開關使用。該種結構通常可用于總線的連接,因為總線只允許同時只有一個使用者。通常在數據總線上接有多個器件,每個器件通過OE/CE之類的信號選通。如器件沒有選通的話它就處于高阻態,相當于沒有接在總線上,不影響其它器件的工作。
3、IO電路都有哪些參數?
IO電路主要參數如下圖所示。
圖 4 IO參數匯總
4、IO電路設計的難點或關鍵點是什么?
其實IO電路本身的原理是很簡單的,但在IO電路的設計過程中,需要考慮地彈的影響,而地彈的優化正是IO電路設計的難點。
那么什么是所謂“地彈”呢?百度百科解釋如下:
“地彈”,是指芯片內部“地”電平相對于電路板“地”電平的變化現象。以電路板“地”為參考,就像是芯片內部的“地”電平不斷的跳動,因此形象的稱之為地彈(ground bounce)。
“地彈”是怎么形成的呢?地彈是由管殼寄生的L引起的。如下圖所示,我們先看左圖,不考慮管殼寄生L,芯片地認為就是理想的地。再看右圖實際上芯片地和外部PCB地——認為理想地之間存在寄生的L,當反相器動態工作時,瞬態電流的變化會在L上產生感應電動勢,所以就可以看到芯片地的彈動是多么的歡快了。
圖 5 地彈形成原理圖
說“地彈”會帶來麻煩,具體是指什么呢?地彈會造成IO電路對外部輸入高低電平的不正確判斷。這可是個嚴重的問題:你想呀,對于CMOS電平標準,給芯片2.0V輸入,IO應該識別為高,輸出1的,那如果芯片識別成0會怎么樣呢?更嚴重的是或許會識別成一會0一會1的擾動信號。這不用說,當然是嚴重的功能性故障了。
所以我們需要做的就是:保證在地彈環境下IO電路能正確識別外部輸入的高低電平,這其實就是要保證VIH/VIL在地彈環境下滿足手冊指標要求。
5、搭建地彈仿真環境的注意事項
IO頂層電路地彈仿真環境的搭建需要注意以下幾點:
6、地彈環境下VIH/VIL測量方法
仿真測量方法可以有兩種,都可以通過寫公式的辦法自動計算。第一種是給輸入施加斜坡信號。具體參考下圖:
圖 6 輸入斜坡信號時的方法
輸入IO第一次誤翻轉時對應的輸入斜坡值為VIL,輸入IO最后一次誤翻轉時對應的輸入斜坡值為VIH。需要注意的是斜坡信號必須足夠緩慢才能得到準確的測量值,這里有一個經驗設定:斜率K=10mV/2T,T為翻轉周期,即兩個翻轉周期的時間斜坡變化量為10mV。斜率當然越小越準確,但相應的仿真時間也會越長。
還有第二種方法是采用臺階信號,具體如下圖:
圖 7 輸入臺階信號時的方法
使用這種辦法,輸入IO第一次誤翻轉時對應的臺階的前一階的值為VIL,輸入IO最后一次誤翻轉時對應臺階的后一階的值為VIH。需要注意的是臺階信號的步長必須足夠小才能得到準確的測量值,這里有一個經驗設定:STEP=10mV/2T,T為翻轉周期,即兩個翻轉周期的時間增一個臺階,變化量為10mV。10mV的誤差量是可以接受的,步長當然越小越準確,但相應的仿真時間也會越長。
這兩種方法都可以得到基本一致的結果,第一種方法要得到準確的測量結果勢必要降低斜率,這會帶來仿真時間的增加。其實在PVT仿真時比較推薦第二種方法,因為可以采用一個取巧但又不失準確度的的辦法:可以省卻中間的部分的臺階,只保留兩頭的臺階。因為通常PVT仿真時VIH或VIL的最小最大值肯定是落在兩頭的臺階范圍內的,這樣可以進行有效的仿真加速!
來源:模擬小笨蛋的IC筆記