Issuu on Google+

Simularea rapidă a defectelor modelelor paralele pentru circuitele cu trei stări şi ieşiri bidirecţionale Iulian Sadoveac Universitatea Tehnică Gheorghe Asachi din Iaşi

Circuitele industriale conţin în mod frecvent elemente cu trei stări asemeneni magistralelor şi actuatoarelor, porţilor de transmisie şi intrări/ieşiri bidirecţionale. Sunt prezentate două modalităţi pentru aceste circuite şi anume: o metodă cu 5 valori de simulare rapidă a defectelor şi una cu 4 valori ale modelului paralel. Rezulatul demonstrează eficacitatea metodelor propuse în prezenţa elementelor cu trei stări care arată doar o mică degradare a performanţelor comparativ cu simulările de 2 sau 3 valori. Cuvinte cheie: simulare, defecte, circuite trei stări, intrări/ieşiri bidirecţionale

1. Introducere Circuitele conbinaţionale din generaţia celor de testare automată a modelelor încorporează adeseori algoritmi de simulare rapidă a defectelor (Fast Fault Simulation - FFS) pentru eliminarea defectelor, generare de teste aleatoare şi testarea prin simulare inversă. Aceşti algoritmi exploatează caracteristicile structurii circuitului pentru a minimiza numărul de defecte explicite returnate la ieşire. Aproape toate lucrările publicate despre metodele FFS (fast faul simulation) iau în consideraţie numai un subset de primitive logice binare ca: [n]and,[n]or,buffer,inversoare şi [n]xor. De asemeni, posibilitatea folosirii intrărilor/ieşirilor bidirecţionale nu este luată în considerare. Pentru a folosi metoda cea mai avansată de simulare a defectelor în testarea automată pentru circuitele cu elemente trei stări şi terminale de intrare/ieşire propunem un model 5 valori şi un altul 4 valori paralel. Caracteristicile principale sunt: •

Un set de primitive ce permit modelarea flexibilă a circuitelor trei stări unidirecţionale şi a terminalelor de intrare/ieşire.

• • • • •

Operaţii de simulare rapidă extinse pentru aceste elemente cu trei stări Detecţia conflictelor şi posibilelor conflicte pe magistralele cu 3 stări. Mod de recunoaştere a intrărilor/ieşirilor pentru terminalele I/O Formule pentru a calcula ieşirile elementelor cu 3 stări folosind codările. Operaţii de simulare rapidă la nivel de bit bazate pe codările de 4 valori propuse.

În continuare vom descrie elementele primitivelor:

2. Elemente primitive si modele de semnal pentru suportul logicii 3 stari. Această secţiune prezintă modelul de semnal 5 valori folosit în logica SP(single pattern) şi în cea de simulare a defectelor, elementele primitive pentru suportul circuitelor 3 stări şi o schemă de codare pentru reprezentarea modelelor 4 valori în două cuvinte de n-biţi pentru a exploata la nivel de bit operaţiile paralele.

2.1 Modele de semnal 5 valori pentru simularea defectelor modelelor simple Pentru circuitele logice binare există două valori de bază, dupa cum bine ştim: 0 şi 1, ce conduc la trei valori de bază pentru simulări: 0,1 şi X. Valoarea X denotă o valoare necunoscută datorită faptului că nu este iniţializată sau nu contează. Pentru circuitele cu 3 stări există trei valori de bază: 0,1 şi Z. Vom extinde acestea la cinci valori : 0,1,X,Z şi U. Valoarea U denotă o valoare ce nu poate fi cunoscută, pe când X este o valoare incomplet specificată/ determinată.


Un element z este evaluat la X dacă intrarea nu implică o valoare cunoscută . z este evaluat la U dacă valoarea de ieşire nu poate fi răspuns pentru intrare.

sau mai multe intrări sunt 0 sau 1 şi în acelaşi timp una sau mai mule valori sunt U. Aceasta nu ar trebui să se întample niciodată altfel circuitele pot fi afectate în timpul testării.

2.2 Elemente primitive

Aceste primitive ar trebui să fie suficiente pentru a modela majoritatea construcţiilor cu 3 stări. Pe lângă acestea au fost definite şi alte construcţii comune ODP (open drain pFET- colector in gol) si ODN (open drain nFET) (Figurile 7 si 8 ), pentru pFET si nFET cu colector în gol (Figura 9) şi TRINV (Figura 10) pentru inversorul cu trei stări.

Elementele primitive sunt divizate în categorii şi tipuri. În mod normal următoarele categorii şi tipurile lor erau suportate: GPI generic primary input(intrare generică primară): • PI (normal) primary input (intrare primară) • IRI internal primary input (intrare primară internă) • SRCPI source PI(sursa PI), fixată la 0,1,Z sau U. GPO generic primary output(ieşire generică primară): • PO(normal) primary output(ieşire primară) • IPO internal primary output(ieşire primară internă) • SINKPO ,PO neobservabil

Mai apoi pentru a modela terminalele de Intrare/Ieşire avem un tip GPI cu: HPI (PI ascuns) şi un tip GPO: cu PIO definit.

Figura 1. Elementul AND şi tabela de adevăr

GFANOUT:FANOUT(o intrare, ieşiri multiple). GGATE: (N)AND,(N)OR,(N)XOR,BUF.,INV. Tipurile SRCPI şi SINKPO sunt folosite pentru alternarea firelor de la şi spre macrouri într-un circuit. Pentru un element de tipul AND simbolul şi tabela de adevar cu 5 valori sunt exemplificate în Figura 1. Pentru a modela diferite tipuri de drivere de magistrală, porţi de transmisie, tranzistori de stare, porţi complexe CMOS, sunt definite elementele primitive SWI (switch) şi NSWI (switch cu control negativ la intrare). Pentru a modela magistralele a fost definită o categorie GBUS (generic) cu tipurile: BUS, WAND si WOR. BUS reprezintă o magistrale cu 3 stări, WAND si WOR reprezinta logici cablate cu valori dominante de 0 respectiv 1. De asemeni simbolurile şi valorile de adevăr se regăsesc în Figurile 4,5 şi 6. Un conflict pe magistrală are loc atunci când una sau mai multe intrări sunt 0 şi în acelaşi timp una sau mai multe intrări sunt 1. Un conflict potenţial are loc atunci când una

Figura 2. Elementul SWI şi tabela de adevăr

Figura 3. Elementul NSWI şi tabela de adevăr

Figura 4. Magistrala 3 stări şi tabela de adevăr


2.3 Procedura ‘Bus Patch’

Figura 5. Elementul WAND (AND cablat) şi tabela de adevăr

Pentru elementele de magistrală cu mai mult de două intrări, nu se realizează întotdeauna valoarea corectă pentru ieşire. De exemplu pentru o magistrală cu 3 intrări cu valorile 0,X,1. BUS[BUS[0,X]1] va returna mai degrabă X decât U şi chiar va apărea un conflict. Pentru toate elementele GBUS apare mereu o altă problemă. Considerând situaţia din Figura 12 magistrala evalueaza la X deoarece modelul de semnal 5 valori nu poate exprima ieşirea SWI, poate deveni doar O sau Z.

Figura 6 . Elementul WOR (OR cablat) şi tabela de adevăr

Figura 7 . Elementul ODP (open drain PFET) şi tabela de adevăr

Figura 8 . Elementul ODN (open drain NFET străpuns, deschis) şi tabela de adevăr

Figura 11: a) Intrări/ieşiri bidirecţionale b) Model Unidirecţional

Figura 12: Evaluarea magistralei necesită valorile si Este propusă urmatoarea soluţie, GBUS având valorile de ieşire y, valorile de intrare , valori de intrare ‘true’ şi o semnalizare de potenţial conflict cu c (0 dacă nu sunt conflicte):

Figura 9. Elementul TRI şi tabela de adevăr

2.4 Modelul de semnal paralel cu 4 valori Figura 10. Elementul TRINV (invertor trei stări) şi tabela de adevăr

Simularea defectelor paralele este folosită în generarea aleatoare a testelor şi simularea inversă, însă nu este necesară distincţia dintre valorile de semnal X şi U, aşadar vom avea nevoie doar de 4 valori


pentru semnal. Tabelul de adevăr poate deriva din cele cu 5 valori eliminând liniile şi coloanele pentru U (sau X) şi setând toţi X-şii în linii şi coloane pentru X(sau U ) la U. Codarea paralelă necesită doi biţi şi pentru fiecare valoare.

Tabel 1: Codare pe 2 biţi a valorilor 0,1,Z şi U

Tabel 2: Evaluările ieşirilor pentru modele paralele cu 4 valori, pentru porţile logice binare după în cazul în care cel puţin o intrare este Z sau U Considerând un vector cu valori de ieşire ce trebuie calculate, codate în şi din doi vectori de valori de intrare codaţi în şi urmează:

calculăm

parţial dupa cum

Dacă rezultatul acesta este 0 ambele valori de intrare nu sunt nici Z nici U. în acest caz are valoarea aşteptată (0) şi poate fi calculat ca în celălalt caz, dacă rezultatul nu este 0, este necesară o calculare mai complexă a lui şi mai multe calcule pentru . În tabelul 2 sunt specificate formulele de calcul presupunând că cel puţin una din cele două intrări este Z sau U. Pentru cele mai multe dintre primitivele de 3 stări, formula pentru calcularea lui se gaseşte în Tabelul 3.

Tabel 3: Evaluările ieşirilor pentru modelele cu 4 valori ale elementelor cu 3 stări.

3. Simulări rapide ale defectelor pentru 5 valori. Aceste simulări rapide ale defectelor pentru circuitele combinaţionale sunt bazate pe două linii de dezvoltare descrise pe scurt la început. Atunci cănd se introduc valori non binare ca X, în scopul detecţiei este observată o linie de semnal l dacă o tranziţie la valoarea opusă a lui l face ca GPO să execute şi el o tranziţie. Intrarea i a unei porţi g este critică dacaă o tranziţie la valoarea opusă lui i cauzează o tranziţie la ieşirea lui g la valoarea binară opusă. Pot fi considerate detectii potenţiale astfel de tranziţii de la 0 sau 1 spre o valoare necunoscută din moment de GPO face acest lucru. O altă linie de dezvoltare a simulării defectelor conduce la Propagarea Defectelor Simple ale Modelelor Paralele (PPSFP). Aici bitul este un cuvant şi operaţiile primitive la nivel de bit sunt exploatate pentru a evalua în paralel vectori ale porţilor de ieşire. Acest concept a fost explicat în subsecţiunea 2.4


În pofida dezvoltării am menţionat aici doar extensia de la 2 la 3 valori ale modelului paralel folosind valoarea X în detrimentul lui 0 sau 1. Circuitele cu elemente 3 stări necesită în general cel puţin 4 valori de semnal, fapt ce a dus la dezvoltatea metodelor de simulare a defectelor.

3.1 Modelul singular de simulare rapidă a defectelor

3.2 Criticalitate şi stiva de detectare a testelor. Pentru paşii (2) şi (5) intrările critice spre porţile logice trebuie să fie definite. Pentru a profita de valorile dominante şi caracteristicile unor intrări specifice ele pot fi definite ca în tabelul 4. În tabel se presupune că ieşirile sunt fie 0 fie 1 altfel toate intrările sunt non-critice. Pentru o intrare critică tab-ul criticality va fi 1, alfel va fi 0; Intrarile TRI, ODP si ODN nu pot fi niciodata critice.

Conceptual, această metodă se aseamănă cu cele prezentate anterior şi pate fi descrisă ca având: • • • • •

Identificare preprocesor Pentru fiecare model de test, iniţial este executată o logica de simulare (LS) ce asigură faptul că circuitul are defecte. Apoi, toate simulările inverse cu ieşire GPO sunt procesate Simulările inverse cu ieşiri FOS sunt procesate pe rând, în ordine inversă a nivelului Pentru fiecare simulare inversă f cu o ieşire FOS z şi 5 valori de ieşire, valoare de ieşire v:

1. Dacă , nici un defect nu este detectabil în f. Procesul continuă cu următorul test 2. Dacă sunt detectate urmări ale testelor în f dar nu sunt detectate defecte observabile în z procesul continuă cu următorul test. 3. O procedură de verificare determină observabilitatea lui z (pe GPO). Întoarce una din 3 valori: 0 pentru neobservabil, 1 pentru observabil şi 2 dacă nu s-a putu verifica observabilitatea. Rezultatul este salvat în w. 4. Dacă w= 2 rezultatul explicit al simulării este adăugat în z. 5. Dacă w=1, este marcată o greşeală în f care va fi detectabilă în z. • Pentru testele cu ieşiri GPO se va sări la (1) şi (5) pentru procese cu ieşire FOS. Marea diferentă dintre simulările cu 5 valori şi cele cu 2 sau 3 este desigur folosirea unui semnal cu 5 valori in LS si FS.

Tabel 4: Intrări critice pentru porţile binare şi elementele 3 stări pentru logica cu 5 valori

3.3 Procedura de verificare Pentru a facilita procesul de verificare, vom ţine pentru toate liniile de semnal într-o verificare, astfel că procesul pentru următoarea simulare il va putea accesa. este setat iniţial la 0; La sfârşitul procesului de simulare cu ieşiri FOS, vom seta la 0 pentru toate FOBurile b ale FOS.

3.4 Simularea explicită a defectelor După ce injectarea defectelor schimbă valoarea unui semnal, rezultatele implicate (evenimentele) pe alte linii de semnal trebuie să fie determinate explicit pentru a se vedea


dacă observaţia la GPO este posibilă. Simulatorul explicit este un simplu test condus de eveniment folosind modelul semnalului cu 5 valori impus, procesând elemente în ordinea nivelurilor din stiva ce opreste procesarea evenimentelor dacă nici unul nu este lăsat sau valoarea unui GPO execută o tranziţie binară.

4. Simularea cu modele 4 valori În cele ce urmează lungimea vectorului este n, presupunând cuvinte de n-biţi, dacă nu cumva sunt setate altfel. Fiecare poziţie în vector corespunde unui model de test. Procesul pentru FFR f cu iesire FOS z poate fi descris ca: 1. Dacă nici un defect nu este detectabil în f şi procesul trece la urmatorul FFR, altfel un vector binar u este setat egal cu , pentru a marca modelele folositoate. 2. O stivă TD în f determină pentru care dintre modelele care au o valoare de 1 în u. 3. O procedură de verificare incearcă să determine observabilitaea lui z verificând ramurile independente. Returnează doi vectori binari si 4. Dacă rezultatul simularii explicite este adăugat în z numai pentru acele modele ce au un 1 în . 5. Dacă în stiva TD se marchează defectele în f care sunt observabile în z

4.1 Criticalitate şi stiva de detectare a testelor. Pentru a executa procesul în paralel, criticalitatea diverselor tipuri de elemente trebuie să fie definită în paralel, dupa cum se arată în Tabelul 5. Expresiile sunt doar formule binare exprimand acelasi fapt ca şi în Tabelul 4, textul. Desigur că o implementate poate fi mult optimizată; de exemplu se poate renunţa la evaluarea expresiilor TRINV pentru intrările EP sau EN,deoarece acestea nu sunt niciodata critice.

Tabelul 4. Criticalitatea intrărilor pentru porţile logice binare si elementele 3 stări, cu valori date de ieşire şi valorile intrărilor pentru intrările Fiecare tuplu de 2 elemente v codează un vector de 4 valori de semnal.

4.2 Procedura de verificare Iniţializarea, salvarea şi resetarea liniei de semnal este executată ca un singur model, exceptând acest caz unde observabilitatea pentru ieşirile FFR sunt vectori codaţi în doi vectori binari si . Ieşirile FFR necesită un vector pentru a indica dacă observabilitatea este sau nu determinată. Un bit setat în acest vector corespunde valorii “2” returnat de verificarea cu un singur model.

4.3 Simularea explicita a erorilor Simularea explicită cu modele paralele a erorilor este un PPSFP(Parallel Pattern Single Fault Propagation) condus de eveniment, ca şi simulatorul folosind modelul de semnal patru valori, procesând elemente în ordinea nivelelor fără îmbunătăţiri bazate pe dominator. Acesta opreşte procesarea evenimentului dacă pentru nici unul sau pentru toate modelele, un GPO a aprobat observaţia pentru eroare.


Raportul dintre timpii de procesare 3V şi 2VPP a fost de 8.64 iar pentru 5V cu 4VPP a fost 7.48 Timpii pentru 4VPP pot fi cu 40% mai mari decat acei pentru 2VPP. Media creşterii a fost de 18.5%. Aceasta poate fi explicată prin fatpul ca majoritatea operaţiilor locale au trebuit să evalueze vectori pe 2 biţi în locul celor unari din modelul FFS2VPP. Totuşi, viteza 4VPP comparată cu 5V este aproape aceeaşi cu cea a 2VPP comparata cu 3V, făcând simularea paralelă (PP FFS) o unealtă foarte utilă pentru circuitele logice cu 3 stări.

Tabel 6. Timpul simularii erorilor pentru 224 modele aleatoare pentru testul ISCAS (benchmark).

În continuare au fost evaluate teste de performanţa pentru modele industriale (cele mai multe de la Philips Electronics).

5. Rezultate experimentale Metodele propuse pentru simularea erorilor au fost implementate în C++ (într-un sistem ATPG – automated test pattern generation), reutilizând cât de mult posibil codul algoritmilor convenţionali pentru circuitele logice binare. Acolo unde nu s-a putut realiza acest lucru au fost postate structuri echivalente. Algoritmii convenţionali sunt simulatori ai unui singur model de detecţie a erorilor folosind 3 valori logice (0,1 si X), numiti FFS3V (Fast Fault Simulation 3 Value) şi un model paralel (PP - parallel pattern) ce utilizează doar 2 valori logige, numit FFS2VPP (Fast Fault Simulation 2 Value Parallel Pattern). Pentru început, performanţa metodelor propuse a fost comparată cu cea a algoritmilor convenţionali pentru circuitele logice binare. Cazurile de test folosite au fost ISCAS’85 şi ISCAS’89 (circuite benchmark). Tabelul 6 arată timpul procesorului pentru 224 vectori de intrare pentru FFS3V, FFS5V, FS2VPP şi FFS4VPP. Pentru ultimele 2 metode cei 224 vectori au fost impachetaşi în 7 vectori, codati la nivel de bit pe câte 32. Se observă în acest tabel că simularea 5 valori poate fi foosită pentru circuitele logice binare fără nici o pierdere de performanţă comparând cu simularea 3 valori. În medie aceasta a fost cu 2.6% mai “înceată” decât cea cu 3 valori.

Tabel 7: Caracteristicile circuitelor industriale Tabelul 7 afişează numele circuitelor cu numărul liniilor de semnal şi elementele 3 stări conţinute în circuit. Condiţiile experimentului au fost aceleaşi ca şi pentru circuitele ISCAS, numai că aici au fost simulate 224 modele fără conflicte pe magistrală. Acest test a necesitat o atenţie specială pentru unele intrări primare: de ex. HPI (intrarile PIO), trebuie sa fie setate la o valoare logica Z şi alte intrări care conduc direct la magistrală ar trebui setate la Z. De asemenea, de fiecare dată cand un vector a fost generat aleator, simularea logică a trebuit să fie folosită pentru a verifica conflictele pe magistrală. Tabelul 8 ilustrează timpii procesorului şi acoperirea erorilor după 224 vectori de test pentru simularea erorilor prin metodele 5V şi 4VPP pentru circuitele 3 stări. Rezultatele arată că metodele de simulare paralelă au rezultate bune şi pentru circuitele 3 stări chiar şi atunci când viteza de procesare paralela nu e atât de mare ca la circuitele logice binare.


Aceasta poate fi explicată prin faptul că s-a dorit păstrarea eficienţei operaţiilor pentru porţile binare din procesarea paralelă 4 valori cu cele din procesarea cu 2 valori. De asemenea toate aceste operaţii pot fi încă optimizate.

Tabel 8: Timpii de simulare a erorilor şi acoperirea erorilor pentru 224 vectori aleatori în circuitele industriale.

6 Concluzii Pentru a folosi în mod eficient ATGP(automated test generation pattern ) pentru circuitele industriale, algoritmii obisnuiţi au fost extinşi pentru a folosi primitivele trei stări, magistralele şi Intrările/Ieşirile bidirecţionale. Simulările 3 valori au fost extinse la 5 valori cu detecţia conflictelor pe magistrală şi abilitatea de a folosi terminalele Intrări/ Ieşiri bidirecţionale. Simulările paralele cu 2 valori au fost extinse la 4 valori cu o codare a logicii nvalori în cuvinte de 2n-biţi, de asemeni cu detecţia conflictelor pe magistrală şi Ieşiri/ Intrări bidirecţionale. Toate operaţiile folosesc evaluarea paralelă la nivel de bit pentru cuvinte. Rezultatele experimentale indică faptul că algoritmii propuşi arată o foarte mică scădere a eficienşei sau chiar nici o scădere comparând cu metodele convenţionale aplicate logicii binare. Rezultatele pentru circuitele conţinând elemente primitive 3 stări şi magistrale arată că simularea rapidă a erorilor şi cea paralela pot fi implementate cu eficienţa ridicată, contribuind semnificativ la eficienţa circuitelor ATPG.


joomla