330 likes | 763 Views
تولید الگوهای تست test pattern generation. دکتر سعادت پورمظفری مسلم دیده بان بهار88. تولید الگویهای تست. تولید تست( test generation ) اشکالی وجود دارد، کدام بردارهای تست آن را مشخص میکنند؟ شبیه سازی اشکال (fault simulation) برای یک بردار تست داده شده، کدام اشکالات قابل تشخیص اند؟. Test
E N D
تولید الگوهای تست test pattern generation دکتر سعادت پورمظفری مسلم دیده بان بهار88
تولید الگویهای تست • تولید تست(test generation) • اشکالی وجود دارد، کدام بردارهای تست آن را مشخص میکنند؟ • شبیه سازی اشکال(fault simulation) • برای یک بردار تست داده شده، کدام اشکالات قابل تشخیص اند؟ Test vectors (T) Faults (F) Test vectors (T) Faults (F)
تولید الگویهای تست • دسته بندی روش های تولید الگوهای تست: • تست کردن عملیاتی(functional testing) • تمام حالات مختلف ممکن ورودی را به مدار اعمال میکنیم و خروجی را چک میکنیم. • تست کردن ساختاری (Structural testing) • سعی میشود تا کمترین مجموعه تست مورد نیاز برای مشخص کردن اشکالات مدار استفاده شود.
تولید الگویهای تست Est. speedup over D-ALG (normalized to D-ALG time) 1 7 23 292 1574 ATPG System 2189 ATPG System 8765 ATPG System 3005 ATPG System 485 25057 Year 1966 1981 1983 1987 1988 1990 1991 1993 1995 1997 Algorithm D-ALG PODEM FAN TOPS SOCRATES Waicukauski et al. EST TRAN Recursive learning Tafertshofer et al.
تولید خودکار الگوی تستATPG • تولید خودکار الگوی تست(ATPG) فرآیندی میباشد که در آن الگوها برای یک مدار که بصورت دقیق توسط یک نت لیست در سطح منطقی توصیف شده، ایجاد میشوند. • یک اشکال معین را درسیستم در نظر میگیریم. • ورودی ها را طوری انتخاب میکنیم که خروجی بین مدار سالم و مدار خطادار متفاوت شوند. • جبر تولید خودکار الگوی تست (ATPG Algebras) • یک مجموعه نشان گذاری سطح بالای بولی، که مقادیر مدار سالم و خطا دار را باهم نشان میدهد.
جبر تولید خودکار الگوی تست (ATPG Algebras) sa0 sa1 Failing Machine 0 1 0 1 X Symbol D D 0 1 X Good Machine 1 0 0 1 X Meaning 1/0 0/1 0/0 1/1 X/X
D-algorithm • اصطلاحات • Singular cover • D-intersection • Primitive D-cube of a fault (pdf) • Propagation D-cubes (pdc)
Singular cover SC-AND SC-NAND SC-OR SC-NOR • sc : نسخه فشرده شده ی جدول صحت گیت SC-XOR SC-XNOR SC-NOT
D-intersection B A خاصیت جابجایی ندارد. هر چیزی با خودش یا X، خودش میشود.
Primitive D-Cube of Fault (pdf) • اشکال S-a-0 داده شده : • انتخاب سطری با خروجی 1 در SC • اشتراک(D-intersection) سطر انتخابی با (X,X,0) A 0 S-a-0 C B 0 D “X X 0”= “0 0 D” “0 0 1” SC-NOR سطری از SC که خروجی آن یک است، خروجی را D میگذاریم
Primitive D-Cube of Fault (pdf) • اشکال S-a-1 داده شده: • انتخاب سطری با خروجی 0 در SC • اشتراک(D-intersection) سطر انتخابی با (X,X,1) A 1 0 S-a-1 C B 0 1 D D SC-XOR “X X 1”= “1 1 D” “X X 1”= “0 0 D” “1 1 0” “0 0 0” سطری از SC که خروجی آن صفراست، خروجی را D میگذاریم
Primitive D-Cube of Fault (pdf) • مثال های بیشتر: 0 X 1 D X S-a-1 S-a-0 S-a-1 S-a-0 S-a-0 S-a-1 SC-AND SC-OR 0 D 1 X 0 0 D D D D
Propagation D-cubes (pdc) D D D D D D D D D • در SC جستجو میکنیم هر دو سطری که در یک ستون متفاوت بودند را با هم D-intersection میکنیم اگر خروجی Dیا D شود، معتبر است. A B C 0 1 0 1 0 D 1 D D SC-XOR PDC
Propagation D-cubes (pdC) • برای انتقال اشکال از یک ورودی گیت فقط لازم است در جدول SC دوسطر متفاوت از ورودی که میخواهیم اشکال از طریق آن منتشر شود، را بیابیم و از D-intersection آنها PDF حاصل میشود. A C B PDC SC-AND
D-algorithm • D-algorithm در سه مرحله انجام میشود: • یک اشکال را در یکی از نودهای مدار در نظر میگیریم. • اشکال داده شده را با PDF مناسب مدل میکنیم. • از محل وقوع اشکال تا یکی از خروجی های مدار یک مسیر را در نظر گرفته (X-path)، و با استفاده از PDC تاثیر اشکال را تا خروجی انتقال میدهیم(D-drive procedure) • برای سیگنالهای باقی مانده مدار با کمک SC مقدار مشخص میکنیم (justify)و اگر به تناقضی رسیدیم عقبگرد میکنیم (Consistency procedure) در هر مرحله هر انتسابی را در جدولD-cube ذخیره میکنیم و در هنگام عقبگرد از آخر ورودی های جدول را حذف میکنیم و انتخاب را عوض میکنیم.
D-algorithm • Number all circuit lines in increasing level order from PIs to POs; • Select a PDF to be the test cube; • D-drive (); • Consistency (); • return ();
D-algorithm 1 1 X • مثال 0 d f D D D 0 sa0 g 1 1 1 i e h Step 1: PDF step 2: PDC step 3: Justify & Consistency Check
D-algorithm A • اشکالات افزونه در D-algorithm e B g Sa0 f d C Step 1: PDF
D-algorithm A • اشکالات افزونه در D-algorithm e 1 B g Sa0 1 D f D d 0 X C Step 1: PDF step 2: PDC step 3: Justify & Consistency Check Inconsistency in e
Branch and Bound Search Branch:انتخاب 0 یا 1 برای ورودی A Bound: محدودیتهایی که از جستجوی قسمت نامفید درخت، جلوگیری میکنند A B Backtrack C راه حل با انتسابهای B=C=1 A=0 راه حل با انتسابهای A=C=0 B=1 راه حل با انتسابهای A=B=0 راه حل با انتساب A=1
PODEM S-a-0
PODEM • اصطلاحات • Objective: مقداری دهی سیگنالها بطوری که جستجو برای الگوریتم ATPG راحتتر شود • Backtrace: عملیاتی که انجام میدهیم تا مشخص کنیم که کدام ورودیها objective را فعال میکنند • D-frontier: گیتهایی که ورودی DیاD’دارند و خروجی آنها X میباشد • Implication: با ورودیهای معینی که داریم تا میشود سیگنالهای نامعین مدار را تعیین میکنیم • :Backtrackدر PODEM اگر D-frontier خالی باشد یا اگر خروجی مستقل لز اشکال تعیین شود، از Stack یک ورودی را بر میداریم و مقدار آن را برعکس میکنیم
PODEM الگوریتم: • همه ورودیها X • به یکی از ورودی هایی که مقدار معینی ندارد، یک مقدار نسبت میدهیم. با کمک objective و Backtraceسعی میکنیم ورودی مناسب را انتخاب کنیم. • با کمک ورودیهای مشخص شده، سیگنالهای میانی مدار را تا جایی که امکان دارد، تعیین میکنیم(Implication) • اگر الگوی تست تولید شده، تمام. • آیا ممکن است که با تعیین مقادیر سایر ورودی های مشخص نشده، الگوی تست تولید شود؟(امیدی هست؟) اگر ممکنه برو به 2 • برای ورودیهایی که مقداری به آنها منتسب کرده ایم اگر حالت امتحان نشده ای وجود دارد به 2 میرویم و انتساب دیگر را انجام میدهیم(Backtrack)
PODEM Y is constant A 0 1 4 1 1 3 B B 0 0 5 1 1 1 0 Sa1-t D’ 0 1 1 1 2 0 D frontier is empty 7 0 1 0 6 D’ 8 9
PODEM • مانند D-algorithm است ولی در آن لزومی ندارد که تمام ورودی ها و سیگنال ها را مقدار دهی کنیم و فقط به ورودیهای اولیه مقدار میدهیم و باعث میشود که پیچیدگی در بدترین حالت از2all-signal به2PIکاهش پیدا کند • در D-algorithm تصمیم گیری ها به ازای انتخاب از جدول PDC بودند ولی در PODEM تصمیم گیری به ازای انتخاب ورودی و انتساب مقدار به آن داریم • در D-algorithm به علت ناسازگاری Backtrackمیگردیم ولی در PODEM اگر D-frontier خالی شود یا اگر خروجی مستقلاً تعیین شده باشد، Backtrack میکنیم
PODEM g-s-1 0 1 D’ 1 0 Fault g-s-1 is redundant
PODEM e-s-1مثال: c D D fault is redundant B B
PODEM r-s-0 0 1 D D’ 0 1
PODEM fault is redundant S-a-1
FAN • گسترش در PODEM با کمک: • جستجوی درخت تصمیم گیری تا Headlines • استفاده از Multiple objectives • مقدار دهی قطعی به سیگنالهای میانی Immediate implication
FAN D-sa-1 k as a headline Step 6: Objective – sensitize fault. Implication stack – A = 1, E = 0, C = 1, B = 0. Implications – d = D, l = D or D, m = 0, n = D or D. D-frontier – g. D-frontier – g. Step 3: Objective – sensitize fault. Implication stack – A = 1, E = 0, C = 0. Implications – d = D, l = D or D, m = 0, n = D or D. D-frontier – g. Step 7: Objective – propagate fault to k. Implication stack – A = 1, E = 0, C = 1, B = 0, D = 0. Implications – d = D, e = 1, g = D, f = D, h = D, k = 0, l = 0, m = 0, n = 0. D-frontier – φ; D-frontier disappeared, so backtrack. Step 1: Objective – propagate any fault effect from k to n. Implication stack – A = 1. Implications – l = D or D. D-frontier – n. Step 9: Objective – sensitize fault. Implication stack – A = 1, E = 0, C = 1, B = 1. Implications – d = 1, l = D or D, m = 0, n = D or D. D-frontier – −; D-frontier disappeared, so backtrack, but no alternatives left. Fault is redundant (4 backtracks.) Step 4: Objective – propagate fault to k, set e = 1. Implication stack – A = 1, E = 0, C = 0, D = 1. Implications – d = D, e = 1, g = D, h = 0, k = 0, l = 0, m = 0, n = 0. D-frontier – φ; D-frontier disappeared, so backtrack. Step 5: Objective – propagate fault to k, Implication stack – A = 1, E = 0, C = 0, D = 0. Implications – d = D, e = 0, g = 1, h = 0, k = 0, l = 0, m = 0, n = 0. D-frontier – φ; D-frontier disappeared, so backtrack again. Step 8: Objective – propagate fault to k. Implication stack – A = 1, E = 0, C = 1, B = 0, D = 1. Implications – d = D, e = 0, g = 1, f = 1, h = 0, k = 0, l = 0, m = 0, n = 0. D-frontier – φ; D-frontier disappeared, so backtrack again. Step 2: Objective – propagate any fault effect from l to n. Implication stack – A = 1, E = 0. Implications – l = D or D, m = 0, n = D or D. D-frontier – −.