• 沒有找到結果。

首先會讀進 file 檔,除了原本在 MFOB 中會讀取的 def 檔和 FIB.para,一樣 讀進我們得資料結構,但是為了加速程式的開發和其他程式的相容性,這邊使用 了 OpenAccess(OA)的資料結構來存取 tech file 和 circuit information 的檔案,OA 為 Cadence 所發表,屬於一種公開的資料結構,並定義 VLSI 相關參數及含式命 名,以下會介紹我們讀取的 file:

․design.def: 為描述實體 layout 的 file 包含 metal 及 cell 位置的資訊。

․FIB.para: 描述 FIB 的參數,含 baseline window width、蝕刻後的斜率。

接下來的檔案是由 OpenAccess 所存取的

- 11 -

․tech.lef: 描述實體 celllayout 的檔案,包含 pin 角的座標、via...等。

․netlist.v: 描述 gate-level 電路。

․tech.lib: 描述各種 celltiming 的資料。

․circuit.spef: 紀錄各節點間的負載

․circuit.sdf: 紀錄各 cell 的延遲時間。

第三章 3-2節 前置處理及時序分析

當檔案讀取完成後,會先建立 metal map,接著我們會計算全部的 metal 的 cost,並且將各個區間的 cost 存下,之後會對所有的 cell 進行 Static timing analysis,

將 critical path delay 設成 cycle time,之後將 cell 各自的 time slack 存下。

有了 slack 的資料後,會開始決定 spare cell 的 expectation,expectation 為各 自 spare cell 所能修復的 cell 以及其中的 cost 所決定,在下一個章節,將會有更 詳細的 expectation 的說明。每個 spare cell 可以找到相對應 cell-cell type 相同、修 復後 timing 不會違反限制,將這些 cell 放入這些 spare cell 對應的 list 中。 Pt 的洞所產生電容,baseline window 為 1000*1000 為公式中的 area,每層的寬 度受蝕刻的斜率決定,再將各層產生的電容疊加起來。而在晶片外的拉線,寬度 為 1000nm,這裡外部的拉線只考慮直角拉線的最短距離,也就是兩個相連點 x 和 y 的差值相加。

整體公式如下(5)(6)(7):

C = area CPERSQDIST length EDGECAP

Top layer 料結構中,就能判斷有無 timing violation 的產生。

- 12 -

第三章 3-3節 新增 spare cell 的 metal

在主要的迴圈中,我們會先選擇最高 expectation 的 spare cell 來進行新增 metal 的動作,因為 90nm 的製程中,spare cell 被其他的 metal 遮住上方且面積較 小無法直接做修補的動作,因此在這裡會先新增一些 metal 以幫助做 FIB 觀測,

在這裡會使用到一些 detail route 的方式。

在這裡使用的是 rip-up-and-reroute (RNR),在使用 RNR 的繞線前必須先建 立一個三維矩陣的資料結構,並將其中的障礙物(obstacle)和終點位置決定,並且 障礙物還會產生導致不能被觀察的區域,圖表 10 為一個三維矩陣的範例。

(a)layer4 (b)layer4 (c)layer3

圖表 10 障礙物在矩陣上範例(a)layer4 原始的矩陣、(b)修飾後 layer4、

(c)修飾後的 layer3

在圖表 10 中(a)描述最原始在 layer4 上有一段 metal,在這裡標記為障礙物(紅 色),而(b)裡的黃色區塊為因障礙物而無法做 FIB 區域,而(c)為較下層的 layer,

黃色的區間在越下層會增加越多。

- 13 -

(a)

(b)

圖表 11 改良後 RNR 範例(a)最原始的電路(b)新增 metal 後的電路。

在圖表 11 為一個專門對尋找 FIB 觀察點的 RNR,圖(a)中藍色的格子為起 始的點,也就 spare cell 需拉出 metal 的 pin 位置,如同原本的 RNR,從起始點開 始往外找,直到找到空白的位置時,則開始計數,當在同一層連續走到空白方塊 滿足 baseline window width 時(在範例中是三個),範例中為了清楚解釋演算法,

格子之間尺寸與實作不同,最後則回傳 true 和這些新增的 metal,並準備執行接 下來的一般 cell 的調整。若在到達步數限制和 RNR 沒有能選擇的格子,則回傳 false,並將這 spare cell 移出調整的 list。

spare cell 得對上面需做 FIB repair 的 pin 都執行一樣的操作,當調整完一個 spare cell 後,會使得附近的 metal 非常壅擠,且 spare cell 常常會放在比鄰的位置,

導致周遭的 spare cell 將難以做修復。

- 14 -

第三章 3-4節 spare cell 的 expectation 和 cost

接續上一段最後所提的,調整一個 spare cell 將會使附近的 spare cell 無法被 調整,因此需要一個方法去決定那些 spare cell 先被調整,才能使得有最多的 cell 能被 repair,這裡提出了一個判斷的依據「expectation」和「cost」,當 expectation 越高,我們則會優先處理,expectation 在這裡代表的 spare cell 約能修復多少個 cell。 repairable 至少會影響到多少 metal,用之前計算的 cost 公式(3)帶入。

.

算出能較精準比較出值得修理的 cell。另外在 expectation 和 cost 的計算中,皆會 排除以 fixed 過的 cell,以確保找出能修最多的 spare cell。

- 15 - 無法修復都其他的 cell,仍將會完成它的調整,以增加在真正實作上做 FIB repair 的可能性,之後將會把修改後的,以 def 檔的形式吐出,和一個紀錄可做 repair

- 16 -

則相對的調整後的 metal(fixed),會影響到的其他 metal 則是那些 layer 比它小的 metal,因此能推斷出會變動的 cost 值的 metal 的條件為

1. metal 位於搜尋區間內。

2. metal layer > original target metal 3. metal layer < fixed metal layer

在圖表 12 中,最後找到的為 metal1,而對 metal 1 的 cost 進行更新,這裡將 會記錄下這些找到的 metal,並對這些 metal、所屬的節點、節點所屬的 cell,將 數值重新計算。

- 17 -

除此之外,還有節點所連接的 cell 也都需要更新 cost,如下圖範例(圖表 13):

un-fixed

un-fixed Cell cost

4

Cell cost (1) 4

(1) (1)

(1) (1)

(a)

fixed un-fixed

Cell cost 0

Cell cost (0) 3

(0) (0)

(1) (1)

(b)

圖表 13 調整後 cell 更新 cost 範例(a)調整前(調整後)

圖表 13(a)為調整前的 cost 數值(公式(3) ),當 cell 調整完後各個 metal 後,

前後連的 cell 也須更新自己的 cost 如圖 13(b)所示。

- 18 -

第 四 章 實 驗 數 據

在這一份研究中所用到的測試電路分別是 iscas85 的 s35932、s38417、s38584 以及 ITC99 的 b17。這裡我們平均的去放電路中用到的 cell type,用的是 SOC Encounter 提供的指令 createSpareModule 和 placeSpareModule,執行這些指令 插入 spare cell 是在 placement 之後,表格 1 為一些電路的基本資訊。

表格 1 電路資訊

Circuit critical

path(ns) Density(%) total cells

大部分的電路沒插入 spare cell 前的原本 density 都在 80%以上,spare cell 放 放後,大約增加 3%~5%,layer 的總數為 6 層。然後表格二為不同策略下最後 repairable 的比率,

表格 2 修改後電路 repairable 比率

Circuit FIB repair rate(%)

Spr only Random AvgCost Expect ReFL

90nm 的製程以下,在電路中完全沒調整的情況下,FIB repair 能成功的機率 近乎沒有,原因在於 cell 本身就太小,導致就算很多 spare 上面沒有 metal,各自 pin 的上所挖 FIB 的範圍會銃重疊到,而不符合限制;或是 pin 的長度不滿足 FIB 最短的限制:1000nm。表格二中的 initial 的方式為 spare cell 經過調整,一般 cell 則無,最後得到的比例;random 則是隨機排序 spare cell 的序列,然後依序調整 spare cell,及其對應的一般 cell;Ours,則是 ReFL 的做法;這裡可以看出隨便 排序的 spare cell 所做出來,和我們的 framework 做出來的比較,進步的比例大

- 19 -

約可以到兩倍。

表格二中的"non STA"則是在原本的 framework 中,不考慮 FIB repair 後電路 所增加的延遲而得到的結果,這樣的條件下執行 ReFL 的結果,會出現只要有一 個 cell type 的 spare cell 能調整成功,其他的一般 cell 就能跟著調整,因 FIB repair 會增加很重的負載,在不考慮 timing 的問題下,會大大提高 repairable 的比例。

最後"mix"為在 ReFL 的正常 flow 做完後,將剩下 timing 不過的 cell 要做完調整 的比例,也就是說 mix 裡符合 timing 的比例為 ReFL 那一欄所示,而剩下的比例 cell 在做 FIB repair 的時候會影響到 critical path delay 的增加,如果錯誤診斷的模 式下有較大的 timing slack 則可對者些 cell 做 FIB repair。

- 20 -

第 五 章 結 論

在本研究中,針對電路的 def 檔中的 metal 進行微調,這些電路可沿用原先 routing 和 placement 所用的演算法,微調後的電路能保持的原本地 critical path delay,並使 FIB repair 的比例增加。

FIB repair 在 90nm 以下的電路中難以使用,需要針對在最底層的 spare cell 再增長 metal 的動作,使用改良後 RNR 的 detail routing 的演算法。另外我們使 用在 MFOB 中調整電路的方法,這些方法可以有效的增加 FIB observe 的比例,

且 metal 的長度不會增加,讓電路的改動能在最小,並且估計 FIB repair 後會增 加多少負載,在調整的過程中,去檢查 FIB repair 後的延遲。

實作中,我們證明了 ReFL 的確能有效地改善 FIB repair 的比例,其中 initial 的方法,證明了我們有需要對一般的 cell 做調整。我們設計了一套計算的方式排 列找出當前最適合的 spare cell 進行調整,比較 spare cell 排序上使用 random 的 方法,其餘兩者的條件相同,最後證明了能提升約兩倍的修復比例。最後我們也 列出了不考慮 timing 的情況可修復的比例,並且也提拱了完成 ReFL 後,再將 timing 可能不過的 cell 也做調整的比例,因為前者所需修復的 spare cell 較少,所 以留下比較多的空間來修復一般的 cell,但比例也相當接近。

在 repair 上的結果上,timing 導致失敗的比例相當嚴重,主要是因為在電路 中央的 spare cell 能修復的比例很低,如果能再繞線前先在這些 spare cell 上可供 觀察的空間,就可應該能大幅提升可修復的比例,但可能會影響到原本電路的效 能。如果不管 timing,在修復的比例上跟 MFOB 所做的節點 FIB 觀察的最大化 相比,感覺相當接近可修復的極限的,如果要能使這些值在更大化,就要從繞線 的時候開始考慮,但這樣勢必會傷害到原本的繞線演算法,或是能考慮到從晶片 背後做的 FIB,又會有其他完全不同的限制,需要去重新設計其他的演算法。

- 21 -

第 六 章 參 考 書 目

[1] Kuo-An Chen, " Design-for-Debug Layout Adjustment for FIB Probing and Circuit Editing" Test Conference (ITC), IEEE International, 2011

[2] Kai-hui Chang, Igor L. Markov, Valeria Bertacco, "Automating Post-Silicon Debugging and Repair." International Confernce on Computer-Aided Design (pp.

91-98). 2007

[3] M. L. Bushnell and V. D. Agrawal, Essentials of Electronic Testing, Kluwer, Boston,2000

[4] M. Abramovici, P. Bradley, K. Dwarakanath, P. Levin, G. Memmi, and D. Miller,

”A Reconfigurable Design-for-Debug Infrastructure for SoCs”, Design Automation Conference, pp. 7-12, 2006

[5] E. Anis and N. Nicolico, ”On Using Lossless Compression of Debug Data in Embedded Logic Analysis”, International Test Conference, pp. 1-10, 2007.

[6] E. Anis and N. Nicolico, ”Low Cost Debug Architecture using Lossy Compression for Silicon Debug”, Design Automation, and Test in Europe, pp.1-6, 2007.

[7] J.-S. Yang and Nur A. Touba, ”Expanding Trace Buffer Observation Window for In-System Silicon Debug through Selective Capture”, VLSI Tset Symposium, pp.

345-351, 2008.

[8] C. Shawn, C. C. Tsao, and T. R. Lundquist, ”Measuring back-side voltage of an integrated circuit”, U.S. Patent 6,872,581 B2, 2005.

[9] W.-M. Yee, M. Paniicia, T. Eiles, and V. Rao, ”Laser Voltage Probe (LVP): a Novel Optical Probing Technology for Flip-Chip Package Microprocessors”, Internation Symposium on the Physical and Failure Analysis of Integrated Circuits, pp. 15-20,1999.

[10] M. T. Abramo and L. L. Hahn, ”The Application of Advanced Techniques for Complex Focused-Ion-Beam Device Modification”, Microelectronics Reliability, Vol. 36, Issues 11-12, pp. 1775-1778, 1996.

[11] C. G. Talbot, M. Park, N. Richardson, P. Alto, and D. Masnaghetti, ”IC Modification with Focused Ion Beam System”, U.S. patent 5,140,164, 1992.

[12] D. C. Shaver and B. W. Ward, ”Integrated Circuit Diagnosis Using Focused Ion Beams”, Journal of Vacuum Science & Technology B; Microelectronics and Nanometer Structures, Vol. 4, Issue 1, pp. 185-188, 1986.

相關文件