18
Failure Candidate Identification for Silicon Debug 指指指指 指指指 指指 951414 指指指 951453 指指指

Failure Candidate Identification for Silicon Debug

Embed Size (px)

DESCRIPTION

Failure Candidate Identification for Silicon Debug. 指導教授:林榮彬 教授 951414 李婉如 951453 許智涵. 題目概述. 當在晶片製造過程中,因製程之瑕疵,邏輯閘和導線可能會因瑕疵而無法正常工作,進而導致整個電路無法正常運作;我們所設計的程式將會找出電路中可能發生製程瑕疵的地方。 我們的工作必須找出 simulation values 和 observed values 不符合的原因,是在哪些 gates 或 wires 出了錯誤,我們稱這些為 failure candidates 。. - PowerPoint PPT Presentation

Citation preview

Page 1: Failure Candidate Identification for Silicon Debug

Failure Candidate Identification for Silicon

Debug指導教授:林榮彬 教授951414 李婉如 951453 許智涵

Page 2: Failure Candidate Identification for Silicon Debug

題目概述 當在晶片製造過程中,因製程之瑕疵,邏輯閘和導

線可能會因瑕疵而無法正常工作,進而導致整個電路無法正常運作;我們所設計的程式將會找出電路中可能發生製程瑕疵的地方。

我們的工作必須找出 simulation values 和 observed values 不符合的原因,是在哪些 gates 或 wires 出了錯誤,我們稱這些為 failure candidates。

Page 3: Failure Candidate Identification for Silicon Debug

Input-(1)Netlistmodule DUT (O1, O2, O3, I1, I2, I3, I4);input I1;input I2;input I3;input I4;output O1;output O2;output O3;wire n1;wire n2;wire n3;wire n4;not G1 (n1, I1);not G2 (n2, I2);not G3 (n3, I3);or G4 (O1, n1, n2);nor G5 (n4, n2, n3);and G6 (O2, n4, I4);not G7 (O3, I4);endmodule

Page 4: Failure Candidate Identification for Silicon Debug

Input-(2) Simulation dump fileI1 = 1I2 = 0I3 = 1I4 = 1n1 = 0n2 = 1n3 = 0n4 = 0O1 = 1O2 = 0O3 = 0

Page 5: Failure Candidate Identification for Silicon Debug

Input-(3) observed dump fileO1 = 0O2 = 1O3 = 0

Page 6: Failure Candidate Identification for Silicon Debug

演算法begin1. 找出 simulation file 和 observed file 相異的 output

值,從這些 output 以 Breadth-First Search 往 input的方向找出其路徑之交集

2.for (i=1 to 所有邏輯閘的個數 ) 利用 static approach 篩選不可能的 candidates

3. 利用 dynamic approach 往前篩選不可能的 candidates

4.for (i=1 to 篩選過後的 candidates 個數 ) 執行” what-if” analysisend

Page 7: Failure Candidate Identification for Silicon Debug

演算法 Step 1: Step 1: 找出找出 simulation filesimulation file 和和 obsobs

erved fileerved file 相異的相異的 outputoutput 值,從這些值,從這些outputoutput 以以 Breadth-First SearchBreadth-First Search 往往 iinputnput 的方向找出其路徑之交集的方向找出其路徑之交集

我們先依照 sim.dump 檔和 obs.dump 檔,比對出兩個檔案中有哪些 output 的值不一樣,此時我們會將這些 outputs 利用 BFS 演算法往前追溯,並且建立一個經過路徑 (path) 的表格,記錄每條 wire 有無經過這些篩選過後的 outputs ;全部跑完後,檢查所有 wires ,將路徑之交集的 wires 放入候選清單 (candidates list) 中。

Page 8: Failure Candidate Identification for Silicon Debug

演算法Path I1 I2 I3 I4 I5 I6 I7 O1 O2 O3

O1 1 1 1 1 1 1 0 1 0 0

O2 1 1 1 1 1 1 0 1 1 0

Path W1 W2 W3 W4 W5 W6 W7 W8 W9

O1 1 1 1 1 0 1 1 1 1

O2 1 1 1 1 0 1 1 1 1

Page 9: Failure Candidate Identification for Silicon Debug

演算法 Step 2: Step 2: 利用利用 static approachstatic approach 篩選不可能篩選不可能

的的 signalsignal 在找完交集後,利用 static approach 把不可能的 wires 從candidates list 中篩選掉。先檢查所有的 gates ,並利用 input、 output 和 gate 之間的關係來進行篩檢。

GateOutputValue

規則

AND 0

1.當 input wire 的值為 1 時,該 input wire 即不為 candidate 。2.當 input wire 的值全部皆為 0 時,該 gate 所有 input wires 即不為 candidates 。

OR 1

1.當 input wire 的值為 0 時,該 input wire 即不為 candidate 。2.當 input wire 的值全部皆為 1 時,該 gate 所有 input wires 即不為 candidates 。

Page 10: Failure Candidate Identification for Silicon Debug

演算法 Step 3: Step 3: 利用利用 dynamic approachdynamic approach 往往

前篩選不可能的前篩選不可能的 signalsignal完成 static approach 後,進行 dyna

mic approach 來更進一步地減少 candidates 的個數。我們檢查 candidates list 中 wire 的 check 值,若 check 值已被設為 false,就將該 wire 前方的 wires 之 check 值亦設為 false ,並從 candidates list 中移除。必須注意的是若該 wire 連至兩個以上不同的 gates ,則要再檢查 wire 是否在 candidates list 中。

Page 11: Failure Candidate Identification for Silicon Debug

演算法

W2 在執行完 static approach 後就不在 candidates list 中,故 W2 之前的 wires 可不用考慮,即 I4 跟② I3 不為 candidates ;但由於 I3 接到兩個不同的 gates ,因此我們仍須檢查在執行完 static approach 後① I3 是否仍在 candidates list 裡,若是如此, I3 便不能在此階段被移除。

Page 12: Failure Candidate Identification for Silicon Debug

演算法 Step 4: Step 4: 執行’執行’ what-if’ analysiswhat-if’ analysis

經過前三種方法篩選後,相信已經篩檢了許多candidates ,再來我們將 candidates list 中的 wires進行’ what-if’ analysis 。在選定一條 wire 後,改變這條 wire 的值 (0→1 或 1→0) ,而此 wire 改變後會影響到其他 wires 的值也會跟著變動。

Page 13: Failure Candidate Identification for Silicon Debug

流程圖

Input files: 1. Verilog file 2. Simulation value 3. Silicon valuse

Start

Static Approach

Intersection

Dynamic Approach

Print FinalCandidates

Finish

What-ifAnalysis

Output file:FC.rpt

Page 14: Failure Candidate Identification for Silicon Debug

Test Case-(1)Netlistmodule testcase1(I1, I2, I3, I4, I5, O1, O2);input I1;input I2;input I3;input I4;input I5;

output O1;output O2;

wire W1;wire W2;wire W3;wire W4;

nand G1 (W1, I1, I3);nand G2 (W2, I3, I4);nand G3 (W3, I2, W2);nand G4 (W4, W2, I5);nand G5 (O1, W1, W3);nand G6 (O2, W3, W4); endmodule

Page 15: Failure Candidate Identification for Silicon Debug

Test Case-(2),(3)I1=1I2=0I3=1I4=1I5=0W1=0W2=0W3=1W4=1O1=1O2=0

O1=0O2=0

Page 16: Failure Candidate Identification for Silicon Debug

Test Case- OutputNumber of performing the 'what-if' analysis: 5I1I3W1W3O1Number of final candidates: 4I1I3W1O1

Page 17: Failure Candidate Identification for Silicon Debug

成果分析

Test Case 1 Test Case 2 Test Case 3 Test Case 4

時間 < 1 sec < 1 sec < 1 sec 1~2 sec

記憶體使用量 68 K 132 K 1232 K 150000 K

Page 18: Failure Candidate Identification for Silicon Debug

Thanks for your listening!951414 李婉如 951453 許智涵