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

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

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

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

Język opisu sprzętu VHDL

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

SYNTEZA JEDNOSTEK STERUJĄCYCH W STRUKTURACH PROGRAMOWALNYCH

Synteza strukturalna automatu Moore'a i Mealy

Sławomir Kulesza. Projektowanie automatów synchronicznych

Asynchroniczne statyczne układy sekwencyjne

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

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

Synteza strukturalna automatów Moore'a i Mealy

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

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

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

Metoda Karnaugh. B A BC A

Automat skończony FSM Finite State Machine

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

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

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

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

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

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

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

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

Laboratorium przedmiotu Technika Cyfrowa

Architektura komputerów Wykład 2

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

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

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

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

Asynchroniczne statyczne układy sekwencyjne

Tranzystor JFET i MOSFET zas. działania

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

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR

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

Podstawy Techniki Cyfrowej Teoria automatów

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

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

DEKOMPOZYCJA SYMBOLICZNA WIELOWARTOŚCIOWYCH FUNKCJI IMPLEMENTOWANYCH W TECHNOLOGII FPGA

UKŁADY MIKROPROGRAMOWALNE

TEORIA GRAFÓW I SIECI

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

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

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

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

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

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

Problem kodowania w automatach

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

Układy asynchroniczne

5. Rozwiązywanie układów równań liniowych

Minimalizacja form boolowskich

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

Automatyka Treść wykładów: Literatura. Wstęp. Sygnał analogowy a cyfrowy. Bieżące wiadomości:

ZAGADNIENIE TRANSPORTOWE

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Metoda simpleks. Gliwice

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

Rozdział 1 PROGRAMOWANIE LINIOWE

Projektowanie automatów z użyciem VHDL

Klasyczne zagadnienie przydziału

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

Sortowanie topologiczne skierowanych grafów acyklicznych

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

Spacery losowe generowanie realizacji procesu losowego

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Matematyczne Podstawy Informatyki

Rozwiązywanie układów równań liniowych

TEORETYCZNE PODSTAWY INFORMATYKI

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

Algebra Boole a i jej zastosowania

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

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Systemy wbudowane. Układy programowalne

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Metody uporządkowania

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

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

Układy asynchroniczne

2. SYNTEZA UKŁADÓW LOGICZNYCH REALIZOWANYCH NA BAZIE DEMULTIFLEK3ERÓW

W ujęciu abstrakcyjnym automat parametryczny <A> można wyrazić następującą "ósemką":

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

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

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

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Definicja 2. Twierdzenie 1. Definicja 3

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

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

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

PROGRAMOWANIE DYNAMICZNE W ROZMYTYM OTOCZENIU DO STEROWANIA STATKIEM

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

INSTYTUT INFORMATYKI POLITECHNIKI BIAŁOSTOCKIEJ

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

1. SYNTEZA UKŁADÓW SEKWENCYJNYCH

Transkrypt:

SYNTEZA WSPÓLNYCH MODELI AUTOMATÓW SKOŃCZONYCH NA PLD Walery Sołowjew, Adam Klimowicz Wydział Informatyki Politechniki Białostockiej, ul. Wiejska 45A, 15-351 Białystok e-mail: walsol@ii.pb.bialystok.pl, aklim@ii.pb.bialystok.pl Praca prezentuje nową metodę syntezy automatów skończonych. Efektywność tej metody polega na wykorzystaniu w ramach jednej struktury różnych klas automatów skończonych. Efektywność wykorzystania różnych klas automatów przejawia się w zmniejszeniu liczby bitów wykorzystanych do kodowania stanów wewnętrznych i uproszczeniu części kombinacyjnej automatu skończonego, a co za tym idzie zmniejszeniu liczby wykorzystanych wyjściowych lub wewnętrznych makrokomórek układu PLD. Algorytm ten korzysta z zasobów współczesnych układów programowalnych, a w szczególności z takich cech jak możliwość stosowania wyjść i wejść układu zarówno buforowanych jak i kombinacyjnych, a także możliwość wykorzystania przerzutnika w pętli sprzężenia zwrotnego układu programowalnego. Pokazana zostanie klasyfikacja modeli automatów skończonych ze względu na możliwość ich realizacji na PLD, a także warunki ich realizacji. Zaprezentowano wyniki działania algorytmu w porównaniu z innymi metodami. 1. WPROWADZENIE Programowalne układy logiczne (PLD) są powszechnie stosowane do realizacji układów sekwencyjnych, których modelem matematycznym jest automat skończony. W wyniku ciągłego rozwoju architektur układów programowalnych [10, 14], rosną ich możliwości do realizacji systemów cyfrowych. Z tego powodu, bardzo ważną rzeczą jest znalezienie efektywnych metod syntezy automatów skończonych na bazie PLD. Głównym problemem przy projektowaniu automatów skończonych jest kodowanie stanów automatu [1, 7]. Wcześniejsze metody koncentrowały się głównie na minimalizacji liczby składników postaci sumy iloczynów części kombinacyjnej automatu [1, 3, 4, 6]. Z wcześniejszych metod można wyróżnić metody syntezy do realizacji w strukturach dwupoziomowych (np. NOVA) [18] jak również w strukturach wielopoziomowych (np. MUSTANG, JEDI) [5, 8]. Jednak wyniki otrzymywane za pomocą wyżej wymienionych metod przy syntezie na współczesnych układach logiki programowalnej nie są optymalne. Dzieje się to powodu tego, że metody te nie uwzględniają cech szczególnych architektur współczesnych układów programowalnych. Proponowana metoda opiera się na zaproponowanych wcześniej nowych modelach automatów skończonych [13-17], a w szczególności wykorzystaniu klas A, D i E automatów, połączonych w jednej strukturze. Charakteryzuje się ona wykorzystaniem w znacznym stopniu możliwości współczesnych struktur programowalnych takich, jak: stosowanie wejść i wyjść układu programowalnego, zarówno kombinacyjnych jak i rejestrowych, możliwość wykorzystania przy realizacji automatu skończonego przerzutnika umieszczonego w pętli sprzężenia zwrotnego. Dużą efektywność tej metody uzyskujemy dzięki wzajemnemu niwelowaniu się wad poszczególnych klas automatów oraz maksymalnemu wykorzystaniu ich zalet. Efektywność ta przejawia się w zmniejszeniu liczby bitów wykorzystanych do kodowania stanów wewnętrznych i uproszczeniu części kombinacyjnej automatu skończonego, a także w uproszczeniu funkcji wyjściowych i funkcji wzbudzeń elementów pamięci automatu skończonego.

2. ZAŁOŻENIA WSTĘPNE Niech automat skończony będzie opisany w standardzie KISS [19], czyli za pomocą tablicy przejść składającej się z czterech kolumn a m, a s, X(a m,a s ) i Y(a m,a s ), gdzie a m - stan obecny automatu, a s - stan następny, X(a m,a s ) wektor zmiennych wejściowych a Y(a m,a s ) - wektor zmiennych wyjściowych. Jeden wiersz w tablicy przejść odpowiada jednemu przejściu automatu. We wspólnym modelu automatu skończonego zbiór stanów wewnętrznych jest rozpatrywany jako suma podzbiorów A A, A D i A E odnoszących się do stanów wewnętrznych automatów klas A, D i E. W ogólnym przypadku dopuszczalne jest istnienie części wspólnych różnych podzbiorów stanów wewnętrznych automatu. Poszczególne podzbiory charakteryzują się następującymi cechami: A A zbiór stanów wewnętrznych automatu skończonego, dla których przy przejściach z danego stanu mogą być formowane różne zbiory zmiennych wyjściowych; A D podzbiór zbioru stanów A A, takich, że przy przejściach w każdy stan ze zbioru A D formowany jest ten sam wektor zmiennych wyjściowych, nie występujący przy przejściach do innych stanów automatu skończonego; A E podzbiór zbioru stanów A A, takich, że przejścia w każdy stan ze zbioru A E są uwarunkowane tym samym wektorem zmiennych wejściowych, nie wpływającym na przejścia do innych stanów automatu skończonego. Proponowany model automatu skończonego jest automatem typu Mealy ego, tzn., że wartości na wyjściach automatu zależą zarówno od stanów wewnętrznych, jak i od zmiennych wejściowych układu. W skład struktury automatu wchodzą modele automatów klas A, D i E, które mogą być opisane za pomocą poniższych równań: automat klasy A (Mealy ego) [10]: a t+1 = ( z t, a t ); ( 1 ) w t = ( z t, a t ); automat klasy D (każdy wektor wyjściowy jest taki sam, jak odpowiadający mu kod stanu następnego automatu): a t+1 = ( z t, a t ); ( 2 ) w t = a t +1 ; automat klasy E (każdy wektor wejściowy jest taki sam, jak odpowiadający mu kod stanu następnego automatu): a t+1 = z t ; ( 3 ) w t = ( z t, a t ); gdzie: a t stan obecny automatu, a t+1 stan następny automatu, w t wektor wyjściowy automatu, z t wektor wejściowy automatu, - funkcja przejścia do stanu następnego, - funkcja wyjścia. Struktura wspólnego modelu automatu skończonego klas A, D i E pokazana jest na rys. 1, gdzie CL jest częścią kombinacyjną automatu, RG I jest rejestrem wejściowym, RG O jest rejestrem wyjściowym, natomiast RG rejestrem wewnętrznym, które przechowują kody stanów wewnętrznych automatów skończonych odpowiednio klas: E, D oraz A. Zawartość rejestru wejściowego RG I określona jest wartościami zmiennych wejściowych ze zbioru X= {x 1,...,x L }, zawartość wyjściowego rejestru RG O określona jest wartościami zmiennych wyjściowych ze zbioru Y={y 1,...,y N } a zawartość rejestru wewnętrznego RG określona jest wartościami funkcji przejść ze zbioru D={d 1,...,d R }. Kody stanów wewnętrznych automatów są określone na pomocą wartości zmiennych ze zbiorów G={g 1,...,g L }, Z={z 1,...,z N } i E= {e 1,...,e R }, formowanych na wyjściach rejestrów odpowiednio: RG I, RG O i RG.

Rys. 1 Struktura wspólnego modelu automatu skończonego klas A, D i E. 3. METODA KODOWANIA STANÓW Istota kodowania stanów wewnętrznych automatu w przedstawionej metodzie, polega na tym, aby uczynić wszystkie stany wewnętrzne różnymi od siebie, tzn. wszystkie kody stanów wewnętrznych automatu powinny być wzajemnie ortogonalne. Użycie do kodowania wektorów zmiennych wejściowych i wyjściowych, określonych wartościami zmiennych ze zbiorów G i Z, częściowo prowadzi do rozwiązania tego zadania. Dalsze kroki prowadzą do wprowadzenia minimalnej liczby dodatkowych zmiennych e 1,...,e R zbioru E i kodowania oddzielnych grup stanów kodem binarnym. Do rozwiązania zadania kodowania stanów wewnętrznych automatu skończonego budowana jest macierz W, której wartości pochodzą ze zbioru {1, 0, -}. Wiersze macierzy odpowiadają stanom wewnętrznym automatu, natomiast kolumny zmiennym ze zbiorów G i Z. Na przecięciu się wiersza odpowiadającego stanowi a i, a i A i kolumny, odpowiadającej zmiennej g j, g j G, stawia się jedynkę, jeżeli zmienna wejściowa x j wchodzi w warunek przejścia X(a i ) w postaci prostej, zero w postaci zanegowanej, a wartość nieokreśloną ( - ) jeśli x j nie wchodzi w warunek przejścia X(a i ) w stan a i. Wartość X(a i ) określa się w następujący sposób: jeśli wszystkie przejścia w stan a i, a i A odbywają się pod wpływem tego samego wektora zmiennych wejściowych X(a m,a i ), to X(a i ) := X(a m,a i ), w przeciwnym wypadku X(a i ) =. Na przecięciu się wiersza odpowiadającego stanowi a i, a A i kolumny, odpowiadającej zmiennej z j, z j Z stawiana jest jedynka, jeżeli y j Y(a i ), wartość nieokreśloną, jeżeli Y(a i ) =, i zero w innym wypadku, gdzie Y(a i ) podzbiór zmiennych wyjściowych, przyjmujących wartość jedynki logicznej przy przejściach w stan a i. Wartość Y (a i ) określa się w następujący sposób: jeśli na wszystkich przejściach w stan a i, a i A, formowany jest taki sam wektor wyjściowy Y(a m,a i ), to wówczas Y(a i ) := Y(a m,a i ), w innym wypadku Y(a i ) :=. Po utworzeniu macierzy W zadanie kodowania wygląda w sposób następujący: należy wprowadzić R zmiennych dodatkowych e 1,...,e R i zakodować wiersze macierzy W w taki sposób, aby wszystkie wiersze tej macierzy były wzajemnie ortogonalne. Aby rozwiązać to zadanie buduje się graf H ortogonalności wierszy macierzy W, czyli inaczej stanów automatu skończonego. Dwa wierzchołki i i j grafu H połączone są krawędzią, jeśli wiersze i i j macierzy W są wzajemnie ortogonalne. Dalsza część zadania prowadzi do znalezienia w grafie H minimalnej liczby T pełnych podgrafów H 1,...,H T, w których wszystkie wierzchołki są wzajemnie między sobą połączone i przypisania tym podgrafom binarnych kodów określonych wartościami zmiennych e 1,...,e R. Metoda ta może być realizowana za pomocą poniższego algorytmu: Algorytm 1 1. Budujemy graf H ortogonalności wierszy macierzy W.

2. Z grafu H usuwamy wierzchołki związane ze wszystkimi innymi wierzchołkami grafu (odpowiadające im wiersze macierzy W są ortogonalne z wszystkimi innymi wierszami). Podstawiamy t:=0. 3. Podstawiamy t:=t+1. W grafie H znajdujemy największy wspólny podgraf H t. 4. Z grafu H usuwamy wierzchołki wchodzące w skład podgrafu H t. Jeżeli zbiór wierzchołków grafu jest pusty przechodzimy do punktu 5, w przeciwnym wypadku do punktu 3. 5. Określamy liczbę R zmiennych dodatkowych e 1,...,e R, R = int log 2 T, gdzie T jest liczbą pełnych podgrafów. 6. Dla każdego podgrafu H t, określamy wartość C t, w następujący sposób: C t = a i A t C(a i ), ( 4 ) gdzie A t zbiór stanów wewnętrznych automatu skończonego, odpowiadających wierzchołkom podgrafu H t,t= 1, T, C(a i ) zbiór wszystkich przejść do stanu a i, a i A. 7. Dla każdego podgrafu H t, t= 1, T, przydzielamy kod binarny, określony wartościami zmiennych e 1,...,e R, przy czym kody z minimalną liczbą jedynek w pierwszej kolejności przydzielamy podgrafom, dla których wartość C t jest maksymalna. 8. Do macierzy W wprowadzamy dodatkowe kolumny odpowiadające zmiennym e 1,...,e R. Wartości tych kolumn są kodami odpowiadających podgrafów. 9. Określamy kody stanów wewnętrznych automatu skończonego. Każdy kod K(a i ) stanu a i, a i A, określony jest wartościami wiersza i macierzy W. Jeśli na przecięciu wiersza i i kolumny j, znajduje się jedynka, to zmienna odpowiadająca kolumnie j wchodzi w kod K (a i ) stanu a i w postaci prostej, jeśli zero w postaci zanegowanej, jeśli wartość nieokreślona zmienna nie wchodzi w kod K(a i ). 10. Koniec. Można zauważyć, że wypełnienie punktów 6 i 7 algorytmu kodowania prowadzi do uproszczenia realizacji na PLD funkcji wzbudzeń elementów pamięci ze zbioru D, ze względu na to, że jeżeli dla stanów o dużej liczbie przejść przydzielimy kod o minimalnej liczbie jedynek, to liczba iloczynów logicznych funkcji wzbudzeń elementów pamięci będzie mniejsza niż w przypadku innego sposobu przydzielania kodów. 4. ALGORYTM SYNTEZY Wykorzystanie wspólnego modelu automatu skończonego klas A, D i E przy syntezie automatów Mealy ego, prowadzi do dwóch głównych celów: minimalizacji liczby R dodatkowych elementów pamiętających, uproszczenie funkcji przejść i wyjść, czyli części kombinacyjnej automatu skończonego. Oba te cele są realizowane drogą wykorzystania modeli automatów klas D i E. Jednak nadmierne wykorzystanie tych modeli, związane z rozszczepieniem stanów, może prowadzić do zwiększenia liczby wierszy tablicy przejść automatu skończonego, jak również do zwiększenia stopnia złożoności funkcji przejść i wyjść. Dlatego też, przy syntezie automatów klas D i E niezbędna jest stała kontrola operacji rozszczepienia stanów, ze względu na parametr R (liczba dodatkowych elementów pamięci). Rozszczepienie stanów ma sens tylko wtedy gdy prowadzi ono do zmniejszenia wartości parametru R. W przedstawionym niżej algorytmie, rozszczepienie stanów jest przerywane jeśli prowadzi ono do wzrostu wartości R,

natomiast jako rezultat końcowy przyjmowane jest rozwiązanie, które po raz ostatni prowadziło do zmniejszenia R. Niech V(a i ) zbiór wektorów zmiennych wyjściowych, formowanych na przejściach do stanu a i, a i A. V(a i ) = { Y(a m,a i ) a m B(a i ) }, ( 5 ) gdzie B(a i ) zbiór stanów, z których możliwe są przejścia w stan a i. Stan a i, a i A, jest stanem automatu klasy D, tzn. a i A D, jeśli spełnione są warunki: V(a i ) = 1 ( 6 ) V(a i ) V(a j ) = przy i j dla każdego a j A. ( 7 ) Jeśli spełniony jest warunek (6) to znaczy, że na wszystkich przejściach do stanu a i formowany jest ten sam wektor zmiennych wyjściowych. Spełnienie warunku (7) zapewnia, że wektor wyjściowy Y(a i ) nie jest formowany przy przejściach w inne stany automatu skończonego. Niech V D (a i ) zbiór wektorów zmiennych wyjściowych, formowanych na przejściach do innych stanów, tj. V D (a i ) podzbiór zbioru V(a i ), V D (a i ) V(a i ), dla którego spełnione są warunki (6) i (7). Niech A* D zbiór stanów, dla których naruszono warunek (6), tzn. takich stanów, które należy rozszczepić, gdyż mogą to być potencjalne stany automatu klasy D. Niech U(a i ) zbiór wszystkich wektorów opisujących warunki przejścia w stan a i, a i A. Stan a i jest stanem automatu klasy E, tzn. a i A E, jeżeli spełnione są warunki: U(a i ) = 1 ( 8 ) U(a i ) U(a j ) = przy i j dla każdego a j A. ( 9 ) Niech U E (a i ) zbiór wektorów opisujących warunki przejścia w stan a i, których nie ma przy przejściach w inne stany automatu, tzn. spełniony jest warunek (9), U E (a i ) U(a i ), natomiast A* E zbiór stanów dla których naruszono warunek (8), czyli zbiór stanów, które należy rozszczepić, w celu otrzymania stanów automatu klasy E. Niech S(a i ) koszt rozszczepienia stanu a i określone jako liczba wierszy, o którą zwiększy się tablica przejść automatu w rezultacie rozszczepienia stanu a i, a i A* D A* E. S(a i ) = V(a i ) - 1 P(a i ), jeżeli a i A* D ; ( 10 ) S(a i ) = U(a i ) - 1 P(a i ), jeżeli a i A* E ; gdzie P(a i ) zbiór wszystkich przejść ze stanu a i. W procesie syntezy, właściwą wartość S(a i ) wybiera się w zależności od tego, w jaki sposób odbywa się rozszczepienie: przy użyciu wektorów zmiennych wyjściowych (a i A* D ), czy przy użyciu wektorów zmiennych wejściowych (a i A* E ). Algorytm syntezy wspólnego modelu automatu Mealy ego klas A, D i E wygląda w następujący sposób: Algorytm 2 1. Podstawiamy R* := 1000. 2. Budujemy macierz kodowania stanów wewnętrznych W, wykonujemy algorytm 1 kodowania stanów, w wyniku którego otrzymujemy wartość R. 3. Jeśli R R* lub R=0, to przechodzimy do punktu 7, w przeciwnym wypadku, podstawiamy R*:= R i zapamiętujemy rezultaty syntezy (tablicę przejść oraz kody stanów automatu).

4. Określamy zbiory V(a i ), V D (a i ), U(a i ) i U E (a i ), a i A oraz zbiory A* D i A* E. Jeżeli suma zbiorów A* D A* E =, to wykonujemy przejście do punktu 7, w przeciwnym wypadku - do punktu 5. 5. Do rozszczepienia wybieramy stan a i, a i A* D A* E, według poniższych kryteriów: a) max( V D (a i ), U E (a i ) ) = max b) S(a i ) = min. Pierwsze kryterium zapewnia największą efektywność wykorzystania automatów klas D i E, drugie kryterium minimalny wzrost liczby wierszy w tablicy przejść automatu. 6. Rozszczepiamy stan a i, wybrany w poprzednim punkcie. Jeżeli V D (a i ) U E (a i ), to rozszczepienie wykonujemy przy użyciu wektorów zmiennych wyjściowych V(a i ), w przeciwnym wypadku przy użyciu wektorów zmiennych wejściowych U(a i ). Wykonujemy przejście do punktu 2. 7. Jako rezultat końcowy przyjmujemy rozwiązanie zapamiętane w punkcie 3. 8. Budujemy strukturalną tablicę przejść automatu skończonego, określającą równania logiczne realizowanych funkcji. 9. Koniec. Można zauważyć, że jeśli V D (a i ) = U E (a i ), to rozszczepienie stanu a i wykonuje się przy użyciu wektora zmiennych wyjściowych, ponieważ pozwala to z większym prawdopodobieństwem otrzymywać ortogonalne wiersze macierzy W. Na początku algorytmu 2 wartość R* przyjmuje się znacznie większą, niż to konieczne, dlatego przynajmniej raz jest wykonywane kodowanie stanów i zapamiętanie otrzymanego rezultatu syntezy w punkcie 3 algorytmu. W przypadku kiedy A D = A E = A* D = A* E =, wykonanie algorytmu 2 jest jednoznaczne z syntezą automatu skończonego klasy A. 5. BADANIA EKSPERYMENTALNE Opisany wyżej algorytm syntezy został zaimplementowany w pakiecie ZUBR. Pakiet ten został opracowany na Wydziale Informatyki Politechniki Białostockiej. Proponowana metoda syntezy została wykorzystana do realizacji przykładów testowych ze zbioru MCNC [19]. W tabeli 1 zostały przedstawione podstawowe parametry testowanych przykładów, takie jak: L liczba wejść, N liczba wyjść, M liczba stanów, P liczba wierszy w tablicy przejść. Została także obliczona liczba dodatkowych przerzutników, użytych do zakodowania stanów wewnętrznych automatu, odpowiednio R A dla syntezy automatu klasy A (Mealy ego) oraz R W dla syntezy automatu o modelu wspólnym, który opisano w tej pracy. Parametr R%=(R A R W )/max(r A,R W ) jest procentową różnicą pomiędzy tymi wartościami. Tabela 1. Porównanie liczby dodatkowych przerzutników dla FSM klasy A i modelu wspólnym Nazwa L N M P R A R W R% Bbsse 7 7 208 13 4 3 25% Ex4 6 9 21 14 4 3 25% Keyb 7 2 170 19 5 4 20% Mc 3 5 10 4 2 0 100% Pma 7 6 44 20 5 3 40% s1 8 6 107 20 5 0 100% s27 4 1 30 5 3 2 33% S386 7 7 64 13 4 3 25% Średnia 46%

Jak wynika z tabeli 1 dla syntezy wspólnych modeli FSM uzyskano zmniejszenie liczby dodatkowych elementów pamięci średnio o 46%, w najlepszym przypadku o 100% (dla przykładów mc i s1). Uzyskane zmniejszenie liczby dodatkowych przerzutników związane jest z tym, że do kodowania stanów używane są rejestry wejściowe i wyjściowe układu PLD. W tabeli 2 przedstawiono porównanie kosztów realizacji części kombinacyjnej testowanych przykładów dla realizacji jako automat klasy A oraz jako wspólny model automatu skończonego. Wartości C A4, C A5, C A8 oznaczają koszt (liczbę użytych makrokomórek) przy realizacji jako automat klasy A odpowiednio dla układów programowalnych, posiadających makrokomórki z 4, 5 i 8 dołączonymi termami, Wielkości C W4, C W5, C W8 oznaczają te same parametry ale dla realizacji jako wspólny model automatu skończonego. Wielkości C4%, C5%, C8%, CAV% oznaczają różnice procentowe pomiędzy poszczególnymi wartościami kosztów realizacji, odpowiednio dla liczby termów podłączonych do jednej makrokomórki równej 4, 5, 8 oraz wartość średnią tych parametrów. Tabela 2. Porównanie kosztów realizacji dla FSM klasy A oraz FSM o modelu wspólnym Nazwa C A4 C A5 C A8 C W4 C W5 C W8 C4% C5% C8% CAV% Bbsse 24 21 15 20 18 14 17% 14% 7% 13% Ex4 19 15 13 14 12 12 26% 20% 8% 18% Keyb 35 27 18 22 17 12 37% 37% 33% 34% Mc 7 7 7 7 7 6 0% 0% 14% 5% Pma 94 72 44 69 55 32 27% 24% 27% 26% s1 61 45 29 16 14 10 74% 69% 66% 70% s27 9 7 5 4 4 3 56% 43% 40% 46% S386 23 20 14 19 17 14 17% 15% 0% 11% Średnia 32% 28% 24% 28% Można zauważyć, że spadek kosztów dla realizacji układów testowych jako model wspólny w stosunku do realizacji jako normalny automat Mealy ego (klasy A) wyniósł 28%, przy czym jest to wartość średnia. Maksymalny zysk w liczbie makrokomórek został uzyskany dla przykładu s1 i wyniósł on 74%, czyli w tym wypadku, prawie 4 razy lepsze okazało się wykorzystanie wspólnego modelu automatu skończonego. 6. PODSUMOWANIE W pracy został pokazany wspólny model automatu skończonego typu Mealy ego klas A, D i E. Opisany algorytm syntezy okazał się efektywny w stosunku do tradycyjnej metody syntezy automatu Mealy ego zarówno jeżeli chodzi o liczbę dodatkowych elementów pamięci oraz złożoność kombinacyjnej części automatu skończonego. Algorytm ten ma jednak pewne ograniczenia. Wykorzystane w nim specyficzne cechy architektur PLD takie jak: konieczność istnienia przerzutnika w pętli sprzężenia zwrotnego oraz wykorzystanie jednocześnie kombinacyjnych i buforowanych wejść i wyjść danego układu PLD, wymuszają korzystanie ze współczesnych struktur, które te możliwości posiadają (np. MAX 9000, FLEX 10K). Dalszy rozwój badań powinien iść w kierunku zbudowania także wspólnego modelu automatu typu Moore a [11], który pozwoliłby efektywnie zastosować wyżej wymienione cechy współczesnych układów programowalnych. Różnorodność obecnie stosowanych układów programowalnych oraz istnienie szeregu modeli automatów skończonych powoduje konieczność opracowania odpowiedniej strategii wyboru właściwego modelu automatu skończonego do odpowiedniej architektury układu programowalnego na jak najwcześniejszym etapie syntezy logicznej.

LITERATURA I ŹRÓDŁA [1] Armstrong D.B.: A programmed algorithm for assigning internal codes to sequential machines, IRE Trans. Electron. Comput., vol. EC-11, pp. 466-472, Aug. 1962. [2] 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. [3] DeMicheli G., Sangiovanni-Vincentelli A., and Villa T.: Computer-aided synthesis of PLA-based finite state machines, Proc. of the Int. Conf. on Computer-Aided Design, Santa Clara, USA, November 1983, pp. 154-156. [4] 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. [5] Devadas S., Ma H.-K., Newton R., Sangiovanni-Vincentelli A.: MUSTANG: State Assigment of Finite State Machines Targeting Multilevel Logic Implementations, IEEE Transactions on Computer-Aided Design, Dec 1988, Vol. 7, No. 12, pp. 1290-1300 [6] Dolotta T.A. and McCluskey E.J.: The coding of internal states of sequential machines, IEEE Trans. Electron. Comput., vol. EC-13, pp. 549-562, Oct. 1964. [7] Józwiak L., Slusarczyk A.: A New State Assignment Method Targeting FPGA Implementations, Proc. of EUROMICRO Symposium on Digital System Design DSD 2000, Maastricht, Netherlands, September 5-7, 2000, pp.50-59. [8] Lin B., Newton R.: Synthesis of Multiple Level Logic from Symbolic High-Level Description Languages, Proc. of the International Conference on VLSI, Munchen, Germany 1989, pp 187-206. [9] Łuba T., Jasinski K.,Zbierzchowski B.: Specjalizowane uklady cyfrowe w strukturach PLD i FPGA, Wyd. Komunikacji i Łączności, Warszawa, 1997, 248 s. [10] Mealy G.H.: Method for synthesizing sequential circuits, Bell System Techn. Jourhal, vol.34, 1955, pp.1045-1079. [11] Moore E.F.: Gedanken-experiments on sequential machines, In C.Shannon and J.McCarthy editors. - Automata Studies, Princeton University Press, 1956, pp.129-153. [12] Sentovich E.M., Singh K.J., Lavagno L., Moon C., Murgai R., Saldanha A., Savoj H., Stephan P.R., Brayton R.K., Sangiovanni-Vincentelli A.: SIS: A system for sequentional circuit synthesis, Memorandum No. UCB/ERL M92/41, Electronics Research Laboratory, Department of Electrical Engineering and Computer Science, University of California, Berkley, May 1992. - 45p. [13] Solovjev V., Chyzy M.: Refined CPLD macrocell architecture for the effective FSM implementation, Proc. of the 25th EUROMICRO Conference, Milan, Italy, September 8-10, 1999, Vol. 1, pp. 102-109 [14] 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. [15] Solovjev V.: Projektowanie układów cyfrowych na bazie PLD, Hot-Line Telekom, Moskwa 2001, 638 s. [16] Solovjev V., Chyzy M.: Models of the finite state machines, Proc. of the Sixth Int. Conf. on Methods and Models in Automation and Robotics (MMAR 2000), 28-31 August 2000, Miedzyzdroje, Poland, Vol 2, pp. 909-914. [17] Sołowjew W., Bułatowa I.: Synteza automatów skończonych klasy D na programowalnych układach logicznych, in Proc. of the Conf. Computer-Aided Design of Discrete Devices (CAD DD 01), Minsk, Białoruś 2001, Vol. 2, pp. 6-13. [18] Villa T., Sangiovanni-Vincentelli A.: NOVA: State Assignment for Finite State Machines for Optional Two-Level Logic Implementation, IEEE Trans. on Computer-Aided Design, vol. C-9, pp. 905-924, Sept. 1990. [19] Yang S.: Logic synthesis and optimization benchmarks user guide. Version 3.0., Technical Report, Microelectronics Center of North Carolina, 1991. - 43p.