發表文章

在xRC 的 output netlist 中 產生指定的節點名稱 PEX PROBE FILE

指令 : PEX PROBE FILE filename filename :輸入檔  檔案內容: CELL name X Y 座標 指定probe 的layer 例如: CELL A IN_A  10 10 metal2 IN_B  30 10 metal1 xRC 抽出來的netlist, 你會在.pex 檔案中 搜尋到 IN_A , IN_B  這兩點就是layout 上 在CELL  A 中座標(10,10) 的地方 備註: 如果要PROBE的座標剛好是下一層cell 的metal,而這個cell在layout中出現多次時, 你會發現 xRC 寫出來的 netlist 會出現很多個你指定的probe name . xRC 會自動加 _1 _2 _3 _4 _5 ... 如果只要一組 可以在file 中加入 SINGULAR 這個keyword. 例如: CELL top_cell AAA 50 -5 MT2 SINGULAR === PEX PROBE FILE finename PROTETC PROBEPORT -filename 輸入檔案名稱 -PROTECT (如果probe 點的座標剛好是pin 或 port時,保留probe 點. xRC 會自動加一個0.01 歐姆的電阻. -PROBEPORT (在DSPF格式中用 *|P 取代 *|S)

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 都抽出來.

如果遇到xRC 或 xACT 抽出來的電阻有問題時? 應該怎麼debug?

 1. 將所有RC Reduction 的command 先關掉       例如PEX REDUCE MINRES COMBINE 5       註: xACT 要將 PEX REDUCE ANALOG 設定成 NO 2. 在PEX NETLIST 後面加上RLAYER RLENGTH RWIDTH       重抽一次 只要抽電阻就好      下 -pdb -r 即可.   再找出有問題的電阻是哪個layer 造成的,     RLENGTH / RWIDTH 是否異常? 3. 使用 Calibre RVE 的Parasitic browser 功能      貼回去layout 看是否異常? 如果RLENGTH/RWIDTH 異常, 請回報原廠的AE技師維修.

執行完xRC 之後,想要檢查xRC抽出來的netlist 是否有斷線?

  這裡提供使用 SIMPLE NETLIST 來做比對的方法 :   1.       xRC 也寫出 SIMPLE NETLIST (不帶任何寄生元件,只有原本的device 的netlist) 記得在 rule 中 加入底下這一行 : PEX NETLIST SIMPLE “simple.sp” HSPICE SOURCENAMES 執行完 LVS, 再執行底下這個步驟 : >calibre -xrc -fmt -simple lvs.rule | tee fmt.log   2.       將原本的 lvs rule copy 成 svs.rule SOURCE PATH “simple.sp”  // SIMPLE NETLIST SOURCE PRIMARY top_cell SOURCE SYSTEM SPICE   LAYOUT PATH “output.sp” // xRC抽出來的NETLIST LAYOUT PRIMARY “top_cell” LAYOUT SYSTEM SPICE   LVS SPICE SLASH IS SAPCE NO LVS FILTER R SHORT             // 所有的電阻視為短路 LVS FILTER C OPEN               // 所有的電容視為開路    3.       Netlist 需要修改的部分有 有些 device 在原本的 lvs rule 定義成 M 開頭 , 可是寫出 NETLIST 變成 X 開頭 例如在 LVS rule 中 : DEVICE MP(P) PGAT PO1(G) PSD(S) PSD(D) NWL(B) NETLIST ELEMENT "X...