發表文章

目前顯示的是 5月, 2023的文章

xRC / xACT 如何抽出對不同ground 的寄生電容?

圖片
 xRC 對地的寄生電容, default 只會計算導體層對substrate 的寄生電容. 所以預設的ground 節點名稱為 "0". 但是如果designer 做的是multi ground 的design, 會希望看到net 對不同的ground 之間的寄生的電容. 這時候就要使用 PEX GROUND LAYER 這個指令. PEX GROUND LAYER  後面放的是WELL layer 或SUBSTRATE layer. 依據LVS中所定義的CONNECT,xRC 會自動取得這個WELL layer 所連接到的net name. 如下圖 : 1. Default xRC 抽出 net A 對 0 5f 2. 如果設定 PEX GROUND LAYER NWELL PSUB     A 對 0 的電容會被轉換成:     cc1 A AVSS 2f       => 透過PSUB 計算     cc2 A DVSS 3f       => 透過 NWELL 計算 重點是 total 的電容 還是5f 

為什麼xRC 會抽出帶有NOXREF的net?

圖片
 NOXREF 的意思是no cross reference, 也就是layout 與souce沒有對應的net. 通常就是layout 上有,但是source netlist 找不到的net. 例如 source netlist 定義了 2 歐姆的電阻: 頭尾接 A B 兩個net. 但是Layout 畫了兩顆1 歐姆的電阻串聯. 兩顆電阻的連接點,就是layout 有 而source 沒有的net. 另外如果 layout 上有一些dummy device, 雖然在LVS 比對時是過濾掉的. 但是xRC 抽出來時, 還是會寫出來,就有可能帶有NOXREF 的相關net . 想要控制xRC "不要"寫出NOXREF 可以用, PEX NETLIST NOXREF NET NAMES NO

xRC 或 xACT 抽出來的電阻太小時如何debug?

電阻太小如何debug? 這裡所討論的xRC或xACT 抽出來的電阻太小. 是指0.0幾歐姆小的那種電阻太小. 通常一堆metal 並聯加上via array, 就會降低電阻值. 不過有時候desiger 會發現,例如VDD PAD到每一個MOS 的bulk pin 電阻值都一樣,分不出遠近的MOS. 而且電阻值很小. 就是我們今天要討論的 A) 1. 在xRC 的 -pdb 加上 -pdb_info 2. 查看log file 有沒有IDEAL connection 3. 檢查LVS rule 中的CONNECT 定義 IDEAL connection 是一種LVS 沒問題, 但是會影響xRC 抽電阻的定義 例如: PTAP = COPY TPDIFF CONNECT TPDIFF PTAP 然而在xRC rule 中定義了 TPDIFF 要抽電阻 這時候抽出來的電阻,就會因為PTAP 又全部short 在一起 讓電阻值變得超小. B) 另一種可能的狀況是 實際上要抽電阻的layer 跟你想像的不同 例如 你覺得 layer METAL1 的電阻太小 可以用 DRC rule COPY_METAL1 { COPY METAL1 } 執行DRC 再用RVE 貼回layout tool 中  看跟你畫的metal1 是否吻合. 有時候LVS rule 中的布林運算沒有寫好,  會產生奇怪的圖形, 也會造成xRC 抽出來的電阻怪怪的說.

抽出來的電阻太大時,如何debug?

 上一集,我們談到電阻有問題時的debug. 這一集,我們來看一下如果抽出很大的電阻時, 如何debug? 首先跟上一集一樣: 1. 將所有RC Reduction 的command 先關掉       例如PEX REDUCE MINRES COMBINE 5 2. 在PEX NETLIST 後面加上RLAYER RLENGTH RWIDTH       重抽一次 只要抽電阻就好      下 -pdb -r 即可.   再找出有問題的電阻是哪個layer 造成的,     RLENGTH / RWIDTH 是否異常? A) metal 層通常是RLENGTH 或RWIDTH 發生異常, 會讓抽出來的電阻過大. 這時候可以使用 PEX FRACTURE_2D 這個指令, 稍微改變一下有問題的電阻地方. 例如有問題的是 metal3 電阻: LAYER MARKER_LAYER_M3 33333      // 使用 33333層 定義一層新的marker layer LVS DB LAYER MARKER_LAYER_M3     // 使用LVS DB LAYER 把這層 marker layer 送到database中 CONNECT MARKER_LAYER_M3     // 定義connectivity 用這層新的marker layer 蓋有問題的metal3 區域, 再使用: PEX FRACTURE_2D metal3 MARKER_LAYER_M3 B) 另外,如果過大的電阻是出現在contact via層 將PEX REDUCE VIA RESISTANCE 設成 OFF 先試試看. 讓每一顆contact 或via 都抽出來.