Design för testning - Design for testing
Design för testning eller design för testbarhet ( DFT ) består av IC-designtekniker som lägger testbarhetsfunktioner till en hårdvaruproduktdesign. De tillagda funktionerna gör det lättare att utveckla och tillämpa tillverkningstester på den konstruerade hårdvaran. Syftet med tillverkningstester är att bekräfta att produktens hårdvara inte innehåller några tillverkningsfel som kan påverka produktens korrekta funktion.
Tester tillämpas i flera steg i hårdvarutillverkningsflödet och kan för vissa produkter också användas för hårdvaruunderhåll i kundens miljö. Testerna drivs vanligtvis av testprogram som körs med automatisk testutrustning (ATE) eller, i fallet med systemunderhåll, inuti själva det monterade systemet. Förutom att hitta och indikera förekomsten av defekter (dvs. testet misslyckas), kan tester kunna logga diagnostisk information om arten av de testade misslyckandena. Diagnosinformationen kan användas för att hitta källan till felet.
Med andra ord, svaret mellan vektorer (mönster) från en bra krets jämförs med svaret från vektorer (med samma mönster) från en DUT (enhet som testas). Om svaret är detsamma eller matchar är kretsen bra. Annars tillverkas inte kretsen som den var avsedd.
DFT spelar en viktig roll i utvecklingen av testprogram och som gränssnitt för testapplikation och diagnostik. Automatisk generering av testmönster , eller ATPG, är mycket lättare om lämpliga DFT-regler och förslag har implementerats.
Innehåll
Historia
DFT-tekniker har använts åtminstone sedan början av elektrisk / elektronisk databehandlingsutrustning. Tidiga exempel från 1940/50-talet är omkopplarna och instrumenten som gjorde det möjligt för en ingenjör att "skanna" (dvs selektivt undersöka) spänningen / strömmen vid vissa interna noder i en analog dator [analog skanning]. DFT förknippas ofta med konstruktionsmodifieringar som ger förbättrad åtkomst till inre kretselement så att det lokala interna tillståndet lättare kan kontrolleras ( styrbarhet ) och / eller observeras ( observerbarhet ). Konstruktionsändringarna kan vara strikt fysiska (till exempel att lägga till en fysisk sondpunkt i ett nät) och / eller lägga till aktiva kretselement för att underlätta styrbarhet / observerbarhet (t.ex. att sätta in en multiplexer i ett nät). Även om förbättringar av styrbarhet och observerbarhet för interna kretselement definitivt är viktiga för test, är de inte den enda typen av DFT. Andra riktlinjer handlar till exempel om de elektromekaniska egenskaperna hos gränssnittet mellan produkten som testas och testutrustningen. Exempel är riktlinjer för storleken, formen och avståndet för sondpunkterna, eller förslaget att lägga till ett högimpedansläge för förare som är anslutna till sonderna så att risken för skador på grund av körning minskar.
Under åren har branschen utvecklat och använt ett stort antal mer eller mindre detaljerade och mer eller mindre formella riktlinjer för önskade och / eller obligatoriska modifieringar av DFT-kretsar. Den gemensamma förståelsen för DFT i samband med Electronic Design Automation (EDA) för modern mikroelektronik formas till stor del av förmågan hos kommersiella DFT-programverktyg samt av expertis och erfarenhet av ett professionellt samhälle av DFT-ingenjörer som forskar, utvecklar och att använda sådana verktyg. Mycket av den relaterade kroppen av DFT-kunskap fokuserar på digitala kretsar medan DFT för analoga / blandade signalkretsar tar något av baksätet.
Mål för DFT för mikroelektronikprodukter
DFT påverkar och beror på metoderna som används för testutveckling, testapplikation och diagnostik.
De flesta verktygsstödda DFT som praktiseras i branschen idag, åtminstone för digitala kretsar, bygger på ett strukturellt testparadigm. Strukturella tester gör inga direkta försök att bestämma om kretsens totala funktionalitet är korrekt. Istället försöker den se till att kretsen har monterats korrekt från vissa byggnadsblock på låg nivå som anges i en strukturell nätlist . Exempelvis är alla specificerade logikgrindar närvarande, fungerar korrekt och korrekt anslutna? Villkoret är att om nätlistan är korrekt, och strukturella tester har bekräftat korrekt montering av kretselementen, så bör kretsen fungera korrekt.
Observera att detta skiljer sig mycket från funktionstestning , som försöker validera att kretsen under testet fungerar enligt dess funktionsspecifikation. Detta är nära besläktat med funktionsverifieringsproblemet för att avgöra om kretsen specificerad av nätlisten uppfyller funktionsspecifikationerna, förutsatt att den är korrekt byggd.
En fördel med strukturparadigmet är att testgenerering kan fokusera på att testa ett begränsat antal relativt enkla kretselement snarare än att behöva hantera en exponentiellt exploderande mångfald av funktionella tillstånd och tillståndsövergångar. Även om uppgiften att testa en enda logikport i taget låter enkel, finns det ett hinder att övervinna. För dagens mycket komplexa konstruktioner är de flesta grindar djupt inbäddade medan testutrustningen endast är ansluten till de primära ingångar / utgångar (I / Os) och / eller några fysiska testpunkter. De inbäddade grindarna måste därför manipuleras genom mellanliggande lager av logik. Om den mellanliggande logiken innehåller tillståndselement skapar frågan om ett exponentiellt exploderande tillståndsutrymme och tillståndsövergångssekvensering ett olösligt problem för testgenerering. För att förenkla testgenerering adresserar DFT tillgänglighetsproblemet genom att ta bort behovet av komplicerade tillståndsövergångssekvenser när man försöker kontrollera och / eller observera vad som händer på något internt kretselement. Beroende på DFT-val som gjorts under kretsdesign / -implementering kan generering av strukturella tester för komplexa logiska kretsar vara mer eller mindre automatiserade eller självautomatiserade [1] . Ett viktigt mål med DFT-metodologier är därmed att tillåta designers att göra avvägningar mellan mängden och typen av DFT och kostnad / nytta (tid, ansträngning, kvalitet) för testgenerationsuppgiften.
En annan fördel är att diagnostisera en krets om något problem uppstår i framtiden. Det är som att lägga till några funktioner eller bestämmelser i designen så att enheten kan testas i händelse av fel under dess användning.
Ser fram emot
En utmaning för branschen är att hålla jämna steg med de snabba framstegen inom chiptekniken (I / O-räkning / storlek / placering / avstånd, I / O-hastighet, intern kretsräkning / hastighet / effekt, termisk kontroll, etc.) utan att tvingas uppgradera testutrustningen kontinuerligt. Moderna DFT-tekniker måste därför erbjuda alternativ som gör det möjligt att testa nästa generations chips och enheter på befintlig testutrustning och / eller minska kraven / kostnaden för ny testutrustning. Som ett resultat uppdateras DFT-tekniker kontinuerligt, såsom införlivande av komprimering, för att säkerställa att testartidens tillämpningstid förblir inom vissa gränser som dikteras av kostnadsmålet för de produkter som testas.
Diagnostik
Speciellt för avancerade halvledarteknologier förväntas det att några av chips på varje tillverkad skiva innehåller defekter som gör dem icke-funktionella. Det primära syftet med testningen är att hitta och skilja dessa icke-funktionella chips från de fullt funktionella, vilket innebär att ett eller flera svar som tagits av testaren från ett icke-funktionellt chip under test skiljer sig från det förväntade svaret. Procentandelen chips som inte testar bör därför vara nära relaterade till det förväntade funktionella utbytet för den chipstypen. I verkligheten är det dock inte ovanligt att alla chips av en ny chiptyp som anländer till testgolvet för första gången misslyckas (så kallad nollutbytesituation). I så fall måste chipsna genomgå en felsökningsprocess som försöker identifiera orsaken till nollavkastningssituationen. I andra fall kan testavfallet (procentandel av testet misslyckas) vara högre än förväntat / acceptabelt eller svängas plötsligt. Återigen måste brickorna underkastas en analysprocess för att identifiera orsaken till det överdrivna testutfallet.
I båda fallen kan viktig information om arten av det underliggande problemet döljas på det sätt som chipen misslyckas under testet. För att underlätta en bättre analys samlas ytterligare felinformation utöver en enkel pass / fail till en fail-logg. Felloggen innehåller vanligtvis information om när (t.ex. testcykel), var (t.ex. på vilken testerkanal) och hur (t.ex. logikvärde) testet misslyckades. Diagnostik försöker härleda från felloggen på vilken logisk / fysisk plats inuti chipet problemet mest troligt började. Genom att köra ett stort antal fel genom diagnosprocessen, kallad volymdiagnostik, kan systematiska fel identifieras.
I vissa fall (t.ex. tryckta kretskort , Multi-Chip-moduler (MCM), inbäddade eller fristående minnen ) kan det vara möjligt att reparera en felaktig krets under test. För detta ändamål måste diagnostik snabbt hitta den felaktiga enheten och skapa en arbetsordning för att reparera / byta ut den felaktiga enheten.
DFT-metoder kan vara mer eller mindre diagnostikvänliga. De relaterade syftena med DFT är att underlätta / förenkla insamling och diagnostik av misslyckad data i en utsträckning som kan möjliggöra urval av intelligent felanalys (FA), samt förbättra kostnader, noggrannhet, hastighet och genomströmning av diagnostik och FA.
Skanningsdesign
Den vanligaste metoden för att leverera testdata från chipingångar till interna kretsar som testas (CUTs, för kort), och observera deras utgångar, kallas scan-design. Vid skanningsdesign är register ( flip-flops eller spärrar) i designen anslutna i en eller flera skannkedjor , som används för att få åtkomst till chipets interna noder. Testmönster flyttas in via avsökningskedjan, funktionella klocksignaler pulsas för att testa kretsen under "infångningscykeln (erna)" och resultaten flyttas sedan ut till chiputgångsstiften och jämförs med det förväntade "bra" maskin "resultat.
Enkel applikation av skanningstekniker kan resultera i stora vektorsatser med motsvarande långa testartid och minneskrav. Testkomprimeringstekniker löser problemet genom att dekomprimera skanningången på chipet och komprimera testutgången. Stora vinster är möjliga eftersom varje speciell testvektor vanligtvis bara behöver ställa in och / eller undersöka en liten bråkdel av skannkedjebitarna.
Utsignalen från en skanningsdesign kan tillhandahållas i former såsom Seriell vektorformat (SVF), som ska utföras av testutrustning.
Felsökning med DFT-funktioner
Förutom att vara användbara för tillverkning av "go / no go" -testning, kan skannkedjor också användas för att "felsöka" chipkonstruktioner. I detta sammanhang utövas chipet i normalt "funktionellt läge" (till exempel kan en dator eller mobiltelefonchip köra monteringsspråkinstruktioner). När som helst kan chipklockan stoppas och chipet konfigureras om till "testläge". Vid denna punkt kan det fullständiga interna tillståndet dumpas ut eller ställas in på önskade värden med hjälp av skannkedjorna. En annan användning av skanning för att hjälpa till att felsöka består av skanning i ett initialt tillstånd till alla minneelement och sedan gå tillbaka till funktionsläge för att utföra systemfelsökning. Fördelen är att föra systemet till ett känt tillstånd utan att gå igenom många klockcykler. Denna användning av genomsökningskedjor, tillsammans med klockkontrollkretsar, är en relaterad underdisciplin för logisk design som kallas "Design för debug" eller "Design for Debuggability".
Se även
- Automatisk testutrustning
- Automatisk testmönstergenerering
- BIST
- Design för X
- Felbedömning
- Iddq-test
- JTAG
referenser
- IEEE Std 1149.1 (JTAG) Testbarhet Primer En teknisk presentation om Design-for-Test med centrum för JTAG och Boundary Scan
- VLSI Testprinciper och arkitekturer , av LT Wang, CW Wu och XQ Wen, kapitel 2, 2006. Elsevier.
- Elektronisk designautomation för handbok för integrerade kretsar , av Lavagno, Martin och Scheffer, ISBN 0-8493-3096-3 En undersökning av området elektronisk designautomation . Denna sammanfattning härleddes (med tillstånd) från Vol I, kapitel 21, Design For Test , av Bernd Koenemann.
- ^ Ben-Gal I., Herer Y. och Raz T. (2003). "Självkorrigerande inspektionsförfarande under inspektionsfel" (PDF) . IIE Transactions on Quality and Pålitlighet, 34 (6), s. 529-540.
- ^ "Design for debugging: the outspeak imperativ in chip design" artikel av Ron Wilson, EDN, 2006/21