III. ALGORITMUS VÝPOČTU TÚT OBVODU.
  III.3. Algoritmus výpočtu TÚT obvodu.

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

Z vývojového diagramu je zrejmé, že najväčším rozdielom oproti algoritmu výpočtu TÚT modulu je zahrnutie možnosti budovania viacerých citlivých ciest v jednom kroku TÚT obvodu. Pri budovaní viacerých citlivých ciest v jednom kroku TÚT obvodu vzniká riziko konfliktov z dôvodu stretávania a kríženia sa citlivých ciest v moduloch obvodu. Na základe uvedeného rizika sa predpokladá aj zvýšený počet neúspešných pokusov o vybudovanie kroku TÚT obvodu. Preto po vybudovaní každej citlivej cesty je potrebné uchovať nielen záznam o jej vybudovaní, ale aj zoznam nepoužitých ciest na výstup obvodu, aby bolo možné, v prípade neúspechu v niektorej fáze budovania kroku TÚT obvodu, vybudovať inú alternatívu ľubovoľnej z budovaných citlivých ciest.

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

Zoradenie modulov v obvode podľa poradia pri výbere. - podobne, ako pri výpočte TÚT modulu, sa pred výpočtom TÚT obvodu sa zoradia moduly v obvode tak, aby za sebou nasledovali v takomto poradí:

  1. moduly, ktorých všetky vstupy sú primárnymi vstupmi obvodu,
  2. moduly, ktorých aspoň 1 vstup je primárny vstup obvodu,
  3. moduly vnútri obvodu,
  4. moduly, ktorých výstup je primárnym výstupom obvodu.

Výber prvého ešte neotestovaného modulu. - spomedzi modulov obvodu sa vyberie prvý modul, ktorý ešte nebol úplne otestovaný v TÚT obvodu. Moduly sa prehľadájú v poradí, v akom boli usporiadané v predchádzajúcom bloku.

Nájdenie všetkých alternatív prvého, v TÚT obvodu ešte nepoužitého, kroku testu vybraného modulu. - v TÚT modulu môže existovať viac, ako jedna alternatíva kroku testu modulu. Preto sa v tomto bloku nájdu všetky alternatívy v TÚT obvodu ešte nepoužitého kroku úplného testu vybraného modulu.

Dosadenie prvej alternatívy kroku testu modulu do nového kroku TÚT obvodu. - do nového kroku TÚT obvodu sa na zodpovedajúce vodiče doplní prvá ešte nevyskúšaná alternatíva kroku úplného testu vybraného modulu.

Nájdenie všetkých ciest z i-teho výstupu modulu na výstupy obvodu. - nájdu sa všetky cesty z i-teho výstupu vybraného modulu na všetky dostupné výstupy modulu. Tieto cesty sú potencionálnymi citlivými cestami z daného výstupu. Vo veľkej väčšine prípadov je nutné vybudovať citlivé cesty zo všetkých výstupov modulu, aby bol dosadený krok z jeho TÚT použitý v kroku testu obvodu. V niektorých prípadoch postačuje vybudovať citlivé cesty len z niektorých, takzvaných citlivých, výstupov modulu. Vtedy je pojem "i-ty výstup modulu" potrebné nahradiť pojmom "i-ty citlivý výstup modulu".

Výber najkratšej, ešte nepoužitej, cesty na výstup obvodu. - spomedzi nájdených ciest z i-teho výstupu modulu sa vyberie najkratšia nepoužitá cesta.

Načítanie všetkých nepoužitých ciest z i-teho výstupu modulu na výstupy obvodu zo záznamu. - zo záznamu sa do pamäte načítajú informácie o všetkých nepoužitých cestách z i-teho výstupu modulu na výstupy obvodu. Blok sa vykoná, ak nastane požiadavka vybudovať inú alternatívu citlivej cesty z i-teho výstupu modulu. Takáto požiadavka môže nastať v prípade neúspechu v niektorej fáze budovania kroku TÚT obvodu

Budovanie i-tej citlivej cesty podľa vybranej cesty na výstup obvodu. - vybudovanie citlivej cesty z i-teho výstupu vybraného modulu, ktorá prechádza tými istými vodičmi, ako vybraná cesta na výstup obvodu.
Postup pri budovaní citlivej cesty v kroku TÚT obvodu je analogický s postupom pri budovaní citlivej cesty v kroku TÚT modulu. Je však rozšírený o generovanie náhradného kroku modulu v prípade, že sa nenájde krok TÚT daného modulu, vhodný na doplnenie do vytváraného kroku TÚT obvodu.

Uchovanie záznamu o i-tej vybudovanej citlivej ceste a nepoužitých cestách z i-teho výstupu modulu na výstupy obvodu - podobne, ako pri budovaní TÚT modulu, sa po vybudovaní cesty uchová záznam o jej budovaní. Je tiež potrebné uchovať záznam o nepoužitých cestách z i-teho výstupu modulu na výstupy obvodu, pretože pri vytváraní jedného kroku TÚT obvodu zvyčajne budujeme viacero citlivých ciest.

Konzistencia - vo fáze konzistencie sa doplnia do vytváraného kroku TÚT obvodu kroky testov ešte neobsadených modulov.
Postup pri konzistencii v kroku TÚT obvodu je analogický s postupom pri konzistencii v kroku TÚT modulu. Je však rozšírený o generovanie náhradného kroku modulu v prípade, že sa nenájde krok TÚT daného modulu, vhodný na doplnenie do vytváraného kroku TÚT obvodu.

Opätovné budovanie i-tej 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, alebo neúspešnom budovaní (i+1)-ej citlivej cesty.

Zápis prenosov kroku.- podobne, ako pri výpočte TÚT modulu, sa k vytvorenému kroku TÚT obvodu pridá informácia o tom, z ktorých vstupov na ktoré výstupy obvodu sa prenášajú citlivé hodnoty. Táto informácia je zapísaná, aby bolo možné použitie budovanej TÚT obvodu pri budovaní úplného testu iného obvodu, kde bude tento obvod použitý ako modul.

Optimalizácia kroku TÚT obvodu. - podobne, ako pri výpočte TÚT modulu, nájdu sa všetky moduly, ktorých dosadené kroky testu sú v kroku TÚT obvodu použité a krok TÚT modulu sa upraví.