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.

Podobne dokumenty