Synteza logiczna skończonych automatów stanów z zastosowaniem

Transkrypt

Synteza logiczna skończonych automatów stanów z zastosowaniem
Arkadiusz BUKOWIEC, Alexander BARKALOV
UNIWERSYTET ZIELONOGÓRSKI, INSTYTUT INFORMATYKI I ELEKTRONIKI
Synteza logiczna skoĔczonych automatów stanów
z zastosowaniem wielokrotnego kodowania stanów
mgr inĪ. Arkadiusz BUKOWIEC
prof. dr hab. inĪ. Alexander BARKALOV
Mgr inĪ. Arkadiusz Bukowiec ukoĔczył studia inĪynierskie (2001) o specjalnoĞci inĪynieria komputerowa na Politechnice Zielonogórskiej a nastĊpnie
studia magisterskie (2004) o tej samej specjalnoĞci
na Uniwersytecie Zielonogórskim. Od roku 2004
pracuje jako asystent oraz jest studentem studiów
doktoranckich na Wydziale Elektrotechniki, Informatyki i Telekomunikacji Uniwersytetu Zielonogórskiego. W roku 2006 odbył jeden semestr studiów doktoranckich na Universidade Nova de Lisboa w ramach projektu Sokrates-Erasmus.
Prof. Alexander Barkalov ukoĔczył studia (1976)
o specjalnoĞci Komputery na Politechnice Donieckiej. W roku 1983 obronił rozprawĊ doktorską
z zakresu informatyki w Instytucie Mechaniki
i Optyki w Leningradzie. W 1995 roku obronił rozprawĊ habilitacyjną w Instytucie Cybernetyki w Kijowie i uzyskał tytuł doktora habilitowanego ze specjalnoĞcią informatyka. W latach 1996-2003 pracował jako profesor w Instytucie Informatyki Narodowej Politechniki Donieckiej. Od 2004 pracuje jako
profesor w Instytucie Informatyki i Elektroniki Uniwersytetu Zielonogórskiego.
e-mail: [email protected]
e-mail: [email protected]
Streszczenie
W artykule zostaną przedstawione metody syntezy skoĔczonych automatów
stanów z wyjĞciami typu Mealy’ego do struktur programowalnych typu FPGA.
Metody te oparte są o wielokrotne kodowanie stanów wewnĊtrznych układu
podzielonych na podzbiory w oparciu o aktualny stan lub aktualnie wykonywaną mikroinstrukcje. Prowadzi to do realizacji układu cyfrowego takiego automatu w strukturze dwupoziomowej, gdzie układ pierwszego poziomu realizuje
funkcje kodowania. Zabieg taki umoĪliwia zmniejszenie liczby funkcji logicznych realizowanych przez kombinacyjną czĊĞü automatu. Stan wewnĊtrzny natomiast jest dekodowany w układzie drugiego poziomu na podstawie wielokrotnego kodu stanu wewnĊtrznego i kodu aktualnego stanu lub kodu aktualnie
wykonywanej mikroinstrukcji. PoniewaĪ system ten posiada regularną strukturĊ, moĪe on zostaü zaimplementowany z wykorzystaniem osadzonych bloków
pamiĊci, jakie wystĊpują w nowoczesnych układach FPGA. Rozwiązanie takie
prowadzi do zmniejszenia całkowitej liczby bloków logicznych, i ich równomierniejszego wykorzystania, potrzebnych do implementacji układu cyfrowego
skoĔczonego automatu stanów.
Abstract
The method of synthesis for FPGAs of the logic circuit of Mealy FSM is proposed. Method is based on the encoding of internal states divided into subsets
based on current state or microinstruction. It leads to realization of FSM in double-level structure. It leads to diminish number of functions realized by combinational part of FSM. The state is decoded in the second-level circuit base on
multiple code and code of current state or code of microinstruction. This system
can be implemented using memory blocks and in summary it leads to minimization of required logic elements for implementation of logic circuit of FSM
Słowa kluczowe: SkoĔczony automat stanów, Układ FPGA, Synteza logiczna.
Metody te wymagają zastosowania dodatkowych zmiennych wewnĊtrznych przez co mogą wymagaü zastosowania wiĊkszej liczby elementów logicznych.
W prezentowanym artykule przedstawione są metody umoĪliwiająca zmniejszenie liczby funkcji logicznych realizowanych
przez automat. Metody te oparte są o kodowanie stanów wewnĊtrznych automatu podzielonych na podzbiory w oparciu o aktualny stan lub aktualnie wykonywaną mikroinstrukcjĊ [3]. Kodowanie takie pozwala na zmniejszenie liczby funkcji logicznych
realizowanych przez automat. Stan jest dekodowany w układzie
drugiego poziomu w oparciu o wielokrotny kod stanu wewnĊtrznego i kod aktualnego stanu lub kod aktualnie wykonywanej mikroinstrukcji. PoniewaĪ system ten posiada regularną strukturĊ
moĪe zostaü zaimplementowany z wykorzystaniem osadzonych
bloków pamiĊci dostĊpnych w nowoczesnych układach FPGA.
Zabieg taki prowadzi do zmniejszenia liczby elementów logicznych potrzebnych do implementacji automatu.
2. Metody standardowe
2.1. Metoda jednopoziomowa
Układ logiczny skoĔczonego automatu stanów z wyjĞciami typu
Mealy’ego opisany jest systemem funkcji Boolowskich:
Y = Y(Q, X),
Φ = Φ(Q, X),
Keywords: FSM, FPGA, Logic synthesis.
1. WstĊp
SkoĔczone automaty stanów (ang. Finite state machines, FSMs)
z wyjĞciami typu Mealy’ego [1] są jedną z najpopularniejszych
metod projektowania jednostek sterujących układów cyfrowych,
przez co mają szerokie zastosowanie w informatyce jaki i równieĪ
w elektronice czy telekomunikacji. Układy FPGA są bardzo czĊsto stosowane do implementacji całego systemu cyfrowego, wraz
z jednostką sterującą [6]. Jedną z głównych cech układów FPGA
jest wystĊpowanie w nich duĪej liczby tablic LUT, które mogą realizowaü dowolną funkcje logiczną [4]. Ograniczeniem jednak jest
stosunkowo mała liczba wejĞü (do 6, typowo 4) jaką posiadają tablice LUT, z drugiej strony funkcje logiczne realizowane przez
kombinacyjny układ automatu posiadają znacznie wiĊcej argumentów. RozbieĪnoĞü ta prowadzi do koniecznoĞci zastosowania
dekompozycji funkcji boolowskich opisujących zachowanie automatu skoĔczonego [5]. Negatywnym wynikiem takiej dekompozycji jest zwiĊkszenie liczby poziomów w układzie logicznym realizującym algorytm sterowania, co moĪe prowadziü do zmniejszenia wydajnoĞci takiego systemu.
Jedna z metod zmniejszenia liczby funkcji realizowanych przez
automat jest zastosowanie implementacji wielopoziomowej [2].
(1)
gdzie X = {x1, …, xL} jest zbiorem warunków logicznych,
Y = {y1, …, yN} jest zbiorem mikrooperacji, Q = {q1, …, qR} jest
zbiorem zmiennych wewnĊtrznych uĪytych do kodowania stanów
gdzie
R = ªlog2Mº,
automatu
am ∈ A = {a1, …, aM},
Φ = {D1, …, DR} jest zbiorem funkcji wzbudzeĔ.
System (1) jest formowany na podstawie tablicy przejĞü-wyjĞü
automatu, która posiada kolumny: am, K(am), as, K(as), Xh, Yh, Φh,
h, gdzie am ∈ A jest aktualnym stanem automatu; K(am) jest kodem tego stanu; as ∈ A jest nastĊpnym stanem automatu; K(as) jest
kodem stanu as; Xh jest koniunkcją afirmacji lub negacji pewnych
zmiennych ze zbioru wejĞciowych warunków logicznych X wymuszając przejĞcie ¢am, as²; Yh ⊆ Y jest mikroinstrukcją formowaną podczas przejĊcia ¢am, as²; Φh ⊆ Φ jest zbiorem funkcji wzbudzeĔ, które są równe 1 w celu przełączenia pamiĊü automatu z kodu K(am) na kod K(as); h jest numerem linii h = 1, …, H.
System (1) jest podstawą do realizacji układu logicznego automatu z wykorzystaniem jednopoziomowej struktury P (rys. 1) [2].
W strukturze tej układ RG stanowi pamiĊü automatu i jest zbudowany z przerzutników typu D. Układ P implementuje funkcje Boolowskie (system (1)) automatu i w strukturze FPGA jest zbudowany z tablic LUT.
PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXI - nr 6/2008
766
3.1. Z podziałem poprzez mikroinstrukcjĊ
X
Y
P
ĭ
RG
Q
Najpierw zostanie omówiona metoda gdzie kod mikroinstrukcji
stanowi czĊĞciowy kod nastĊpnego stanu. Podzielmy zbiór stanów
wewnĊtrznych as ∈ A = {a1, …, aM} na podzbiory w oparciu o aktualnie realizowaną mikroinstrukcjĊ Yt ⊆ Y. Prowadzi to do powstania T podzbiorów A(Yt) ⊆ A i stan as ∈ A(Yt) tylko wtedy gdy
jest stanem przejĞcia podczas realizacji mikroinstrukcji Yt. Niech
Bt = ¨A(Yt)¸ i B0 = max(B1, …, BT). Zakodujmy kaĪdy stan wewnĊtrzny as ∈ A(Yt) binarnym kodem Kt(as) na R2 = ªlog2 B0º bitach. Zmienne τ r ∈ Τ = {τ 1 ,,τ R2 } zostaną wykorzystane do
reprezentacji tego kodu. W tym przypadku kod stanu wewnĊtrznego K(as) jest reprezentowany przez wielokrotny kod stanu wewnĊtrznego Kt(as) i kod mikroinstrukcji K(Yt):
Rys. 1. Schemat blokowy automatu Mealy’ego o strukturze P
Fig. 1. The structural diagram of the P Mealy FSM
Całkowita liczba realizowanych funkcji Boolowskich wynosi:
nP(P) = N + R.
(2)
2.2. Metoda z kodowaniem mikroinstrukcji
Jedną ze znanych metod zmniejszania liczby realizowanych
funkcji logicznych przez układ P jest zastosowanie kodowania
mikroinstrukcji [2]. Niech tablica przejĞü-wyjĞü automatu zawiera
T róĪnych mikroinstrukcji Yt ⊆ Y. Zakodujmy kaĪdą taką mikroinstrukcjĊ binarnym kodem K(Yt) na R1 = ªlog2Tº bitach
(t = 1, …, T). Zmienne z r ∈ Z = z1 ,, z R1 zostaną wykorzy-
{
(6)
Układ logiczny automatu z takim kodowaniem moĪe zostaü zrealizowany z wykorzystaniem dwupoziomowej struktury PYY
(rys. 3) [3].
Z
X
Y
Y
P
}
stane do reprezentacji tego kodu. W takim przypadku układ logiczny automatu moĪe zostaü zrealizowany z wykorzystaniem
dwupoziomowej struktury PY (rys. 2) [2].
ȉ
CC ĭ RG
Q
Z
X
K(as) = Kt(as) ∗ K(Yt).
Y
P
Y
Rys. 3. Schemat blokowy automatu Mealy’ego o strukturze PYY
Fig. 3. The structural diagram of the PYY Mealy FSM
Układ RG ma dokładnie taką samą funkcjĊ i budowĊ jak w strukturach P i PY. Układ Y pełni równieĪ tą samą rolĊ co w strukturze
PY i realizuje ten sam system (3). Natomiast układ P implementuje system:
ĭ
RG
Z = Z(Q, X),
Τ = Τ(Q, X).
Q
Rys. 2. Schemat blokowy automatu Mealy’ego o strukturze PY
Fig. 2. The structural diagram of the PY Mealy FSM
Układ RG ma dokładnie taką samą funkcjĊ i budowĊ jak w strukturze P. Układ Y implementuje system funkcji Boolowskich:
Y = Y(Z),
(3)
czyli dekoduje mikrooperacje. Układ ten w strukturze FPGA moĪe
zostaü zaimplementowany z wykorzystaniem osadzonych bloków
pamiĊci. W sytuacji takiej układ P implementuje system:
Z = Z(Q, X),
Φ = Φ(Q, X),
(4)
i liczba realizowanych funkcji Boolowskich zostaje zmniejszona
do:
nP(PY) = N + R1.
(5)
Jednak wartoĞü ta jest wciąĪ relatywnie duĪa i nie gwarantuje
zmniejszenia liczby tablic LUT wymaganych do implementacji
automatu w strukturze FPGA.
3. Metody z wielokrotnym kodowaniem
Ideą prezentowanych w tym artykule metod jest zastosowanie
jednoczesnego kodowania nastĊpnego stanu automatu z wykorzystaniem kodu mikroinstrukcji lub kodu aktualnego stanu jako czĊĞciowy kod nastĊpnego stanu [3].
(7)
W strukturze tej wystĊpuje dodatkowy układ CC. Jest on wykorzystywany do dekodowania wewnĊtrznego stanu automatu i implementuje system:
ĭ = ĭ(Z, Τ).
(8)
PoniewaĪ układ ten posiada regularną strukturĊ, podobnie jak
układ Y, w strukturze FPGA moĪe zostaü zaimplementowany
z wykorzystaniem osadzonych bloków pamiĊci.
Struktura ta pozwala na dalsze zmniejszenie liczby funkcji Boolowskich realizowanych przez automat do:
nP(PYY) = R2 + R1.
(9)
DziĊki zastosowaniu kodowania obu systemów realizowanych
w pierwotnej strukturze P uzyskuje siĊ znaczne zmniejszenie liczby realizowanych funkcji co pozwala na zmniejszenie liczby tablic
LUT wymaganych do implementacji automatu w strukturze
FPGA.
3.2. Z podziałem poprzez stan aktualny
Metoda gdzie kod aktualnego stanu jest wykorzystany jako czĊĞciowy kod stanu wewnĊtrznego jest podobna do metody omówionej powyĪej. W tym przypadku zbiór stanów wewnĊtrznych
as ∈ A = {a1, …, aM} jest dzielony na podstawie aktualnego stanu
am. Prowadzi to do powstania M podzbiorów A(am) ⊆ A i stan
as ∈ A(am) tylko wtedy gdy jest stanem przejĞcia podczas ze stanu
am. Niech Cm = ¨A(am)¸ i C0 = max(C1, …, CM), i zakodujmy kaĪdy stan wewnĊtrzny as ∈ A(am) binarnym kodem Km(as) na
PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXI - nr 6/2008
767
R3 = ªlog2 C0º bitach. Zmienne τ r ∈ Τ = {τ 1 ,,τ R3 } zostaną
wykorzystane do reprezentacji tego kodu. W tym przypadku kod
stanu wewnĊtrznego K(as) jest reprezentowany przez wielokrotny
kod stanu wewnĊtrznego Km(as) i kod aktualnego stanu K(am):
(10)
Układ logiczny automatu z tym kodowaniem moĪe zostaü zrealizowany z wykorzystaniem dwupoziomowej struktury PAY
(rys. 4) [3].
Z
Y
Y
CC ĭ RG
Q
5. System A♠
♠S
(11)
w porównaniu ze strukturą PYY.
Struktura ta równieĪ pozwala na dalsze zmniejszenie liczby
funkcji Boolowskich realizowanych przez automat do:
nP(PAY) = R3 + R1
(12)
w porównaniu ze strukturami P i PY.
Bardzo trudne jest oszacowanie relacji pomiĊdzy wartoĞciami
parametrów nP(PYY) i nP(PAY) poniewaĪ ich wartoĞci są ĞciĞle
powiązane z charakterystyką konkretnie implementowanego algorytmu sterowania. Tak wiĊc dobór struktury PYY lub PAY musi
zostaü wykonany eksperymentalnie.
4. Metoda syntezy
W rozdziale tym zostanie przedstawiona specjalna metoda syntezy do wczeĞniej przedstawionych struktur PYY i PAY
(rys. 3 i 4). Metoda ta składa siĊ z nastĊpujących kroków:
1. Utworzenie i kodowanie mikroinstrukcji. Krok ten opiera siĊ
na odczytaniu z tablicy przejĞü-wyjĞü automatu wszystkich
róĪnych mikroinstrukcji i zakodowaniu ich binarnym kodem
K(Yt).
2. Podział zbioru stanów wewnĊtrznych. W kroku tym zbiór stanów wewnĊtrznych dzielony jest na T lub M podzbiorów.
KaĪdy podzbiór zawiera tylko stany które są stanami przejĞcia
podczas wykonywania t-ej mikroinstrukcji lub z m-go stanu.
3. Wielokrotne kodowanie stanów wewnĊtrznych. Krok ten polega za zakodowaniu binarnym kodem Kt(as) lub Km(as)
wszystkich stanów wewnĊtrznych niezaleĪnie w kaĪdym
z podzbiorów.
4. Utworzenie tablicy przejĞü-wyjĞü dla automatu PYY lub PAY.
W kroku tym tworzy siĊ przekształconą tablicĊ przejĞü-wyjĞü,
która jest podstawą do utworzenia systemu (7). Jest ona tworzona z oryginalnej tablicy przejĞü-wyjĞü poprzez zastąpienie
kolumny Yh kolumną Zh oraz kolumn K(as) i Φh kolumnami
Kt(as) lub Km(as) i Τh. Kolumna Zh zawiera zmienne zr ∈ Z,
które są równe 1 w kodzie K(Yt). Kolumna Τh zawiera zmienne IJr ∈ Τ, które są równe 1 w kodzie Kt(as) lub Km(as).
5. Utworzenie tablicy dekodera mikroinstrukcji. Krok ten prowadzi do powstania tablicy, która jest podstawą do utworzenia
systemu (3). Tablica ta posiada kolumny K(Yt), Yt, t. Kolumna
Yt powinna byü zapisana w formacie binarnym.
Tab. 1. Wyniki syntezy logicznej
Tab. 1. Results of logic synthesis
P
FSM
bbsse
ex1
ex4
ex6
mc
planet
s1
s1a
s298
s386
s510
s820
sand
sse
styr
11
24
13
11
7
25
11
11
14
11
13
24
14
11
15
PY
8
11
8
7
5
12
10
6
11
8
10
10
10
8
10
PAY
112
1216
144
128
40
1216
192
12
48
112
112
608
288
112
320
PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXI - nr 6/2008
7
9
5
7
4
8
9
5
6
7
6
8
9
7
8
PYY
624
2496
272
320
56
2752
2752
2752
16432
624
1648
1888
2848
624
1600
7
8
6
5
4
11
6
6
10
7
9
10
9
7
9
Rozmiar pamiĊci [bity]
ĭ = ĭ(Q, Τ)
Zaproponowane metody syntezy zostały zaimplementowane
w autorskim systemie do logicznej syntezy skoĔczony automatów
stanów o nazwie Automata Synthesis (A♠S) System. Oprogramowanie to zostało wykonane w Ğrodowisko Borland C++ Builder
i pracuje w trybie konsolowym systemu Windows.
WejĞciem do procesu syntezy, z wykorzystaniem tego oprogramowania, jest automat opisany w formacie KISS2 [7]. Efektem
koĔcowym syntezy jest zbiór plików opisujących poszczególne
moduły wybranej struktury automatu. Pliki wyjĞciowe zapisane są
w jĊzyku opisu sprzĊtu Verilog. Układy kombinacyjne opisane są
zbiorem równaĔ logicznych z zastosowanie konstrukcji assign.
ZawartoĞü pamiĊci opisana jest z wykorzystaniem instrukcji case
oraz specjalnych dyrektyw umoĪliwiających implementacjĊ z wykorzystaniem osadzonych bloków pamiĊci. Generowany jest równie moduł najwyĪszego poziomu, który zawiera opis połączeĔ
pomiĊdzy poszczególnymi blokami. System generuje równieĪ plik
raportu w którym miĊdzy innymi podawana jest liczba realizowanych funkcji logicznych oraz wymagany rozmiar pamiĊci.
Zaimplementowane metody syntezy zostały przetestowane
z wykorzystaniem modeli testowych z biblioteki LGSynth91 [7].
Wyniki syntezy wybranych układów są przedstawione w tabeli 1.
Liczba funkcji
Boolowskich
Układy RG, Y i P mają taką samą budowĊ i implementują te same
systemy funkcji jak w strukturze PYY. Tylko układ CC implementuje inny system:
Rozmiar pamiĊci [bity]
Rys. 4. Schemat blokowy automatu Mealy’ego o strukturze PAY
Fig. 4. The structural diagram of the PAY Mealy FSM
Liczba funkcji
Boolowskich
ȉ
Rozmiar pamiĊci [bity]
P
Liczba funkcji
Boolowskich
X
Liczba funkcji
Boolowskich
K(as) = Km(as) ∗ K(am).
6. Utworzenie tablicy konwertera kodu. W kroku tym tworzy siĊ
tablicĊ, która jest podstawą do utworzenia systemu (8) lub
(11). Tablica ta posiada kolumny Kt(as) lub Km(as), K(Yt) lub
K(am), K(as), i.
7. Utworzenie równaĔ logicznych opisujących działanie układu
P. Krok ten prowadzi do uzyskania równaĔ Boolowskich opisujących system (7). Tworzone są na podstawie tablicy
przejĞü-wyjĞü dla automatu PYY lub PAY.
8. Implementacja układu logicznego automatu PYY lub PAY.
Krok ten jest ostatnim etapem i prowadzi do uzyskania układu
logicznego realizującego algorytm sterowania. W przypadku
implementacji z wykorzystaniem układów FPGA układ P i rejestr RG implementowane są z wykorzystaniem programowalnych bloków logicznych – układ P tablic LUT a rejestr RG
przerzutników typu D. Układ Y implementowany jest z wykorzystaniem osadzonych bloków pamiĊci, gdzie K(Yt) jest adresem a Yt jest słowem z pod tego adresu. Układ CC równieĪ
jest implementowany z wykorzystaniem osadzonych bloków
pamiĊci, gdzie adresem jest konkatenacja Kt(as) i K(Yt) lub
Km(as) i K(am) a wartoĞü słowa zapisanego pod tym adresem
stanowi K(as).
624
2496
400
224
72
13504
512
332
8240
624
3184
5728
2848
624
2880
768
MoĪna zauwaĪyü, Īe liczba funkcji Boolowskich uzyskana dla
proponowanych metod (PYY i PAY) nigdy nie jest wiĊksza niĪ
dla metod standardowych (P i PY). Uzyskane wyniki pokazują, Īe
metoda PAY w wiĊkszoĞci przypadków daje mniejszą liczbĊ
funkcji Boolowskich niĪ metoda PYY. Jednak w niektórych przypadkach zastosowanie tej drugiej metody daje lepsze rezultaty zarówno pod wzglĊdem iloĞci realizowanych funkcji logicznych jak
i wymaganego rozmiaru pamiĊci. Wyniki te uzaleĪnione są od
charakterystyki konkretnego algorytmu sterowania i dobór odpowiedniej metody syntezy musi byü wykonywane indywidualnie
dla kaĪdego układu sterowania.
ZauwaĪyü moĪna, Īe proponowane metody wymagają zastosowania pamiĊci o wiĊkszym rozmiarze niĪ metoda PY. NaleĪy tu
jednak wspomnieü, Īe rozmiary osadzonych bloków pamiĊci
w nowoczesnych układach FPGA kształtują siĊ od 4Kb do 36Kb
i w kaĪdym układzie znajduje siĊ od kilku do kilkunastu takich
bloków. Tak wiĊc zwiĊkszenie rozmiaru pamiĊci wymaganej do
implementacji układów Y i CC nie ma negatywnego wpływu na
wyniki implementacji.
6. Podsumowanie
Zaproponowane w tym artykule metody syntezy logicznej
skoĔczonych automatów stanów z wyjĞciami typu Mealy’ego
z wielokrotnym kodowaniem stanów wewnĊtrznych w oparciu
o aktualnie wykonywaną mikroinstrukcjĊ albo aktualny stan automatu pozwala na zmniejszenie liczby funkcji Boolowskich implementowanych poprzez kombinacyjną czĊĞü automatu cyfrowego. Prowadzi to do zmniejszenia wymaganej liczby tablic LUT do
implementacji układu w strukturze FPGA.
Do weryfikacji opracowanych metod zostało wykonane autorskie oprogramowanie A♠S System. Uzyskane wyniki pokazały, Īe
obie metody zmniejszają liczbĊ funkcji Boolowskich realizowanych przez kombinacyjną czĊĞü automatu. Przeanalizowane pliki
testowe pokazują, Īe zaproponowane metody są lepsze od standardowych. ĝredni zysk na liczbie realizowanych funkcji logicznych wynosi 43% w porównaniu ze strukturą P i 17% w porównaniu ze strukturą PY. Wynik ten jednak mocno zaleĪy od parametrów konkretnego algorytmu sterowania i wacha siĊ od 0% do
68% w porównaniu ze strukturą P i od 0% do 60% w porównaniu
ze strukturą PY.
7. Literatura
[1] Baranov S.: Logic Synthesis for Control Automat, Kluwer Academic Publisher, Boston, 1994.
[2] Barkalov A., WĊgrzyn M.: Design of Control Units with Programmable
Logic, University of Zielona Góra Press, Zielona Góra, 2006.
[3] Bukowiec A.: Synteza automatów skoĔczonych z wykorzystaniem metod
kodowania wielokrotnego, Materiały II konferencji naukowej Informatyka
- sztuka czy rzemiosło KNWS'05, Złotniki LubaĔskie, 17-22.
[4] Jenkins J.: Designing with FPGAs and CPLDs, Prentice Hall, New Jersey,
1994.
[5] Łuba T.: Synteza układów logicznych, Oficyna Wydawnicza Politechniki
Warszawskiej, Warszawa, 2005.
[6] Salcic Z.: VHDL and FPLDs in Digital Systems Design, Prototyping and
Customization, Kluwer Academic Publishers, Boston, 1998.
[7] Yang S.: Logic Synthesis and Optimization Benchmarks User Guide. version 3.0, Technical report, Microelectronics Center of North Carolina,
North Carolina, 1991.
Title: Logic Synthesis of FSMs with Multiple Encoding of States
Artykuł recenzowany
PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXI - nr 6/2008
769

Podobne dokumenty