發表文章

為什麼對稱的電路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 之間的寄生電容,會被濾除掉 ~~~

xRC 抽出來的Netlist: Device 接到錯誤的 Net. 好像Instance 與 Instance 互相交換了要接到的Net.

Output Netlist 也就是發生張冠李戴 , 貍貓換太子的情形. 這種時候,有可能是LVS Ambiguity 比對造成的. 我們來看一下,LVS 為什麼會做 Ambiguity 比對. Ambiguity Resolution 模糊的比對決定 當layout 中有大量的並聯以及對稱的電路, 這些電路部分可以交換並且不影響電路的連結. 這種情形,電路無法區別被交換的部分. 你會在LVS report 中看到下面的Warning Message: Warning:  Ambiguity points were found and resolved arbitrarily. Calibre LVS使用 net, instance 與 port的名字, 當成比對時的初始條件. 也就是用來當成能夠辨識電路的基本要素. 另一方面,也透過元件的subtype與參數來解決. 1. 調整 LVS Property Resolution Maximum 的值會有幫助  (預設值為32 , 可以調大例如 4096, 不建議用ALL, 因為這個command會影響run time) 2. 也可以使用LVS CPOINT 增加layout source 的比對參考點 3. 另外LVS REDUCE SPLIT GATES YES 也會造成電路使用模糊比對,因為被簡化的MOS可以任意swap 所以比對時,也不會確實比到每一顆MOS,而是比對簡化後的結果. 4. LVS INJECT LOGIC YES 也會讓特定型態的電路簡化,造成模糊比對.

在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