在 20nm 以下的工藝中,由於相鄰 metal wire 的間距太小,使得光刻過程中,相鄰的光線間距過小,相互之間發生干涉,導致 metal wire 邊緣模糊,出現瑕疵。
為了解決這個問題,先進工藝開始采用 double pattern(DPT),也稱為 double mask,就是將原來的一層 mask 拆分成兩層,在每一層 mask 中都不出現最小間距,才能保證制造不出現瑕疵,代價就是制造費用成倍增加,原來只需一層光罩的費用,現在需要兩層。
圖1. 拆分成兩組 mask
相應地,在芯片物理設計過程中,需要確保每層metal 都可以拆分成兩層 mask,如果出現無法拆分的情況,就會報 odd cycle drc
什么樣的情況無法拆分?
如下圖所示,在這個區域內有 5 條 metal (奇數條),如果所有相鄰的 metal 間距都小於 DPT 規定的最小間距(DPTminSpacing),就會出現無法拆分的情況
划重點:奇數條 metal ,相鄰間距都小於 DPTminSpacing
假設拆分為 AD 和 BCE,如下圖,由於 BC 間距小於double pattern 規定的最小 spacing,無法制造!
可能有人會問,為什么不拆分成 ACE 和 BD? 這樣 BC 之間不就沒問題了嗎?
實際上由於 AE 間距也小於 double pattern 規定的最小 spacing,也無法制造!
(這里要強調這個區域內所有相鄰的 metal wire spacing 都小於 DBT 規定的最小spacing)
所以這個 mask 無法拆成兩個滿足要求的 mask,ICC2 會檢測到這種問題,並且報 odd cycle drc error
如何解決 odd cycle drc error ?
很簡單,拉開 spacing 即可,以剛才的圖為例,拉開 BC 間的 spacing:
這樣,可以拆分成 AD 和 BCE 兩組,兩組 mask 都滿足 DPT 最小 spacing 要求了
怎樣快速判斷某個區域是否存在 odd cycle drc error ?
隨機選取一根 metal 線作為第一根,如果第一根線與第二根線是最小間距,就要檢查是否有第三根線與第二根線是最小間距,如果有,接着去找第四根,如果找到第 n 根,且第 n 根與第一根也是最小間距,那么就構成了一個閉合環路,這樣一組 metal 就叫做 “ 最小間距環 ”,這個 n 如果是奇數,那就一定會出現 odd cycle error !!
顧名思義, odd cycle 就是指這個 “ 奇數環 ” 。
ICC2 就是先找出這些 “ 最小間距環 ” ,然后檢查是否是奇數。
如果 ICC2 檢測到 “奇數環”,會自動修掉,但是檢測難點在於,這個環可能非常大,如果檢測窗口不夠大,就檢測不到,這時候就需要手動介入修掉了。
其它相關:
1). DPT 一般應用於低層 metal ,比如 M2 M3 等,因為先進工藝 cell 出 pin 更加密集,需要更多的低層繞線資源,低層 metal 方便連接底層 cell pin
2). 采用 DPT 的 metal layer 繞線利用率不宜太高,一般默認設定在 60% 左右,因為密度越高,出現 odd cycle 的幾率越大
3). DPT 的最小spacing 要求一般可以在 tech file 中查到,比如在某廠商 10nm 工藝中,M2 是DPT layer,其 minSpacing = 0.024u,其 DPTminSpacing = 0.072u (side2side),而對於不是DPT 的layer, 其 minSpacing = 0.04u
4). 同一層的 metal 盡量不要出現拐彎,拐彎就意味着這條metal至少占用了兩條 track,更容易出現 odd cycle
|---------------------------|