180 likes | 298 Views
Failure Candidate Identification for Silicon Debug. 指導教授:林榮彬 教授 951414 李婉如 951453 許智涵. 題目概述. 當在晶片製造過程中,因製程之瑕疵,邏輯閘和導線可能會因瑕疵而無法正常工作,進而導致整個電路無法正常運作;我們所設計的程式將會找出電路中可能發生製程瑕疵的地方。 我們的工作必須找出 simulation values 和 observed values 不符合的原因,是在哪些 gates 或 wires 出了錯誤,我們稱這些為 failure candidates 。.
E N D
Failure Candidate Identification for Silicon Debug 指導教授:林榮彬 教授 951414 李婉如 951453 許智涵
題目概述 • 當在晶片製造過程中,因製程之瑕疵,邏輯閘和導線可能會因瑕疵而無法正常工作,進而導致整個電路無法正常運作;我們所設計的程式將會找出電路中可能發生製程瑕疵的地方。 • 我們的工作必須找出simulation values和observed values不符合的原因,是在哪些gates或wires出了錯誤,我們稱這些為failure candidates。
Input-(1)Netlist module 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
Input-(2) Simulation dump file I1 = 1 I2 = 0 I3 = 1 I4 = 1 n1 = 0 n2 = 1 n3 = 0 n4 = 0 O1 = 1 O2 = 0 O3 = 0
Input-(3) observed dump file O1 = 0 O2 = 1 O3 = 0
演算法 begin 1.找出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” analysis end
演算法 • Step 1: 找出simulation file和observed file相異的output值,從這些output以Breadth-First Search往input的方向找出其路徑之交集 我們先依照sim.dump檔和obs.dump檔,比對出兩個檔案中有哪些output的值不一樣,此時我們會將這些outputs利用BFS演算法往前追溯,並且建立一個經過路徑(path)的表格,記錄每條wire有無經過這些篩選過後的outputs;全部跑完後,檢查所有wires,將路徑之交集的wires放入候選清單(candidates list)中。
演算法 • Step 2: 利用static approach篩選不可能的signal 在找完交集後,利用static approach把不可能的wires從candidates list中篩選掉。先檢查所有的gates,並利用input、output和gate之間的關係來進行篩檢。
演算法 • Step 3: 利用dynamic approach往前篩選不可能的signal 完成static approach後,進行dynamic approach來更進一步地減少candidates的個數。我們檢查candidates list中wire的check值,若check值已被設為false,就將該wire前方的wires之check值亦設為false,並從candidates list中移除。必須注意的是若該wire連至兩個以上不同的gates,則要再檢查wire是否在candidates list中。
演算法 W2在執行完static approach後就不在candidates list中,故W2之前的wires可不用考慮,即I4跟②I3不為candidates;但由於I3接到兩個不同的gates,因此我們仍須檢查在執行完static approach後①I3是否仍在candidates list裡,若是如此,I3便不能在此階段被移除。
演算法 • Step 4: 執行’what-if’ analysis 經過前三種方法篩選後,相信已經篩檢了許多candidates,再來我們將candidates list中的wires進行’what-if’ analysis。在選定一條wire後,改變這條wire的值(0→1或1→0),而此wire改變後會影響到其他wires的值也會跟著變動。
Dynamic Approach Start What-if Analysis Input files: 1. Verilog file 2. Simulation value 3. Silicon valuse Print Final Candidates Intersection Output file: FC.rpt Static Approach Finish 流程圖
Test Case-(1)Netlist module 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
Test Case-(2),(3) O1=0 O2=0 I1=1 I2=0 I3=1 I4=1 I5=0 W1=0 W2=0 W3=1 W4=1 O1=1 O2=0
Test Case- Output Number of performing the 'what-if' analysis: 5 I1 I3 W1 W3 O1 Number of final candidates: 4 I1 I3 W1 O1
Thanks for your listening! 951414 李婉如 951453 許智涵