Adam Słowik Michał Białko Wydział Elektroniki i Informatyki Politechnika Koszalińska ul. JJ Śniadeckich 2, 75-453 Koszalin Ewolucyjne projektowanie i optymalizacja kombinacyjnych układów cyfrowych ze względu na liczbę tranzystorów Słowa kluczowe: sztuczna inteligencja, algorytmy ewolucyjne, kombinacyjne układy cyfrowe, projektowanie, optymalizacja. STRESZCZENIE W artykule przedstawiono zastosowanie algorytmu ewolucyjnego do projektowania i optymalizacji kombinacyjnych układów cyfrowych ze względu na liczbę tranzystorów. Przy użyciu proponowanej metody zaprojektowano cztery układy kombinacyjne o tablicach prawdy wybranych z literatury. Otrzymane wyniki są w wielu przypadkach lepsze od wyników uzyskanych innymi metodami. 1. WPROWADZENIE W przypadku projektowania kombinacyjnych układów cyfrowych można wyróżnić dwa kryteria optymalizacji: ze względu na liczbę bramek oraz ze względu na liczbę tranzystorów. W obu przypadkach ich minimalizacja prowadzi do zmniejszenia kosztów fizycznej implementacji danego układu. Minimalizacja liczby bramek jest szczególnie wymagana w przypadku gdy otrzymana funkcja logiczna ma być realizowana przy pomocy istniejących już elementów przetwarzających (EP) wchodzących w skład np. układu FPGA. Wówczas każdy element przetwarzający może realizować jedną wybraną funkcję logiczną reprezentowaną przez poszczególną bramkę. W tym przypadku im z mniejszej liczby bramek składa się układ, tym mniej EP będzie wymaganych do jego realizacji. Natomiast minimalizacja liczby tranzystorów jest szczególnie ważna w przypadku implementacji układu bezpośrednio w krzem. Wówczas im mniejsza liczba tranzystorów tym mniejszy rozmiar układu a tym samym mniejszy koszt produkcji. Do najbardziej popularnych metod projektowania kombinacyjnych układów cyfrowych można zaliczyć metodę Map Karnaugh a [1] oraz metodę Quine a-mccluskey a [2, 3]. Również od pewnego czasu do omawianego zagadnienia stosuje się algorytmy ewolucyjne. Proces ewolucyjnego tworzenia nowych układów jest zasadniczo różny od tradycyjnego projektowania, gdyż nie opiera się on na wiedzy i doświadczeniu projektanta lecz na procesie ewolucji [4]. Ewolucyjne projektowanie układów posiada mniej ograniczeń od projektowania opartego na wiedzy i doświadczeniu projektanta, w którym projektanci są nie tylko ograniczeni przez technologię w jakiej układ zostanie wytworzony, ale również przez własne III Układy cyfrowe 207
przyzwyczajenie (rutynę), inteligencję, wyobraźnię oraz twórcze myślenie [4]. Natomiast zastosowanie metod ewolucyjnych do projektowania układów pozwala uciec od opisywanych wcześniej ograniczeń i uzyskać dostęp do nowych możliwości [4]. Wśród metod ewolucyjnych można wymienić algorytmy: NGA (Genetic Algorithm with N-cardinality representation) [5, 6], MGA (Multiobjective Genetic Algorithm) [7] czy też opracowany przez autorów niniejszej pracy algorytm MLCEA (Multi-Layer Chromosome Evolutionary Algorithm) [8]. Głównym celem tych algorytmów jest projektowanie i optymalizacja kombinacyjnych układów cyfrowych ze względu na liczbę bramek. W niniejszym artykule przedstawiono ewolucyjną metodę projektowania i optymalizacji kombinacyjnych układów cyfrowych ze względu na liczbę tranzystorów. Metodę tą, będąca modyfikacją algorytmu MLCEA nazwano MLCEA-TC (Multi-Layer Chromosome Evolutionary Algorithm Transistor Count). Wyniki otrzymane przy jej użyciu porównano z wynikami otrzymanymi przy pomocy innych metod. 2. METODA MLCEA-TC Metoda MLCEA-TC różni się od wcześniej opracowanej metody MLCEA [8] tym, że kryterium optymalizacji jest minimalizacja liczby tranzystorów a nie liczby bramek. W związku z tym dokonano zmian funkcji celu oraz podobnie jak w pracy [10] przyjęto następujący zbiór bramek: NOT, NOR, XOR, NAND, BP (bezpośrednie połączenie wejścia z wyjściem bramki) zamiast zbioru: NOT, OR, XOR, AND, BP. Zmiany odnośnie zbioru bramek dokonano z tego względu, ponieważ fizyczna implementacja bramek NAND i NOR wymagana mniejszej liczby tranzystorów niż w przypadku bramek AND i OR oraz ze względu na porównywalność wyników pomiędzy prezentowaną metodą, a wynikami otrzymanymi w pracy [10]. Metoda MLCEA-TC działa w następujący sposób. Na początku, w celu utworzenia populacji startowej, tworzy się szablon projektowanego układu, który pokazano na rys. 1a, a strukturę i kodowanie osobników przedstawiono na rys. 1b. Rys. 1. Struktura: szablonu bramek (a), wielowarstwowego chromosomu reprezentującego ten szablon (b) W miejscu Wejście nr x chromosomu wpisuje się numer bramki szablonu (lub numer wejścia układu), której wyjście ma być podłączone do tego wejścia, w miejsce Typ Bramki nr x wpisuje się jedną z pięciu cyfr, które odpowiednio reprezentują: 1-bramka NOT, 2- bramka NAND, 3-bramka XOR, 4-bramka NOR, 5-bezpośrednie połączenie (BP) danego wejścia bramki z jej wyjściem. Cyfra 0 oznacza brak połączenia danego wejścia bramki szablonu, natomiast cyfra 6 oznacza wyjście układu. W miejsce Wyjście nr x wpisuje się numer bramki szablonu, której wyjście ma być podłączone do danego wyjścia układu. Wejścia całego układu są reprezentowane poprzez liczby ujemne np. wejście pierwsze jest oznaczone liczbą 1, itd. 208
Każdy osobnik w populacji przedstawia sobą określony układ kombinacyjny. Dla przykładu na rys. 2 przedstawiono trójwejściowy układ realizujący tabelę prawdy Układu nr 1 z tab. 1. Temu układowi odpowiada szablon dwuwejściowych bramek, wraz z połączeniami pomiędzy nimi, zaprezentowany na rys. 3. Natomiast szablon ten w populacji jest reprezentowany przez wielowarstwowy chromosom przedstawiony na rys. 4, w którym każda kolumna odpowiada jednej bramce szablonu. Bramki wchodzące w skład układu z rys. 2, wyróżniono na rys. 3 i rys. 4 kolorem szarym. Rys. 2. Przykładowy układ realizujący tabelę prawdy dla Układu nr 1 z tab. 1 Rys. 3. Szablon bramek odpowiadający układowi z rys. 2 Rys. 4. Wielowarstwowy chromosom odpowiadający szablonowi bramek z rys. 3 Rozmiar szablonu t dla projektowanego układu określa się eksperymentalnie według zależności: t=max(lwe,lwy) (1) gdzie: LWe liczba wejść układu, LWy liczba wyjść układu. W przypadku gdy przyjęty rozmiar nie powoduje znalezienia układu spełniającego określoną tabelę prawdy, wówczas zwiększa się go o jeden i powtarza obliczenia. Po utworzeniu populacji początkowej każdy osobnik jest oceniany przy pomocy funkcji celu FC1: v j, gdy O( ci) C I i 2 fc1i = ; FC1= ( ) 0, gdy O( ci) fc1i + Sc t LTMAX LT (2) = Ci i= 1 III Układy cyfrowe 209
gdzie: v liczba rzeczywista dodatnia (podczas eksperymentów przyjęto v=10), c i wektor zawierający i-tą kombinację sygnałów wejściowych (tabela prawdy), O(c i ) wektor odpowiedzi układu dla wektora c i, podanego na wejście układu, C i wektor zawierający poprawną odpowiedź układu (tabela prawdy), j liczba różnic na poszczególnych pozycjach pomiędzy wektorem O(c i ) a wektorem C i, I liczba wektorów wejściowych układu wynikająca z tabeli prawdy, t rozmiar szablonu, LT liczba tranzystorów w zaprojektowanym układzie, LT MAX maksymalna liczba tranzystorów przypadająca na bramkę z przyjętego zbioru, Sc współczynnik skalujący, określany według zależności (podczas eksperymentów przyjęto Sc = 0.007): v 0 < Sc < (3) 2 t LTMAX Wartość funkcji FC1 jest tym większa im dany osobnik (układ) w mniejszym stopniu spełnia zadaną tabelę prawdy. Podczas pracy algorytm dąży do jej minimalizacji. W przypadku gdy nie zostanie znalezniony układ spełniający tabelę prawdy ( FC1 v ), wówczas stosuje się takie operatory jak: krzyżowanie, mutację oraz selekcję wachlarzową [9]. Operator krzyżowania polega na cięciu wszystkich warstw dwóch losowo wybranych chromosomów w losowo wybranym punkcie i wymianie odciętych fragmentów pomiędzy nimi. Dzięki zastosowaniu chromosomów wielowarstwowych możliwe jest wycinanie całych bramek szablonu bez naruszania ich struktury. Operator mutacji natomiast polega na losowej zmianie typu bramki szablonu (w przypadku wybrania do mutacji genu leżącego w ostatniej warstwie chromosomu) lub zmianie połączenia pomiędzy bramkami szablonu (gdy do mutacji wybrany jest gen z pozostałych warstw). W przypadku znalezienia układu spełniającego tabelę prawdy ( FC1 < v ) następuje zamiana funkcji celu i algorytm przechodzi do drugiej fazy pracy. Celem nowej funkcji FC2 jest minimalizacja liczby tranzystorów w układzie. Funkcja FC2 jest tym mniejsza im układ składa się z mniejszej liczby tranzystorów i jest opisana zależnością: LT, gdy FC1< v FC2 = (4) w + LT, gdy FC1 v gdzie: w wartość kary, przy czym w powinno być większe od t 2 LT MAX (podczas eksperymentów przyjęto w = 10 5 ), pozostałe oznaczenia identycznie jak w zależności (1). Podczas pracy algorytm dąży do minimalizacji funkcji FC2. W drugie fazie pracy algorytmu zamiast selekcji wachlarzowej stosowano selekcję elitarystyczną, aby nie zagubić rozwiązania (układu spełniającego tabelę prawdy) znalezionego podczas pierwszego etapu pracy algorytmu. Kryterium zatrzymania algorytmu jest jego zbieżność (niezmienność najlepszego rozwiązania przez k pokoleń), a wynikiem jego działania jest układ reprezentowany przez najlepszy chromosom (cechujący się najmniejszą wartością funkcji celu FC2) w populacji. 3. PRZEPROWADZONE EKSPERYMENTY Do eksperymentów wybrano cztery układy testowe (identyczne jak w pracy [8]), których tabele prawdy przedstawiono w tab. 1. Symbol O reprezentuje wyjścia układu, symbol In oznacza wejścia układu. Podczas przeprowadzonych eksperymentów przyjęto wielkość populacji algorytmu ewolucyjnego równą 100, prawdopodobieństwo krzyżowania równe 0.5, prawdopodobieństwo mutacji równe 0.05, współczynnik a selekcji wachlarzowej [9] wynosił 0.3. Rozmiar szablonu określano zgodnie z zależnością (1). Dla wszystkich układów otrzymano wartość t=5 (matryca składająca się z 25 bramek). 210
Tab. 1. Tabele prawdy projektowanych układów Układ nr 1 Układ nr 2 Układ nr 3 Układ nr 4 In O In O In O In O X Y Z F Z W X Y F A B C D F A 1 A 0 B 1 B 0 X 2 X 1 X 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 W tab. 2 przedstawiono uzyskane wyniki przy użyciu metody MLCEA-TC. Dane porównawcze odnośnie innych metod zaczerpnięto z prac [8, 10]. Oznaczenie GA-TC reprezentuje wyniki otrzymane przy pomocy metody opisanej w pracy [10]. Symbole oznaczają: LB - liczba bramek, LT - liczba tranzystorów. Znak w zapisie otrzymanej funkcji oznacza negację. Wszystkie układy projektowano w oparciu o bramki dwuwejściowe. Zgodnie z pracą [10] przyjęto, że bramka NOT składa się z 2 tranzystorów, bramka NOR i NAND posiada 4 tranzystory, natomiast bramka XOR zbudowana jest z 16 tranzystorów. Tab. 2. Otrzymane wyniki dla projektowanych układów Układ numer 1 Human Design F=(X Y Z)+(X (Y Z)) 6 42 Genetic Algorithm F=(Z (X+Y)) (X Y) 4 34 GA-TC F=(((Y Z) X)+(Y+Z) ) 4 28 MLCEA-TC F=(((X Z) Y)+(X+Z) ) 4 28 Układ numer 2 Human Design F=((Z X)+(Y W ))+((X Y)(Z W )) 11 70 Genetic Algorithm F=(((W Y)+(W X)) ((Z+X+Y) Z)) 8 74 GA-TC F=((Z Y)+(X+Y) ((X Y) W) 6 48 MLCEA-TC F=(((X+Y) +Z) Y) ((X Y) W) 6 48 III Układy cyfrowe 211
Tab. 2. Kontynuacja Układ numer 3 Human Design F=((A B) ((A D)(B+C)))+((A+C)+D) 9 74 Genetic Algorithm F=((A B) A D)+(C+(A D)) 7 68 GA-TC F=((A+D) (B D) ((C+(B D)) +((A D) +C) ) ) 8 56 MLCEA-TC F=(((A B) (A D) ) (((A D) D) (B+C) )) 7 52 Układ numer 4 Human Design X 0 =A 0 B 0 ; X 1 =(A 1 B 1 ) B 0 +((A 1 B 1 ) A 0 ) B 0 X 2 =(A 1 B 1 )+(A 0 B 0 ) (A 1 +B 1 ) 12 98 Genetic Algorithm X 0 =A 0 B 0 ; X 1 =(A 0 B 0 ) (A 1 B 1 ) X 2 =(A 1 B 1 )+(A 0 B 0 ) (A 1 B 1 ) 7 72 GA-TC - - - MLCEA-TC X 0 =A 0 B 0 ; X 1 =(B 1 A 1 ) (A 0 B 0 ) X 2 =(((A 0 B 0 ) +(B 1 A 1 ) ) (B 1 A 1 ) ) 9 68 4. PODSUMOWANIE Z tab. 2 widać, że przy użyciu proponowanej metody możliwe jest projektowanie i optymalizacja kombinacyjnych układów cyfrowych ze względu na liczbę tranzystorów. We wszystich przypadkach uzyskane wyniki metodą MLCEA-TC są lepsze (układy składają się z mniejszej liczby tranzystorów w 9 przypadkach na 11 możliwych) lub porównywalne (w pozostałych 2 przypadkach) do wyników uzyskanych innymi metodami. Również można zauważyć, że minimalizacja liczby tranzystorów w układzie nie musi pociągać za sobą minimalizacji liczby bramek, co widać szczególnie w przypadku układu numer cztery. BIBLIOGRAFIA [1] M. Karnaugh, A Map Method for Synthesis of Combinational Logic Circuits, Transaction of the AIEE, Communications and Electronic, 72(I):593-599, November, 1953, [2] W. V. Quine, A Way to Simplify Truth Function, American Mathematical Monthly, 62(9):627-631, 1955, [3] E. J. McCluskey, Minimization of Boolean Function, Bell Systems Technical Journal, 35 (5):1417-1444, November 1956, [4] J. Greene, Simulated Evolution and Adaptive Search in Engineering Design, Experiences at the University of Cape Town, in 2 nd Online Workshop on Soft Computing, July, 1997, [5] C. A. Coello, A. D. Christiansen, A. H. Aguirre, Use of Evolutionary Techniques to Automate the Design of Combinational Circuits, International Journal of Smart Engineering System Design, 2000, [6] C. A. Coello, A. D. Christiansen, and A. H. Aguirre, Automated Design of Combinational Logic Circuits using Genetic Algorithms, Proceedings of the International Conference on Artificial Neural Nets and Genetic Algorithms, pages 335 338, April, 1997, [7] C. A. Coello, A. H. Aguirre, and B. P. Buckles, Evolutionary Multiobjective Design of Combinational Logic Circuits, Proceedings of the 2 nd NASA/DoD Workshop on Evolvable Hardware, pages 161-170, Los Alamitos, California, July 2000, [8] A. Słowik, M. Białko, Design and Optimization of Combinational Digital Circuits Using Modified Evolutionary Algorithm, Proceedings of 7 th International Conference on Artifficial Intelligence and Soft Computing, Lecture Notes in Artificial Intelligence, Volume 3070/2004, pp. 468-473, Springer-Verlag, [9] A. Słowik, M. Białko, Modified Version of Roulette Selection for Evolution Algorithm The Fan Selection, Proceedings of 7 th International Conference on Artifficial Intelligence and Soft Computing ICAISC 2004, Lecture Notes in Artificial Intelligence, Volume 3070/2004, pp. 474-479, Springer-Verlag, [10] P. Nilagupta, N. Ou-thong, Logic Function Minimization Base On Transistor Count Using Genetic Algorithm, in Proceedings of the 3 rd Information and Computer Engineering Postgraduate Workshop 2003 (ICEP 2003), Songkla, Thailand, January 2003. 212