發表文章

目前顯示的是 2021的文章

Power Integrity - 電容MLCC簡介和選擇

圖片
         Take-away:  MLCC壞掉會短路 ,務必注意 『額定電壓』& 『溫度特性』 。 『 操作DC電壓 』 越接近電容 『額定電壓』,容值越小。 電容尺寸越小,寄生電感越小,但容值上限也小。 高頻(20M~200MHz)可採用小尺寸MLCC電容(0201)、中頻(2M~20MHz)中尺寸MLCC電容(0402)、中低頻(0.1M~2MHz)中大尺寸MLCC電容(0603/0805) 。 -----Start 電容在電路板可做為『高頻率波器』、『訊號bypass路徑』、『電源穩壓』...等 本篇文章簡介『電源穩壓用』之『多層陶瓷電容』MLCC(multi-layer-ceramic-chip),並採用MLCC大廠murata作為範例電容, murata網站連結 。 如何選擇MLCC? 『不能壞』『額定電壓』 某些種類電容壞掉時是開路,只會造成電性效能降低。  但MLCC壞掉是短路,此時已經不是效能差而已,是會對元件造成不可逆的損壞。 所以選擇MLCC第一步就是『不能壞』。 假如電源長時間操作在『95度C』、『5V』,那麼我們選用的電容一定要      MLCC參數中的『額定電壓』一定要大於5V,如選用6.3V or 10V。      MLCC參數中的『溫度特性』高溫範圍一定要大於95C,例如選用X6S or X7R。 『溫度特性』X7R EIA協會定義代號來描述MLCC溫度特性。 例如X7R,第一碼X表低溫至-55度C,第二碼7表高溫至125度C,第三碼R表容值±15%。 例如Y5S,第一碼Y表低溫至-30度C,第二碼5表高溫至85度C,第三碼S表容值±22%。 完整代碼表請見 連結 中的 Table2 。 我們可依據系統操作溫度來選擇對應MLCC,通常越高溫會讓容值下降,造成電性表現變差。MLCC容值變化vs溫度是個非線性關係,例如90度時電容下降5%、100度時電容下降8%。各家電容廠商的溫度vs容值曲線都會不同,但各家廠商能保證的是在操作溫度內,容值變異量要在EIA規範內,例如X7R就是125度C時電容下降要保證在15%內。 『溫度特性』C0G MLCC溫度特性中,代號C0G是個特別的類別(屬於EIA Class-I),此種MLCC容值變化vs溫度有著非常線性且穩定的特質,穩定到可以拿來當溫度sensor。C0G比較少拿來當電源穩

Cadence PowerSI教學 - PDN Extraction

圖片
-----Start 本篇介紹電源PDN電性模型extraction流程。 以flipchip BGA型態的IC封裝為例(PCB的PDN extraction流程也相似)。 目標觀察頻段為DC到2GHz。 選擇的工具是Cadence的PowerSI軟體。 PowerSI是一套非常強大的電性extraction軟體,推薦大家使用[ 連結 ]。 (如下圖) 讀取layout Power SI支援各家不同layout格式。 包含Cadence自家的mcm/brd/sip,或者Mentor的pads等。 (如下圖) 疊構設定,新增bump/BGA層 打開疊構編輯(stackup)。 PowerSI已自動帶入layout檔的設定,包含四層板、最上方&下方的solder mask層。 但實際上,flipchip BGA型態的IC封裝,封裝上方會有bump錫球(如紅色),封裝下方會有BGA錫球(如綠色)。若要將這些效應考慮進來,那必須在『疊構上/下各新增一層』。 (如下圖) 新增bump/BGA模型by via Bump和BGA錫球,實際形狀是球形,模擬上常用圓柱形來等效球形。 PKG/PCB上,via過孔也剛好是圓柱形,所以我們可『用via來模擬bump/BGA 』。 接著建立via過孔物理形狀,例如BGA球的直徑是500um,所以建立一個直徑500um的via,層數由L4到最底層。bump也用同樣手法建立,位於L1到最上層。 (如下圖) 在layout上長出bump/BGA 剛剛我們已新增bump/BGA疊構,也建立了bump/BGA的via物理模型。 接下來要在原本沒有bump/BGA的layout上長出bump/BGA。 如step1~2,我們選取要長出bump的點,並在step3-5長出via(bump)。 注意在step4中,因為bump位於最上層和L1之間,所以操作上要 『先點選最上層Plane01一次,再點選L1 Signal$1一次』,這樣代表我們要新增via在這兩層之間。 最後透過3D view,可看到bump/BGA已建立。 (如下圖) 設定ports 在layout長出bump和BGA後,接著設置port。 我們目標是在bump上方/BGA下方建立port。 筆者的習慣是先在 『bump上方/BGA下方建立元件』,然後再generate port。

Power Integrity - PDN時域電壓noise分析

圖片
        Take-away:  PDN頻域分析是個很好的分析過程,但最終還是需在時域觀察電壓抖動。 時域noise波型可看出頻域Z11共振點頻率 。 不同Z11 peak表現出不同時域波型,抑制方法也不同 。 若PDN在 f_res有明顯的共振,建議 模擬時間至少為 1/f_res,才能觀察到最大noise。 -----Start 上篇中我們看了Power的頻域分析[ 連結 ]。 PDN頻域分析是個非常有用的分析過程,但終究還是要回歸到時域。 因為時域上電壓抖動對訊號造成的影響,才是工程師最在意的。 NOTE: PDN頻域分析是個很好的分析過程,但最終還是需在時域 觀察 電壓抖動。 (如下圖)  下圖是頻域分析的PDN Z11,其中有兩個共振點,8MHz & 34MHz。 dV=dI*Z11 若抽載電流dI為寬頻電流,大家能猜到時域電壓noise的波型嗎? (如下圖) PDN時域noise波型 模擬電路由靜止到全載,抽載一電流0到5A之step current,其中rising time為2ns。 下圖為IC端bump點看到的電壓抖動。 可看出時域noise波型的確主要由8MHz和34MHz形成。 NOTE: 時域noise波型可看出頻域Z11共振點頻率。 (如下圖) PDN時域noise抑制 10ns~50ns為高頻響應,主要由34MHz peak決定。 100ns之後的damping,主要由8MHz peak決定。 若想改善電壓最低值(高一些),那應該減小34MHz的peak,例如之前提過的換一顆ESL小的電容(但因電流為寬頻訊號,所以34MHz和8MHz其實都貢獻不小)。 若想改善電壓damping的強度(較快收斂),那應該減小8MHz的peak,例如之前提過的改善PKG和PCB layout設計。 在此展現出,了解頻域Z11和時域波型的關聯後,再透過頻域Z11分析來找到適當的solution。 這樣的流程比起單純看時域波型找solution,效率大大提升了! NOTE: 不同Z11 peak表現出不同時域波型,抑制方法也不同 。 (如下圖) 模擬時間長度 上述的電壓noise波型中,只要模擬25nsec就足以可抓出最大noise。 若有一Z11分布如下,低頻的6.4MHz peak高於高頻peak(常發生於較大的IC電容Cdie)。 那只模擬

Power Integrity - PDN頻域Z參數解析

圖片
       Take-away:  常用「IC pad/bump點的頻域Z參數」當作PI分析參數 PDN Z參數不能只能看共振點,各段都要仔細分析。 改善PDN共振點,需知道共振點的成因,找出共振點對應的LC 。 拼命加電容不一定能改善PDN,要確切知道問題點才有效。 -----Start Power的穩定性是工程師的一大挑戰,往往可能比signal更令人頭疼。 一般人常認為power的特性難以估計、千變萬化,只能拼命加電容。 但其實仔細觀察、一步一步的拆解、抓住關鍵參數,還是有跡可循的喔! 筆者將介紹PDN頻域分布、時域波型、layout設計、電容選擇、電流抽載...等。 本篇由PDN頻域開始! (如下圖) 觀測點 & Z參數 歐姆定律dV=dI*Z, 其中      dI為IC電路抽載電流,由內部電路決定。      dV為電壓變動,目標是電壓變動越小越好。     Z參數為PDN阻抗分布,是 dV/dI兩者橋梁。 我們要穩壓的點是IC內部,所以我們常用「IC pad/bump點的頻域Z參數」當作PI分析參數。 NOTE:  常用「IC pad/bump點的Z參數」當作PI分析參數 (如下圖) PDN頻譜分布 以下為 IC pad/bump點的PDN Z阻抗結果,阻抗值隨頻率不同。 可以看到PDN有兩個共振點,分別在8MHz和34MHz。 大部分的Z參數也是類似此圖,有2~3個共振點。 我們仔細的分析PDN Z參數, 將其拆成五段A、B 、C、D、E。 由Z參數的斜率,可知道ACE為電容性,BD為電感性。      A: Die內部電容。      B: Pad/bump到封裝電容的路徑電感 + 封裝電容的寄生電感。      C:  封裝電容。      D: Pad/bump到PCB電容的路徑電感 + PCB電容的寄生電感。      E: PCB電容。 共振點P1主要由A、B構成。 共振點P2主要由C、D構成。 NOTE: PDN Z參數不能只能看共振點,各段都要仔細分析。 (如下圖) PDN共振點分析 為什麼我們要把PDN拆成這麼細呢? 在此問個有趣的問題,若我們要把「P1往高頻移動,在PCB加10顆電容有用嗎?」 也就是常見手法,一個電容不夠,那就再加一個! 透過PDN Z參數分析,我們知道共振點P1主要由A「Die內部電容」、B「P

Keysight ADS教學 - 三步驟完成TDR模擬

圖片
      Take-away:  步驟1: 呼叫ADS內建TDR電路 步驟2: 接上待測物、設置TDR參數、按下模擬 步驟3: 得TDR結果 -----Start 筆者之前已詳細介紹過TDR原理 [連結] ,本篇介紹如何用Keysight ADS軟體做TDR分析。 只需要三個步驟,非常簡單。 (如下圖) 步驟1: 呼叫ADS內建TDR電路 ADS已有內建好的TDR電路,我們只需要點一下滑鼠就可輕鬆呼叫。 Insert => Template => ConvRespT (如下圖) 步驟2: 接上待測物、設置TDR參數、按下模擬 接上欲模擬的待測物(例如S參數)後,設置TDR參數 常用設定    trise:  0.35/頻寬    ZO: 50    Reference Line Delay: 100ps    magnitude: 1 (如下圖)步驟3: 得TDR結果 ADS完成模擬後,使用ADS內建TDR函數"tdr_step_imped(TDR,50)", 便可看到TDR結果。 注意,TDR前200ps為reference line delay的效應,所以待測物的TDR結果是從200ps之後開始哦! (如下圖)差分訊號TDR 如果要看差分系統的TDR,只要更改以下設定就可以囉!    1. 待測物前後加上balun    2. ZO改為100    3. 函數tdr_step_imped(TDR,100) 有了ADS內建電路&函數的幫助,TDR模擬是不是變得超級簡單了呢 :D -----END

Keysight ADS教學 - 一維&二維參數掃描(parameter sweep)

圖片
    Take-away:  ADS電路模擬可sweep一維和二維(以上)變數。 一維sweep可用Param Sweep元件。 二維sweep 可用B atch Sim Controller元件。 -----Start (如下圖) 在設計中,我們常要看參數變動對結果造成的影響,例如線寬變動對走線串擾有多少影響。Keysight ADS軟體提供了非常便利的參數sweep功能,本篇會介紹一維變數sweep、二維變數sweep。 (如下圖)一維變數sweep 本篇用ADS中TL-LINE模型當範例。 (對TL-Line不熟悉者,可見 [連結] ) 首先建立變數var,並將要sweep的參數用變數取代,範例為掃描trace的spacing。 (如下圖) 一 維變數sweep 電路設定 接著放入Param Sweep元件,由此元件來管理變數的sweep方式。 掃描trace_spacing,20um開始、144um結束、每15um一點。 請記得在ParamSweep元件中的分頁Simulations中填入simulator的名子(這邊simulator是SP1)。 (如下圖) 一 維變數sweep 模擬結果 模擬完後,我們先叫出trace_spacing參數,看跑的變數是否如同預期。 結果顯示 trace_spacing的確是由 20um開始、144um結束、每15um一點,共跑了10個點。 叫出S(1,3),可以看到S(1,3)有10條線,分別為不同trace_spacing的結果。 S(3,1)為串擾XTALK的結果,可以看到trace_spacing越大時,XTALK越小,符合預期。 跑一次模擬就完成不同spacing的XTALK結果。 如果我們不想一次看10條線的結果,只想看 trace_spacing 20um的單獨結果。 可在參數後方加入[0,::],例如S(1,3)[0,::]。 同理,S(1,3)[1,::]為 trace_spacing是35um的單獨結果。 同理,S(1,3)[2,::]為 trace_spacing是50um的單獨結果。 (如下圖)二 維變數sweep 介紹完一維變數sweep後,接著介紹二維變數sweep。 例如我們想看trace_spacing和trace_width兩個變數帶來的影響。 可想而知,兩個變數sweep會形成一個Mx