KNWS 2011 31 Syneza logiczna auomaów sanów z zasosowaniem łącznego kodowania wielokonego Akadiusz Bukowiec Seszczenie: W aykule zosanie zedsawiona meoda synezy skończonych auomaów sanów z wyjściami yu ealy ego do suku ogamowalnych. eoda bazuje na wielokonym kodowaniu mikoinsukcji odzielonych na odzbioy w oaciu o akualny san. Dodakowo odzbioy e są łączone ze sobą w ay ak aby można je było zidenyfikować ozez wykozysanie nieełnego kodu. owadzi o do ealizacji układu cyfowego auomau z wykozysaniem sukuy dwuoziomowej, gdzie układ iewszego oziomu ealizuje funkcje kodowania. Zabieg aki umożliwia zmniejszenie liczby funkcji logicznych ealizowanych zez kombinacyjną część auomau. ikoinsukcje naomias są dekodowany w układzie dugiego oziomu na odsawie wielokonego kodu i części kodu akualnego. onieważ, wykozysywana jes ylko część kodu zabieg en owadzi do znacznego zmniejszenia ozmiau amięci wykozysywanej do jego imlemenacji. Słowa kluczowe: Skończony auoma sanów, FGA, Syneza logiczna 1. WROWADZENIE Skończone auomay sanów (ang. Finie Sae achine, FS), są wciąż jedną z najoulaniejszych meod ealizacji jednosek seujących [2, 5]. Naomias układy FGA są badzo częso sosowane do ealizacji układu logicznego akiego auomau [6]. Duże znaczenie, w ealizacji całego sysemu cyfowego, akiego układu owoduje, że oymalizacja wykozysywanych zasobów szęowych sanowi ważną oblemaykę. Jednym z ozwiązań ego oblemu jes syneza układu z wykozysaniem osadzonych bloków amięci [, 7, 9] oaz zasosowaniem suku wielooziomowych [1, ]. W efeacie zosał zedsawiony sosób wielokonego kodowania mikoinsukcji umożliwiający zmniejszenie liczby funkcji boolowskich ealizowanych zez układ kombinacyjny auomau, z wykozysaniem odowiedniego kodowania sanów oaz łączeniem odzbioów mikoinsukcji, co owadzi do zmniejszenia ozmiau amięci dekodea mikoinsukcji. Zabieg aki owadzi do zmniejszenia wymaganych zasobów szęowych ozebnych do imlemenacji całego układu w sukuach ogamowalnych oaz do zbalansowanego wykozysania elemenów óżnego yu, dosęnych w układach FGA [, 7]. 2. ODSTAW TEORETCZNE 2.1. SKOŃCZON AUTOAT STANÓW Skończony auoma sanów jes o szóska: S A, a1,,,, (1) gdzie: A = {a 1,, a } jes skończonym zbioem sanów wewnęznych auomau; a 1 jes sanem ocząkowym auomau; = {x 1,, x L } jes skończonym zbioem wejściowych zmiennych boolowskich - waunków logicznych; = {y 1,, y N } jes skończonym zbioem wyjściowych zmiennych boolowskich - mikooeacji; δ jes funkcją zejść auomau; ω jes funkcją wyjść auomau. 2.2. FORAT KISS2 Foma KISS2 zosał oacowany na Uniwesyecie Bekeley [8] i jes eksową eezenacją jednowymiaowej ablicy zejść-wyjść auomau [5]. Ois aki składa się z nagłówka i abeli (ys. 1). Nagłówek zawiea infomacje o liczbie wejść (.i), wyjść (.o), linii w abeli (.) i sanów (.s). ożna w nim zawzeć ównież ocjonalną infomację o sanie ocząkowym (.). a) a2 - / y1y2 a5 ~x2 / - a1 x2 / y1 x1 / y2 - / y3 ~x1 / y3 a - / y1y3 a3 - / y2y3 a6 b).i 2.o 3.s 6. 8. a1-0 a1 a2 000-1 a1 a3 100 -- a2 a 001 1- a3 a2 010 0- a3 a 001 -- a a5 110 -- a5 a6 101 -- a6 a 011 Rys. 1. zykładowy a) gaf sanów, i jego ois w b) fomacie KISS2
32 KNWS 2011 Tablica oisuje naomias zejścia auomau. Składa się ona z czeech kolumn: waunku zejścia h, sanu ocząkowego a m, sanu docelowego a s i mikoinsukcji h. Symbol - zy zmiennej wejściowej oznacza, że nie wchodzi ona do waunku zejścia, Waość 0 oznacza, że jej negacja wchodzi do waunku, a waość 1, że jej afimacja wchodzi do waunku. Waość 0 dla zmiennej wyjściowej oznacza, że nie wchodzi ona do wyażenia wyjściowego naomias waość 1, że wchodzi. Douszczalny jes ównież w ym zyadku symbol -, kóy oznacza, że dana zmienna może, ale nie musi, wejść do wyażenia wyjściowego (zw. waość don cae). Reezenacja a ze względu na swój osy zais jes badzo wygodna do zewazania zez sysemy komueowe. 2.3. ETOD SNTEZ 2.3.1. STRUKTURA JEDNOOZIOOWA Układ logiczny skończonego auomau sanów z wyjściami yu ealy ego oisany jes sysemem funkcji Boolowskich:,,,, gdzie = {q 1,, q R } jes zbioem zmiennych wewnęznych użyych do kodowania sanów auomau a m A, gdzie R = log 2, = {D 1,, D R } jes zbioem funkcji wzbudzeń. Sysem (2) jes fomowany na odsawie ablicy sukualnej auomau [1, 2], kóa osiada kolumny: a m, K(a m ), a s, K(a s ), h, h, h, h, gdzie a m A jes akualnym sanem auomau; K(a m ) jes kodem ego sanu; a s A jes nasęnym sanem auomau; K(a s ) jes kodem sanu a s ; h jes koniunkcją afimacji lub negacji zmiennych ze zbiou wejściowych waunków logicznych wymuszając zejście a m, a s ; h jes mikoinsukcją fomowaną odczas zejęcia a m, a s ; h jes zbioem funkcji wzbudzeń, kóe są ówne 1 w celu zełączenia amięć auomau z kodu K(a m ) na kod K(a s ); h jes numeem linii h = 1,, H. Tablica a owsaje ozez zekszałcenie ablicy zejść-wyjść auomau w akcie ocesu synezy logicznej. Sysem (2) jes odsawą do ealizacji układu logicznego auomau z wykozysaniem jednooziomowej sukuy (ys. 2) [1, 2, 5]. W sukuze ej układ sanowi amięć auomau i jes zbudowany z zezuników yu D. Układ imlemenuje funkcje Boolowskie auomau i w sukuze FGA jes zbudowany z ablic LUT. Rys. 2. Układ logiczny auomau ealy ego Całkowia liczba funkcji Boolowskich ealizowanych zez układ kombinacyjny wynosi: (2) n R N. (3) 2.3.2. STRUKTURA DWUOZIOOWA Z KODOWANIE AKSALN Jedną ze znanych meod zmniejszania liczby ealizowanych funkcji logicznych zez układ jes zasosowanie maksymalnego kodowania mikoinsukcji [1, 2]. Niech ablica zejść-wyjść auomau zawiea T óżnych mikoinsukcji,,, 1 T. Zakodujmy każdą aką mikoinsukcję binanym kodem K( ) na N 1 = log 2 T biach. Zmienne z,, Z z1 zn zosaną wykozysane do 1 eezenacji ego kodu. W akim zyadku układ logiczny auomau może zosać zealizowany z wykozysaniem dwuoziomowej sukuy (ys. 3) [1]. Z Rys. 3. Układ logiczny auomau ealy ego Układ ma dokładnie aką samą funkcję i budowę jak w sukuze. Układ imlemenuje sysem funkcji Boolowskich: Z, () czyli dekoduje mikooeacje. Układ en w sukuze FGA może zosać zaimlemenowany z wykozysaniem osadzonych bloków amięci. W syuacji akiej układ imlemenuje sysem: Z Z,,,, i liczba ealizowanych funkcji Boolowskich zosaje zmniejszona do: 1 (5) n R N. (6) Jednak waość a jes wciąż elaywnie duża i nie gwaanuje zmniejszenia liczby ablic LUT wymaganych do imlemenacji auomau w sukuze FGA. 2.3.3. STRUKTURA DWUOZIOOWA Z KODOWANIE WIELKROTN Dalsze zmniejszania liczby ealizowanych funkcji logicznych zez układ daje zasosowanie wielokonego kodowania mikoinsukcji [3, ]. Dokonajmy odziału a wedy zbiou na odzbioy aki, że a m i ylko wedy gdy mikoinsukcja jes wykonywana odczas zejścia ze sanu a m. Zakodujmy mikoinsukcje w każdym odzbioze niezależnie binanym kodem K m ( ) na N 2 = log 2 T 0 biach, gdzie T0 max a1,, a Zmienne,, 1 N. (7) zosaną wykozysane do eezenacji ego kodu. zy kodowaniu akim do jednoznacznego okeślenia mikoinsukcji 2 m
KNWS 2011 33 wymagane jes wykozysanie kodu wielokonego i kodu akualnego sanu: K K K a. (8) m m W akiej syuacji układ logiczny auomau może zosać zealizowany z wykozysaniem dwuoziomowej sukuy 0 (ys. ) []. Ψ Rys.. Układ logiczny auomau ealy ego 0 Układ ma dokładnie aką samą funkcję i budowę jak w ozednich sukuach. Układ imlemenuje sysem funkcji Boolowskich:,, (9) czyli dekoduje mikooeacje. Układ en w sukuze FGA może zosać zaimlemenowany z wykozysaniem osadzonych bloków amięci. W syuacji akiej układ imlemenuje sysem:,,,, (10) i liczba ealizowanych funkcji Boolowskich zosaje zmniejszona do: n R N. (11) 0 2 Niesey, mimo iż meoda a zmniejsza złożoność układu [], o może owodować nieefekywne wykozysanie bloków amięci. 3. ETODA SNTZE Z ŁĄCZN KODOWANIE WIELOKROTN Ideą ezenowanej w ym aykule meody jes ołączenie odzbioów mikoinsukcji, ak aby, mikoinsukcja mogła być jednoznacznie idenyfikowana z wykozysaniem ylko części kodu akualnego sanu. Rozwiązanie akie sowoduje dwukone zmniejszenie ozmiau amięci bez konieczności ealizowania większej liczby funkcji logicznych zez układ kombinacyjny. 3.1. IDEA ETOD odzbioy a m należy ak ołączyć w ay a a, ak aby ich liczby elemenów były log2 do siebie jak najbadziej zbliżone. Jeżeli 2 o 2 log 2 największych odzbioów ozosawiamy bez ay (łączymy w aę ze zbioem a ). ozosałe naomias łączymy usym - m m 1 1 w ay według zasady: największy z najmniejszym. Nasęnie zakodujmy sany, ak aby kody Ka m 1 i Ka m 2 óżniły się ylko na osanim bicie q R. odobnie jak ozednio, zakodujmy mikoinsukcje w każdej aze a m odzbioów niezależnie naualnym kodem dwójkowym K na N C = log 2 T C biach, gdzie T. (12) C max m,, 1 m3 eoda a może zosać zasosowana wedy gdy N C 0 N, (13) w zeciwnym azie nie zosanie zachowana syuacja uzymania bez zmian liczby funkcji Boolowskich ealizowanych zez układ. Zmienne,, 1 N zosaną wykozysane do eezenacji kodu C K. zy kodowaniu akim do jednoznacznego okeślenia mikoinsukcji wymagane jes wykozysanie kodu wielokonego i części kodu akualnego sanu: 1.. 1 K Km 1 K am R. (1) W akiej syuacji układ logiczny auomau może zosać zealizowany z wykozysaniem dwuoziomowej sukuy J (ys. 5). Ψ [1..(R-1)] Rys. 5. Układ logiczny auomau ealy ego J Układ ma dokładnie aką samą funkcję i budowę jak w ozednich sukuach. Układ imlemenuje sysem funkcji Boolowskich:, 1.. R 1, (15) czyli dekoduje mikooeacje. Układ en w sukuze FGA może zosać zaimlemenowany z wykozysaniem osadzonych bloków amięci. Dzięki skóceniu słowa adesowego o 1 bi, ozmia ej amięci zosanie zmniejszony dwukonie w oównaniu z sukua 0. Układ, bez zmian, imlemenuje sysem (10) i liczba ealizowanych funkcji Boolowskich zosaje ównież bez zmian: 3.2. ETA SNTEZ C C n R N. (16) oces synezy blokowej i imlemenacji do układu FGA składa się z nasęujących eaów: 1. Uwozenie i odział zbiou mikoinsukcji. Ea en oiea się na odczyaniu z ablicy zejść-wyjść auomau wszyskich óżnych mikoinsukcji a nasęnie odzieleniu ich na odzbioów. Każdy odzbió zawiea ylko mikoinsukcje, kóe są ealizowane odczas zejścia z m-go sanu. 2. Łączenie odzbioów mikoinsukcji w ay. W eaie ym łączymy odzbioy w ay zgodnie z ideą oisaną w odozdziale 3.1.
3 KNWS 2011 3. Kodowanie mikoinsukcji. Zgodnie z idea meody zakodujmy mikoinsukcje w każdej aze odzbioów K. niezależnie binanym kodem. Kodowanie sanów. eoda a wymaga secyficznego zakodowania sanów, ak aby kody sanów a i a, na odsawie kóych zosały uwozone odzbioy ołączone w jedną aę, óżniły się ylko na osanim bicie q R. 5. Uwozenie ablicy zejść-wyjść auomau J. W eaie ym wozy się zekszałconą ablicę zejśćwyjść, kóa jes odsawą do uwozenia sysemu (10). Jes ona wozona z oyginalnej ablicy zejść-wyjść ozez zasąienie kolumny h kolumną Ψ h. Kolumna Ψ h zawiea zmienne ψ Ψ, kóe są ówne 1 w K. odowiednim kodzie 6. Uwozenie ablicy dekodea mikoinsukcji. Kok en o wadzi do owsania ablicy, kóa jes odsawą do uwozenia sysemu (15). Tablica a osiada kolumny K a 1.. R 1 K,, 0. m, 7. Uwozenie ównań boolowskich oisujących działanie układu. Kok en owadzi do uzyskania ównań boolowskich oisujących sysem (10). Twozone są na odsawie ablicy zejść-wyjść auomau J. 8. Imlemenacja auomau J w sukuze FGA. Układ kombinacyjny i ejes imlemenowane są z wykozysaniem ogamowalnych bloków logicznych CLB. układ z wykozysaniem ablic LUT a ejes z wykozysaniem zezuników yu D. Układ imlemenowany jes z wykozysaniem osadzonych bloków amięci, gdzie konkaenacja kodów K am 1.. R 1 Km 1 (eezenowana zez konkaenację zmiennych 1.. R1 ) jes adesem, a mikoinsukcja jes słowem zaisanym od ym adesem. onieważ osadzone bloki amięci w sukuach FGA są elemenami synchonicznymi należy zaewnić odowiednie akowanie sygnałem zegaowym [Buk09]. 3.3. ANALIZA RZKŁADU Rozważmy zasosowanie omówionej meody do synezy auomau S 1 [] oisanego w fomacie KISS2 (ys. 6)..i 3.o 5.s 5. 13. a1 11- a1 a2 10000 01- a1 a3 11000-0- a1 a 01000-1- a2 a3 11000-0- a2 a 01000-1- a3 a3 01000-00 a3 a 01000-01 a3 a5 01100 --1 a a5 00110 --0 a a3 00000 1-- a5 a1 10001 0-1 a5 a5 00110 0-0 a5 a 01100 Rys. 6. Auoma S 1 w fomacie KISS2 m 1 m 2 ożemy w nim wyóżnić = 5 sanów A = {a 1,, a 5 } oaz N = 5 mikooeacji = {y 1,, y 5 } wozących T = 7 mikoinsukcji,,,, 1 y1, 2 y1, y2, 3 y2, y2, y3,. 5 y3 y 6 7 y1 y5 W zyadku zasosowania sukuy do zakodowania mikoinsukcji należało by wykozysać N 1 = log 2 T = 3 biy. W akiej syuacji układ n R N 6 kombinacyjny ealizował by 1 funkcji boolowskich. Do ealizacji dekodea należało by zasosować amięć o 3 wejściach adesowych i 5-biowym słowie. Rozoczynając oces synezy do sukuy J należy dokonać odziału zbiou mikoinsukcji na odzbioy (ea 1). W naszym zyadku uzyskamy = 5 a,, a,, akich odzbioów: 1 1 2 3, 2 2 3 a,, a,, a,, 3 3 5 6. 5 5 7 Nasęnie odzbioy e należy ołączyć w ay (ea 2). onieważ w naszym zyadku zachodzi waunek 2 log 2 o zy największe odzbioy łączymy w ay ze zbioem usym. Tak więc uzyskamy czey,,,,, nasęujące a: 1 1 2 3, 5 5 7,,,,, 2 1 2 3 3 5 6. W kolejnym koku ozosaje zakodować mikoinsukcje binanym kodem K (ea 3). Dla zykładowego auomau S 1 kod en wymaga wykozysania N C = log 2 T C = 2 biów. Kodowanie naomias będzie wyglądało nasęująco: K K K, K, 1 2 01,,, K, 1 1 00 5 00 3 5 10 1 3 10 K. Do 3 6 11 awidłowego dekodowania mikoinsukcji wymagane jes zasosowanie odowiedniego kodowania sanów (ea ). Dla naszego zykładu może ono wyglądać nasęująco: 1 000 Ka, 101 K a, Ka, K a5 110. 2 010 K a3 100, Tabela 1. Tablica zejść-wyjść auomau J a m K(a m ) a s K(a s ) h Ψ h h h a 2 010 xx 1 2 - D 2 1 a 1 000 x 1 2 ψ 2 D 1 2 a 101 x 2 ψ 1 D 1 D 3 3 a 2 010 2 - D 1 a 101 x 2 ψ 2 D 1 D 3 5 2 - D 1 6 a 3 100 a 101 xx 2 3 - D 1 D 3 7 a 5 110 xx 2 3 ψ 2 D 1 D 2 8 a 101 a 5 110 x 3 ψ 1 D 1 D 2 9 3 ψ 1 ψ 2 D 1 10 a 1 000 x 1 ψ 1-11 a 5 110 a 5 110 xx 1 3 ψ 2 D 1 D 2 12 a 101 xx 1 3 - D 1 D 3 13
KNWS 2011 35 o wykonaniu ych czynności można uwozyć ablicę zejść-wyjść auomau J (ea 5). Dla auomau S 1 jes ona zedsawiona w abeli 1. Wymagane jes ównież uwozenie ablicy dekodea, kóa będzie oisywała zawaość amięci dekodea (ea 6). Tablica a dla auomau S 1 jes zedsawiona w abeli 2. K(a m )[1..2] Tabela 2. Tablica dekodea mikoinsukcji K 1 2 ψ 1 ψ 2 y 1 y 2 y 3 y y 5 00 00 10000 1 00 01 11000 2 00 10 01000 3 01 00 11000 01 01 01000 5 10 00 01000 6 10 01 01100 7 10 10 00110 8 10 11 00000 9 11 00 01100 10 11 01 00110 11 11 10 10001 12 Na odsawie ablicy zejść-wyjść należy uwozyć ównania boolowskie oisujące sysem (10) (ea 7). Dla auomau S 1 będą o n.: D1 1 2 1 2 3 3 x1 1 3 x2, 1 1 2 3 x2 1 2 3 x1 1 23 Na odsawie uzyskanych ównań oaz ablicy dekodea mikoinsukcji można dokonać imlemenacji auomau w sukuze FGA (ea 8). Dla owyższego zykładu można dokonać zesawienia kluczowych aameów układu logicznego auomau dla zedsawionych suku (ab. 3). Tabela 3. aamey auomau S 1 dla oszczególnych suku * 0 J n 8 6 5 5 n 3 3 3 3 n 0 0 160 80 Z owyższego zesawienia widać, że zasosowanie oonowanego łącznego kodowanie wielokonego ( J ) zmniejsza liczbę ealizowanych funkcji boolowskich w oównaniu z meodą sandadowa () w akim samym soniu jak meoda bazowa z kodowaniem wielokonym ( 0 ). Naomias w oównaniu do meody bazowej dwukonie zmniejszeniu ulega ozmia amięci dekodea mikoinsukcji. * n liczba funkcji boolowskich ealizowana zez układ kombinacyjny n liczba zezuników D w ejesze n Rozmia amięci dekodea w biach 0. ODSUOWANIE W aykule zedsawiono meodę synezy blokowej auomaów sanów do suku FGA. Zasosowana oonowanego łącznego kodowanie wielokonego ozwala na uzymanie bez zmian liczby funkcji boolowskich ealizowanych ozez kombinacyjną część auomau i jednoczesne dwukone zmniejszenie ozmiau amięci dekodea, w oównaniu ze sukuą bazową. Zmniejszenie amięci jes gwaanowane zez dokonane zekszałcenia maemayczne i jes niezależne od algoymu seowania oisanego auomaem. Tak więc, oonowana meoda synezy blokowej, waz z dedykowaną dla niej sukua blokową auomau, ozwala na ównomiene i efekywne wykozysanie óżnoodnych zasobów szęowych układu FGA. LITERATURA [1] Adamski., Bakalov A., Achiecual and Sequenial Synhesis of Digial Devices. Zielona Góa: Univesiy of Zielona Góa ess, 2006 [2] Bakalov A., Tiaenko L., Logic Synhesis fo FSbased Conol Unis. Belin: Singe-Velag, 2009. [3] Bukowiec A., Bakalov A., Imlemenacja skończonych auomaów sanów do suku FGA z wielokonym kodowaniem sanów, zegląd Elekoechniczny, n 7, s. 185-188, 2009. [] Bukowiec A., Synhesis of Finie Sae achines fo FGA Devices Based on Achiecual Decomosiion. Zielona Góa: Univesiy of Zielona Góa ess, 2009. [5] Łuba T., Syneza układów logicznych. Waszawa: OWW, 2005. [6] Łuba, T., Boowik, G., Kaśniewski, A., Synhesis of finie sae machines fo imlemenaion wih ogammable sucues, Eleconics and Telecommunicaions uaely, vol. 55, issue 2, s. 183-200, 2009. [7] Rawski., Boowik G., Łuba T., Tomaszewicz., Falkowski B.J., Logic synhesis saegy fo FGAs wih embedded memoy blocks, zegląd Elekoechniczny, n 11a, s. 95-101, 2010. [8] ang S., Logic Synhesis and Oimizaion Benchmaks Use Guide. v.3.0, Rao ech., NC: CNC, 1991. [9] Wiśniewski R., Bakalov A., ojekowanie seowników mikoogamowanych z wykozysaniem bloków amięci układów ogamowalnych, omiay Auomayka Konola, n. 8, s. 569-571, 2009. d inż. Akadiusz Bukowiec Uniwesye Zielonogóski Wydział Elekoechniki, Infomayki i Telekomunikacji Insyu Infomayki i Elekoniki ul. Licealna 9 65-17 Zielona Góa el.: 68 328 230 e-mail: a.bukowiec@iie.uz.zgoa.l