Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu PAL

Podobne dokumenty
Język opisu sprzętu VHDL

Katedra Mikroelektroniki i Technik Informatycznych

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

Elementy cyfrowe i układy logiczne

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

PRZEWODNIK PO PRZEDMIOCIE

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

IZ1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki niestacjonarne

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

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

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

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

Laboratorium przedmiotu Technika Cyfrowa

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Opracował: Jan Front

Systemy na Chipie. Robert Czerwiński

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

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

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.

Sterowniki Programowalne (SP)

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

Opinia o dorobku naukowym dr inż. Ireneusz Dominik w związku z wystąpieniem o nadanie stopnia naukowego doktora habilitowanego.

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

Elektronika i techniki mikroprocesorowe

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

KARTA PRZEDMIOTU. Podstawy elektroniki cyfrowej B6. Fundamentals of digital electronic

Projektowanie układów na schemacie

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

PRZEWODNIK PO PRZEDMIOCIE

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

Podstawy elektroniki i miernictwa

Załącznik Nr 5 do Zarz. Nr 33/11/12

PRZEWODNIK PO PRZEDMIOCIE

Załącznik Nr 5 do Zarz. Nr 33/11/12

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Tranzystor JFET i MOSFET zas. działania

Efekty kształcenia na kierunku AiR drugiego stopnia - Wiedza Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej

Temat: Pamięci. Programowalne struktury logiczne.

PROGRAMOWALNE STEROWNIKI LOGICZNE

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

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

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

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

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

UKŁADY MIKROPROGRAMOWALNE

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

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

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Rok akademicki: 2030/2031 Kod: EEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

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

Synteza strukturalna automatów Moore'a i Mealy

AiR_UCiM_3/5 Układy Cyfrowe i Mikroprocesorowe Digital Circuits and Microprocessors

PRZEWODNIK PO PRZEDMIOCIE

Karta (sylabus) modułu/przedmiotu Mechatronika Studia pierwszego stopnia. Podstawy automatyzacji Rodzaj przedmiotu: obowiązkowy Kod przedmiotu:

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Sterowniki programowalne Programmable Controllers. Energetyka I stopień Ogólnoakademicki. przedmiot kierunkowy

SYLABUS/KARTA PRZEDMIOTU

Technika cyfrowa i mikroprocesorowa. Zaliczenie na ocenę. Zaliczenie na ocenę

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Synteza układów kombinacyjnych

PRZEWODNIK PO PRZEDMIOCIE

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

PRZEWODNIK PO PRZEDMIOCIE

E-E2A-2017-s2. Elektrotechnika II stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny)

Wykład z Technologii Informacyjnych. Piotr Mika

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

Technika cyfrowa Synteza układów kombinacyjnych

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Wymagania stawiane pracom dyplomowym na Wydziale Elektroniki i Informatyki Politechniki Koszalińskiej

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

Karta (sylabus) modułu/przedmiotu Mechatronika Studia pierwszego stopnia. Podstawy automatyki Rodzaj przedmiotu: obowiązkowy Kod przedmiotu:

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

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

kierunkowy (podstawowy / kierunkowy / inny HES) nieobowiązkowy (obowiązkowy / nieobowiązkowy) język polski VI semestr letni (semestr zimowy / letni)

Układy logiczne układy cyfrowe

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

PRZEWODNIK PO PRZEDMIOCIE

HARMONOGRAM GODZINOWY ORAZ PUNKTACJA ECTS CZTEROLETNIEGO STUDIUM DOKTORANCKIEGO

Układy sekwencyjne. 1. Czas trwania: 6h

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

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Bezpieczeństwo informacji oparte o kryptografię kwantową

Ćwiczenie 23. Temat: Własności podstawowych bramek logicznych. Cel ćwiczenia

Asynchroniczne statyczne układy sekwencyjne

Uchwała Nr 34/2012/V Senatu Politechniki Lubelskiej z dnia 21 czerwca 2012 r.

AUTOMATYZACJA PROCESÓW CIĄGŁYCH I WSADOWYCH

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Programowalne Układy Cyfrowe Laboratorium

w dyscyplinie: Automatyka i Robotyka, studia stacjonarne

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Transkrypt:

Załącznik nr 2a Autoreferat Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu Robert Czerwiński Gliwice 2017

1 1 Imię i nazwisko Robert Czerwiński 2 Posiadane dyplomy, stopnie naukowe Doktor nauk technicznych w dyscyplinie elektronika; obroniony z wyróżnieniem; Wydział Automatyki, Elektroniki i Informatyki Politechniki Śląskiej, 2006; Tytuł: Kodowanie stanów automatów sekwencyjnych dla matrycowych struktur programowalnych typu ; Promotor: dr hab. inż. Dariusz Kania. Magister inżynier elektronik; Wydział Automatyki, Elektroniki i Informatyki Politechniki Ślaskiej, 2001; Tytuł: Rozproszony system pomiaru temperatury z przesyłem informacji poprzez sieć energetyczną; Promotor: dr inż. Dariusz Kania. 3 Informacje o dotychczasowym zatrudnieniu w jednostkach naukowych 2006 do nadal: adiunkt, Instytut Elektroniki, Politechnika Śląska. 2002 do 2006: doktorant, Instytut Elektroniki, Politechnika Śląska. 4 Wskazanie osiagnięcia wynikajacego z art. 16 ust. 2 ustawy z dnia 14 marca 2003 r. o stopniach naukowych i tytule naukowym oraz o stopniach i tytule w zakresie sztuki (Dz. U. nr 65, poz. 595 ze zm.) 4.1 Tytuł osiagnięcia naukowego Osiągnięcie naukowe stanowi cykl publikacji, powiązanych tematycznie, pod tytułem: Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu. 4.2 Wykaz publikacji stanowiacych osiagnięcie naukowe [CK09b] R. Czerwinski, D. Kania, Synthesis of Finite State Machines for CPLDs, International Journal of Applied Mathematics and Computer Science, Vol. 19, No. 4, 2009, pp. 647-659 (Indeksowany w JCR; IF=0.684). [CK10] R. Czerwinski, D. Kania, A synthesis of high speed finite state machines, Bulletin of the Polish Academy of Sciences Technical Sciences, Vol. 58, No. 4, 2010, pp. 635-643 (Indeksowany w JCR; IF=0.945).

2 [CK12] R. Czerwinski, D. Kania, Area and speed oriented synthesis of FSMs for -based CPLDs, Microprocessors and Microsystems, Volume 36, Issue 1, February 2012, pp. 45-61 (Indeksowany w JCR; IF=0.549). [CK13] R. Czerwinski, D. Kania, Finite State Machine Logic Synthesis for Complex Programmable Logic Devices, Springer, Heidelberg, New York, Dortrecht, London, 2013 (Seria: Lecture Notes in Electrical Engineering vol. 231; ISBN: 978-3-642-36165-4; monografia indeksowana w WoS). [CK16] R. Czerwinski, D. Kania, State assignment and optimization of ultra high speed FSMs utilizing tri-state buffers, ACM Transactions on Design Automation of Electronic Systems, Volume 22, Issue 1, Article 3, December 2016, pp. 1-25 (Indeksowany w JCR; IF=0.820). [KMK + 09] D. Kania, A. Milik, J. Kulisz, A. Opara, R. Czerwiński, Logic synthesis dedicated for CPLD circuits, Electronics and Telecommunications Quarterly, Vol. 55, No. 2, 2009, pp. 287-315. [CK09a] R. Czerwinski, D. Kania, CPLD-oriented Synthesis of Finite State Machines, Proceedings of the Twelfth Euromicro Symposium on Digital System Design, DSD2009, IEEE Computer Society Press, Patras 2009, pp. 521-528. [CK09c] R. Czerwinski, J. Kulisz, State Machine description oriented towards effective usage of vendor-independent synthesis tools, IFAC Workshop on Programmable Devices and Embedded Systems 2009, PDeS 09, 10-12 February 2009, pp. 27-32 [CK09d] R. Czerwiński, J. Kulisz, Modelowanie automatów synchronicznych w języku VHDL pod katem efektywnego wykorzystania niezależnych narzędzi syntezy, Elektronika Konstrukcje Technologie Zastosowania, nr 2/2009, ss. 77-82. [CK11] R. Czerwinski, D. Kania, State Minimization by means of Incompatibility Graph Coloring, Elektronika Konstrukcje Technologie Zastosowania, nr 3/2011, pp. 160-162. 4.3 Omówienie celu naukowego prac i osiagniętych wyników wraz z omówieniem ich ewentualnego wykorzystania Problemy syntezy przeznaczonej dla struktur programowalnych typu Układy logiki programowalnej/rekonfigurowalnej, stanowią dziedzinę elektroniki dynamicznie rozwijaną. Oczekiwana współcześnie szybkość przetwarzania informacji cyfrowej uzasadnia, a wręcz wymusza, ciągły rozwój technologiczny w tym zakresie. Najlepiej zaprojektowane układy programowalne nie mają jednak racji bytu bez narzędzi umiejętnie wykorzystujących ich potencjał. Inżynier-projektant musi dokonać przekształcenia opisu funkcjonalnego do postaci implementacji sprzętowej. Ten proces jest zwany syntezą logiki 1. Synteza logiki jest etapem przejścia od opisu funkcjonalnego do strukturalnego na poziomie elementów (np. bramek). Jej celem jest ustalenie mikroskopowej struktury układu, dlatego odgrywa niebagatelną rolę dla ostatecznej realizacji sprzętowej. Przez pojęcie syntezy logiki 1 W polskiej literaturze powszechnie funkcjonuje pojęcie synteza logiczna. Niemniej wydaje się to być pojęciem nietrafnym zarówno z punktu widzenia tłumaczenia z języka angielskiego (ang. logic synthesis), jak też samej istoty tego procesu. W niniejszym autoreferacie będzie używane pojęcie synteza logiki.

3 czasem rozumie się właściwy proces syntezy połączony z optymalizacją i procesem odwzorowania technologicznego. Celem tak rozumianej syntezy logiki jest opracowanie układu o najlepszych parametrach w jakimś zakresie, na przykład: zmniejszenie powierzchni układu, zwiększenie szybkości działania projektowanego urządzenia, redukcja poboru mocy i poprawa testowalności układów. Odwzorowanie technologiczne służy przekształceniu uzyskanej struktury do formy wykorzystującej elementy technologii, w której dany układ jest implementowany. Reasumując, synteza logiki stanowi bezpośrednie powiązanie pomiędzy opisem funkcjonalnym, a odwzorowaniem technologicznym. Obecnie proces syntezy i odwzorowania jest przeprowadzany za pomocą automatycznych narzędzi komputerowych. Nie ulega jednak wątpliwości, że na obecnym etapie rozwoju narzędzi wspomagających proces syntezy, aby dobrze zaprojektować układ, wymagana jest duża wiedza projektanta pozwalająca na efektywne wykorzystanie zasobów struktury programowalnej. Powszechnie syntezę logiki i odwzorowanie technologiczne traktuje się jako oddzielne procesy. Efektywne wykorzystanie elementów struktury wymaga jednak uwzględnienia ich elementów już w procesie syntezy. Współcześnie bazę elementową stanowią głównie układy programowalne typu FPGA (ang. Field Programmable Gate Array), a w zastosowaniach niszowych lub uzupełniających układy CPLD (ang. Complex Programmable Logic Devices). Generalnie, struktura współczesnych układów programowalnych składa się z serii podstawowych komórek elastycznych w konfiguracji oraz matrycy połączeń. Elastyczność konfiguracji połączeń i struktury komórki umożliwia budowanie układów zarówno kombinacyjnych, jak i sekwencyjnych. Podstawowy element komórki (Rys. 1) układu CPLD stanowi struktura typu (ang. Programmable Array Logic), czyli struktura typu AND/OR z programowalną matrycą AND i stałą matrycą OR. To właśnie stała matryca OR stanowi kluczowy problem, utrudniający efektywne prowadzenie syntezy logiki. Stała, zwykle niewielka liczba bramek AND (k) dołączonych do sumy oraz brak możliwości współdzielenia bramek AND wprowadza istotne ograniczenia architektoniczne utrudniające efektywną realizację syntezowanych układów. Pierwszy problem jest częściowo rozwiązywany poprzez wbudowywanie do matrycy OR układu zwanego term/logic allocator, czyli układu, za pośrednictwem którego bramki AND sąsiadujących komórek można dystrybuować. Najczęściej term allocator umożliwia wykorzystywanie bramek AND w ramach pewnej ograniczonej liczby sąsiadujących komórek. W każdym razie, nie rozwiązuje globalnie problemu dostosowania liczby bramek do liczby implikantów implementowanej funkcji. k Logic Allocator D/T Q OE I/O CLK Matryca połączeń Rysunek 1: Uogólniona struktura komórki typu Wyjście bramki OR jest zwykle dołączone do bramki XOR, co umożliwia programowanie aktywności wyjścia. Ponadto, bramka XOR umożliwia minimalizację liczby iloczynów, za pomocą których jest implementowana funkcja (prawo de Morgana). Istotnym elementem struktur programowalnych jest przerzutnik, najczęściej typu D. Sygnał z wyjścia przerzutnika lub

4 z bramki XOR jest zwykle wyprowadzany na zewnątrz przez sterowany bufor trójstanowy, stwarzający możliwość elastycznego wykorzystania wyprowadzeń (we, wy, we/wy). Powszechnie znane metody syntezy układów sekwencyjnych prowadzą do realizacji w postaci struktur dwupoziomowych lub wielopoziomowych. Metody ukierunkowane na klasyczną realizację dwupoziomową mogą z powodzeniem być stosowane w przypadku realizacji układów w strukturach programowalnych wykorzystujących matryce typu PLA (ang. Programmable Logic Array; z programowalnymi matrycami AND i OR). Jeżeli chodzi o układy CPLD, minimalizacja liczby implikantów tylko pośrednio wpływa na minimalizację liczby wykorzystanych komórek. W przypadku układów kombinacyjnych, głównym etapem syntezy logiki przeznaczonej dla struktur matrycowych CPLD jest podział projektowanego układu na komórki typu, zapewniający efektywne wykorzystanie bramek AND matrycy. W układach sekwencyjnych występuje dodatkowy stopień swobody w postaci kodowania stanów. Istnieje wiele narzędzi wspomagających projektowanie układów sekwencyjnych. Niektóre z nich uważane są za optymalne [LN89, SSL + 92, VSV90], mimo iż, jak pokazały eksperymenty, nie prowadzą do optymalnych rozwiązań. Ograniczona liczba bramek AND pojedynczej komórki typu najczęściej nie jest brana pod uwagę w procesie kodowania stanów. Takie podejście prowadzi często do nieefektywnego wykorzystania zasobów układu CPLD. Stało się to źródłem inspiracji do poszukiwania metod kodowania stanów uwzględniających ograniczenia układów matrycowych z komórkami typu [CK05, CKK06], efektem czego było przygotowanie rozprawy doktorskiej [Cze06]. Kodowanie stanów wewnętrznych automatu sekwencyjnego stanowi początkowy, niezwykle istotny, ale tylko jeden z wielu elementów syntezy. Kodowanie stanów poprzedza przeprowadzana zwykle optymalizacja funkcjonalna, której kluczowym elementem jest minimalizacja liczby stanów symbolicznych automatu. Nie bez znaczenia jest również kodowanie stanów wejściowych i wyjściowych. Należy jednak podkreślić, że specyfikacja automatu, w której stany wejściowe i wyjściowe są w postaci symbolicznej, nie jest często stosowana. Reprezentacja automatu (równania, tablica pla, etc.) jest zwykle nadmiarowa i wymaga redukcji. Zwykle przeprowadzana jest dwupoziomowa minimalizacja za pomocą programu EPRESSO-II [BHMSV84]. Odwzorowanie technologiczne umożliwia dopasowanie struktury projektowanego układu do struktury układu programowalnego. Na przykład, zbiór implikantów otrzymanych po dwupoziomowej minimalizacji jest dopasowywany do komórek typu z ograniczoną liczbą bramek AND (bez możliwości ich współdzielenia). Kompleksowe podejście do syntezy automatów sekwencyjnych stało się tematem badań po obronie doktoratu. Cykl powiązanych tematycznie publikacji, stanowiący osiągnięcie naukowe pod tytułem: Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu, skupia się na przedstawieniu efektów prac nad syntezą automatów sekwencyjnych, uzależnioną od technologii implementacji, oraz odwzorowaniu technologicznym układu sekwencyjnego w strukturze układu logiki programowalnej. Proponowane podejście przeprowadzania syntezy logiki zależnej od technologi stanowi nowatorskie podejście do syntezy układów sekwencyjnych, wprowadzające nową jakość związaną z wprowadzeniem elementów odwzorowania technologicznego we wczesne etapy syntezy. Metody kodowania stanów, opracowane uprzednio w ramach prac nad doktoratem [Cze06], zostały włączone w zaproponowane kompleksowe strategie. W niniejszym autoreferacie zawarto wyniki osiągnięcia naukowego z możliwie skrótowym przedstawieniem podstaw teoretycznych i przeglądu literatury. Definicje Istota przedmiotowego osiągnięcia naukowego będzie reprezentowana między innymi graficznie z użyciem symboli przedstawionych na Rys. 2.

5 a) b) c) d) k-and k-and OE k-and k-and k-and Rysunek 2: Symbole komórki typu : a) typu kombinacyjnego, b) w wyjściem przerzutnikowym, c) z wyjściem trójstanowym sterowanym przez bramkę AND, d) z aktywnością wyjścia w stanie wysokim i niskim Funkcja f może być zrealizowana za pomocą komórki typu o k bramkach AND jeżeli liczba implikantów funkcji nie przekracza liczby k. W przeciwnym przypadku niezbędna jest ekspansja liczby bramek AND. Możliwa jest ona dzięki wbudowanemu blokowi alokacji iloczynów, ale wiąże się z licznymi ograniczeniami i z natury rzeczy prowadzi do rozwiązań nieoptymalnych pod względem właściwości dynamicznych. Innym, elastycznym sposobem ekspansji jest wykonanie sprzężenia zwrotnego do matrycy połączeń i poprzez to uzyskanie struktury kaskadowej komórek. Takie rozwiązanie jest obciążone wadą polegającą na uzyskaniu struktury o zwiększonej liczbie warstw, co redukuje szybkość działania układu. Można wyróżnić dwie formy ekspansji liczby bramek AND: kaskadowo-szeregową i kaskadowo-równoległą (Rys. 3). a) k-and b) k-and k-and k-and k-and k-and k-and k-and Rysunek 3: Ekspansja liczby iloczynów: a) kaskadowo-szeregowa, b) kaskadowo-równoległa Niech σ f będzie liczbą komórek typu niezbędnych do zrealizowania funkcji f. Niech ξ f będzie liczbą warstw w najdłuższej ścieżce od wejść do wyjść kaskadowo połączonych komórek typu w układzie realizującym funkcję f. Automat sekwencyjny (FSM 2, ang. Finite State Machine) jest zdefiniowany za pomocą: zbioru wektorów wejściowych X, zbioru wektorów wyjściowych Y, zbioru stanów S, funkcji przejść δ i funkcji wyjść λ. Struktura układu sekwencyjnego z blokiem przejść i wyjść jest przedstawiona na Rys. 4. Stany (wewnętrzne) automatu są najczęściej opisane symbolicznie, a sam automat może być zdefiniowany w postaci grafu przejść-wyjść lub tablicy przejść-wyjść opisanej w formacie kiss, w której poszczególne wiersze tworzą implikanty symboliczne przedstawione w układzie: wektor wejściowy, stan aktualny, stan następny, wektor wyjściowy. Celem kodowania stanów jest przyporządkowanie każdemu stanowi unikalnego wektora binarnego. Wektor wejściowy wraz 2 W literaturze anglojęzycznej poprzez FSM rozumie się model matematyczny. W polskojęzycznej literaturze najczęściej automat (model matematyczny) jest również synonimem układu sekwencyjnego.

6 X d S + Reg S l Y Clk Rysunek 4: Struktura układu sekwencyjnego ze stanem aktualnym tworzą część wejściową implikantu (format pla), a zakodowany stan następny z wektorem wyjściowym tworzą cześć wyjściową implikantu. Synteza i odwzorowanie technologiczne automatów ukierunkowane na optymalizację powierzchni Opracowana strategia syntezy automatów sekwencyjnych ukierunkowana na optymalizację powierzchni [CK09a, CK09b] zasadza się na kodowaniu stanów wykorzystującym elementy symbolicznej minimalizacji ukierunkowanej na proces efektywnego odwzorowania technologicznego uzyskiwanych wyrażeń w komórkach typu. Problem kodowania stanów polega na tym, że kodowanie oddziałuje zarówno na część wejściową, jak i wyjściową wielowyjściowych implikantów, co istotnie wpływa na wynik dwupoziomowej minimalizacji prowadzonej po kodowaniu stanów. Okazuje się, że wyniki minimalizacji można przewidywać na etapie kodowania stanów. Odpowiednie warunki, dzięki którym implikanty podlegają minimalizacji można zauważyć przed kodowaniem stanów (Przykład 1; pierwotne warunki sklejeń) lub powstają w trakcie kodowania stanów (Przykład 2; wtórne warunki sklejeń) [Cze06]. Przykład 1. Dwa implikanty symboliczne, przedstawione na Rys. 5 podlegają minimalizacji dwupoziomowej po kodowaniu stanów pod warunkiem, że wektory przyporządkowane stanom s1 i s2 będą różniły się na jednej pozycji. Uzyskane w ten sposób dwa wielowyjściowe implikanty zostaną pokryte jednym.... 0 s1 s3 1 0 s2 s3 1... Kodowanie s1-11 s2-10 s3-00... Minimalizacja 011 001 010 001...... 01-001... Rysunek 5: Sposób powstawania warunków minimalizacji implikantów na podstawie tablicy przejść-wyjść Przykład 2. Na Rys. 6 są przedstawione trzy implikanty symboliczne, które nie podlegają sklejenu zgodnie Przykładem 1. Część wyjściową tworzą trzy różne stany. Niemniej, na etapie kodowania stanów, po dokonaniu podziału implikantów, okazuje się, że każda z dwóch par implikantów może zostać pokryta jednym implikantem. Dwupoziomowa minimalizacja prowadzona metodą ESPRESSO-II [BHMSV84] nie uwzględnia ograniczonej liczby bramek AND zawartych w strukturze komórki typu. Implementacja

7... 01 s1 s1 0 01 s3 s2 0 11 s3 s4 0... Kodowanie s1-10 s2-11 s3-00 s4-01... 0110 100 0100 110 1100 010... Podział impl.... 0110 100 Minimalizacja 0100 100 0100 010 1100 010...... 01-0 100-100 010... Rysunek 6: Sposób powstawania warunków minimalizacji implikantów w trakcie kodowania stanów za pomocą komórek typu uniemożliwia współdzielenie bramek AND przez bloki realizujące poszczególne funkcje. W przypadku układów, których komórkę tworzy struktura typu, opłaca się natomiast wyszukiwać wspólnych komórek, które można wykorzystać w blokach realizujących poszczególne funkcje (Przykład 3). f 1= a b c + a b c + a b c d + a b c d f = a b c + a b d + a c d + b c d 0 a b c a b c a b c d a b c d f 1 a b c a b d a c d b c d f 0 Rysunek 7: Klasyczna realizacja przykładowych funkcji za pomocą komórek typu Przykład 3. Rozważmy realizację dwóch funkcji f 1 = āb c+ā bc+a b c d +abcd oraz f 0 = āb c+ a b d +acd + bcd za pomocą komórek typu zawierających po trzy bramki AND każda (k = 3). Klasyczna realizacja jest przedstawiona na Rys. 7. Okazuje się, że możliwe jest wyszukanie wspólnych implikantów w taki sposób, by zrealizować je za pomocą współdzielonej komórki typu, co zostało pokazane na Rys. 8. Implementacja wymaga użycia jednej komórki mniej w stosunku do realizacji klasycznej. z = a b c + a b c d + a b c d a b c a b c d z a b c d f 1 = z + a b c d + a b c d f = z + a c d 0 a b c d a b c d a c d f 0 f 1 Rysunek 8: Implementacja przykładowych funkcji po wyszukaniu wspólnych zasobów Znana jest metoda wyszukiwania wspólnych bloków kombinacyjnych realizowana na podstawie analizy grafu wyjść [Kan04]. Okazuje się, że możliwe jest ukierunkowanie procesu kodowania stanów na efektywne wykorzystywanie wspólnych zasobów. Metoda kodowania stanów ukierunkowana na efektywne odwzorowanie automatów w komórkach typu może być realizowana poprzez odpowiednie sortowanie symbolicznych stanów. Okazuje się, że w pierwszej

8 kolejności powinny być analizowane stany o najwyższej liczbie przejść. Prowadzi to do rozwiązań, w których poszczególne funkcje zawierają duże grupy implikantów. Mogą być one realizowane we współdzielonych blokach, które wykorzystują stosunkowo niewiele linii iloczynowych, potrzebnych do realizacji sprzężeń zwrotnych. W wyniku prac opracowano sposób kodowania stanów wewnętrznych prowadzący do efektywnego wyszukiwania wspólnych zasobów, przy jednoczesnym, możliwie najlepszym, dopasowaniu do liczby iloczynów komórki oraz z uwzględnieniem efektów dwupoziomowej minimalizacji (Przykład 4). Istotny element przedstawionego sposobu stanowi procedura zamiany słów kodowych. Przykład 4. Rozważmy przykład wymiany wektorów kodowych przykładowego automatu oraz realizację w strukturze z komórkami typu k = 3. Przyjmijmy, że do stanu s1 jest pięć przejść i s1 ma przyporządkowany wektor 001, do stanu s2 są trzy przejścia i s2 ma przyporządkowany wektor 010, do stanów s3 i s4 są po dwa przejścia i stany mają odpowiednio przyporządkowane wektory 100 oraz 110. Oznacza to, że dla każdej jedynki zawartej w przyporządkowanym wektorze przypadnie liczba implikantów równa liczbie przejść do danego stanu, co odzwierciedla fragment pliku pla przedstawiony na Rys. 9a wraz z uproszczoną formą grafu wyjść [Kan04] zastosowaną dla bloku przejść automatu, przy czym µ ( y ) jest liczbą elementów 1 zawartych w wektorze, zaś wierzchołki są skojarzone z liczbą identycznych wektorów stanu (wielowyjściowych implikantów). Liczba implikantów poszczególnych składowych funkcji przejść odpowiada sumie wyróżników poszczególnych węzłów stanowiących drogę od liścia do korzenia grafu. W grafie na Rys. 9a zostały zaznaczone również liczby komórek poszczególnych składowych funkcji przejść. Klasyczna implementacja automatu wymaga użycia sześciu komórek k = 3 (Rys. 9b), przy czym realizacja za pomocą współdzielonych komórek nie stwarza możliwości minimalizacji liczby użytych komórek (Rys. 9c). W jednym i drugim przypadku należy użyć sześciu komórek w celu implementacji funkcji przejść automatu. Rozważmy zamianę wektorów przyporządkowanych stanom s2 i s4. Implementacja wymaga wówczas użycia sześciu komórek (Rys. 10a), co w przypadku klasycznej implementacji również nie stwarza korzyści, ale zamiana umożliwia realizację za pomocą współdzielonych komórek, co prowadzi do użycia tylko sześciu komórek (Rys. 10c) Opracowana strategia aocs 3 (ang. area oriented complex strategy) syntezy i odwzorowania technologicznego automatów ukierunkowana na optymalizację powierzchni umożliwia optymalizację struktury bloku przejść i bloku wyść Rys. 11. Algorytm kodowania stanów mb (ang. minimization of the number of blocks), wymiany słów kodowych ec (ang. exchange of codes) oraz optymalizacji ao (ang. area optimization based on graphs of outputs) wchodzą w skład strategii aocs (Algorytm 1). Algorytm 1. (aocs area oriented complex strategy) 1. Kodowanie stanów mb. 2. ESPRESSO-Dso oraz analiza pliku wynikowego pla. 3. Optymalizacja za pomocą grafu wyjść ao oraz analiza pliku wynikowego pla. 4. Wymiana słów kodowych ec. 5. Jeżeli nastąpiła wymiana wektorów kodowych, to: 3 Na różnych etapach opracowywania poszczególnych algorytmów i strategii, ich formalne nazwy i akronimy były różne, co stanowi pewną trudność jednoznacznego odniesienia się do nich w niniejszym autoreferacie. Przyjęta została zasada oznaczania algorytmów i strategii zgodnie z ich prezentacją w monografii [CK13], która stanowi kompleksowe opracowanie.

9 a) (...).ob 0 (...) i1 001 #do st. s1 i2 001 #do st. s1 i3 001 #do st. s1 i4 001 #do st. s1 i5 001 #do st. s1 i6 010 #do st. s2 i7 010 #do st. s2 i8 010 #do st. s2 i9 100 #do st. s3 i10 100 #do st. s3 i11 110 #do st. s4 i12 110 #do st. s4.e b) 2 3 4 5 2 2 2 5 5 2 3 4 5 2 2 2 y y y 5 5 y y y l. impl. l. kom. dla k=3 c) 1 y 2 3 3 4 5 5 y y 1 2 2 Rysunek 9: Sposób reprezentacji funkcji przejść za pomocą grafu wyjść wraz ze sposobem implementacji automatu: a) fragment pliku pla wraz z uproszczonym grafem wyjść, b) po kodowaniu stanów, c) po procedurze wyszukania wspólnych komórek

10 a) 3 2 2 5 5 5 5 y y y 2 2 2 b) 1 y 2 2 3 3 5 5 y y 1 1 2 Rysunek 10: Sposób zamiany wektorów kodowych wraz z implementacją: a) po procedurze zamiany wektorów kodowych, b) po procedurze zamiany wektorów kodowych i wyszukaniu wspólnych komórek X S + S Y Clk Rysunek 11: Struktura automatu uzyskanego po zastosowaniu strategii aocs

11 a) ESPRESSO, b) optymalizacja za pomocą grafu wyjść ao, analiza pliku wynikowego pla. 6. Wybór najlepszej metody implementacji bloku przejść oraz bloku wyjść spośród (2, 3, 5). 7. Koniec. Synteza i odzwierciedlenie technologiczne automatów ukierunkowane na optymalizację szybkości działania Optymalizacja szybkości działania układu sekwencyjnego [CK10] jest celem drugiej strategii stanowiącej osiągnięcie naukowe. Wykorzystanie buforów trójstanowych wydaje się być w tej mierze kluczowe, ponieważ może stanowić metodę ekspansji, która nie prowadzi do zwiększenia liczby warstw (Przykład 5). Idea wykorzystania buforów trójstanowych w syntezie automatów sekwencyjnych jest efektem doświadczeń prowadzonych w zespole zajmującym się syntezą układów kombinacyjnych [KMK + 09]. Przykład 5. Rozważmy sposób realizacji funkcji przedstawionej w Przykładzie 3 za pomocą komórek trój-iloczynowych (k = 3) z buforami trójstanowymi. Układ kombinacyjny może być zrealizowany za pomocą czterech komórek po dwie dla każdej funkcji z tym, że realizacja pozostaje jednowarstwowa. a b c b c f 1= a (b c + b c) + a ( b c d + b c d) f = a (b c + b c d) + a ( b c d + b c d) 0 OE f 1 a b c b c d OE f 0 a a b c d b c d OE b c d b c d OE Rysunek 12: Sposób realizacji przykładowej funkcji z wykorzystaniem buforów trójstanowych Metoda ekspansji bazująca na wykorzystaniu iloczynów trójstanowych opiera się na twierdzeniu Shannon a, w którym funkcja f (i n,...,i 2,i 1 ) może być rozwinięta do postaci (1). f (i n,...,i 2,i 1 ) = i 1 f (i n,...,i 2,1) + i 1 f (i n,...,i 2,0) = i 1 f i1 + i 1 f i 1 (1) Realizacja ekspansji liczby bramek AND za pomocą buforów trójstanowych jest możliwa ponieważ parametry czasowe buforów wytwarzanych w jednym układzie scalonym są prawie identyczne. Sposób wyszukiwania odpowiedniego rozwinięcia Shannon a został przedstawiony między innymi w pracy [Kan04]. W przypadku realizacji automatu sekwencyjnego kluczowa jest odpowiednia metoda kodowania stanów. Podobnie jak w przypadku kodowania ukierunkowanego na optymalizację powierzchni układu, jego istotę stanowi odpowiedni dobór słów kodowych prowadzony równocześnie z analizą pierwotnych i wtórnych warunków sklejeń, co umożliwia na etapie kodowania

12 uwzględnianie efektów dwupoziomowej minimalizacji. Niemniej, sposób kodowania ukierunkowany na optymalizację szybkości znacząco różni się od metody ukierunkowanej na optymalizację powierzchni (Przykład 6). Przykład 6. Rozważmy sposób kodowania stanów automatu o czterech stanach takich, że liczba przejść do poszczególnych stanów jest następująca: 5 do stanu s1, 3 do stanu s2, 3 do stanu s3 oraz 1 do stanu s4. Minimalna liczba bitów wektorów kodowych wynosi 2. Przy założeniu, że dwupoziomowa minimalizacja nie przyniesie żadnych efektów, to implementacja funkcji przejść w układzie z komórkami zawierającymi trzy bramki AND każda (k = 3) będzie wymagała użycia 4 komórek (Rys. 13a). Inaczej sprawa ma się w przypadku użycia dodatkowego bitu w sytuacji, gdy w trakcie kodowania okazuje się, że ekspansja liczby bramek AND prowadzi do zwiększenia liczby warstw. Możliwe jest jednak zastosowanie innego kodowania, które poprzez wydłużenie słowa kodowego o jeden bit, nie prowadzi do ekspansji liczby warstw. Sytuację taką przedstawia Rys. 13b. a) 1 y y 3 3 4 4 2 2 y 2 warstwy b) y y 1 3 3 1 3 3 1 1 1 y 1 warstwa Rysunek 13: Sposób doboru słów kodowych ukierunkowany na minimalizację liczby warstw Wydłużenie długości słowa kodowego przedstawione w Przykładzie 6 doprowadziło nie tylko do minimalizacji liczby warstw, ale również do ograniczenia liczby bloków logicznych. Niestety tego typu podwójna korzyść nie występuje zbyt często. Algorytm kodowania stanów ukierunkowany na minimalizację liczby warstw bloku przejść ml (ang. minimization of logic levels) wraz z algorytmem optymalizacji wykorzystującym bufory trójstanowe so (ang. technology-dependent speed optimization) stanowią prostą strategię syntezy automatów ukierunkowaną na optymalizację szybkości socs (ang. speed oriented complex strategy) Algorytm 2. Algorytm 2. (socs speed oriented complex strategy) 1. Kodowanie stanów ukierunkowane na minimalizację liczby warstw ml. 2. Optymalizacja bloku wyjść ukierunkowana na wykorzystanie buforów trójstanowych so.

13 Dzięki zastosowaniu strategii socs, klasyczna struktura automatu, przedstawiona na Rys. 14, została zachowana. X S + Reg S Y Clk Rysunek 14: Struktura automatu po zastosowaniu strategii socs Synteza i odwzorowanie technologiczne ultra-szybkich automatów Prace związane z syntezą i odwzorowaniem technologicznym automatów sekwencyjnych ukierunkowane na optymalizację szybkości działania doprowadziły do opracowania strategii syntezy ultra-szybkich automatów wykorzystujących bufory trójstanowe [CK16]. Istnieje możliwość zastosowania algorytmu so dla bloku przejść i uzyskania struktury przedstawionej na Rys. 15. X S + Reg Clk S Y Rysunek 15: Struktura automatu po zastosowaniu optymalizacji so dla bloku przejść i wyjść Można naturalnie pójść krok dalej i próbować wyeliminować blok wyjść, co jest przedstawione na Rys. 16, chociaż nie jest to całkiem oczywiste z dwóch powodów. Po pierwsze należy usunąć blok wyjść. Jest to możliwe po zastosowaniu algorytmu kodowania stanów za pomocą wektorów wyjściowych [Cze06]. Blok przejść realizuje w tym przypadku również funkcję wyjść. Drugi problem jest typu strukturalnego. Typowa komórka typu zawiera przerzutnik i bufor X S + Reg S=Y Clk Rysunek 16: Struktura ultra-szybkiego automatu trójstanowy umieszczony na wyjściu przerzutnika. Sterowanie buforem trójstanowym odbywa

14 się jednak z pominięciem przerzutnika, co po wykonaniu sprzężenia zwrotnego z wyjścia na matrycę połączeń spowoduje uzyskanie tzw. pętli kombinacyjnej, w efekcie czego mogą pojawić się ciągłe zmiany na wyjściu układu (Rys. 17). Należałoby zatem umieścić bufory trójstanowe w ta- D Q D Q CLK Rysunek 17: Pętla kombinacyjna w ultra-szybkim automacie ki sposób, by były dołączone do wejścia przerzutnika (Rys. 18). Układy programowalne zwykle nie umożliwiają wykonania takiej konfiguracji. Niezbędne jest zatem połączenie buforów trójstanowych i wykonanie sprzężenia zwrotnego na zewnątrz układu programowalnego na płycie PCB. Wyniki przeprowadzonych eksperymentów potwierdziły skuteczność takiego rozwiązania, jednak synteza automatyczna musi być wspierana przez inżyniera-projektanta. Strategia syntezy ultra-szybkich automatów sekwencyjnych ufcs (ang. ultra fast complex strategy) wykorzystuje metodę kodowania za pomocą wektorów wyjściowych ov (ang. output vectors) oraz algorytm optymalizacji wykorzystujący bufory trójstanowe so. Algorytm 3. (ufcs ultra fast FSMs complex strategy) 1. Konwersja automatu Mealy ego do Moore a. 2. Kodowanie stanów z wykorzystaniem wektorów wyjściowych ov. 3. Usunięcie funkcji wyjść. 4. Optymalizacja bloku wyjść ukierunkowana na wykorzystanie buforów trójstanowych so. Warto zauważyć, że opracowana metoda syntezy ultra-szybkich automatów, możliwa do wykorzystania w układach programowalnych, świetnie nadaje się do realizacji układów w technologii ASIC/ASSP. Kompleksowa strategia syntezy i odwzorowania technologicznego automatów sekwencyjnych Strategie syntezy i odwzorowania technologicznego, ukierunkowane na optymalizację powierzchni i szybkości działania układu, znalazły swoje odzwierciedlenie w opracowaniu kompleksowej

15 D Q CLK Rysunek 18: Poprawna struktura ultra-szybkiego automatu sekwencyjnego strategii syntezy automatów [CK12]. Prace nad syntezą ultra-szybkich automatów zaowocowały dalszym rozwojem i rozszerzeniem kompleksowej strategii do postaci prezentowanej w monografii [CK13] Rys. 19. Opis funkcjonalny FSM Optymalizacja powierzchni Kodowanie stanów minimalizacja liczby komórek Kodowanie stanów minimalizacja liczby warstw Optymalizacja szybkości Kodowanie stanów wektorami wyjściowymi Optymalizacja wielopoziomowa Wymiana kodów Optymalizacja bloku przejść* Dwupoziomowa optymalizacja bloku wyjść** Optymalizacja dwupoziomowa ** * bazująca na grafach wyjść ** bazująca na wykorzystaniu buforów trójstanowych Plik wynikowy (opis VHDL) Rysunek 19: Kompleksowa strategia syntezy automatów sekwencyjnych dla układów programowalnych typu Dość istotnym aspektem prac nad syntezą była możliwość natychmiastowego zastosowania praktycznego efektów prac. Banalne, acz prawdziwe, jest stwierdzenie, że prace w sferze teore-

16 tycznej przyczyniają się do rozwoju światowej nauki. W tym przypadku nawet nie chodziło o to, że prowadzone badania pozostawałyby w sferze teoretycznej, ponieważ zastosować opracowane algorytmy mogłyby praktycznie duże firmy oferujące narzędzia komercyjne. Etap implementacji prowadzony jest zawsze w narzędziach firmowych, bo producenci nie ujawniają formatu plików konfiguracyjnych chroniąc swoje interesy. Potencjalnie najlepszymi odbiorcami projektowanych algorytmów są zatem firmy produkujące układy i narzędzia do ich wykorzystania (Altera, Quartus, Lattice, Cypress, Atmel, etc.). Niemniej, na rynku istnieje wiele firm oferujących komercyjne narzędzia syntezy, takie jak: Cadence, Mentor Graphics, Synopsys, Synplicity, etc. Narzędzia te umożliwiają prowadzenie syntezy, zaś implementacja następuje w narzędziach oferowanych przez firmy produkujące układy PLD. Pliki wymiany są najczęściej na poziomie tzw. netlisty. Jest to format nie do zaakceptowania dla małych zespołów naukowych ze względu na zbyt duży nakład pracy. Wygodną formą opisu wynikowego, ale wymagającą mniej doświadczenia i pracy niż netlista okazał się być opis w języku opisu sprzętu. Dość istotna jest jednak forma tego opisu, a rozwiązanie tego problemu okazało się być nietrywialnym. Przeprowadzenie wielu eksperymentów i badań związanych z syntezą i implementacją w narzędziach komercyjnych umożliwiło zaproponowanie modelu pliku wynikowego w języku VHDL w formie określanej jako model funkcyjny [CK09c, CK09d, CK13]. Jest to pewne połączenie modelu strukturalnego oraz równań boolowskich, przy czym automat jako całość jest opisywany strukturalnie, zaś poszczególne jego komponenty są opisywane za pomocą równań, przy czym nie są to funkcje wzbudzeń przerzutników. Wygenerowanie pliku wynikowego jest niejako etapem końcowym syntezy automatu. Z drugiej strony tego procesu jest zwykle minimalizacja stanów symbolicznych automatu. Znanych jest wiele dokładnych algorytmów minimalizacji. Bardzo często problemem jest ich złożoność obliczeniowa. Okazuje się jednak, że możliwe jest opracowanie algorytmu minimalizacji bazującego na metodzie kolorowania grafu niezgodności stanów [CK11, CK13]. Opis automatu przedstawiany jest w formie tabeli przejść-wyjść, transponowanej w stosunku do wersji tradycyjnej. Wiersze zatem odpowiadają poszczególnym wejściom automatu, zaś kolumny stanom aktualnym. Zawartość tablicy odpowiada przejściom do odpowiedniego stanu. Tabele są dzielone dla poszczególnych wyjść. Tak przygotowane tabele umożliwiają utworzenie grafu niezgodności kolumn, przy czym kolorowanie polega na odpowiednim doborze wierzchołków i przyporządkowanie im stosownych kolorów, zaś wierzchołkom połączonym krawędzią przyporządkowuje się kolor zabroniony. Dzięki zastosowaniu prostego algorytmu kolorowania wierzchołków grafu niezgodności, algorytm okazuje się być bardzo szybki. Należy jednak wyraźnie podkreślić, że metoda nie prowadzi do uzyskania optymalnych wyników, ale może stanowić metodę szybkiej, wstępnej redukcji liczby stanów. Wyniki eksperymentów W celu uzyskania informacji na temat efektywności metod, zostało przeprowadzonych wiele eksperymentów z wykorzystaniem popularnego zbioru automatów testowych LGSynth91 [MCN91]. Uzyskane wyniki zostały porównane z powszechnie uznanymi narzędziami akademickimi wchodzącymi w skład narzędzia SIS [SSL + 92], to jest z: NOVA [VSV90] i JEDI [LN89]. Zestawienie tysięcy wyników w tabelach jest trudne w analizie, więc najczęściej oprócz surowych wyników, dane zostały przedstawione analitycznie w postaci wykresów słupkowych. Wskaźnikiem, za pomocą którego zdecydowano się dokonać porównania analitycznego jest tzw. uzysk Uσ f, definiowany jako: U σ f = ( σ f ) A ( σ f ) M ( σ f ) A 100% (2)

17 przy czym Uσ f jest uzyskiem liczby komórek, zaś definiowany analogicznie Uξ f jest uzyskiem liczby warstw logicznych. Uzysk jest niczym innym jak odniesieniem uśrednionej sumy wyników dla wszystkich automatów i wszystkich metod pomniejszonych o sumę wyników dla konkretnej metody, zaś uzyskana różnica jest odniesiona do sumy wyników dla wszystkich automatów i wszystkich metod. Uzysk powinien być zatem interpretowany jako procentowa wartość, o którą dana metoda jest lepsza (dodatnie wartości) lub gorsza (ujemne wartości) niż średnia uzyskana dla wszystkich metod. Miara w postaci uzysku była uprzednio wykorzystywana w doktoracie [Cze06], ale sprawdziła się przypadku publikacji strategii syntezy i odwzorowania technologicznego automatów sekwencyjnych. Uzysk liczby komórek U σδ+λ oraz liczby warstw U ξδ i U ξλ dla algorytmu ukierunkowanego na minimalizację liczby komórek jest przedstawiony na Rys. 20. Porównanie obejmuje algorytm kodowania stanów mb ukierunkowany na minimalizację liczby komórek [Cze06]. Okazuje się, że uzysk liczby komórek U σδ+λ dla algorytmu mb jest mniejszy niż dla metod NOVA i JEDI. Zastosowanie algorytmu kompleksowej strategii ukierunkowanej na minimalizację liczby komórek aocs znacząco poprawia wyniki syntezy, zwłaszcza dla komórek o niskiej liczbie iloczynów k = 3..5 (Rys. 20a). Niemniej uzyskana redukcja odbywa się kosztem zwiększenia liczby warstw U ξδ i U ξλ (Rys. 20b i c). Uzysk liczby komórek U σδ+λ oraz liczby warstw U ξδ i U ξλ dla strategii ukierunkowanej na optymalizację szybkości socs jest przedstawiony na Rys. 21. Opracowany w ramach realizacji pracy doktorskiej algorytm ml [Cze06] prezentuje się znacząco lepiej niż algorytm mb. Uzysk liczby warstw U ξδ (Rys. 21b) bloku przejść automatu sekwencyjnego wynosi prawie 15% dla komórek małych (k = {3,4}) oraz około 10% dla k = 5 czy k = 9. Gorsze rezultaty można zaobserwować dla uzysku liczby warstw U ξλ. Jakkolwiek zastosowanie strategii ukierunkowanej na optymalizację szybkości socs znacząco poprawia rezultaty dla bloku wyjść (Rys. 21c). W prawie wszystkich eksperymentach uzyskane zostały struktury jednopoziomowe. W trakcie wykonywania kilkuset eksperymentów tylko blok wyjść automatu testowego s420 dla k = 3 nie zostal zoptymalizowany do jednej warstwy. Zastosowanie strategii ukierunkowanej na optymalizację szybkości prowadzi do użycia nadmiarowej, z punktu widzenia średniej, liczby komórek (Rys. 21a). Uzysk liczby komórek U σδ+λ i warstw U ξδ oraz U ξλ dla strategii ultra-szybkich automatów jest przedstawiony na Rys. 22. Eksperymenty zostały przeprowadzone dla komórek k = 5. Kodowanie stanów z wykorzystaniem wektorów wyjściowych ov nie daje dobrych wyników pod względem liczby komórek (U σδ+λ, Rys. 22a). Podobnie, nadmiar liczby warstw bloku przejść U ξδ jest znaczący (-23,8%). Jakkolwiek, blok wyjść nie istnieje, ponieważ jest realiozowany w bloku przejść (Rys. 22c). Zastosowanie kompleksowej strategii ukierunkowanej na realizację ultra-szybkich automatów ufcs czyni blok przejść strukturą jednowarstwową (Rys. 22b), zaś uzysk wynosi U ξδ = 39,2%. W trakcie wykonywania kilkuset eksperymentów z różnymi automatami testowymi struktury jednowarstwowe były otrzymywane w zdecydowanej większości przypadków (z wyjątkiem jednego automatu s420 dla k = 3). Jak można się spodziewać, metoda jest obarczona wadą powodującą nadmiar liczby komórek U σδ+λ = 28,3%. Bezpośrednie porównanie algorytmów kodowania stanów opracowanych w ramach realizacji pracy doktorskiej [Cze06], czyli mb, ml i ov z opracowanymi później strategiami aocs, socs oraz ufcs jest przedstawione na Rys. 23. Wykres słupkowy potwierdza trendy obserwowane na Rys. 20-22, przy czym na szczególną uwagę zasługuje strategia syntezy przeznaczona dla ultra-szybkich automatów sekwencyjnych. Oprócz porównania z narzędziami akademickimi, zostały przeprowadzone eksperymenty z narzędziami firmowymi Xilinx ISE i Altera Quartus II. Istotnym elementem porównania z narzędziami firmowymi było opracowanie odpowiedniej formy pliku wynikowego. Przeprowadzenie szeregu eksperymentów umożliwiło opracowanie formatu pliku wynikowego w języku opisu sprzętu VHDL, którego forma została opublikowana między innymi w pracach [CK09c, CK09d,

18 a) NOVA JEDI b) NOVA JEDI c) NOVA JEDI i - the input dominant algorithm; o - the output dominant algorithm ih - the input constraints; ioh - the input and output constraints mb - minimalizacja liczby komórek; aocs - strategia ukierunkowana na opt. powierzchni - liczba komórek; - liczba wartw - blok przejść; - blok wyjść Rysunek 20: Uzysk liczby komórek oraz liczby warstw dla strategii ukierunkowanej na redukcję powierzchni

19 a) NOVA JEDI b) NOVA JEDI c) NOVA JEDI i - the input dominant algorithm; o - the output dominant algorithm ih - the input constraints; ioh - the input and output constraints ml - minmalizacja liczby warstw; socs - strategia ukierunkowana na opt. szybkości - liczba komórek; - liczba wartw - blok przejść; - blok wyjść Rysunek 21: Uzysk liczby komórek oraz liczby warstw dla strategii ukierunkowanej na optymalizację szybkości

20 a) NOVA JEDI b) NOVA JEDI c) NOVA JEDI i - the input dominant algorithm; o - the output dominant algorithm ih - the input constraints; ioh - the input and output constraints ov - Kodowanie wektorami wyjściowymi; ufcs - strategia dla ultra-szybkich automatów - liczba komórek; - liczba wartw - blok przejść; - blok wyjść Rysunek 22: Uzysk liczby komórek oraz liczby warstw dla strategii przeznaczonej dla ultraszybkich automatów

21 a) b) c) mb - minimalizacja liczby komórek; aocs - strategia ukierunkowana na opt. powierzchni ml - minmalizacja liczby warstw; socs - strategia ukierunkowana na opt. szybkości ov - Kodowanie wektorami wyjściowymi; ufcs - strategia dla ultra-szybkich automatów - liczba komórek; - liczba wartw - blok przejść; - blok wyjść Rysunek 23: Bezpośrednie porównanie opracowanych strategii

22 CK13], podobnie jak wyniki eksperymentów. Podsumowanie Treść artykułów [CK09a, CK09b] z przedstawionego cyklu publikacji skupia się wokół złożonej strategii syntezy automatów sekwencyjnych ukierunkowanej na optymalizację powierzchni. Kodowanie stanów połączone z dopasowaniem kodów do metody wielopoziomowej optymalizacji wykorzystującej grafy wyjść umożliwia efektywną realizację w układach programowalnych typu. Zaproponowana strategia syntezy okazała się szczególnie przydatna w przypadku komórek o małej liczbie bramek AND. Kolejna z serii opublikowanych prac [CK10] dotyczy syntezy automatów ukierunkowanej na optymalizację szybkości działania. Zaprojektowana strategia obejmuje kodowanie stanów, które wykorzystuje taki dobór wektorów kodowania, żeby uzyskać minimalną liczbę warstw logiki. Optymalizacja funkcji wyjść tej strategii, bazująca na minimalizacji z rozdzielaniem implikantów, jest ukierunkowana na wykorzystanie bufora trójstanowego. Na wykorzystanie metod opartych o grafy wyjść i wyszukiwanie podziału pod kątem implementacji z buforem trójstaniowym wpłynęły doświadczenia zdobyte w zespole pracującym nad syntezą układów kombinacyjnych, które znalazły odzwierciedlenie między innymi w pracy [KMK + 09]. Zachęcające wyniki eksperymentów opublikowane w pracach [CK09a, CK09b] i [CK10] spowodowały opracowanie kompleksowej strategii syntezy automatów. Praca [CK12] przedstawia dogłębną analizę metod ukierunkowanych na optymalizację powierzchni i szybkości działania automatów. Ponadto, przedstawia wielokryterialne porównanie proponowanych strategii syntezy zarówno z narzędziami akademickimi, jak i firmowymi. Zaproponowana metoda opisu pliku wynikowego w języku VHDL [CK09c, CK09d] nie tylko umożliwiła porównanie opracowanych strategii syntezy z wynikami uzyskanymi za pomocą narzędzi komercyjnych (Quartus II Altery i ISE Xilinx a), ale również umożliwiła bezpośrednie zastosowanie opracowanych metod w praktyce projektowej. Wszystkie dotychczasowe doświadczenia nad syntezą i optymalizacją automatów sekwencyjnych, zostały zebrane i opublikowane w monografii [CK13], wydanej przez wydawnictwo Springer i indeksowanej w bazie WoS. W monografii została przedstawiona metoda minimalizacji symbolicznej automatu bazująca na kolorowaniu grafu niezgodności stanów, uprzednio opublikowana w krajowym czasopiśmie [CK11] oraz niepublikowana wcześniej strategia syntezy ultra-szybkich automatów. Strategia syntezy ultra-szybkich automatów sekwencyjnych wykorzystująca bufory trójstanowe została później drobiazgowo przedstawiona w pracy [CK16] wraz z zaproponowanym oryginalnym sposobem (nowym w stosunku do monografii) reprezentacji komputerowej procesu kodowania stanów za pomocą binarnego drzewa decyzyjnego kodowania stanów. Za oryginalny wkład związany z rozwojem metod syntezy układów cyfrowych realizowanych w strukturach programowalnych uważam: 1. Opracowanie szybkiego algorytmu minimalizacji symbolicznej, bazującej na metodzie kolorowania grafu niezgodności, przeznaczonego dla wstępnej minimalizacji liczby stanów automatu [CK11]. 2. Opracowanie strategii syntezy automatów sekwencyjnych ukierunkowanej na optymalizację powierzchni [CK09a, CK09b]. 3. Opracowanie strategii syntezy automatów sekwencyjnych ukierunkowanej na optymalizację szybkości działania układu [CK10] ze szczególnym uwzględnieniem strategii syntezy ultra-szybkich automatów [CK16].

23 4. Zaproponowanie kompleksowej strategi syntezy automatów sekwencyjnych, której istota tkwi w wykorzystaniu specyficznych cech architektonicznych struktur typu [CK12, CK13]. 5. Zaproponowanie formy opisu plików wynikowych w języku opisu sprzętu VHDL, umożliwiającej efektywne przeprowadzanie implementacji w narzędziach firmowych ( placement, mapping, routing ) [CK09c, CK09d]. 6. Przeprowadzenie eksperymentów i analiz porównawczych uzyskanych wyników. 5 Omówienie pozostałych osiagnięć naukowo-badawczych Projektowanie sterowników przemysłowych PLC i układów sprzętowego wspomagania sterowników PLC Zainteresowanie układami programowalnymi nie kończy się na pracach z zakresu syntezy logiki i odwzorowania technologicznego, ale obejmuje również technikę mikroprocesorową ze szczególnym uwzględnieniem mikrokontrolerów i sterowników przemysłowych PLC. Możliwość zaimplementowania w układach FPGA mikroprocesorów lub wybranych bloków sprzętowego wspomagania jednostek centralnych spowodowała podjęcie prac naukowo-badawczych w tym obszarze. Za szczególnie interesujące można tutaj uznać możliwości implementacji jednostki centralnej oraz bloków funkcyjnych zgodnych z normą IEC 61131, zwłaszcza z trzecią częścią tej normy (IEC 61131-3). Okazuje się bowiem, że możliwe jest opracowanie nowych konstrukcji, skrzętnie wykorzystując współbieżność oferowaną przez układy logiki programowalnej. W ramach współpracy między innymi ze studentami powstały prace opublikowane nie tylko na międzynarodowej konferencji [CCW13, CCS15], ale również w renomowanym czasopiśmie [CKC + 16]. Od roku akademickiego 2014/15 jestem opiekunem Studenckiego Koła Naukowego Elektroników działającego przy Instytucie Elektroniki Politechniki Śląskiej. Główna działalność Koła skupia się właśnie wokół projektowania jednostek centralnych CPU i innych modułów ze szczególnym uwzględnieniem jednostek przeznaczonych dla sterowników przemysłowych PLC zgodnych z normą IEC 61131. Projektowane moduły są implementowane w układach FPGA [MCC16]. Metody sterowania silnikiem synchronicznym z magnesami trwałymi PMSM W latach 2010-2013 byłem wykonawcą projektu badawczego własnego Nr N N510 077638 pod tytułem: Algorytmy sterowania układami mechatronicznymi pojazdów mechanicznych, realizowanego pod kierownictwem dr. inż. Tomasza Rudnickiego. Projekt był w całości finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego. Celem naukowym prac było opracowanie systemu napędowego wyposażonego w silnik synchroniczny z magnesami trwałymi PMSM (ang. Permanent Magnet Synchronous Machine). Ponieważ silniki z magnesami trwałymi pozbawione są komutatora, ciężar sterowania przenosi się znacząco w kierunku elektronicznego sterowania silnikiem elektrycznym. Byłem współautorem analizy matematycznej oraz głównym autorem i wykonawcą układu sterowania silnikiem PMSM. W początkowej fazie realizacji programu sterowania realizowanego przed procesor sygnałowy DSP współtworzyłem program, proponując między innymi prostą, acz efektywną, metodę cyfrowej filtracji zakłóceń [CR14]. Oprócz tego wyniki prac zostały opublikowane w ośmiu innych artykułach opublikowanych w czasopismach (między innymi [RCS13, RCS14]) i dwóch na konferencjach naukowych [RCF11a, RCF11b]. Po zakończeniu projektu byłem częścią zespołu kontynuującego prace. Byłem pomysłodawcą między innymi serii badań określających wpływ częstotliwości modulacji PWM falownika

24 na różne aspekty pracy układu z silnikiem PMSM, na przykład na uzyskiwany moment obrotowy. Aktywnie uczestniczyłem w powstaniu kolejnych publikacji, z czego za najważniejszą uznaję artykuł [RCSP16]. Artykuły mojego współautorstwa zostały zauważone, co spowodowało, że zostałem poproszony o wykonanie recenzji dla The IEEE Transactions on Industrial Electronics oraz The IEEE Transactions on Power Electronics. 6 Omówienie działalności dydaktyczno-organizacyjnej Od roku 2006 jestem zatrudniony na etacie adiunkta w grupie pracowników naukowo-dydaktycznych. Dydaktyka stanowi pokaźną część wypełnianych przeze mnie obowiązków. Krótko po podjęciu zatrudnienia zacząłem pracować nad przygotowaniem przedmiotu obieralnego łączącego aspekty projektowania układów cyfrowych oraz ich opisywania w języku opisu sprzętu Verilog HDL. W efekcie prac powstał przedmiot o pod tytułem: Projektowanie urządzeń cyfrowych w języku Verilog HDL, obejmujący piętnaście godzin wykładu i trzydzieści godzin zajęć laboratoryjnych. Przedmiot spotkał się z ciepłym przyjęciem wśród studentów i przez kilka lat cieszył się bardzo dużym zainteresowaniem rokrocznie był wybierany i należał do najpopularniejszych przedmiotów obieralnych. W efekcie został włączony w program studiów, co uznaję za swój największy sukces w pracy dydaktycznej. Przedmiot jest obecnie prowadzony jako jeden z dwóch wariantów w ramach przedmiotu: Języki opisu sprzętu. Nadal prowadzę wykład i ćwiczenia laboratoryjne. Ponadto prowadziłem/prowadzę zajęcia (ćwiczenia tablicowe, laboratoria, projekty) z przedmiotów związanych ściśle z techniką cyfrową i mikroprocesorową, m.in.: Podstawy techniki cyfrowej, Projektowaniu układów cyfrowych, Mikroprocesory, Systemy komputerowe i mikroprocesory, Sterowniki programowalne. Uczestniczyłem też w zorganizowaniu i prowadzę/prowadziłem dwa kolejne przedmioty obieralne: Programowanie robotów mobilnych na bazie mikrokontrolerów z rdzeniem ARM, Programowe cyfrowe układy sterowania. Byłem promotorem czternastu prac magisterskich i dziesięciu projektów inżynierskich. Zrealizowałem kilka nowych modeli laboratoryjnych, m.in. z zakresu układów logiki programowalnej. Do najistotniejszych zaliczam dwa modele używane w laboratorium Podstaw techniki cyfrowej/projektowania układów cyfrowych: Model symulatora układów programowalnych PLD, Model symulatora układów mikroprogramowanych. Obydwa modele składają się z części sprzętowej i programowej. Program pierwszego modelu jest skonstruowany w sposób umożliwiający opis układu cyfrowego na poziomie tablicy przepaleń. Umożliwia to pokazanie powiązania pomiędzy syntezą logiki i implementacją. Ponadto, program steruje warstwą sprzętową modelu umożliwiając symulację układu programowalnego. Studenci mogą dołączyć model do innych elementów układu lub aparatury pomiarowej, weryfikując opisany za pomocą tablicy przepaleń model funkcjonalny. Program drugiego modelu umożliwia zdefiniowanie zawartości pamięci, zaś część sprzętowa umożliwia jej symulację i realizację układu mikroprogramowanego poprzez dołączenie do symulatora pozostałych elementów, między innymi rejestrów. Istotnym problemem w realizacji modeli dydaktycznych było ich odpowiednie zrealizowanie pod względem funkcjonalnym. Chodziło bowiem o to, by modele jak najlepiej pokazywały istotę