rola i znaczenie syntezy logicznej w technice
Transkrypt
rola i znaczenie syntezy logicznej w technice
Tadeusz Łuba Instytut Telekomunikacji Politechniki Warszawskiej Nowowiejska 15/19, 00-665 Warszawa http://wwwzpt.tele.pw.edu.pl ROLA I ZNACZENIE SYNTEZY LOGICZNEJ W TECHNICE CYFROWEJ UKŁADÓW PROGRAMOWALNYCH Słowa kluczowe: synteza logiczna, układy PLD i FPGA, dekompozycja STRESZCZENIE Celem referatu jest promocja metod i narzędzi syntezy logicznej w aspekcie ich zastosowania w projektowaniu układów cyfrowych. W szczególności omówione są aktualnie badane metody syntezy układów wielopoziomowych i dekompozycji, które – jak wskazują wyniki eksperymentów technologicznych i komputerowych – prawdopodobnie zdominują implementacje układów logicznych w przyszłości. Podsumowaniem referatu jest krótki opis uniwersyteckich narzędzi komputerowej syntezy logicznej. 1. WPROWADZENIE Synteza układów logicznych jest gałęzią wiedzy, która w ostatnich latach rozwijała się niezwykle intensywnie, a jej zastosowania szybko przekroczyły granice tradycyjnej dziedziny układów cyfrowych, dochodząc do obszarów wiedzy zaliczanej do szeroko rozumianych technik informacyjnych i sztucznej inteligencji (eksploracja i pozyskiwanie wiedzy, komputerowe uczenie się, systemy ekspertowe). Przede wszystkim jednak rozwój nowoczesnej syntezy logicznej był stymulowany zapotrzebowaniem wielkich koncernów przemysłu komputerowego i elektronicznego, jak też błyskawicznie rozwijającymi się w ostatnich latach firmami produkującymi układy scalone ASIC oraz komputerowe narzędzia do ich projektowania. W szczególności zapotrzebowanie na komputerowe narzędzia projektowania oraz coraz trudniejsze wyzwania stawiane przez technologie układów scalonych stały się najważniejszym czynnikiem rozwoju syntezy logicznej. Dla wielu nowoczesnych technologii znaczący wpływ na ostateczną realizację ma właśnie etap syntezy logicznej. Okazało się to bardzo istotne w technice układów programowalnych przez użytkownika, jakkolwiek szereg zadań techniki Full Custom i Semi Custom również charakteryzuje się dużą podatnością na „transformacje logiczne”. Daje się zauważyć tendencja wprowadzania syntezy logicznej do zadań do tej pory typowych dla mikroelektroniki, na przykład do zadań związanych z redukcją poboru mocy [4]. W referacie omówione będą aktualnie badane zagadnienia syntezy logicznej z podziałem całej tematyki na typowe struktury i modele układów logicznych, w szczególności w punkcie 2 omówiona będzie synteza układów dwupoziomowych, a w punkcie 3 – wielopoziomowych i dekompozycja funkcji boolowskich. Wreszcie synteza układów sekwencyjnych oraz uniwersyteckie systemy syntezy logicznej omówione będą w punktach 4 i 5. 2. SYNTEZA DWUPOZIOMOWA Optymalizacja układów dwupoziomowych jest istotna z wielu powodów. Po pierwsze, jest bezpośrednią metodą optymalizacji dla implementacji z programowalnymi matrycami logicznymi typu PLA i PAL. Po drugie, pozwala uprościć wyrażenia boolowskie opisujące układ, co jest istotne w dalszym procesie syntezy wielopoziomowej. W szczególności, moduł logiczny specyfikowany dwupoziomowo może być komponentem dowolnej, wielopoziomowej sieci logicznej, i jego optymalizacja korzystnie wpływa na całość układu. Z tych powodów optymalizacja dwupoziomowa jest kluczowa również w syntezie wielopoziomowej. Metody syntezy dwupoziomowej znalazły zastosowanie w klasycznym już algorytmie Espresso [2] i można je uznać za wystarczająco skuteczne w zakresie redukcji składników sumo-iloczynowych dla matryc PLA i PAL typu AND-OR. Dlatego obecne badania koncentrują się na zagadnieniach syntezy i optymalizacji funkcji logicznych na matrycach PLA z dekodowaniem wejść, w których matryca OR jest zastąpiona matrycą EX-OR, oraz na metodach minimalizacji symbolicznej i sieciach matryc PLA. Wielowartościowe matryce PLA typu EXOR są w realizacjach scalonych znacznie oszczędniejsze pod względem zajmowanej powierzchni krzemu niż klasyczne matryce AND-OR [2]. Ze względu na te zalety prace nad metodami minimalizacji funkcji wielowartościowych w klasie wielomianów Reeda-Mullera zostały ostatnio znacząco zintensyfikowane [18], [19]. Jednak ich bezpośrednie zastosowanie do syntezy w aktualnie produkowanych strukturach PLD/FPGA nie zostało nigdzie wykazane. Dla wielomacierzowych struktur PLD modyfikowane są klasyczne metody minimalizacji, które w połączeniu z coraz lepszymi procedurami dekompozycji (patrz p. 3) stwarzają szanse na poprawę efektywności wykorzystania zasobów sprzętowych struktur CPLD [3], [6]. 3. SYNTEZA WIELOPOZIOMOWA I DEKOMPOZYCJA Struktury dwupoziomowe są z natury rzeczy przystosowane do realizacji na bramkach AND, OR, NOT (ewentualnie NAND), a w konsekwencji również wygodne do implementacji w strukturach PLA i PAL, powszechnie stosowanych w technice układów PLD. Inne techniki realizacyjne, a w szczególności realizacje w strukturach Semi- i Full-Custom mają, niestety, całkiem odmienne wymagania na struktury układów kombinacyjnych. Ze względu na powierzchnię jaką zajmuje realizowany układ kombinacyjny w całej strukturze modułu scalonego, w realizacjach Semi- i Full-Custom oszczędniejsze (pod względem powierzchni) są tzw. struktury wielopoziomowe. Synteza wielopoziomowa posługuje się bogatym zbiorem operacji umożliwiających iteracyjną transformację sieci logicznej, pierwotnie zadanej w postaci minimalnego boolowskiego wyrażenia algebraicznego. Do najważniejszych należą operacje faktoryzacji i dekompozycji wyrażeń boolowskich. Operacje te transformują pojedyncze wyrażenia boolowskie na zbiór kilku nowych, niezależnych wyrażeń [2]. Znalazły one zastosowanie w słynnym pakiecie oprogramowania SIS, opracowanym na Uniwersytecie Kalifornijskim w Berkeley. Jeszcze inne metody syntezy są wymagane dla układów FPGA, a w szczególności dla układów FPGA o architekturze TLU (Table Look-Up) [8]. Są to układy o strukturze komórkowej, dla których naturalną metodą realizacji funkcji boolowskich jest tzw. dekompozycja funkcjonalna. Dekompozycja funkcjonalna okazała się skutecznym narzędziem w procedurach odwzorowania technologicznego dla struktur FPGA. Szczególnie obiecujące rezultaty oferuje metoda tzw. dekompozycji zrównoważonej [9], [12], [14]. Metoda ta polega na iteracyjnym stosowaniu różnych strategii dekompozycji – stosowana jest dekompozycja szeregowa rozłączna i nierozłączna oraz równoległa. Warunek wystarczający dekompozycji szeregowej jest sformułowany w modelach algebry ternarnej i rachunku nakryć [9], a jego istotą jest odpowiedni algorytm weryfikacji dekompozycji, w tym algorytm obliczania nakrycia βG spełniającego warunek wystarczający dekompozycji szeregowej. Cechą charakterystyczną metody jest wpływ odpowiedniej równowagi między dekompozycją szeregową a równoległą na liczbę komórek i liczbę poziomów układu zdekompowanego. Dekompozycja funkcjonalna znajduje również zastosowanie w projektowaniu wielomacierzowych struktur PLA [9]. Realizacje wielomacierzowe mogą znaleźć zastosowanie w minimalizacji czasu propagacji sygnału, jak też mogą wpływać na redukcję całkowitej powierzchni krzemu potrzebnej do realizacji zespołu funkcji boolowskich [2]. Można wykazać, że wielomacierzowe realizacje takich układów obliczone metodami dekompozycji funkcjonalnej [9] są konkurencyjne względem struktur uzyskiwanych metodami minimalizacji symbolicznej, specjalnie opracowanej dla potrzeb optymalizacji matryc PLA. Zatem odpowiednie połączenie procedur minimalizacji i dekompozycji funkcjonalnej może się okazać nowym kierunkiem badań dla wielomatrycowych układów CPLD. 4. UKŁADY SEKWENCYJNE W nowoczesnej syntezie logicznej, której bazą elementową są układy PLA, PLS zagadnieniem o dużym znaczeniu praktycznym stał się problem kodowania stanów wewnętrznych. Kodowanie wpływa w decydujący sposób zarówno na strukturę realizacji automatu, a więc na wzajemne połączenia między blokiem kombinacyjnym i elementami pamięci, jak i na złożoność bloku kombinacyjnego. Próba rozwiązania powyższego zagadnienia doprowadziła do opracowania wielu metod syntezy strukturalnej układów sekwencyjnych. Ich różnorodność jest wynikiem przyjmowania różnych założeń zarówno upraszczających obliczenia, jak też wynikających z ukierunkowania metody na określony typ elementów konstrukcyjnych. Stąd oddzielne metody syntezy układów sekwencyjnych dla struktur PLA [2], pamięci stałych ROM czy też modułów PLD [6]. Szczególnego znaczenia dostąpiły metody kodowania stanów odniesione do realizacji z układami typu PLA, w których funkcje wzbudzeń traktowane są łącznie jako wyrażenia boolowskie z dopuszczalnym, wspólnym wykorzystywaniem iloczynów (termów). Sytuacja taka jest powszechnie wykorzystywana w matrycach PLA stosowanych jako makrokomórki układów ASIC. Rozwiązaniem zadania kodowania jest w tym przypadku taka binarna reprezentacja stanów układu sekwencyjnego, dla której łączna liczba składników iloczynowych w wyrażeniach boolowskich, reprezentujących jego wszystkie funkcje wzbudzeń, jest możliwie mała. Założenie to (typowe w syntezie układów kombinacyjnych) uzyskuje w układach sekwencyjnych dodatkowy stopień swobody, jakim jest właśnie dobór kodowania, przy czym ze względu na złożoność obliczeniową zadanie to ogranicza się do obliczania kodowania stanów wewnętrznych zapewniającego minimalną powierzchnię matrycy PLA. Cechą charakterystyczną tych metod jest zastosowanie minimalizacji logicznej przed procesem kodowania stanów. Minimalizacja taka jest możliwa przy reprezentacji kombinacyjnej części układu sekwencyjnego metodą minimalizacji symbolicznej. Niestety metody takie są trudne do zastosowania w syntezie zorientowanej na struktury FPLD. Stąd wynika potrzeba kontynuacji takich badań. Prowadzone są one w dwóch kierunkach. Jeden dotyczy realizacji w strukturach macierzowych typu PAL i PLA [6], a drugi obejmuje realizacje w strukturach komórkowych FPGA i FLEX [16]. Ważną tendencją w projektowaniu układów sekwencyjnych są metody syntezy automatów współbieżnych [1]. Są to metody, w których układ sekwencyjny jest opisywany sieciami Petriego. Istotą tych metod jest fakt, że tzw. miejsca sieci Petriego odpowiadają przerzutnikom układu. W rezultacie naturalna własność tych sieci, jaką jest duża liczba miejsc, pozwala w naturalny sposób modelować zjawiska równoległe i współbieżne. Warto podkreślić, że rozwój metod syntezy automatów współbieżnych jest istotny dla implementacji układów sekwencyjnych w strukturach FPGA. 5. UNIWERSYTECKIE SYSTEMY SYNTEZY LOGICZNEJ Wraz ze wzrostem złożoności i różnorodności układów wykonywanych w zaawansowanych technologiach stało się niezbędne stosowanie efektywnych metod syntezy i form implementacji, uwzględniających kompromis pomiędzy złożonością obliczeniową a jakością fizycznej realizacji układu. Zaawansowanie tych metod, ich rozbudowane procedury, a także konieczność ciągłej modyfikacji, wynikającej z potrzeby dopasowywania się do nowych technologii stymuluje opracowywanie uniwersyteckich systemów syntezy i projektowania układów cyfrowych. Systemy te – często wykonywane w formie niezbyt wygodnej do stosowania w bezpośredniej praktyce inżynierskiej – spełniają w dziedzinie nowoczesnych metod syntezy układów cyfrowych nie mniejszą rolę niż firmowe systemy komercyjne. Typowym przykładem są systemy opracowane na uniwersytecie kalifornijskim w Berkeley, na przykład Espresso, MIS, SIS oraz system ASYL opracowany w INPG (Grenoble). Systemy SIS i ASYL, jakkolwiek opracowane dla tych samych potrzeb, różnią się między sobą nie tylko strategiami obliczeń, ale mają częściowo rozłączne zadania. Sytuacja taka wynika z częściowej specjalizacji uniwersytetów, której sprzyjają wielkie konferencje naukowe w dziedzinie syntezy logicznej i automatycznego projektowania układów cyfrowych: DAC, Euro-DAC, EDAC, IWLAS, ISMVL, ICCAD itp. Potwierdzeniem takiej „specjalizacji” są opracowania uniwersytetów w Kyushu [18], Grenoble, a w Polsce badania prowadzone w Politechnice Gliwickiej, koncentrujące się przede wszystkim na układach PAL i PLA, a ostatnio na zaawansowanych procedurach syntezy układów sekwencyjnych. Interesujące są również narzędzia syntezy opracowane na Politechnice Zielonogórskiej [1] oraz opracowany w Instytucie Telekomunikacji Politechniki Warszawskiej program DEMAIN [12], przeznaczony do syntezy logicznej zorientowanej na struktury FPGA. Dalej będą omówione eksperymenty, których celem było zbadanie wpływu zaawansowanych procedur syntezy logicznej na wynikowe realizacje systemów cyfrowych uzyskiwanych za pomocą narzędzi komercyjnych. Jako system uniwersytecki wybrany został system DEMAIN opracowany w Instytucie Telekomunikacji Politechniki Warszawskiej [12]. Eksperymenty te polegały na implementacji typowych układów cyfrowych – głównie z dziedziny teleinformatyki – za pomocą różnych systemów projektowania, a następnie na porównaniu ich realizacji pod względem liczby użytych komórek takiej samej struktury FPGA. Inaczej mówiąc – istotą eksperymentu było porównanie realizacji tego samego układu, projektowanego za pomocą różnych systemów i odwzorowanego technologicznie w takiej samej strukturze FPGA. Wymowa przeprowadzonych eksperymentów jest znacząca w tym sensie, że do projektowania użyto systemów renomowanych firm światowych, takich jak Altera, Synopsys, Exemplar i Xilinx. W ramach eksperymentów zaprojektowano następujące układy: o bin2bcd1 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 99, o bin2bcd2 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 355, o DESboxes – zespół skrzynek podstawieniowych szyfru DES, o rd88 – sbox z algorytmu kryptograficznego Rijndael, o DESaut – kombinacyjna część układu sekwencyjnego z implementacji algorytmu kryptograficznego DES, o 5B6B – kombinacyjna część układu kodera 5B-6B, o count4 – 4-bitowy licznik z mikrooperacjami COUNT UP, COUNT DOWN, HOLD, CLEAR i LOAD. W tabeli 1 przedstawiono wyniki porównania metody wykorzystującej dekompozycję zrównoważoną systemu DEMAIN z metodami zaimplementowanymi w systemach: SIS, FPGA Express, Leonardo Spectrum i MAX+PlusII. W tabeli podano liczbę komórek logicznych wymaganych do implementacji poszczególnych układów w strukturze FLEX typu FPGA. Z podanych rezultatów wynika, że metoda wykorzystująca dekompozycję zrównoważoną realizuje układ najoszczędniej pod względem liczby zajętych komórek, i wygrywa nawet z systemem SIS, co jest istotne o tyle, że SIS również stosuje metodę dekompozycji funkcjonalnej – jednak bez zastosowania dekompozycji zrównoważonej. W szczególności warto zwrócić uwagę na implementację konwertera kodu binarnego na kod BCD (wersja 1) oraz na implementacje skrzynek podstawieniowych (s-box) szyfrów DES i Rijndael. Jak widać wspomaganie procesu projektowania zaawansowanymi procedurami syntezy logicznej prowadzi do rezultatów niemożliwych do uzyskania nawet za pomocą Tabl. 1 Architektura FPGA EPF10K10LC84-3 Przykład FPGA Leonardo Express Spectrum 131 30 30 – 39 505 225 120 136 DESboxes 184 585 486 192 – rd88 167 332 341 245 248 DESaut 28 46 25 30 32 5B6B 41 92 100 49 51 Count4 11 74 17 11 13 DEMAIN MAX+Plus II bin2bcd1 13 bin2bcd2 SIS najlepszych systemów komercyjnych. Trzeba również podkreślić, że na jakość powyższych implementacji w systemach komercyjnych nie mają wpływu nawet najlepsze kompilatory języków HDL. Konwerter BIN2BCD1 jest typowym przykładem takiej sytuacji. Otóż konwerter ten można zaproektować bądź to w strukturze zbudowanej z bloków funkcjonalnych wg tzw. algorytmu +31), bądź też jako układ kombinacyjny realizujący bezpośrednio tablicę prawdy konwertera. W obu przypadkach strukturę konwertera można zapisać w językach opisu sprzętu np. AHDL lub VHDL. Opisując realizację wg algorytmu +3 w języku VHDL i dokonując odpowiedniej kompilacji w systemie MAX+PLUSII amerykańskiej firmy Altera, uzyskuje się realizację układu BIN2BCD1 na 32 komórkach struktury FLEX 10K. Ten sam układ opisany tablicą 1) Dokładny opis takiej realizacji znaleźć można w książce [8] prawdy (w specyfikacji VHDL instrukcjami CASE) i skompilowany w tym samym systemie Altery zajmuje 131 komórek FLEX. Oczywiście jest to realizacja znacznie szybsza od poprzedniej (co najmniej 8 razy), gdyż w tym przypadku opóźnienie sygnału jest wnoszone wyłącznie przez układ kombinacyjny, a poprzedni układ był strukturą sekwencyjną wymagającą do pełnej konwersji 8 taktów sygnału zegarowego. Okazuje się jednak, że realizację tę można znakomicie uprościć, również pod względem liczby komórek. Otóż wprowadzając tablicę prawdy układu BIN2BCD1 do systemu DEMAIN i dokonując odpowiedniej dekompozycji uzyskuje się realizację tegoż samego konwertera na zaledwie 13 komórkach struktury FLEX – czyli 10 razu lepiej. Nie mniej intrygujące są wyniki implementacji skrzynek permutacyjnych S-box algorytmów kryptograficznych DES i Rijndael. Dobry stosunkowo wynik realizacji DESboxes w systemie Leonardo Spectrum można uznać za przypadek, gdyż już realizacja innego układu tego samego typu (rd88) wyraźnie ustępuje implementacji uzyskanej w systemie DEMAIN. Ten sam konwerter bin2bcd zrealizowano w za pośrednictwem kompilatora VHDL systemu Lattice ispDesignExpert w strukturze ispLSI1016 [5]. Dla realizacji bez dekompozycji uzyskano odwzorowanie na 21 makrokomórkach rozmieszczonych na 5 poziomach. I również w tym przypadku dekompozycja zmniejszyła zajętość zasobów sprzętowych pozwalając umieścić ten sam układ na 19 makrokomórkach i 3 poziomach. W tabeli 2 przedstawiono porównanie sposobów realizacji układu sekwencyjnego opisanego tablicami przejść-wyjść z zakodowanymi stanami wewnętrznymi w systemie Altery MAX+PlusII. Dla każdego ze sposobów implementacji tego układu w tabeli przedstawiono liczbę komórek logicznych i wielkość pamięci potrzebną do realizacji (wielkość układu) oraz maksymalną częstotliwość sygnału zegarowego (szybkość działania układu). W kolumnie oznaczonej FF_MAX+PlusII przedstawiono rezultaty otrzymane przy wykorzystaniu systemu Altery w klasycznej implementacji z użyciem przerzutników. W kolumnie FF_DEMAIN przedstawiono wyniki implementacji układu sekwencyjnego ze zdekomponowaną częścią kombinacyjną. Wyniki realizacji układu sekwencyjnego z użyciem pamięci ROM przedstawiono w kolumnie oznaczonej ROM, zaś wyniki implementacji Tabl. 2 FF_MAX+PlusII Przykład DESaut LCs / Bits 46/0 Speed [MHz] 41,1 FF_DEMAIN LCs / Bits 28/0 Speed [MHz] 61,7 ROM LCs / Bits 8/1792 UMA_ROM Speed [MHz] 47,8 5B6B 93/0 48,7 43/0 114,9 6/448 48,0 Count4 72/0 18/0 1) 44,2 86,2 1) 11/0 13/0 2) 68,5 90,0 2) 16/16384 – 4) 1) LCs / Bits 7/896 – Speed [MHz] 47,1 3) 12/1024 – 3) 39,5 układ opisany specjalną konstrukcją języka AHDL; 2) dekompozycja z minimalną liczbą poziomów logicznych, 3) dekompozycja niemożliwa; 4) za mała pojemność pamięci do implementacji układu. z zastosowaniem układu modyfikacji adresu przedstawiono w kolumnie UMA_ROM. Szczególnie interesujące są wyniki implementacji układu licznika count4. W tym przypadku zapis tablicowy układu licznika prowadzi do zwiększenia liczby zajętych komórek. Poprawę sytuacji uzyskuje się przez zastosowanie specjalnych konstrukcji języka HDL. Jednakże zastosowanie dekompozycji zrównoważonej pozwala nie tylko osiągnąć bardzo dobre wyniki, ale pozwala także kontrolować proces implementacji. Procedura dekompozycji umożliwia konstrukcję bądź to układu o niewielkiej liczbie komórek logicznych bądź o dużej szybkości działania. Warto zauważyć, że układ optymalizowany z punktu widzenia szybkości działania jest zrealizowany na stosunkowo małej liczbie komórek logicznych. Realizacja układów sekwencyjnych z wykorzystaniem pamięci ROM umożliwia znaczne zmniejszenie zajętości komórek logicznych – wyniki oznaczone ROM w tabeli 2. Jednakże niektóre układy wymagają zbyt dużej pojemności pamięci, przekraczających możliwości bloków EAB. Zastosowanie dekompozycji zrównoważonej do obliczenia układu modyfikacji adresu pozwala na odpowiednią redukcję wymaganej pojemności pamięci, kosztem niewielkiej straty w szybkości działania układu. Przeprowadzone eksperymenty w pełni potwierdzają tezę, że komercyjne systemy projektowania układów cyfrowych niejednokrotnie realizują projekty dalekie od rozwiązań optymalnych pod względem zajętości zasobów sprzętowych. Sytuacja ta jest szczególnie niepokojąca dla najnowszych układów reprogramowalnych typu FPGA i FLEX. Przyczyna tego zjawiska tkwi w niedostosowaniu procedur syntezy logicznej, które w systemach komercyjnych są z reguły realizowane według klasycznych metod minimalizacji funkcji boolowskich i nie uwzględniają metod dekompozycji funkcjonalnej. Zatem lepsze jakościowo projekty można realizować przede wszystkim przy wspomaganiu systemów komercyjnych najnowszymi narzędziami syntezy logicznej, dostępnymi – jak do tej pory – wyłącznie w systemach uniwersyteckich. 6. PODSUMOWANIE Intensywny rozwój technologii programowalnych (początek lat 90-tych) przypadł w czasie gruntownych zmian gospodarki polskiej, a w szczególności w okresie upadku dużych firm związanych z mikroelektroniką (TEWA) oraz firm związanych z elektroniką użytkową. Spowodowało to pewne negatywne nastawienie do wszelkich przedsięwzięć związanych z techniką układów PLD/FPGA. Można przypuszczać, że ten zły okres mamy chyba poza sobą, a niektóre tendencje gospodarcze zdają się potwierdzać wzrost zainteresowania możliwościami oferowanymi przez technikę układów programowalnych. Jednak wiele szkód wynikających z pechowego dla Polski okresu rozwoju tej technologii wymaga szczególnie intensywnych i kosztownych środków zaradczych. Dotyczyć powinny one przede wszystkim reorganizacji nauczania szeroko rozumianej techniki układów cyfrowych, od 30. lat tradycyjnie nauczanych w schemacie bramek logicznych, tablic Karnaugha i bloków funkcjonalnych, a więc w ujęciu klasycznej syntezy strukturalnej polegającej na składaniu systemu z wyodrębnionych bloków funkcjonalnych. W szczególności mankamenty nauczania techniki cyfrowej w Polsce polegają na braku metod redukcji argumentów i minimalizacji symbolicznej, braku metod syntezy wielopoziomowej, dekompozycji funkcjonalnej i odwzorowania technologicznego i co najgorsze, całkowitym braku jakichkolwiek informacji o standardowych i łatwo dostępnych narzędziach uniwersyteckich (Espresso, SIS itp.) [2], [9]. Dopiero ostatnie lata aktywnej działalności niektórych środowisk uczelnianych przyniosły pewną poprawę w tej dziedzinie, co objawiło się między innymi organizacją międzyuczelnianego Centrum Szkolenia ADEC [7] oraz zorganizowaniem corocznych konferencji takich jak: PDS (Programmable Devices and Systems) [13] i RUC (Reprogramowalne Układy Cyfrowe – Szczecin) [17]. Wymienione przedsięwzięcia są istotne o tyle, że układy programowalne obniżają próg inwestycyjny potrzebny przedsiębiorstwom do osiągnięcia wysokiego poziomu technologicznego. Mogą powstawać dzięki temu małe, prężne firmy produkujące małoseryjne systemy specjalizowane. Istotne jest również to, że układy programowalne dzięki niskim kosztom początkowym obniżają bądź eliminują konieczność kredytowania przedsięwzięć. Byłoby ogromną szkodą dla nauki i gospodarki polskiej, gdyby powszechnie uznawana za rewolucyjną technika układów programowalnych, a w szczególności jej rewelacyjne zastosowania w cyfrowym przetwarzaniu sygnałów [11] ominęły najpierw krajowe instytucje odpowiedzialne za nauczanie podstaw elektroniki, a następnie – w konsekwencji – ominęły firmy i przedsiębiorstwa odpowiedzialne za kondycję elektroniki w Polsce. BIBLIOGRAFIA [1] Adamski M., Chodań M.: Modelowanie układów sterowania dyskretnego z wykorzystaniem sieci SFC. Monografia. Wydawnictwa Politechniki Zielonogórskiej, Zielona Góra 2000 r. [2] De Micheli G.: Synthesis and Optimization of Digital Circuits. McGraw-Hill, New York, 1994. Również tłumaczenie polskie: Synteza i optymalizacja układów cyfrowych. WNT, Warszawa 1998. [3] Hrynkiewicz E.: Logic function set minimization by reducing of a Boolean space occupated by the generated implicants. Proc. International Conference on Programmable Devices and Systems, Ostrawa 1996. [4] Iman S., M. Pedram M.: Logic Synthesis for Low Power VLSI Design, Kluwer Academic Publishers, 1999. [5] Jachna Z.: Analiza metod specyfikacji układów cyfrowych z punktu widzenia optymalizacji logicznej i odwzorowania technologicznego. Rozprawa doktorska (w przygotowaniu), Wojskowa Akademia Techniczna, Warszawa 2002. [6] Kania D., Improved Technology mapping for PAL-based Devices Using a New Approach to Multi-Output Boolean Functions, DATE’02, IEEE Computer Society, Los Alamitos, 2002. [7] Kuźmicz W., Pfitzner A., Wielgus A., Fijałkowski A., Łuba T., Jasiński K., Turowski M., Kos A.: Układy ASIC w małych i średnich firmach. Formy wsparcia i pomocy. Prace Instytutu Technologii Elektronowej, Zeszyt 4/5, Warszawa 1996. [8] Łuba T., Zbierzchowski B.: Komputerowe projektowanie układów cyfrowych. Wydawnictwa Komunikacji i Łączności, Warszawa 2000. [9] Łuba T.: Synteza układów logicznych, Wyższa Szkoła Informatyki Stosowanej i Zarządzania, Wyd. 2, poprawione i rozszerzone, Warszawa 2001. [10] Łuba T., Zbierzchowski B., Zbysiński P.: Układy reprogramowalne dla potrzeb telekomunikacji cyfrowej. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 5, 2002. [11] Meyer-Baese U.: Digital Signal Processing with Field Programmable Gate Arrays, Springer Verlag, Berlin 2001. [12] Nowicka M., Rawski M., Łuba T.: DEMAIN – an Interactive Tool for FPGA-Based Logic Decomposition, Proceedings of the 6th International Conference Mixed Design of Integrated Circuits and Systems, Kraków 1999. [13] IFAC Workshop on Programmable Devices and Systems (E. Hrynkiewicz – chairman), PDS2001, Materiały Konferencyjne, Gliwice 2001. [14] Rawski M., Jóźwiak L., Łuba T.: Functional decomposition with an efficient input support selection for sub-functions based on information relationship measures. Journal of Systems Architecture, 47, Elsevier Science B.V., 2001. [15] Rawski M., Jachna Z., Brzozowski I., Rzechowski R.: Practical Aspects of Logic Synthesis Based on Functional Decomposition. Proc. Euromicro Symposium on Digital Systems Design, Warszawa 2001. [16] Rawski M., Łuba T.: FSM Implementation in Embedded Memory Blocks Using Concept of Decomposition. IFAC Workshop Programmable Devices and Systems, PDS’2001, pp. 301 – 306, Gliwice 2001. [17] Reprogramowalne układy cyfrowe (J. Sołdek – przewodniczący komitetu programowego), Materiały IV Konferencji Naukowej , Szczecin 2001. [18] Sasao T.: Switching Theory for Logic Synthesis, Kluwer Academic Publishers, Dordrecht 1999. [19] Yanushkevich S.: Logic differential calculus in multi-valued logic design, Prace Naukowe Politechniki Szczecińskiej, Nr 537, Instytut Informatyki Nr 1, 1998.