1 / 18

Failure Candidate Identification for Silicon Debug

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

Download Presentation

Failure Candidate Identification for Silicon Debug

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Failure Candidate Identification for Silicon Debug 指導教授:林榮彬 教授 951414 李婉如 951453 許智涵

  2. 題目概述 • 當在晶片製造過程中,因製程之瑕疵,邏輯閘和導線可能會因瑕疵而無法正常工作,進而導致整個電路無法正常運作;我們所設計的程式將會找出電路中可能發生製程瑕疵的地方。 • 我們的工作必須找出simulation values和observed values不符合的原因,是在哪些gates或wires出了錯誤,我們稱這些為failure candidates。

  3. 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

  4. 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

  5. Input-(3) observed dump file O1 = 0 O2 = 1 O3 = 0

  6. 演算法 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

  7. 演算法 • 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)中。

  8. 演算法

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

  10. 演算法 • 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中。

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

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

  13. 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 流程圖

  14. 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

  15. 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

  16. 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

  17. 成果分析

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

More Related