II. ALGORITMUS VÝPOČTU TÚT MODULOV.
  II.3. Algoritmus výpočtu TÚT modulov.

Na rozdiel od všeobecného riešenia touto metódou, navrhnutý algoritmus postupuje po jednotlivých krokoch TÚT modulu, pričom v každom kroku vykoná tieto operácie:

  1. Do nového kroku TÚT modulu doplň na zodpovedajúce vodiče ešte nepoužitý krok úplného testu vybraného logického člena.
  2. Vybuduj citlivú cestu na primárny výstup modulu pre práve doplnený krok testu (fáza budovania citlivej cesty).
  3. Vykonaj operáciu konzistencie pre práve doplnený krok testu.

Tieto operácie, tvoriace základné fázy algoritmu, sa opakujú, kým nie sú použité všetky kroky úplného testu všetkých logických členov. Ak sa podarí v TÚT modulu použiť všetky kroky úplného testu všetkých logických členov, je TÚT modulu úplná a tvorí úplný test modulu. Ak sa úplnú TÚT modulu vytvoriť nepodarí, znamená to, že v module sa môžu vyskytnúť poruchy, ktoré nie je možné testovať týmto algoritmom. Potom je vhodné na generovanie krokov testu, ktoré tieto poruchy v module otestujú, použiť inú metódu, napríklad D-algoritmus, alebo B-diferenciu.

Na <-- obrázok obrázku vľavo je znázornený vývojový diagram algoritmu výpočtu TÚT modulov.

Popis hlavných blokov vývojového diagramu:

Zoradenie logických členov v module podľa poradia pri výbere – pred samotným výpočtom TÚT modulu sa zoradia logické členy v module tak, aby za sebou nasledovali v takomto poradí:

  1. členy, ktorých všetky vstupy sú primárnymi vstupmi modulu,
  2. členy, ktorých aspoň 1 vstup je primárny vstup modulu,
  3. členy vnútri modulu,
  4. členy, ktorých výstup je primárnym výstupom modulu.
V tomto poradí sú členy vyberané, keď sa má do nového kroku TÚT modulu doplniť ešte netestovaný krok úplného testu logického člena. Zabezpečí sa tým čo najefektívnejší výpočet TÚT modulu.

Výber prvého, ešte neotestovaného člena – spomedzi logických členov modulu sa vyberie prvý taký člen, ktorý ešte nebol úplne otestovaný v TÚT modulu. Členy sa prehľadájú v poradí, v akom boli usporiadané v predchádzajúcom bloku.

Dosadenie prvého, v TUT modulu ešte nepoužitého, kroku testu vybraného člena do nového kroku TUT modulu - do nového kroku TÚT modulu sa na zodpovedajúce vodiče doplní v TÚT modulu ešte nepoužitý krok úplného testu vybraného logického člena.

Nájdenie všetkých ciest z výstupu vybraného člena na niektorý výstup modulu – aby bol doplnený krok člena použitý vo vytváranom kroku TÚT modulu, je potrebné vybudovať z výstupu vybraného člena citlivú cestu na výstup modulu. Preto sa nájdu všetky cesty z výstupu vybraného člena na všetky dostupné výstupy modulu. Tieto cesty sú potencionálnymi citlivými cestami.

Výber najkratšej, ešte nepoužitej, cesty na výstup modulu – spomedzi nájdených ciest sa vyberie najkratšia nepoužitá cesta. Nepoužitá cesta je taká cesta, podľa ktorej nebola neúspešne budovaná citlivá cesta.

Budovanie citlivej cesty podľa vybranej cesty na výstup modulu – vybudovanie citlivej cesty z výstupu vybraného člena, ktorá prechádza tými istými vodičmi, ako vybraná cesta na výstup modulu. O budovaní citlivej cesty pojednáva samostatná kapitola.

Uchovanie záznamu o vybudovanej citlivej ceste – počas budovania citlivej cesty sa vytvára záznam o tom, cez ktoré logické členy citlivá cesta prechádza, ktoré kroky testu týchto členov boli pri budovaní cesty do kroku TÚT modulu doplnené a či mohli byť do kroku TÚT modulu doplnené aj iné kroky členov (tzv. alternatívne kroky). Tento záznam sa po vybudovaní cesty uchová, aby mohla byť v prípade potreby vybudovaná iná alternatíva citlivej cesty.

Konzistencia– vo fáze konzistencie sa doplnia do vytváraného kroku TÚT modulu kroky testov ešte neobsadených logických členov. O konzistencii pojednáva samostatná kapitola.

Opätovné budovanie citlivej cesty podľa záznamu – budovanie inej alternatívy už vybudovanej citlivej cesty, podľa záznamu o vybudovanej citlivej ceste. Tento blok sa vykoná po neúspešnej fáze konzistencie.

Otimalizácia kroku TUT modulu – ak má modul viac, ako 1 výstup, nie je možné vo fáze konzistencie určiť, ktoré z dosadených krokov testu niektorých členov sú vo vytváranom kroku TÚT modulu použité. V tomto bloku sa nájdu všetky členy, ktorých dosadené kroky testu sú v kroku TÚT modulu použité a krok TÚT modulu sa upraví. Optimalizácia kroku nie je úplná, pretože optimalizačný mechanizmus nepreveruje možné súčasné scitlivenia viacerých ciest.

Zápis prenosov kroku – k vytvorenému kroku TÚT modulu sa pridá informácia o tom, z ktorých vstupov na ktoré výstupy modulu sa prenášajú citlivé hodnoty. Táto informácia je potrebná pre použitie budovanej TÚT modulu pri budovaní úplného testu obvodu, najmä ak má modul viac, ako 1 výstup.

Generovanie alternatívnych krokov – vytvorený krok TÚT modulu väčšinou nie je jediný krok, ktorý pokrýva danú skupinu porúch v obvode. Preto po vytvorení kroku algoritmus k nemu nájde, ak je to možné, alternatívne kroky. Alternatívy kroku testu modulu sa navzájom lýšia dosadenými krokmi testu vstupných členov modulu, ktoré sa na výstupe modulu neprejavia (nie sú v kroku TÚT modulu použité) . Za vstupný člen modulu sa pokladá člen, ktorého všetky vstupy sú vstupmi modulu.