WYKORZYSTYWANIE WYJŚCIOWYCH MAKROKOMÓREK UKŁADU PLD W

Podobne dokumenty
SYNTEZA WSPÓLNYCH MODELI AUTOMATÓW SKOŃCZONYCH NA PLD

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Synteza strukturalna automatu Moore'a i Mealy

PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

Laboratorium przedmiotu Technika Cyfrowa

Język opisu sprzętu VHDL

Mikroprogramowany układ sterujący z współdzieleniem kodów oraz rozszerzonym formatem mikroinstrukcji

SYNTEZA JEDNOSTEK STERUJĄCYCH W STRUKTURACH PROGRAMOWALNYCH

ZASTOSOWANIE TRANSWERSALI HIPERGRAFÓW DO MINIMALIZACJI ROZMIARU PAMIĘCI JEDNOSTEK STERUJĄCYCH

Synteza strukturalna automatów Moore'a i Mealy

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Sławomir Kulesza. Projektowanie automatów synchronicznych

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Asynchroniczne statyczne układy sekwencyjne

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Errata do książki Multisim. Technika cyfrowa w przykładach.

Podstawy Techniki Cyfrowej Teoria automatów

3. Macierze i Układy Równań Liniowych

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Systemy wbudowane. Układy programowalne

W jakim celu to robimy? Tablica Karnaugh. Minimalizacja

Wstęp do Techniki Cyfrowej... Teoria automatów

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 212

Część 2. Funkcje logiczne układy kombinacyjne

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Inteligencja obliczeniowa

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Układy asynchroniczne

Algebra Boole a i jej zastosowania

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

0 + 0 = 0, = 1, = 1, = 0.

dwójkę liczącą Licznikiem Podział liczników:

x x

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Metoda Karnaugh. B A BC A

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Technika cyfrowa Synteza układów kombinacyjnych (I)

DEKOMPOZYCJA SYMBOLICZNA WIELOWARTOŚCIOWYCH FUNKCJI IMPLEMENTOWANYCH W TECHNOLOGII FPGA

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Asynchroniczne statyczne układy sekwencyjne

Technika Cyfrowa 1 wykład 1: kody. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Układy programowalne. Wykład z ptc część 5

Układy asynchroniczne

Algorytmy sztucznej inteligencji

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Technika cyfrowa Synteza układów kombinacyjnych

Układy kombinacyjne i sekwencyjne. Podczas ćwiczenia poruszane będą następujące zagadnienia:

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Klasyczne zagadnienie przydziału

Rozwiązanie Ad 1. Model zadania jest następujący:

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Programowalne układy logiczne

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające

Synteza układów kombinacyjnych

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Architektura komputerów Wykład 2

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 13 - Wprowadzenie do układów sekwencyjnych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

UKŁADY MIKROPROGRAMOWALNE

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie

Układy równań liniowych. Ax = b (1)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Optymalizacja systemów

Metoda simpleks. Gliwice

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym.

Synteza logiczna układu realizującego zespół funkcji przełączających z użyciem bramek XOR w strukturach CPLD

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Definicja 2. Twierdzenie 1. Definicja 3

Technika cyfrowa Układy arytmetyczne

Minimalizacja form boolowskich

LICZNIKI PODZIAŁ I PARAMETRY

Rozdział 1 PROGRAMOWANIE LINIOWE

Projektowanie automatów z użyciem VHDL

Programowanie liniowe

Elektronika i techniki mikroprocesorowe

O MACIERZACH I UKŁADACH RÓWNAŃ

Optymalizacja systemów

Układy logiczne układy cyfrowe

Układy równań liniowych

Bezpieczeństwo informacji oparte o kryptografię kwantową

Transkrypt:

WYKORZYSTYWANIE WYJŚCIOWYCH MAKROKOMÓREK UKŁADU PLD W CHARAKTERZE ELEMENTÓW PAMIĘCI AUTOMATU SKOŃCZONEGO Adam Klimowicz, Walery Sołowjew Wydział Informatyki Politechniki Białostockiej, ul. Wiejska 45A, 15-351 Białystok aklim@ii.pb.bialystok.pl, walsol@ii.pb.bialystok.pl Abstrakt: W pracy przedstawiono nowe podejście do projektowania automatów skończonych na PLD, gdzie makrokomórki wyjściowe układu programowalnego są jednocześnie wykorzystywane do realizacji funkcji wyjściowych i funkcji przejść. Automaty skończone typu Moore a, które dopuszczają taka realizacje otrzymały nazwę automatów klasy C, a automaty skończone Mealy a automatów klasy D. Rezultaty badań eksperymentalnych przedstawionych metod w porównaniu z podejściem tradycyjnym, realizowanym w pakiecie Max+Plus II, pokazały wysoką efektywność nowych metod syntezy, które pozwalają zmniejszyć liczbę wykorzystywanych makrokomórek PLD, średnio, 2-3 razy, a w wybranych przypadkach nawet 10-15 razy. 1. WPROWADZENIE W pracach [6, 7] przedstawiono 50 strukturalnych modeli automatów skończonych do realizacji w strukturach programowalnych, spośród których 9 modeli (C, D, C I, D I, D O, D IO, C I, D I, D IO ), wykorzystują przerzutniki makrokomórek wyjściowych PLD w charakterze elementów pamięci automatu skończonego. Do realizacji tych modeli wystarczy rozporządzać tylko dwiema metodami syntezy: automatów klasy C i automatów klasy D. Inne modele buduje się na bazie automatów klas C i D drogą dołączenia rejestrów na wejściu (C I, D I ), rejestrów na wyjściu (D O ), jednocześnie rejestrów na wejściu i wyjściu (D IO ), zatrzasków na wejściu (C I, D I ), a także zatrzasków na wejściu i rejestrów na wyjściu (D IO ). W pracy została szerzej opisana metoda syntezy automatów klasy C, gdyż automaty tej klasy mogą być realizowane na wszystkich współczesnych układach PLD, natomiast zbudowanie automatu klasy D jest możliwe tylko na PLD dopuszczających konfigurację wyjściowych makrokomórek z przerzutnikami w pętlach sprzężenia zwrotnego. Przedstawiono też rezultaty badań eksperymentalnych metod syntezy automatów klas C i D w porównaniu z tradycyjnymi modelami automatów skończonych typu Mealy a [4] i Moore a [5]. W zakończeniu przedstawiono wnioski oraz możliwości udoskonalenia przedstawionych algorytmów. 2. METODA SYNTEZY AUTOMATÓW KLASY C Automatem klasy C jest automat Moore a, którego każda wartość wektora zmiennych wyjściowych jest identyczna z kodem stanu wewnętrznego. W praktyce, większość automatów nie jest automatami klasy C, gdyż nie zawsze formowane na wyjściach wartości zmiennych wyjściowych mogą występować jako kody stanów wewnętrznych automatu. Na przykład, jeżeli liczba N funkcji wyjściowych jest mniejsza od wartości intlog 2 M, gdzie M jest liczbą stanów automatu lub kiedy w różnych stanach automatu są formowane identyczne wartości zmiennych wyjściowych. Z warunku determinizmu funkcjonowania automatu skończonego kody różnych stanów powinny być między sobą ortogonalne, tzn. przynajmniej na jednym bicie powinny mieć różne wartości. W przedstawionym podejściu, w celu rozróżnienia kodów stanów wewnętrznych wprowadza się dodatkowe elementy pamięci. Automat skończony charakteryzuje się liczbą L zmiennych wejściowych zbioru X={x 1,...,x L }, liczbą N funkcji wyjściowych zbioru Y={y 1,...,y N }, liczbą M stanów

wewnętrznych zbioru A={a 1,...,a M } oraz liczbą R funkcji wzbudzenia elementów pamięci (funkcji przejść) zbioru D={d 1,...,d R } i zmiennych sprzężeń zwrotnych E={e 1,...,e R }. Niech dla możliwości syntezy automatu klasy C zostanie wprowadzonych R dodatkowych elementów pamięci, sterowanych za pomocą funkcji d N+1,...,d N+R, przy czym na wyjściach elementów pamięci są formowane wartości zmiennych sprzężeń zwrotnych e N+1,...,e N+R. Synteza automatu klasy C prowadzi do specjalnego kodowania stanów wewnętrznych automatu skończonego. Można zauważyć, że w charakterze kodu stanu występuje nie pełna koniunkcja [9] zmiennych sprzężeń zwrotnych a elementarna koniunkcja [9] zmiennych ze zbioru E = {e 1,...,e N+R }. Algorytm 1. (kodowania stanów automatu klasy C) 1. Dla każdego stanu wewnętrznego automatu a i, a i A, określa się zbiór wartości zmiennych wyjściowych, który może być kodem lub częścią kodu danego stanu. W tym celu buduje się zerojedynkową macierz W. Wiersze macierzy odpowiadają stanom automatu, a kolumny funkcjom wyjściowym. Na początku wszystkie komórki macierzy mają wartość nieokreśloną. Na przecięciu wiersza i i kolumny j stawia się jedynkę, jeśli funkcja wyjściowa y j Y(a i ), gdzie Y(a i ) podzbiór zbioru funkcji wyjściowych, które przyjmują wartość równą jeden w stanie a i. Wiersz macierzy W, odpowiadający stanowi a i, będzie oznaczany W(a i ), a i A. 2. Wprowadza się dodatkowe bity kodu dla rozróżnienia kodów stanów pomiędzy sobą. 2.1. W macierzy W znajduje się podzbiór wierszy W 1,...,W H, mających jednakowe wartości komórek, tzn. jeśli W(a i ) W h i W(a j ) W h, to W(a i ) = W(a j ), h= 1, H. 2.2. Wprowadza się R dodatkowych zmiennych wewnętrznych automatu d N+1,...,d N+R, gdzie R = intlog 2 (max( W 1,..., W H )). Do macierzy W dopisuje się R kolumn. 2.3. W wiersze każdego podzbioru W h, h = 1, H, dopisuje się kody binarne o długości R, których bity odpowiadają zmiennym d N+1,...,d N+R. Przy tym kody z najmniejszą liczbą jedynek należy przydzielić wierszom W(a i ), dla których C(a i ) = max, gdzie C(a i ) zbiór przejść do stanu a i, a i A. 3. W celu zapewnienia warunków ortogonalności uzupełnia się komórki macierzy W z wartościami nieokreślonymi zerami dla kolumn, odpowiadających funkcjom wyjściowym y 1,...,y N i zerami lub jedynkami dla kolumn odpowiadających funkcjom wzbudzeń elementów pamięci d N+1,...,d N+R. Przy tym należy minimalizować liczbę wartości znaczących. Trywialne rozwiązanie tego zadania polega na wpisaniu zer w komórki macierzy W zawierające wartości nieokreślone. Ponieważ w większości PLD przy włączeniu zasilania przerzutniki przechodzą w stan zerowy, więc wiersz W(a 1 ), odpowiadający stanowi początkowemu można uzupełniać tylko zerami. 4. Określane są kody stanów automatu. Każdemu stanowi a i, a i A, odpowiada elementarna koniunkcja zmiennych ze zbioru E, w sposób następujący: jeżeli w kolumnie j wiersza W(a i ) zapisana jest jedynka, to zmienna e i wchodzi do koniunkcji w prostej postaci, jeżeli zero to w zanegowanej, jeśli wartość nieokreślona to zmienna e i nie wchodzi do koniunkcji. 5. Koniec. Dalsza synteza automatu klasy C polega na przyporządkowaniu funkcji wzbudzeń pamięci makrokomórkom układu PLD, przy czym funkcje d 1,...,d N przyporządkowuje się makrokomórkom wyjściowym, funkcje d N+1,...,d N+R można przyporządkowywać zarówno wewnętrznym (nie związanym z wyprowadzeniami zewnętrznymi) jak i wyjściowym makrokomórkom PLD. Na wyjściach przerzutników sterowanych funkcjami d 1,...,d N będą formowane wartości zmiennych sprzężeń zwrotnych oraz funkcji wyjściowych. Jest to możliwe, ponieważ wszystkie rejestrowe wyjścia PLD posiadają pętle sprzężenia zwrotnego.

Na wyjściach przerzutników sterowanych funkcjami d N+1,...,d N+R będą formowane wartości tylko zmiennych sprzężeń zwrotnych e N+1,...,e N+R. 3. PRZEKSZTAŁCENIE AUTOMATU MEALY A W AUTOMAT TYPU MOORE A Jak pokazano wyżej, automat klasy C jest automatem typu Moore a. Jednak może okazać się, że dany automat skończony jest automatem typu Mealy a. Z tego wynika konieczność przekształcenia automatu Mealy a w automat Moore a. Znanych jest wiele sposobów (np. opisany w pracy [3]) przejścia od jednego do drugiego typu automatu. Poniżej zostanie pokazana metoda przekształcenia automatu Mealy a w automat Moore a za pomocą operacji rozszczepienia [1] stanów wewnętrznych automatu skończonego. Niech А(a m ) zbiór stanów, w których kończą się przejścia ze stanu a m, a m A. Automat skończony jest typu Moore a, jeśli dla wszystkich a m, a m A, spełnione są warunki: Y(a m,a h ) = Y(a m,a t ) dla wszystkich a h, a t A(a m ), h t, ( 1 ) gdzie Y(a m,a s ) zbiór zmiennych wyjściowych, przyjmujących wartości równe jeden na przejściu ze stanu a m w stan a s, Y(a m,a s ) Y, a m, a s A. Inaczej mówiąc, dla automatu typu Moore a na wszystkich przejściach z danego stanu powinny być formowane takie same wartości zmiennych wyjściowych. Niech P(a m ) zbiór wszystkich przejść ze stanu a m, a m A; P k (a m ) jeden z podzbiorów zbioru przejść, P k (a m ) P(a m ); Y k (a m ) - podzbiór zmiennych wyjściowych przyjmujących wartości równe jeden podczas każdego przejścia z podzbioru P k (a m ), Y k (a m ) Y, przy czym żadna inna zmienna wyjściowa nie przyjmuje jedynkowej wartości na przejściach z podzbioru P k (a m ). Wtedy algorytm rozszczepienia stanów wewnętrznych automatu typu Mealy a celem przekształcenia w równoważny mu automat Moore a można przedstawić w następujący sposób. Algorytm 2. 1. Jeżeli dla wszystkich stanów a m, a m A, spełnione są warunki (1), to wykonuje się przejście do punktu 5. 2. Znajduje się stan a m, a m A, dla którego naruszono warunki (1). Określa się podzbiory przejść P 1 (a m ),...,P K (a m ) ze stanu a m, podczas których formowane są odpowiednio różne wartości wyjściowe Y 1 (a m ),...,Y K (a m ), Y k (a m ) Y h (a m ) przy k h, k,h= 1, K. 3. Wykonuje się rozszczepienie stanu a m, wybranego w punkcie 2. 3.1. Wprowadza się K nowych stanów a M+1,...,a M+K. 3.2. Określa się podzbiory P(a M+1 ),...,P(a M+K ) przejść ze stanów a M+1,...,a M+K, dlatego podstawia się P(a M+k ) := P k (a m ), k= 1, K. 3.3. Określa się podzbiory C(a M+1 ),...,C(a M+K ) przejść do stanów a M+1,...,a M+K, dlatego podstawia się C(a M+k ) := C(a m ), k= 1, K. 3.4. Podstawia się A := A\{a m } oraz A := A {a M+1,...,a M+K }. 3.5. Wykonuje się odpowiednią korekcję tablicy przejść. 4. Wykonuje się przejście do punktu 1. 5. Koniec. 4. METODA SYNTEZY AUTOMATÓW KLASY D Automatem klasy D jest automat skończony Mealy a, którego każdy zbiór wartości zmiennych wyjściowych określa kod stanu następnego automatu. Przy syntezie automatów

Mealy a klasy D aktualne są te same problemy co przy syntezie automatu klasy C: nie dla każdego automatu wartości zmiennych wyjściowych określają kod stanów przejścia, liczba funkcji wyjściowych może być mniejsza od minimalnej długości słowa kodowego, różnym stanom przejścia odpowiadają jednakowe zbiory wartości zmiennych wyjściowych, kody stanów powinny być wzajemnie ortogonalne. Niech B(a s ) zbiór stanów, z których przejścia kończą się w stanie a s, a s A. Główna idea metody syntezy automatu klasy D polega na dokonaniu rozszczepienia złych stanów w taki sposób, aby dla każdego stanu a s, a s A, były spełnione warunki: Y(a h,a s ) = Y(a t,a s ) dla wszystkich a h, a t B(a s ), h t, ( 2 ) tj. aby dla każdego stanu a s, a s A, na wszystkich przejściach w dany stan formowały się jednakowe zbiory wartości zmiennych wyjściowych. Dalsze czynności związane z syntezą automatu klasy D są podobne jak dla automatu klasy C. Niech С k (a s ) jeden z podzbiorów zbioru przejść, które kończą się w stanie a s, С k (a s ) С(a s ); Z k (a s ) podzbiór zmiennych wyjściowych przyjmujących wartości równe jeden podczas każdego przejścia z podzbioru C k (a s ), Z k (a s ) Y, przy czym żadna inna zmienna wyjściowa nie przyjmuje wartości równej jeden na przejściach należących do zbioru C k (a s ). Wówczas algorytm rozszczepienia stanów dla przekształcenia dowolnego automatu klasy A w automat klasy D, tj. dla wypełnienia warunków (2), można opisać w następujący sposób. Algorytm 3. 1. Jeżeli dla wszystkich stanów ze zbioru A spełnione są warunki (2), to wykonuje się przejście do punktu 5. 2. Znajduje się stan a s, a s A, dla którego naruszono warunki (2). Określa się podzbiory przejść C 1 (a s ),...,C K (a s ) do stanu a s, podczas których są formowane odpowiednio różne zbiory wartości zmiennych wyjściowych Z 1 (a s ),...,Z K (a s ), Z k (a s ) Z h (a s ) przy k h, k,h= 1, K. 3. Wykonuje się rozszczepienie stanu a s określonego w punkcie 2. 3.1. Wprowadza się K nowych stanów a M+1,...,a M+K. 3.2. Określa się podzbiory P(a M+1 ),...,P(a M+K ) przejść ze stanów a M+1,...,a M+K, dlatego podstawia się P(a M+k ) := P k (a s ), k= 1, K. 3.3. Określa się podzbiory C(a M+1 ),...,C(a M+K ) przejść do stanów a M+1,...,a M+K, dlatego podstawia się C(a M+k ) := C(a s ), k= 1, K. 3.4. Podstawia się A := A\{a s } oraz A := A {a M+1,...,a M+K }. 3.5. Wykonuje się odpowiednią korekcję tablicy przejść. 4. Wykonuje się przejście do punktu 1. 5. Koniec. Analogicznie do automatu klasy C, synteza automatu klasy D prowadzi do specjalnego kodowania stanów wewnętrznych automatu skończonego, do którego można wykorzystać następujący algorytm. Algorytm 4. 1. Dla każdego stanu wewnętrznego automatu a i, a i A, określa się zbiór wartości zmiennych wyjściowych który może być kodem lub częścią kodu danego stanu. W tym celu buduje się zerojedynkową macierz W. Wiersze macierzy W odpowiadają stanom automatu, a kolumny funkcjom wyjściowym. Na początku wszystkie

komórki macierzy mają wartość nieokreśloną. Na przecięciu wiersza i i kolumny j stawiana jest jedynka, jeśli a m B(a i ), а y j Y(a m,a i ). 2. Wykonuje się punkty 2-4 algorytmu 1. 3. Koniec. 5. BADANIA EKSPRERYMENTALNE METOD SYNTEZY AUTOMATÓW KLAS C I D Opisane wyżej metody syntezy automatów klas C i D zostały zaimplementowane jako część pakietu naukowo-badawczego ZUBR, wspomagającego proces syntezy układów kombinacyjnych i automatów skończonych na PLD. Dla zbadania efektywności przedstawionych metod, w charakterze danych wejściowych wykorzystano przykłady automatów skończonych, opracowane w MCNC (Microelectronics Center of North Carolina) [8]. Opisane metody zostały porównane z metodami syntezy automatów skończonych pakietu Max+Plus II firmy Altera. Metoda syntezy automatów skończonych klasy C była porównywana z metodami syntezy pakietu Max+Plus II dla PLD rodziny CLASSIC (q=8, gdzie q liczba termów podłaczonych do jednej makrokomórki) i MAX 5000 (q=5). Rezultaty porównania pokazano w tab. 1, gdzie L i N odpowiednio - liczba wejść i wyjść automatu skończonego; C A1 i C A2 liczba wykorzystanych makrokomórek PLD przy syntezie za pomocą metody syntezy pakietu Max+Plus II odpowiednio dla rodziny CLASSIC i rodziny MAX 5000; C C1 i C C2 liczba wykorzystywanych makrokomórek PLD przy syntezie automatu skończonego za pomocą metody syntezy automatów klasy C odpowiednio dla q=8 i q=5. Tablica 1. Rezultaty badań eksperymentalnych metody syntezy automatu klasy C Nazwa L N C A1 C C1 C A1 / C C1 C A2 C C2 C A2 / C C2 Typ Bbsse 7 7 41 19 2,16 22 19 1,16 A beecount 3 4 8 6 1,33 8 6 1,33 A dk16 2 3 - - - 33 14 2,36 A dk17 2 3 11 9 1,22 12 6 2 A Donfile 2 1 - - - 17 1 17 C ex4 6 9 15 12 1,25 14 12 1,17 B mark1 5 16 35 20 1,75 - - - A Mc 3 5 8 5 1,6 8 5 1,6 C s386 7 7 49 20 2,45 22 20 1,1 A s8 4 1 - - - 4 1 4 C Shiftreg 1 1 4 3 1,33 4 2 2 B Średnia 1,64 3,12 Analiza tab. 1 pokazuje, że dla zbadanych przykładów zastosowanie metody syntezy automatów klasy C pozwoliło obniżyć liczbę wykorzystanych makrokomórek PLD dla rodziny CLASSIC średnio 1,64 razy (w najlepszym wypadku 2,45 razy), a dla rodziny MAX 5000 średnio 3,12 razy (w najlepszym wypadku nawet 17 razy). Metoda syntezy automatów klasy D została porównana z metodą syntezy pakietu Max+Plus II dla układów z rodziny MAX 9000 (q=5) i FLEX 10K (q=4). Można zauważyć, że układy z tych rodzin pozwalają konfigurować makrokomórki (elementy logiczne) z przerzutnikami w pętli sprzężenia zwrotnego. Rezultaty porównania pokazano w tab. 2, gdzie C A3 i C A4 liczba wykorzystanych makrokomórek PLD przy syntezie za pomocą metody syntezy pakietu Max+Plus II odpowiednio dla rodziny MAX 9000 i rodziny FLEX 10K; C D1 i C D2 liczba wykorzystywanych makrokomórek PLD przy syntezie automatu skończonego za pomocą metody syntezy automatów klasy D odpowiednio dla q=5 i q=4.

Analiza tab. 2 pokazuje, że dla zbadanych przykładów zastosowanie metody syntezy automatów klasy D pozwala obniżyć liczbę wykorzystanych makrokomórek (elementów logicznych) dla rodziny MAX 9000 średnio 2,04 razy (w najlepszym wypadku 5 razy), a dla rodziny FLEX 10K, średnio 7,5 razy (w najlepszym wypadku nawet 23 razy). Tablica 2. Rezultaty badań eksperymentalnych metody syntezy automatu klasy D Nazwa L N C A3 C D1 C A3 / C D1 C A4 C D2 C A4 / C D2 Typ beecount 3 4 9 6 1,5 36 10 3,6 A ex4 6 9 13 13 1 29 14 2,07 B keyb 7 2 31 16 1,94 103 20 5,15 D lion9 2 1 6 4 1,5 24 4 6 A opus 5 6 10 7 1,43 27 8 3,38 D s1 8 6 52 14 3,71 141 15 9,8 D S27 4 1 4 4 1 43 4 10,75 D S386 7 7 16 16 1 59 20 2,95 A s8 4 1 5 1 5 23 1 23 C train11 2 1 7 3 2,33 25 3 8,33 A Średnia 2,04 7,50 Można też zauważyć, że metody syntezy automatów klas C i D pozwalają budować 2-3 razy szybsze automaty skończone, niż tradycyjne metody syntezy automatów skończonych typów Moore a i Mealy a. 6. ZAKOŃCZENIE Metody syntezy automatów skończonych klas C i D pozwalają znacznie obniżyć koszt realizacji i jednocześnie zwiększyć szybkość realizowanego automatu skończonego. Obniżenie kosztu realizacji otrzymuje się dzięki uproszczeniu części kombinacyjnej automatu, ponieważ odpada konieczność realizacji funkcji wzbudzeń elementów pamięci, a także zmniejszeniu liczby wykorzystywanych makrokomórek wyjściowych, gdyż pamięć automatu i funkcje wyjściowe są realizowane na tych samych makrokomórkach PLD. Nie bez znaczenia jest tu fakt, że w charakterze kodów stanów wewnętrznych dla automatów klas C i D występują elementarne koniunkcje a nie pełne koniunkcje, jak w tradycyjnych modelach klas A i B. Zwiększenie szybkości automatów klas C i D w porównaniu z tradycyjnymi automatami klas A i B wynika z tego, że dla tych automatów realizowane są przeważnie funkcje wyjściowe, które z zasady są znacznie prostsze niż funkcje wzbudzenia elementów pamięci. Automat klasy C jest automatem Moore a, a automat klasy D - Mealy a, dlatego przy syntezie automatów klasy C czasem należy przekształcić dany automat Mealy a na równoważny mu automat Moore a, co w niektórych przypadkach może znacznie zwiększyć liczbę stanów wewnętrznych i ogólną liczbę przejść automatu skończonego. Wyjścia automatu skończonego klasy C są zawsze wyjściami rejestrowymi, natomiast automatu klasy D kombinacyjnymi. Największą efektywność pokazanych metod uzyskuje się, kiedy wejściowy automat jest od razu automatem klasy C (spełnione są warunki (1)) lub D (spełnione są warunki (2)). Jak widać z tabel 1 i 2, dla automatów klasy C efektywna okazuje się też metoda syntezy automatów klasy D (przykład s8). Metody syntezy automatów klas C i D można efektywnie stosować zarówno w układach programowalnych typu CPLD jak i FPGA (np. dla rodziny FLEX 10K). Duża efektywność metody syntezy automatu klasy D pozwala rekomendować projektantom układy z możliwością konfiguracji wyjściowych makrokomórek w pętlach sprzężeń zwrotnych.

Możliwe jest też dalsze ulepszanie pokazanych algorytmów syntezy. Ponieważ efektywność kodowania stanów wewnętrznych opiera się na wypełnieniu punktu 3 algorytmu 1, należałoby opracować efektywny algorytm ortogonalizacji wierszy macierzy W. Dla systemów z logiką inwersyjną należy opracować metody syntezy automatów klas C i D w przypadku, kiedy układ programowalny nie dopuszcza programowania poziomu logicznego sygnałów wyjściowych. Można także modyfikować przedstawione algorytmy dla PLD, dopuszczających programowanie poziomu logicznego sygnałów wyjściowych, w taki sposób, aby do realizacji była wybierana prostsza z funkcji y i lub y i, w zależności od liczby termów koniecznych do realizacji danej postaci funkcji. Dalsze ulepszenie pokazanego podejścia może być osiągnięte też drogą połączenia automatów skończonych różnych klas w ramach jednego modelu automatu skończonego. LITERATURA I ŹRÓDŁA [1] Avedillo M., Quintana J., Huertas J. State merging and splitting via state assignment: a new FSM synthesis algorithm, IEE Proceedings. Part E, Computers and Digital Techniques, vol. 141, No. 4, July 1994, pp.229-237. [2] DeMicheli G., Brayton R.K., Sangiovanni-Vincentelli A. Optimal state assignment for finite state machines, IEEE Trans. on Computer-Aided Design, vol. CAD-4, pp. 269-285, July 1985.machines, [3] Głuszkow W.M.: Sintez cifrowych awtomatow. Moskwa, Fizmatgiz, 1962, 476 s. [4] Mealy G.H. Method for synthesizing sequential circuits, Bell System Techn. Jourhal, vol.34, 1955, pp.1045-1079. [5] Moore E.F. Gedanken-experiments on sequential machines, In C.Shannon and J.McCarthy editors. - Automata Studies, Princeton University Press, 1956, pp.129-153. [6] Solovjev V., Synthesis of Sequential Circuits on Programmable Logic Devices Based on New Models of Finite State Machines, Proc. of the EUROMICRO Symposium on DIGITAL SYSTEMS DESIGN (DSD 2001), September 4-6, 2001, Warsaw, Poland, pp. 170-173. [7] Sołowiew W.W.: Projektirowanije cifrowych sistiem na osnowie programmirujemych logiczeskich integralnych schiem. Moskwa, Hot Line-Telekom, 2001, 636 s. [8] Yang S., Logic synthesis and optimization benchmarks user guide. Version 3.0., Technical Report, Microelectronics Center of North Carolina, 1991, 43p. [9] Zakrewskij A.D.: Logiczeskij sintez kaskadnych schiem. Moskwa, Nauka, 1981, 416 s. Praca zrealizowana w ramach projektu badawczego W/WI/7/02.