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

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

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

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

SYNTEZA JEDNOSTEK STERUJĄCYCH W STRUKTURACH PROGRAMOWALNYCH

UKŁADY MIKROPROGRAMOWALNE

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

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

Język opisu sprzętu VHDL

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

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

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

Laboratorium przedmiotu Technika Cyfrowa

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

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

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

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Projekt prostego procesora

Sterowniki Programowalne (SP)

Elementy cyfrowe i układy logiczne

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Implementacja algorytmu szyfrującego

Analiza i Synteza Układów Cyfrowych

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

Tranzystor JFET i MOSFET zas. działania

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Przykładowe pytania DSP 1

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

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

Synteza strukturalna automatu Moore'a i Mealy

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Sławomir Kulesza. Projektowanie automatów synchronicznych

Struktura i działanie jednostki centralnej

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

ARCHITEKTURA PROCESORA,

Architektura komputerów II - opis przedmiotu

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Podstawy Informatyki Układ sterujący

Synteza strukturalna automatów Moore'a i Mealy

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

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Układy mikroprogramowane

Projektowanie Scalonych Systemów Wbudowanych VERILOG

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

Sterowniki Programowalne (SP) Wykład 11

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Układy reprogramowalne i SoC Implementacja w układach FPGA

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

Metody optymalizacji soft-procesorów NIOS

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

OPTYMALIZACJA ARCHITEKTURY MIKROKONTROLERÓW PRZEZNACZONYCH DO REALIZACJI W UKŁADACH FPGA

Układy logiczne układy cyfrowe

Współczesne techniki informacyjne

Krótkie przypomnienie

Problem kodowania w automatach

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

Architektura typu multi cycle

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

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

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

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

Projektowanie. Projektowanie mikroprocesorów

Opis przedmiotu zamówienia CZĘŚĆ 1

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Kombinacyjne bloki funkcjonalne

Ćw. 7: Układy sekwencyjne

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

UKŁADY LOGICZNE. Prowadzi: Tadeusz ŁUBA, (GE pok. 472) Wykład dla specjalności: Elektronika i Inżynieria Komputerowa, Inżynieria Biomedyczna (ULOGE)

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

PODSTAWY UKŁADÓW LOGICZNYCH. Prowadzi: prof. dr hab. Tadeusz ŁUBA, (Nowowiejska 15/19, GE pok. 472)

Systemy Czasu Rzeczywistego FPGA

Układy logiczne układy cyfrowe

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

Projektowanie układów FPGA. Żródło*6+.

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

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

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

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

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

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja

1 Wprowadzenie do algorytmiki

Elektronika i techniki mikroprocesorowe

Architektura typu Single-Cycle

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

Kody splotowe (konwolucyjne)

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

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

DIGITAL LOGIC. Warsaw Information Technology Warsaw University of Technology. Digital Logic. Prof. Tadeusz Łuba

Transkrypt:

KNWS 7 Mikroprogramowany układ sterujący z współdzieleniem kodów oraz rozszerzonym formatem mikroinstrukcji Alexander Barkalov, Larysa Titarenko, Jacek Bieganowski Streszczenie: W artykule przedstawiona została metoda syntezy umożliwiająca zmniejszenie liczby tablic LUT potrzebnych do realizacji układu mikroprogramowanego z współdzieleniem kodów. Metoda jest przeznaczona dla układów FPGA z osadzonymi blokami pamięci. Część kombinacyjna układu mikroprogramowanego jest realizowana z użyciem tablic LUT, natomiast pamięć sterująca układu jest realizowana z użyciem osadzonych bloków pamięci. Redukcja liczby tablic LUT osiągnięto dzięki wykorzystaniu klas łańcuchów pseudorównoważnych. W artykule przedstawiono przykład zastosowania proponowanej metody oraz rezultaty eksperymentów. Słowa kluczowe: mikroprogramowany układ sterujący, współdzielenie kodów, łańcuch bloków operacyjnych, tabela LUT, osadzony blok pamięci. WPROWADZENIE Układ sterujący (US) występuje praktycznie w każdym systemie cyfrowym. Jego zadaniem jest koordynowanie pracy pozostałych elementów systemu [8]. Dobór właściwego modelu układu sterującego zależy dużym stopniu od typu algorytmu sterowania []. W przypadku sieci działań, w których liczba wierzchołków operacyjnych jest co najmniej dwa razy większa od liczby wierzchołków warunkowych obok dobrze znanych rozwiązań w logice szytej, bardziej korzystne może być zastosowanie układu mikroprogramowanego. Modele mikroprogramowane kojarzą się przede wszystkim z systemami komputerowymi jednak mogą one z powodzeniem zostać użyte do realizacji układu sterującego w dowolnym systemie cyfrowym. Obecnie systemy cyfrowe bardzo często realizuje się przy użyciu układów programowalnych takich jak FPGA czy CPLD. W przypadku tych układów nadal aktualnym problemem jest redukcja zasobów sprzętowych potrzebnych do realizacji m. in. jednostek sterujących [6,,, ]. Zmniejszenie powierzchni układu pozwala zredukować koszt systemu, liczbę układów, zużycie energii i inne [7]. Układy FPGA składają się z regularnej matrycy konfigurowalnych bloków CLB, które zawierają tablice LUT o ograniczonej liczbie wejść (zazwyczaj mniej niż 6). Ograniczona liczba wejść powoduje potrzebę, dekompozycji funkcjonalnej implementowanych funkcji [9] i może prowadzić do wolnych wielopoziomowych struktur. Liczba poziomów może zostać zredukowana przez zastąpienie wielu połączonych ze sobą bloków CLB jednym osadzonym blokiem pamięci (Embedded Memory Block - EMB) [6]. Podejście to może zostać wykorzystane przy projektowaniu mikroprogramowanych układów sterujących []. Istotnym aspektem przy projektowaniu układów wykorzystujących automaty skończone jest wykorzystanie odpowiedniego kodowania stanów, które może w znacznym stopniu wpłynąć na rozmiar układu [7,, 8, ]. W przypadku układów mikroprogramowanych możliwość wyboru dowolnego kodowania daje m. in. struktura z współdzieleniem kodów.. SIEĆ DZIAŁAŃ Jednym ze sposobów reprezentacji algorytmu sterowania jest sieć działań (ang. Graph Scheme of Algorithm GSA). Przykładową sieć działań przedstawiono na Rys.. Sieć działań składa się ze zbioru wierzchołków B= b,b E E E oraz zbioru krawędzi E. Wierzchołek b jest wierzchołkiem początkowym, b E jest wierzchołkiem końcowym, E jest zbiorem wierzchołków operacyjnych, E jest zbiorem wierzchołków warunkowych. Wierzchołek operacyjny b q E zawiera mikroinstrukcję Y(b q )Y będącą kolekcją mikrooperacji ze zbioru Y={y,, y N }. Wierzchołek warunkowy b q E reprezentuje jeden z elementów x e X ze zbioru warunków X={x,,x L }. Sekwencję kolejnych wierzchołków operacyjnych b g,,b gfg- (i=,,f g ), w której dla każdej pary wierzchołów istnieje łuk b gi, b gi+ E, nazywa się łańcuchem wierzchołków operacyjnych (Operational Linear Chain OLC). Niech C ={α,, α G } będzie zbiorem łańcuchów wierzchołków operacyjnych w sieci działań. Dwa łańcuchy nazywa się pseudorównoważnymi (pseudoequivalent OLC POLC) jeżeli ich wyjścia są połączone z wejściem tego samego wierzchołka. Niech C ={B,,B I } będzie podziałem zbioru C na klasy POLC, gdzie B i C, jeżeli wyjście łańcucha OLC nie jest połączone z wierzchołkiem końcowym sieci działań.

8 KNWS Sieć działań nazywa się liniową, gdy liczba wierzchołków operacyjnych jest co najmniej dwa razy większa niż liczba łańcuchów operacyjnych. Start 8 8 8 9 6 7 6 6 7 Układ jest sterowany za pomocą sygnału y. Jeżeli y = licznik jest inkrementowany o jeden, co odpowiada bezwarunkowemu przejściu do następnego wierzchołka w ramach łańcucha OLC. Jeżeli y = zawartość licznika i rejestru jest określana przez blok kombinacyjny, co odpowiada warunkowemu przejściu między łańcuchami OLC. Adres mikroinstrukcji dla wierzchołka b q można przedstawić jako A b ) K( ) * K( b ) () ( q g q gdzie, K(α g ) jest kodem łańcucha OLC, K(b q ) jest kodem wierzchołka w ramach łańcucha OLC, a symbol * jest operatorem konkatenacji. Nowy adres mikroinstrukcji jest wtedy generowany w oparciu o bieżący stan układu oraz zewnętrzne zmienne warunkowe x i X. Funkcje przejść układu kombinacyjnego można przedstawić następująco: (, X ); (, X ). Pamięć sterująca przechowuje mikroinstrukcje wystawiane przez układ do ścieżki danych. Schemat blokowy układu mikroprogramowalnego z współdzieleniem kodów przedstawiony został na rysunku. () 7 X układ kombinacyjny clock start + licznik T pamięć sterująca y ye Y R TF fetch 6 rejestr start S 7 6 7 8 6 9 6 Stop Rys.. Sieć działań. MIKROPROGRAMOWANY UKŁAD STERUJĄCY Z WSPÓŁDZIELENIEM KODÓW W mikroprogramowanym układzie sterującym z współdzieleniem kodów adresowanie pamięci jest realizowane za pomocą rejestru oraz licznika. Rejestr przechowuje starszą część adresu mikroinstrukcji, która jest kodem łańcucha OLC. Licznik generuje młodszą część adresu mikroinstrukcji będącą adresem wierzchołka w ramach łańcucha OLC. Na rysunku starsza część adresu została oznaczona jako τ, młodsza jako T. Rys.. Struktura mikroprogramowanego układu sterującego z współdzieleniem kodów Zaadresowanie M mikroinstrukcji wymaga adresu o długości R log M bitów. W układzie z współdzieleniem kodów adres składa się z dwóch części: kodu łańcucha OLC oraz względnego adresu wierzchołka w łańcuchu. Długość kodu łańcucha OLC, wynosi R log G bitów, gdzie G jest liczbą łańcuchów w sieci działań. Długość adresu wierzchołka zależy od liczby wierzchołków w najdłuższym łańcuchu OLC i wynosi RT log Q bitów, gdzie Q jest liczbą wierzchołków operacyjnych najdłuższego łańcucha Q = max(f,,f G ), F g jest długością łańcucha α g. Zastosowanie układu z współdzieleniem kodów ma sens gdy spełniony jest warunek: R R R T. () Spełnienie warunku () oznacza, że wprowadzenie adresowania z udziałem licznika i rejestru nie wpłynie na rozmiar pamięci sterującej nie zwiększy się liczba linii adresowych. W układzie z współdzieleniem kodów kody łańcuchów K(α g ) nie zależą od kodów wierzchołków operacyjnych. Możliwe jest zatem zastosowanie znanych metod kodowania stanów [7,8,9,,,]. W przypadku liniowych sieci działań model z współdzieleniem kodów zawsze pochłania mniej zasobów sprzętowych w porównaniu z klasycznym automatem Moore a [].

KNWS 9. MODYFIKACJA STRUKTURY Z WSPÓŁDZIELENIEM KODÓW Zmniejszenie części kombinacyjnej układu z współdzieleniem kodów jest możliwe dzięki wprowadzeniu klas łańcuchów pseudorównoważnych. Liczba klas POLC w sieciach działań o charakterze liniowym jest zawsze mniejsza od liczby łańcuchów. Oznacza to, że funkcja przejść bazująca na klasach POLC składa się z mniejszej liczby przejść (krótsza tablica przejść). Kody klas POLC można uzyskać przez konwersję adresu mikroinstrukcji () za pomocą konwertera adresów []. Jednak blok ten jest układem kombinacyjnym i jego typowa realizacja w układach FPGA wymaga użycia bloków CLB. Innym rozwiązaniem, które nie wykorzystuje bloków CLB, jest umieszczenie kodów klas POLC w wolnym obszarze pamięci sterującej układu mikroprogramowanego. Osadzone bloki pamięci układach FPGA są konfigurowane w ograniczonym zakresie. Na przykład w układach Xilinx Virtex II blok EMB może być skonfigurowany jako: 6K x bit, 8K x bity, K x bity, K x 9bitów, K x 8bitów, x 6 bitów []. Ograniczone możliwości doboru rozmiaru pamięci pociągają za sobą problemy z pełnym wykorzystaniem pamięci. Mikroprogram często nie zajmuje całej dostępnej pamięci i jej część pozostaje niewykorzystana. Ten wolny obszar pamięci może zostać użyty do przechowywania kodów klas POLC. Jeżeli wolna przestrzeń jest wystarczająca aby pomieścić kody POLC, to zagospodarowanie wolnych obszarów w pamięci sterującej pozwala na zmniejszenie liczby bloków CLB przy zachowaniu tej samej liczby bloków EMB. Kody klas POLC można umieścić w pamięci sterującej na dwa sposoby. Jeżeli w pamięci pozostało więcej niż G wolnych komórek możliwe jest wstawienie dodatkowych mikroinstrukcji sterujących z kodami klas POLC. Jeżeli w słowie pamięci pozostało RPOLC log C wolnych bitów, to możliwe jest rozszerzenie formatu mikroinstrukcji o pole z kodem klasy POLC. W dalszej części artykułu rozważany będzie tylko drugi przypadek. Na rysunku została przedstawiona struktura CMCU z współdzieleniem kodów oraz rozszerzonym formatem mikroinstrukcji. Blok kombinacyjny zmodyfikowanego układu realizuje funkcję przejść: ( X, Z); ( X, Z ). Przejścia warunkowe między łańcuchami OLC są wykonywane w oparciu o warunki zewnętrzne (X) oraz kody klas POLC (Z). Działanie układu jest analogiczne jak w przypadku podstawowej struktury z współdzieleniem kodów. () Rys.. Struktura układu mikroprogramowanego z rozszerzonym formatem mikroinstrukcji Zmodyfikowany format mikroinstrukcji przedstawiono na rysunku b. W porównaniu do podstawowego formatu (Rys. a) mikroinstrukcja została rozszerzona o pole FPOLC składające się z R POLC bitów. a) y = mikrooperacje Rys.. Podstawowy (a) i zmodyfikowany (b) format mikroinstrukcji Proponowana metoda syntezy składa się z następujących kroków:. Utworzenie zbioru łańcuchów operacyjnych oraz jego podział na klasy POLC.. Zakodowania łańcuchów OLC, wierzchołków operacyjnych oraz klas POLC.. Przygotowanie zawartości pamięci sterującej.. Przygotowanie tabeli przejść.. Implementacja układu.. PRZYKŁAD b) y = mikrooperacje FPOLC W wyniku analizy sieci działań przedstawionej na rysunku można utworzyć następujące zbiory Π C ={B, B, B } gdzie B ={α }, B ={α, α, α }, B ={α, α 6, α 7 }, B ={α 8 }, α =b, b, b, α =b, b, b 6, b 7, α =b 8, b 9, α =b, b, b, b, α =b, b, b 6, α 6 =b 7,, b, α 8 =b,, b. Oznacza to, że Q=, R T =, T={T, T }, G=6, R =, τ={τ, τ, τ,},={d, D, D }, ={D, D }. Ponieważ M=, R= warunek () jest spełniony i korzystne jest zastosowanie współdzielenia kodów. Niech łańcuchy OLC zostaną zakodowane w następujący sposób K(α ) =,, K(α 8 ) =, a poszczególne elementy łańcucha mają kody: dla pierwszego, dla drugiego, dla trzeciego itd. Niech klasy POLC będą zakodowane następująco K(B )=, K(B )=, K(B )=. Zawartość pamięci sterującej można otrzymać zamieniając każdy wierzchołek b q B na zbiór Y(B q ) {y }, a wierzchołek końcowy b na zbiór Y(B q ) {y E }. Na przykład wierzchołek b 8 zawierać będzie zbiór Y(b 8 )={y, y 7 }, natomiast odpowiadająca mu komórka pamięci o adresie A(b 8 )= będzie zawierała mikroinstrukcję odpowiadającą sygnałom y, y, y 7. Z wierzchołkiem końcowym b, będzie związany zbiór Y(b )={y 7, y 8 }, adres A(b )= oraz mikroinstrukcja zawierająca sygnałom y 7, y 8, y E.

KNWS Składniki funkcji D odpowiadają linii, 6,7 w tabeli przejść, składniki funkcji D opowiadają linii 9 i itd. Implementacja jednostki sterującej polega na realizacji systemów () za pomocą tablic LUT oraz implementacji pamięci sterującej z użyciem osadzonych bloków pamięci w układach FPGA. Implementację można przeprowadzić z użyciem ogólnie dostępnych pakietów przemysłowych takich jak Xilinx ISE, Quartus II [, ]. Rys.. Adresy mikroinstrukcji dla sieci działań z rysunku Przejścia pomiędzy łańcuchami OLC mogą zostać przedstawione następująco: b, b b, b 6 9, b b ; 7 x b x b 7 6 8. ; 6 Na podstawie przejść () wyjścia łańcuchów OLC można opisać za pomocą jednej linii. Możliwa jest więc zamiana wyjść łańcuchów OLC na odpowiadające im klasy łańcuchów. W wyniku zamiany otrzymujemy system: B ; B x b B x b 7 6 8. 6 System (6) można przekształcić na tabelę przejść (Tab. ). W kolumnach h i h umieszczono funkcje wejściowe, które przyjmują wartość w h-tej linii tabeli (h=,, H). Poszczególne przejścia są wykonywane gdy prawdziwa jest koniunkcja zmiennych X h (h=,, H). Tabela. Tabela przejść B i K(B i ) z z b q A(b q ) X h h h h B b x x D b 6 xx D D b 8 xx D b xx D D D D B b x D D D b x x D D D 6 b xxx D 7 b 6 x x x D D 8 B b 7 x D D 9 b xx D D b xx D D D Na podstawie tabeli przejść możliwe jest utworzenie systemów (). Na przykład dla tabeli : D z z x x z z ; D D D z z x x ; z z x x z z x z z x z z x x z z x ; z z x x x z z x x ; D z z x x z z x z z x x z z x ; z z x x z z x x z z x z z x x () (6) (7) 6. BADANIA EKSPERYMENTALNE Badania eksperymentalne przeprowadzono syntezując modele testowych jednostek sterujących opisanych w języku VHDL. W badaniach wykorzystane zostały algorytmy sterujące z pracy []. Synteza została wykonana w oprogramowaniu Xilinx ISE. dla układu FPGA Virtex II Pro (xcvp--ff896) oraz CPLD XC9. Rezultaty badań przedstawiono w tabeli. Wyniki syntezy pokazują, ze proponowana metoda pozwala zredukować powierzchnię układu sterującego o około % przy zachowaniu tej samej liczby przerzutników i bloków EMB w porównaniu do podstawowej struktury jednostki sterującej z współdzieleniem kodów. W układach FPGA użycie mniejszej liczby bloków CLB wiąże się z uproszczeniem sieci połączeń. W rezultacie poprawie ulegają też parametry czasowe. W przypadku badanych sieci działań czas cyklu uległ zmniejszeniu średnio o około % (kolumna T C ). Podobne wyniki zostały uzyskane w przypadku układów CPLD, gdzie część kombinacyjna układu jest implementowana za pomocą mikrokomórek PAL, a pamięć sterująca np. z użyciem zewnętrznych układów PROM/RAM. Tabela. Wyniki syntezy testowych sieci działań FPGA CPLD Plik L N M G Q U U U U S F T C S F T C S C S C mk 7 86 9,,6 8 mk 7 9,7, 6 9 mk 7 8 9 8,6 8, 8 8 mk 9 8 7,8, 77 8 mk 9 9 6,8,9 mk6 8 9 7,,8 78 8 mk7 8 7 7 8 8, 8, 7 mk8 7 7 9 6,, 6 7 mk9 7 7 7 9 7,, 6 8 mk 9 7 6,7, 8 mk 8 8 9 6 9,8 9, 8 mk 8 7 9 7,6 9, 86 7 mk 6 7 8 9 6,9 6, 6 mk 8 7 6 6,, 79 mk 8 69 8 7,77, mk6 6 7 8,6 8, 66 86 mk7 9 7 7 8, 6, mk8 6 8,,77 6 6 mk9 6 7 7 6 6,6 7, 89 L liczba zmiennych warunkowych, N długość mikrooperacji, M-liczba łańcuchów operacyjnych, G liczba łańcuchów, Q liczba wierzchołków najdłuższego łańcucha w sieci, S F liczba elementów slice, S C liczba elementów AND, AND, INV, OR, OR, XOR w mikrokomórce PAL, T C czas cyklu w nanosekundach.

KNWS 7. PODSUMOWANIE Osadzone bloki pamięci w układach mikroprogramowanych mogą być konfigurowane w ograniczonym zakresie. Oznacza to, że w wielu przypadkach część pamięci sterującej pozostaje niewykorzystana. Zaproponowana przez autorów metoda syntezy pozwala wykorzystać niezagospodarowane obszary pamięci do redukcji części kombinacyjnej mikroprogramowanej jednostki sterującej. Rozwiązanie opiera się na umieszczeniu w pamięci sterującej kodów klas łańcuchów pseudorównoważnych, dzięki czemu możliwe jest uproszczenie tabeli przejść układu. Przeprowadzone eksperymenty dowodzą, że zaproponowana przez autorów metoda pozwala zredukować zasoby sprzętowe potrzebne do implementacji układu mikroprogramowanego z współdzieleniem kodów w przypadku liniowych sieci działań. LITERATURA [] Adamski, M. and Barkalov, A. (6). Architectural and Sequential Synthesis of Digital Devices, University of Zielona Góra Press. [] Altera (9). Altera Corporation Webpage. http://www. altera.com. [] Baranov, S. I. (8). Logic and System Design of Digital Systems, TUT Press. [] Barkalov, A. and Titarenko, L. (8). Logic synthesis for Compositonal Microprogram Control Units, Springer, Berlin. [] Barkalov, A., Titarenko, L. and Wiśniewski, R. (6). Synthesis of compositional microprogram control units with sharing codes and address decoder, Proceedings of the International Conference Mixed Design of Integrated Circuits and Systems - MIXDES 6, pp. 97 -. [6] Borowik, G., Falkowski, B. and Łuba, T. (7). Costefficient synthesis for sequential circuits implemented using embedded memory blocks of FPGA's, IEEE Workshop on Design and Diagnostics of Electronic Circuits and Systems, pp. 99-. [7] Chattopadhyay, S. (). Area conscious state assignment with flip-flop and output polarity selection for finite state machines synthesis - a genetic algorithm, The Computer Journal 8(): -. [8] Czerwinski, R. and Kania, D. (). State assignment method for high speed FSM, Proceedings ofprogrammable Devices and Systems, pp. 6-. [9] Czerwinski, R. and Kania, D. (). State assignment for PAL-based CPLDs, Proceedings of 8th Euromicro Symposium on Digital System Design, pp. 7-. [] Deniziak, S. and Sapiecha, K. (998). An efficient algorithm of perfect state encoding for CPLD based systems, Proceedings of IEEE Workshop on Design and Diagnostic of Electronic Circuits and Systems (DDECS'98), pp. 7-. [] Escherman, B. (99). State assignment for hardwired VLSI control units, ACM Computing Surveys (): -6. [] Gupta, B., Narayanan, H. and Desai, M. (999). A state assignment scheme targeting performance and area, Proceedings of th International Conference on VLSI Design, pp. 78 8. [] Kam, T., Villa, T., Brayton, R. and Sangiovanni- Vincentelli, A. (998). A Synthesis of Finie State Machines: Functional Optimization, Kluwer Academic Publishers, Boston. [] Kania, D. (). The logic synthesis for the PAL-based complex programmable logic devices, Zeszyty naukowe Politechniki Sląskiej, Gliwice. (in Polish). [] Kołopienczyk, M. (8). Application of address converter for decreasing memory size ofcompositional microprogram control unit with code sharing, University of Zielona Góra Press, Zielona Góra. [6] Maxfield, C. (). The Design Warrior's Guide to FPGAs, Academic Press, Inc., Orlando, FL, USA. [7] Micheli, G. D. (99). Synthesis and Optimization of Digital Circuits, McGraw-Hill. [8] Navabi, Z. (7). Embedded Core Design with FPGAs, McGraw-Hill. [9] Scholl, C. (). Functional Decomosition with Application of FPGA Synthesis, Kluwer Academic Publishers. [] Solovjev, V. V. and Klimowicz, A. (8). Logic Design for Digital Systems on the Base of Programmable Logic Integrated Circuits, Hot line - Telecom, Moscow. (in Russian). [] Xia, Y. and Almani, A. (). Genetic algorithm based state assignment for power and area optimization, IEEE Proceedings on Computers and Digital Techniques, Vol. 9, pp. 8-. [] Xilinx (9). Xilinx Corporation Webpage. http://www. xilinx.com. [] Yang, S. (99). Logic synthesis and optimization benchmarks user guide, Technical report, Microelectronic Center of North Carolina. prof. dr hab. inż. Alexander Barkalov 6-7 Zielona Góra e-mail: A.Barkalov@iie.uz.zgora.pl dr hab. inż. Larysa Titarenko 6-7 Zielona Góra e-mail: L.Titarenko@iie.uz.zgora.pl mgr inż. Jacek Bieganowski 6-7 Zielona Góra e-mail: J.Bieganowski@iie.uz.zgora.pl