發表文章

使用 Calibre RVE 計算 xRC 抽出來的點對點電阻值 教學

前一陣子為了教學,做了RVE 的影片. 裡面有提到點對點電阻的計算. 有興趣的朋友 可以看一看. https://www.youtube.com/watch?v=8UlSyvxnJfQ

為什麼算VSS port到MOS 的bulk pin 腳的點對點電阻 都沒有變化?

圖片
 例如上圖 designer 想看port VSS 到每一個INV 的電阻, 卻發現xRC 抽出來的電阻, 計算點對點電阻時. port VSS 到 INV1 與 port VSS到INV2 的值相同. 如下圖 這個原因是因為 NMOS 的BULK pin 腳使用的pin layer 是PSUB  也就是 PSUB 等於所有的layout 面積. MN(N)的bulk pin 使用PSUB 原本xRC 的寄生電阻是diffusion 以上的layer才有定義. 所以所有的MN(N) BULK pin 透過PSUB short 在一起了. 1. 解決的方法是定義PSUB的電阻係數 例如 : RESISTANCE SHEET PSUB [888 0] 點對點電阻值就會有變化, 如下: 由於substrate layer 的電阻計算是另外一個領域, 我們這裡就先以看出port 到bulk pin 點對點電阻b變化為前提.  這邊對於PSUB layer 的電阻準確度 能做的有1. 電阻係數從foundry 取得 2. 如果有需要. 使用2D_FRACTURE 讓PSUB 抽出網狀的電阻.  另外BULK pin 腳定義 又牽扯到LVS rule 的寫法, 只能見招拆招. (註 : RESISTANCE SHEET 只有xRC 認得. xACT 不會work, 如果遇到xACT 請聯絡原廠的技師了 @@ )  2.  另一種解法是加入 "PEX RESISTANCE OPEN LAYER PSUB" 讓xRC 認為 PSUB 不計算電阻 並且為開路. 在RVE 的P2P 就看不到 bulk pin 腳 . 但是port VSS 到 INV1 INV2 的電阻值差異會顯現出來  

為什麼xRC抽出來的netlist , cfmom的PLUS 與 MINUS 會對調? 是否有解決的方法?

 Designer 發現xRC 抽出來的Netlist, cfmom的pin腳順序錯了. 例如: CDL : XC8 EVIN IN VDD cfmom nr=8 lr=10u w= l= xRC 抽出來的netlist xXC8 N_IN_XC8_plus N_EVIN_XC8_minus N_VDD_XC8_bulk cfmom .... 這個問題的源頭是在LVS定義 電容時 PLUS 與MINUS這兩隻pin腳使用同一個layer. 導致LVS 比對時,Calibre會永遠認為PLUS 與MINUS 可以互換. 所以 xRC 寫出來的netlist cfmom的pin 腳順序會與source netlist 不同. 小編曾經嘗試各種NETLIST 相關的Option 例如: PEX NETLIST ... SOURCEBASED 或是PEX NETLIST ... SCHEMATICONLY 或是 PEX PIN ORDER SOURCE ..等等等, 都無法解決這個問題. 目前為止唯一的解法 還是要改Calibre LVS 的DEVICE 定義, 將PLUS / MINUS pin 腳 使用不同的layer. 最快的方式是搭配layout 加一層marker layer. 修改LVS rule deck.  聽起來有點麻煩,不過可以從另外一個角度來看: 這樣的修改 保障了CAD 的工作權, CAD 又多了一件工作無法被AI 取代了, 哈哈哈!  

為什麼對稱的電路layout 抽不出相同的電容值? Calibre xRC, Calibre xACT 都有可能發生?

在foundry 提供的xRC / xACT rule deck 中, 會考慮所謂的in-die variation. 也就是IC製作過程會產生的導體層線寬因為spacing 變化而變化, 或是導體層因為金屬密度導致的厚度變化. 所以有可能相同的layout pattern 擺放在layout 上的不同位置, 抽出來的電阻 電容值會不相同. 在xRC / xACT 的rule  中, 將  //#DEFINE XCAL_EXCL_INDIE 改成 #DEFINE XCAL_EXCL_INDIE 就是"關閉" in-die variation. 不過實際生產時,這個效應是會存在的.

xRC 如何處理在LVS rule 中宣告的VIRTUAL CONNECT?

圖片
 如果在LVS rule 中有宣告VIRTUAL CONNECT, 例如: VIRTUAL CONNECT NAME VDD 而且layout 裡真的有virtual connect 的情況發生時. 可以使用 PEX NETLIST VIRTUAL CONNECT YES 如下圖, xRC 就會新增一顆0.01 Ohm 的電阻(紅色那一顆) 在兩個寄生電阻網路之間. 你也可以透過"PEX NETLIST UNSHORT DEVICE PINS" 來改變這顆電阻的電阻值.

xRC 或 xACT 如何設定,避免元件本身的寄生電容被抽到, 也就是 double count?

圖片
 通常Foundry出廠的 Rule Deck, 元件本身的寄生效應, xRC 或 xACT 是不會抽進去的. Rule deck 本身會做IGNORE CAPACITANCE 或是Foundry 透過 PEX IGNORE CAPACITANCE 指令來做ignore. 不過有時候 還是會遇到需要手動來設定.  例如: 1. LVS rule 中的DEVICE 描述 DEVICE MN(N) NGATE NGATE(G) NSD(S) NSD(D) PWL(B) 2. 透過 PEX IGNORE CAPACITANCE DEVICE  PEX IGNORE CAPACITANCE DEVICE INTRINSIC NGATE NSD NGATE a) INSTINSIC 代表對地的電容也要ignore 掉 b) NGATE NSD  是這個device 的Pin Layer c) 最後面的 NGATE 代表 marker layer, 有跟marker layer 碰到或重疊的pin layer 之間的寄生電容,會被濾除掉 ~~~