6. Popis algoritmu dekompozície
       
 

 

 

Algoritmus na riešenie tejto úlohy postupuje pri vytváraní modulov od výstupu logickej schémy obvodu k jej vstupom.

Po načítaní súboru do poľa štruktúr používateľ zadá maximálny počet prvkov v jednom module
( zodpovedajúca premenná " zadpocet ").
Keď je zadaný počet členov v module rovný jednej
( zadpocet=1 ), tak vlastne ide o vytváranie modulov s jedným prvkom ( jedným logickým členom ), čiže algoritmus vytvorí toľko modulov koľko je členov v schéme a každý modul bude obsahovať jeden logický člen .

Ak zadpocet > 1 a zároveň zadpocet < maximálny počet členov v logickej schéme , tak nastáva dekompozícia na spojité moduly.

Prvý logický člen ( člen ,ktorého výstup je totožný s výstupom celej schémy ) sa zaradí do vytváraného modulu automaticky a jeho vstupy sa stotožnia so vstupmi modulu. Potom sa zisťuje počet pripojených logických členov
( LČ
) na vstupy prvého modulu. Ak sa po ich priradení do modulu neprekročí maximálny počet logických členov v module, tak sa zaradia do modulu a aktualizujú sa vstupy modulu, ktoré sa potom znova preverujú, inak sa zistia väzby jednotlivých logických členov na vytváraný modul
( počet vodičov ktorými sú nepridané členy spojené s modulom ).
Zistí sa počet členov s najsilnejšou väzbou ( r ). Ak sa po ich priradení do modulu neprekročí maximálny počet logických členov v module, tak sa zaradia do modulu, aktualizujú sa vstupy a pokiaľ ešte nie je dostatočný počet členov v module, tak sa zistí počet logických členov s rovnakou slabšou väzbou a znova sa testuje či sa neprekročí počet členov v module.

Ak majú všetky pripojené členy rovnakú väzbu, alebo ak by zaradenie členov s rovnakou väzbou prekročilo maximálny počet členov v module, tak sa používateľ rozhodne, ktorý z pripojených členov zaradí do modulu. Nemusí zaradiť ani jeden a potom sa prechádza na vytváranie nového modulu.
Alogiritmus umožňuje takzvaný automatický režim kde sa vynechá vplyv používateľa na proces dekompozície. Výber členov s rovnako silnou väzbou priradí algoritmus sám na základe náhodného výberu.
Proces zaraďovania logických členov do modulu sa končí po dosiahnutí maximálneho počtu prvkov v module, alebo keď už nieje pripojený žiadny logický člen, ktorý by už nebol použitý.
Algoritmus vytvára najprv moduly pre všetky výstupy logickej schémy. Potom nájde výstupy nedekomponovanej časti logickej schémy a vytvára moduly pre tieto výstupy.


Dekompozícia logického obvodu sa končí, keď sú všetky LČ zaradené do modulov, t.j. keď už nie sú žiadne výstupy nedekomponovanej časti.
Spojitosť v rámci jednotlivých modulov je zaručená tým, že algoritmus pri ich vytváraní kontroluje jednotlivé vodiče a zaradí do modulu len navzájom prepojené členy.