Download de presentatie
1
Testen van Digitale Systemen
De economische noodzaak van het testen Fouten modelleren: het single stuck at model Testpatroon generatie om fouten te zoeken Fout simulatie: het verkrijgen van testvector en de bijbehorende fout(en) Fout simulatie in VHDL Digitaal Circuit Test Patronen 01010/110 01010 110 ? inputs outputs
2
De economische noodzaak van het testen
Het leveren van producten aan klanten onder een beheersbaar kwaliteitsniveau Kwaliteitsniveau houdt in: Voldoet het product aan de specificatie Uitval laag houden < voor een IC Redelijke kost/kwaliteit verhouding, testen kost 25% van de productprijs. Voorkomen van producten met fouten, naar welke fouten zoeken we? Tijdens ontwerp zoek je naar fouten door verifiëren: Definitie fouten Functionele fouten Routering problemen: power/timing Deze fouten zijn als het goed is opgelost tijdens het ontwikkeltraject van het ontwerp
3
Fabricage/productie fouten
• Particle defects: onzuiverheden en vervuiling van gebruikte materialen • Geen/onjuiste onderdelen op PCB/slechte soldeerverbinding. Leidt tot: Early failures/Infant Mortality: vroege uitval tijdens eerste gebruik. Digitaal Circuit Test Patronen 01010/110 01010 110 ? Product levensduur Product uitval goed fout Veel defecten manifesteren zich als functionele fouten. Door het product te onderwerpen aan een test met testvectoren kun je een uitspraak doen over de betrouwbaarheid van het product.
4
Fouten modelleren: het single Stuck-At model
Het gebruik van een foutmodel is noodzakelijk om het aantal te testen effecten die tot fouten kunnen leiden te reduceren. (onderbrekingen, kortsluiting, oxidatie, plaatselijke spanning, misalignment, onzuiverheden, latch-up, data corruption door alpha straling). Dynamische fouten: component buiten specificatie, timing failures: moeilijk een ontwerpstrategie voor te vinden. Statische fouten: kortsluitingen en onderbrekingen: met eenvoudige stuck-at foutmodel strategie te vinden. Het meest voorkomende model is het single stuck-at-one/stuck-at-zero foutmodel voor een verbinding (SSFM): Stuck At 1, SA1: de verbinding gedraagt zich alsof deze vast op ‘1’ zit: testvector ‘0/0’ Stuck At 0, SA0: de verbinding gedraagt zich alsof deze vast op ‘0’ zit: testvector ‘1/1’ 1 0 ? 1 ? SA1 Vdd Test Patronen 0/0 1/1 1 0 ? 1 ? SA0
5
SA0/1 model op en AND poort
Stel we hebben AND poort: Welke fouten test je met alle mogelijke inputvectoren? A B Q 1 AND SA0 SA1 Q A B • Stel AB=00 en de test geeft Q=1: dan betekent dit een SA1 op uitgang Q (of SA1 voor A en B: twee fouten tegelijk!) • Stel AB=01 en de test geeft Q=1: dan betekent dit een SA1 op uitgang Q of een SA1 op A • Stel AB=10 en de test geeft Q=1: dan betekent dit een SA1 op uitgang Q of een SA1 op B • Stel AB=11 en de test geeft Q=0: dan betekent dit een SA0 op uitgang Q of een SA0 op A of een SA0 op B Conclusie als je een testvector op de ingangen zet en de uitgang evalueert: Als het fout gaat weet je niet precies waar de fout zit: misschien kan een andere methode uitkomst bieden Als het goed gaat zijn er 1 of meerdere SA1/0 fouten die niet voorkomen.
6
Het samenvallen van fouten binnen 1 testvector: fault collapsing
Fault collapsing AND poort in tabel: • Foutklasse: een groep van equivalente fouten voor 1 bepaalde testvector (binaire inputcombinatie) • Bepalen van de noodzakelijke foutklassen mbv een tabel: Tabel bevat de uitgangswaarden indien de fout optreedt A0 = Stuck At zero op A B0 = Stuck At zero op B A1 = Stuck At one op A Wat is de reductie van het aantal testvectoren waarmee 100% testdekking kan worden behaald? Studenten maken OPDRACHT 1. AND SA0 SA1 Q A B Alle ingangscombinaties A 1 B Correcte uitgangscombinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 Alle ingangscombinaties A 1 B Correcte uitgangscombinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 * Te detecteren SA fout.
7
Faultcollapsing op poortniveau: AND, NAND en OR
Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1
8
Faultcollapsing op poortniveau: NOR, EXOR, EXNOR en NOT
Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 NOR EXOR Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 Alle ingangs combinaties A 1 B Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 Q0 Q1 EXNOR Alle ingangs combinaties A 1 Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 Q0 Q1 NOT
9
Gebruik Stuck-At model in een netwerk:
Twee definities: Fault activation: Aanbrengen van een testvector op de ingangen van een IC (Schakeling) om er voor te zorgen een bepaalde fout in een knooppunt te stimuleren met een signaal dat de inverse is van het fout niveau; Stel we hebben de onderstaande, gedeeltelijke, schakeling: Wat is de inputvector om een SA1 te testen op het knooppunt? AND OR NAND 1 SA1 Fault propagation/observation: Verandering op het knooppunt moet kunnen propageren naar een observeerbare output; OR NAND 2 SA1 Conclusie:onderzoek alle knooppunten en je hebt 100% testdekking voor SA1/0 onder twee voorwaarden: 1. geen redundancy er mag slechts 1 fout in de schakeling zitten! Probleem: SA0 op uitgang AND en SA0 op uitgang NAND2 kan ook optreden! Dit zijn equivalente fouten. →“Ieder voordeel heb z’n nadeel”: faultcollapsing
10
Opdracht Fault collapsing: Bepaal de noodzakelijke testvectoren mbv een tabel met foutklassen van onderstaande schakeling. Alle ingangs combinaties A 1 B C D Alle interne signalen X Y Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 A1 B0 B1 C0 C1 D0 D1 X0 X1 Y0 Y1 Q0 Q1 • Gebruik een ‘*’ om aan te geven dat een SA-fout gedetecteerd kan worden. • Tabel bevat de uitgangswaarden indien de fout optreedt NOR NAND A B C D X Y Q
11
Antwoord fault collapsing:
B C D NOR X Alle ingangs combinaties A 1 B C D Alle interne signalen X Y Verwachte uitgangs combinatie Q Opsomming van mogelijke SA fouten die kunnen optreden A0 * A1 B0 B1 C0 C1 D0 D1 X0 X1 Y0 Y1 Q0 Q1 NOR Q NAND Y Geef een testvectorset waarmee je alle SA-fouten afdekt. T1 = 1011 T2 = 0011 T3 = 0111 T4 = 0101 T5 = 0110
12
Conclusies: Stuck-At model checked statische fouten. Meerdere SA-fouten kunnen door 1 testvector afgedekt worden, dat noem je fault-collapsing. De conclusie is gebaseerd op de aanname dat slechts 1 fout per testvector optreedt. Door het samenvallen van SA-fouten onder 1 testvector heb je in de praktijk een beperkt aantal testvectoren nodig om een hoge (>99.9%) testdekking te krijgen. Als je alle mogelijke testvectoren hebt kun je, willekeurig, de “ideale” testvector set bepalen. Hoe komen we nu op een gemakkelijke manier aan een zo’n testvector set?
13
Het genereren van testvectoren
STEL: We zoeken naar alle SA1/0 fouten in een circuit: Alle combinaties ingangssignalen en elk knooppunt intern een keer hoog en een keer laag maken; Combinatorische schakeling: Hoeveel en hoe groot zijn de testvectoren voor n ingangen en m outputs? 2exp[n] testvectoren van lengte m+n Sequentiele schakeling: Hoeveel en hoe groot zijn de testvectoren voor n ingangen en m outputs en t geheugenelementen? 2exp[n]x2exp[t] testvectoren van lengte m+n Vraag: Als de tijd voor het testen met 1 testvector 1 μsec duurt en de schakeling heeft 20 ingangen, 10 uitgangen en 10 geheugenelementen, hoeveel testtijd hebben we nodig? Fault simulatie: technieken om de dekkingsgraad van testpatronen te bepalen door te beoordelen of een de aanwezigheid van een fout, bij een gegeven testvector, leidt tot een andere uitgangswaarde van het circuit als die in de foutvrije situatie.
14
Fault simulatie methoden:
Seriele fault simulatie: Simuleer elke SA1/0 afzonderlijk → computer power/time Parallel fault simulation: reductie door gebruik te maken van parallelle rekencapaciteit van CPU → maakt geen gebruik van fault collapsing Concurrent fault simulation: Maakt gebruik van equivalente fouten door bijhouden van fout lijsten Fault simulation in VHDL model: Fault injection Transparent fault injection
15
Seriële foutsimulatie
Modificeer het circuit voor elke Stuck-At fout en herhaal de simulatie voor alle mogelijke ingangscombinaties. Het single-stuck-at faultmodel suggereert dat er maar 1 fout tegelijk kan voorkomen en elk knooppunt in je schakeling kan Stuck-At 1 of Stuck-At 0 worden. Er zijn dus 2 maal zoveel simulaties nodig als en knooppunten zijn. Kost dus veel CPU-kracht en tijd. Hoeveel simulaties zijn nodig voor het onderstaande circuits? OR NAND AND NAND or NAND
16
Parallelle fault simulatie
AND OR A=1 B=1 C=0 D=0 G E F Principe: Maakt gebruik van de mogelijkheid dat een CPU de AND-, OR-, EXOR-, etc. operaties op vectoren kan uitvoeren. Stel het circuit hiernaast met een testvector A=1, B=1, C=0, D=0: Map elk SA1 en SA0 van een knooppunt op twee bitlocaties Bit 0 is het foutvrije circuit. Geef de SA fouten aan Voer bitwise operaties per kolom uit. Vergelijk de uitgangswaarde met de foutvrije waarde. Nadelen: 1. Aantal fouten dat parallel gesimuleerd kan worden is beperkt tot CPU bitlengte 2. Als meer dan twee states per bit worden gebruikt neemt parallelle capaciteit ook af 3. Alle fouten worden berekend: ook de fouten die geen verandering opleveren! Bit SA A B C D E F G - 1 A0 * 2 A1 3 B0 4 B1 5 C0 6 C1 7 D0 8 D1 9 E0 10 E1 11 F0 12 F1 13 G0 14 G1
17
Opdracht: Parallelle fault simulatie
Principe: Maak gebruik van de mogelijkheid dat een CPU de AND-, OR-, EXOR-, etc. operaties op vectoren kan uitvoeren. Stel het onderstaande circuit met een testvector A=1, B=1, C=1, D=1: Bit SA A B C D E F G Fout vrij 1 Detecteer baar A0 `0 2 A1 3 B0 4 B1 5 C0 6 C1 7 D0 8 D1 9 E0 10 E1 11 F0 12 F1 13 G0 * 14 G1 AND OR A=1 B=1 C=1 D=1 G E F Welke fouten zijn detecteerbaar?
18
Concurrent fault simulatie
Principe: Alleen het verschil tussen een foutvrije- en foute simulatie wordt bijgehouden Er moet een lijst bijgehouden worden van de poorten die verschillende inputs/outputs hebben in het foute circuit ten opzichte van de equivalente poort in het foutvrije circuit Bewerken van de foutlijst is het evalueren van de input signalen op dezelfde manier als voor het foutvrije circuit. Stel het onderstaande circuit met een testvector A=1, B=1, C=0, D=0: AND E1 1 SA1 op A B = 1 E2 A=1 SA1 op B E3 SA0 op A E4 SA0 op B E0 E = 1 A = 1 OR G0 G = 1 F0 C=0 D =0 F = 0 F1 SA1 op C F2 SA1 op D F4 SA0 op D F3 SA0 op C G1 SA0 op E F =0 G2 E=1 SA0 op F G4 SA1 op E G3 SA0 op G G5 SA1 op F G6 F=0 G8 G7 SA1 op G G9 G10 AND OR A=1 B=1 C=0 D=0 G E F Nadeel: Veel list processing
19
Concurrent fault simulatie: opdracht
Voer op basis van ABCD = 1100 de foutsimulatie voor ABCD= 0100 uit. Zet een /<nieuwe waarde> waar nodig A=1/0 B=1 C=0 D=0 E AND OR G OR F Set by step: 1) Label de gates van het foutvrije circuit met index 0 en de labelnaam van de output 2) Moduleer alle gates met mogelijke stuck-at fouten en geef als output de geëvalueerde waarde ** 3) Voeg de gates toe die een stuck-at fout kunnen propageren naar de tweede laag (OR met uitgang G) ** 4) Welke fouten zijn detecteerbaar? 5) Hoeveel berekeningen (gate evaluaties) zijn gedaan om alle detecteerbare stuck-at fouten van deze testvector vinden? Neem nu de testvector ABCD = 0000 en herhaal de vragen a) t/m e) door bewerkingen te doen op de voor ABCD=0100 gemaakte ”lijst”. **door de poorten te tekenen. AND E1 1 SA1 op A B = 1 E2 A=1 SA1 op B E3 SA0 op A E4 SA0 op B E0 E = 1 A = 1 / 0 OR G0 G = 1 F0 C=0 D =0 F = 0 F1 SA1 op C F2 SA1 op D F4 SA0 op D F3 SA0 op C G1 SA0 op E F =0 G2 E=1 SA0 op F G4 SA1 op E G3 SA0 op G G5 SA1 op F G6 F=0 G8 G7 SA1 op G G9 G10 Nadeel: Veel list processing
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.