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

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

Minimalizacja form boolowskich

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

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

Język opisu sprzętu VHDL

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

Minimalizacja form boolowskich UC1, 2009

Metoda Karnaugh. B A BC A

dr inż. Małgorzata Langer Architektura komputerów

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

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

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

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

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

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

Sterowniki Programowalne (SP)

Algebra Boole a i jej zastosowania

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

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

Synteza układów kombinacyjnych

Problemy z ograniczeniami

Technika cyfrowa Synteza układów kombinacyjnych

Matematyczne Podstawy Informatyki

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Rachunek podziałów i elementy teorii grafów będą stosowane w procedurach redukcji argumentów i dekompozycji funkcji boolowskich.

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

Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera

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

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

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

x x

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

Metody Programowania

1. SYNTEZA UKŁADÓW SEKWENCYJNYCH

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

W jakim celu to robimy? Tablica Karnaugh. Minimalizacja

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

Sterowniki Programowalne (SP) Wykład 11

Kolorowanie wierzchołków

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

Wielopoziomowa synteza układów logicznych

Synteza strukturalna automatów Moore'a i Mealy

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Minimalizacja automatów niezupełnych.

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Wstęp do Techniki Cyfrowej... Algebra Boole a

TEORETYCZNE PODSTAWY INFORMATYKI

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

Projektowanie układów na schemacie

V Konkurs Matematyczny Politechniki Białostockiej

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Architektura komputerów Wykład 2

Systemy wbudowane. Układy programowalne

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

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

Elementy cyfrowe i układy logiczne

Niektóre własności 1-diagnozowalnych struktur typu PMC

Programowanie celowe #1

Wykład 9: Markov Chain Monte Carlo

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

a) 7 b) 19 c) 21 d) 34

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

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

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

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

Kolorowanie wierzchołków grafu

Wykłady z Matematyki Dyskretnej

Minimalizacja formuł Boolowskich

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

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

Kody blokowe Wykład 2, 10 III 2011

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

8. Neuron z ciągłą funkcją aktywacji.

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

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Adam Opara. Dekompozycyjne metody syntezy układów kombinacyjnych wykorzystujące binarne diagramy decyzyjne

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

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

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

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

Matematyczne Podstawy Informatyki

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

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

AiSD zadanie trzecie

Elektronika i techniki mikroprocesorowe

Przykład planowania sieci publicznego transportu zbiorowego

PRACA MINIMALNA ZIĘBNICZEGO OBIEGU LEWOBIEŻNEGO

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Schematy Piramid Logicznych

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

TEORETYCZNE PODSTAWY INFORMATYKI

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

1 Automaty niedeterministyczne

Transkrypt:

BIULETYN WAT VOL. LVI, NR 3, 2007 Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR DARIUSZ KANIA*, WALDEMAR GRABIEC *Politechnika Śląska, Wydział Automatyki, Elektroniki i Informatyki, Instytut Elektroniki, 44-100 Gliwice, ul. Akademicka 16 Wojskowa Akademia Techniczna, Wydział Elektroniki, Instytut Telekomunikacji, 00-908 Warszawa, ul. S. Kaliskiego 2 Streszczenie. W artykule przedstawiono koncepcję syntezy logicznej dla matrycowych struktur CPLD. Zaproponowane rozwiązanie oparte jest na tzw. dekompozycji kolumnowej, natomiast jego główną ideą jest wykorzystanie elementu XOR znajdującego się w blokach logicznych typu PAL większości oferowanych struktur CPLD. Istotą zaproponowanego modelu dekompozycji jest zagadnienie poszukiwania dopełnień wzorców kolumn matrycy podziałów pozwalających wykorzystać elementy XOR. W procesie poszukiwania dopełnień wzorców wykorzystano oryginalną metodę kolorowania wierzchołków grafu niezgodności i dopełnień kolumn. Słowa kluczowe: synteza logiczna, dekompozycja, odwzorowanie technologiczne Symbole UKD: 621.38-181.4 1. Wprowadzenie Większość oferowanych obecnie matrycowych struktur CPLD (ang. Complex Programmable Logic Devices) wykorzystuje architekturę właściwą układom typu PAL (ang. Programmable Array Logic), której charakterystyczną cechą jest występowanie programowalnej matrycy iloczynów i nieprogramowalnej (stałe połączenia) matrycy sum. Rdzeniem struktur CPLD jest blok logiczny typu PAL zawierający pewną liczbę iloczynów k (najczęściej k = 3 8) dołączonych na stałe do wejść bramki sumy logicznej (rys. 1). W celu uproszczenia prezentowanych zagadnień, wszystkie omawiane w dalszej części artykułu przykłady będą rozpatrywane dla bloków logicznych zawierających 3 (k = 3) iloczyny.

230 D. Kania, W. Grabiec Rys. 1. Struktura bloku logicznego typu PAL zawierającego k iloczynów Jednym z głównych problemów syntezy logicznej dedykowanej dla struktur CPLD jest efektywne wykorzystanie dostępnej liczby iloczynów zawartych w blokach typu PAL. Bloki logiczne układów CPLD, oprócz iloczynów, zawierają również (praktycznie w każdym przypadku) pewne dodatkowe elementy, takie jak: konfigurowalne przerzutniki, wyjściowe bufory trójstanowe, bramki XOR itp. Elementy te mają różnorodne przeznaczenie. Okazuje się jednak, że ich istnienie z powodzeniem można uwzględnić w procesie syntezy logicznej, podnosząc przez to jej efektywność. W syntezie logicznej przeznaczonej dla matrycowych struktur CPLD można wykorzystać elementy dekompozycji, odgrywającej kluczową rolę w procesie syntezy układów cyfrowych realizowanych w strukturach FPGA (ang. Field Programmable Gate Array), określanych mianem struktur typu tablicowego LUT (ang. Look-Up Table). W przypadku matrycowych struktur CPLD istota dekompozycji polega na dopasowaniu projektu do wewnętrznej struktury układu programowalnego [1]. Celem artykułu jest przedstawienie pomysłu nowatorskiego modelu dekompozycji, umożliwiającego wykorzystanie elementu XOR powszechnie występującego w blokach logicznych większości struktur CPLD. Opracowany model dekompozycji jest rozszerzeniem tzw. dekompozycji kolumnowej, opartej na klasycznym modelu dekompozycji Curtisa [1, 2, 3]. Opierając się na prostym przykładzie, dokonano porównania proponowanej koncepcji syntezy logicznej z klasyczną metodą syntezy oraz metodą syntezy wykorzystującą dekompozycję funkcjonalną Curtisa, ukierunkowaną na efektywne wykorzystywanie bloków logicznych typu PAL [1]. 2. Klasyczna metoda realizacji funkcji w strukturach typu PAL Klasyczna metoda realizacji funkcji logicznej f : B n B m w strukturach CPLD typu PAL związana jest z realizacją zminimalizowanych funkcji f i : B n B (i = 1, 2,, m) w postaci sieci składających się z k-iloczynowych bloków typu PAL [1]. Przykład 1 Rozważmy realizację funkcji logicznej f : B 5 B opisanej siatką Karnaugha (rys. 2a), wykorzystując bloki logiczne typu PAL zawierające 3 iloczyny. W wyniku

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 231 dwupoziomowej minimalizacji przeprowadzonej za pomocą programu ESPRESSO uzyskujemy postać zawierającą 13 implikantów (rys. 2b). Rys. 2. Metoda klasyczna realizacji funkcji f : B 5 B: siatka Karnaugha (a) wynik minimalizacji w postaci pliku zapisanego w formacie berkeleyowskim y.pla (b) Niech fi oznacza liczbę implikantów, dla których funkcja przyjmuje wartość 1. Niech δ fi będzie liczbą bloków PAL potrzebnych do realizacji funkcji f i. Liczbę iloczynów zawartych w bloku typu PAL oznaczmy literą k. W sytuacji gdy fi > k, liczba niezbędnych do realizacji funkcji k-iloczynowych bloków logicznych wy- f i - k nosi fi = + 1. Zapis oznacza najmniejszą liczbę naturalną nie mniejszą k -1 od x. W rozważanym przypadku powstaje struktura składająca się z f i warstw bloków logicznych typu PAL, przy czym liczba warstw określona jest następującą zależnością: fi = lg k f i. Dla funkcji przedstawionej na rysunku 2 omówione wyżej parametry przyjmują odpowiednio następujące wartości: f k 13 3 fi = 13, fi = + 1 = + 1 = 6 oraz fi = lgk f = lg313 = 3. k 1 3 1 Realizację przedstawionej powyżej funkcji logicznej 5 zmiennych y = f(a, b, c, d, e) metodą klasyczną w oparciu o 3-iloczynowe bloki logiczne typu PAL przedstawiono na rysunku 3.

232 D. Kania, W. Grabiec Rys. 3. Klasyczna realizacja funkcji f:b 5 B wykorzystująca bloki logiczne PAL 3. Metoda realizacji funkcji wykorzystująca dekompozycję kolumnową Metody dekompozycji funkcji znalazły bardzo szerokie zastosowanie w wielu dziedzinach informatyki. Do dziedzin tych można zaliczyć m.in. sztuczną inteligencję, analizę obrazów czy syntezę logiczną. W syntezie logicznej metody dekompozycji pozwalają projektować w sposób efektywny układy cyfrowe w oparciu o struktury programowalne CPLD/FPGA [4]. Intensywne prace nad wykorzystaniem dekompozycji funkcji w syntezie logicznej układów cyfrowych opartych na strukturach FPGA prowadzone są od blisko trzydziestu lat. Podstawę teoretyczną klasycznej teorii dekompozycji stanowią prace Ashenhursta opublikowane w drugiej połowie lat 50. [2], które zostały rozwinięte kilka lat później przez Curtisa [3]. Istotę klasycznego modelu dekompozycji Ashenhursta-Curtisa (nazywanej w literaturze dekompozycją rozłączną Curtisa) stanowi poniższe twierdzenie, zobrazowane dodatkowo na rysunku 4. Twierdzenie o dekompozycji rozłącznej Curtisa Funkcja y = f(i n,..., i 2, i 1 ) = f(x 2,X 1 ) podlega dekompozycji, tzn. f(x 2,X 1 ) = = F[g 1 (X 1 ), g 2 (X 1 ),..., g p (X 1 ), X 2 ] wtedy i tylko wtedy, gdy złożoność kolumnowa matrycy podziałów (siatki Karnaugha) wynosi ν(x 2 X 1 ) 2 p [2, 3].

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 233 Zbiory X 1 i X 2 nazywane są odpowiednio zbiorem związanym i wolnym, przy czym zachodzą między nimi relacje: X 1 X 2 = {i n,..., i 2, i 1 } oraz X 1 X 2 = ϕ. Pod pojęciem złożoności kolumnowej matrycy podziałów (określanej również w literaturze jako krotność kolumnowa) rozumiemy liczbę wszystkich różniących się między sobą wzorców kolumn (w sensie kombinacji zerojedynkowej) występujących w siatce Karnaugha opisującej daną funkcję logiczną. p ( X2 X1) 2 f ( X2, X1) = F[ g1( X1), g2( X1),..., g p ( X1), X2]. Rys. 4. Idea rozłącznej dekompozycji Curtisa Istota dekompozycji funkcji sprowadza się zwykle do odpowiedniego podziału projektowanego układu na podukłady o zadanej liczbie wejść i wyjść. Sytuacja taka ma miejsce podczas realizacji układu cyfrowego w strukturach FPGA typu tablicowego. Okazuje się jednak, że dekompozycja może być również wykorzystywana do podziału projektu na części realizowane w poszczególnych blokach logicznych typu PAL, których głównym mankamentem z punktu widzenia projektanta jest ograniczona liczba wielowejściowych iloczynów [1]. Fakt ten sprawia, że istota dekompozycji przeznaczonej dla struktur typu PAL sprowadza się do minimalizacji liczby wykorzystywanych iloczynów, pośrednio prowadząc do minimalizacji liczby użytych bloków logicznych lub dopasowania projektowanego układu do struktury tychże bloków. Analizując podział układu będący konsekwencją dekompozycji Ashenhursta- -Curtisa (rys. 4), należy zauważyć, że związany jest on z ekspansją całkowitej liczby wyjść. W przypadku układów CPLD prowadzi to do wykorzystania dodatkowo co najmniej p-bloków logicznych typu PAL niezbędnych do realizacji bloku zwią-

234 D. Kania, W. Grabiec zanego. W związku z tym zastosowanie dekompozycji może być opłacalne tylko wtedy, gdy w klasycznym podejściu wykorzystanie sprzężeń zwrotnych prowadzi do użycia większej liczby bloków logicznych typu PAL. Zagadnienie wykorzystania dekompozycji w syntezie CPLD obrazuje poniższy przykład. Przykład 2 Rozpatrzmy realizację funkcji logicznej f : B 5 B z przykładu 1. Siatki Karnaugha opisujące podukłady powstające po dekompozycji, czyli blok związany i wolny wraz ze strukturą ostatecznej realizacji układu przedstawiono na rysunku 5. Można Rys. 5. Realizacja funkcji będąca wynikiem dekompozycji Curtisa

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 235 dostrzec (rys. 5a), że kolumny siatki Karnaugha tworzą trzy wzorce (tzn. występują trzy różne rodzaje kolumn) oznaczone literami A, B, C). Złożoność kolumnowa ν(x 2 X 1 ) = 3. Z twierdzenia Curtisa wynika, że do rozróżnienia wzorców kolumn musimy użyć dwóch bitów (p = 2): g 1 (X 1 ) i g 2 (X 1 ), ponieważ: 3 2 2. Z rysunku 5b widać, że omawiana metoda syntezy jest oszczędniejsza pod względem liczby wykorzystanych bloków logicznych PAL w porównaniu z metodą klasyczną. Na rysunku tym linią przerywaną zaznaczono niewykorzystany iloczyn bloku logicznego. 4. Metoda dekompozycji ukierunkowana na wykorzystanie elementu XOR Bloki logiczne większości struktur CPLD zawierają element (bramkę) XOR (rys. 6). Ten dodatkowy element wykorzystywany jest zwykle do wyboru aktywności poziomu wyjściowego, wyboru sposobu realizacji funkcji z warunków działania lub niedziałania, modyfikacji typu przerzutnika itp. Okazuje się, że możliwe jest ukierunkowanie procesu syntezy układów cyfrowych realizowanych w strukturach CPLD na wykorzystanie tego dodatkowego elementu. Prowadzi to w wielu sytuacjach do efektywniejszych rozwiązań (oszczędniejsze wykorzystanie zasobów struktury programowalnej) w stosunku do rozwiązań uzyskiwanych metodą klasyczną, jak również w porównaniu ze strategiami syntezy zaimplementowanymi w narzędziach komercyjnych. Rys. 6. Struktura bloku logicznego typu PAL zawierającego element XOR Przykład 3 Rozpatrzmy realizację funkcji z przykładów 1 i 2, uwzględniając obecność w bloku logicznym elementu XOR. Siatka Karnaugha (rys. 7) rozpatrywanej funkcji zawiera trzy typy wzorców kolumn (oznacz.: A, A, B, przy czym wzorzec A stanowi dopełnienie wzorca A. Mówimy, że wzorzec jednej kolumny jest dopełnieniem wzorca kolumny drugiej wtedy i tylko wtedy, gdy w zbiorze par komórek należących do dwóch różnych kolumn nie występują pary (1,1) i (0,0). W omawianej metodzie syntezy wykorzystano zagadnienie kolorowania wierzchołków grafu. Polega ono na takim etykietowaniu wierzchołków grafu (nadawaniu im kolorów), że każde

236 D. Kania, W. Grabiec Rys. 7. Siatka Karnaugha (a) oraz graf niezgodności i dopełnień kolumn (b) dwa wierzchołki do siebie przyległe (połączone wspólną krawędzią) mają różne kolory. Z zagadnieniem kolorowania wierzchołków grafu związane jest pojęcie liczby chromatycznej, czyli najmniejszej liczby kolorów niezbędnej do pokolorowania grafu. Parametr ten jest równy złożoności kolumnowej matrycy podziałów rozpatrywanej funkcji logicznej. Analizę wzorców kolumn siatki Karnaugha z uwzględnieniem relacji dopełnienia kolumn można wykonywać, kolorując wierzchołki grafu niezgodności i dopełnień kolumn. W niniejszym artykule ograniczono się do skrótowego zaprezentowania istoty zastosowania grafu niezgodności i dopełnień w procesie wyszukiwania wyrażeń realizowanych za pomocą elementów XOR. Dokładny opis tworzenia i kolorowania wierzchołków grafu niezgodności i dopełnień można znaleźć w pracy [1]. Wierzchołki grafu niezgodności i dopełnień kolumn skojarzone są z kolumnami siatki Karnaugha opisującej rozpatrywaną funkcję logiczną (rys. 7b). Krawędzie grafu opisują dwa rodzaje relacji występujących pomiędzy jego wierzchołkami. Relacja niezgodności wzorców kolumn oznaczona jest na grafie krawędziami narysowanymi kolorem niebieskim. Za pomocą krawędzi oznaczonych kolorem czerwonym reprezentowane są relacje dopełnienia wzorców kolumn, tzn. krawędzie łączące wierzchołki reprezentujące kolumny dopełniające się. Istota algorytmu kolorowania wierzchołków grafu niezgodności i dopełnień kolumn polega na sekwencyjnym wyborze wierzchołków, którym przypisywany jest kolor dozwolony (oznaczany dużą literą np. A) lub kolor dopełnienia (oznaczany dużą literą z umieszczoną nad nią kreską np. A ) w miarę możliwości taki, jaki przypisany jest już innemu wierzchołkowi. Po przypisaniu w i-tym kroku wybranemu wierzchołkowi koloru dozwolonego lub koloru dopełnienia, przypisywane są kolory zabronione (oznaczane małą literą, np. a) wszystkim wierzchołkom, połączonym krawędziami niebieskimi z wybranym wierzchołkiem i kolory dopełnienia wszystkim wierzchołkom, połączonym krawędziami czerwonymi z wybranym wierzchołkiem.

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 237 Rys. 8. Proces kolorowania wierzchołków grafu niezgodności i dopełnień kolumn z uwzględnieniem kolejnych etapów Wybór i-tego wierzchołka realizowany jest zgodnie z następującymi zasadami: wybierany jest wierzchołek z maksymalną liczbą kolorów zabronionych; przyporządkowywany jest mu kolor dozwolony (jeżeli jest to możliwe, to kolor ze zbioru już użytych kolorów); spośród wierzchołków z identyczną liczbą kolorów zabronionych wybierany jest ten, do którego dochodzi maksymalna liczba krawędzi (tzw. wierzchołek o najwyższym stopniu); spośród wierzchołków z identyczną liczbą kolorów zabronionych i maksymalną liczbą krawędzi wybierany jest ten, który ma dodatkowo maksymalną liczbę kolorów dopełnień (jeżeli jest to możliwe, przyporządkowywany jest mu kolor dopełnienia); spośród wierzchołków z identyczną liczbą kolorów zabronionych, kolorów dopełnień i krawędzi wybierany jest ten, do którego dochodzi maksymalna liczba krawędzi oznaczonych kolorem niebieskim (relacja niezgodności wzorców). Po wybraniu wierzchołka i przypisaniu odpowiednim wierzchołkom kolorów dozwolonych, kolorów dopełnień i kolorów zabronionych wykonywana jest redukcja grafu, polegająca na eliminacji krawędzi łączących wybrany wierzchołek z innymi

238 D. Kania, W. Grabiec wierzchołkami grafu, po czym wybierany jest kolejny (i + 1) wierzchołek, tym razem po analizie grafu zredukowanego. W ostatnim kroku wierzchołkom, które mają kolory zabronione i kolory dopełnień, przypisywane są wszystkie możliwe, występujące na grafie kolory dozwolone i kolory dopełnień. Poszczególne etapy kolorowania wierzchołków grafu dla grafu z rysunku 7b przedstawiono na rysunku 8. W celu łatwiejszego przeanalizowania procesu kolorowania wierzchołków grafu poszczególne etapy rozróżniono na rysunku kolorami, przy czym operację realizowaną w danym etapie oznaczono kolorem przypisanym temu etapowi. Wzorce kolumn z dozwolonym kolorem A pokryte są jednym implikantem, natomiast do pokrycia wzorca A z kolorem zabronionym A konieczne jest użycie 3 implikantów. Ponieważ relacja dopełnień kolumn jest relacją symetryczną, możliwe jest dokonanie zamiany koloru dopełnienia A z kolorem dozwolonym A. Po takiej zamianie wzorzec A występuje dla dwóch kolumn skojarzonych z wyrażeniem de. W tej sytuacji możliwe jest rozpatrywanie rozkładu wzorców kolumn matrycy podziałów tak, jakby zawierały one dwa rodzaje kolumn: A i B, natomiast wzorzec A można uzyskać poprzez zanegowanie uzyskanego wyrażenia, wykorzystując do tego celu element XOR. Siatki Karnaugha obrazujące poszczególne etapy syntezy przedstawiono na rysunku 9. Na rysunku pokazano pierwotną siatkę Karnaugha z zakreślonymi kolumnami wzorca dopełnienia A (po zamianie wzorców kolumn A A ). Rys. 9. Kolejne etapy syntezy ukierunkowanej na wykorzystanie elementu XOR

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 239 Realizację funkcji uzyskaną po dekompozycji uwzględniającej w syntezie istnienie elementu XOR przedstawiono na rysunku 10. Linią przerywaną zaznaczono niewykorzystany iloczyn w bloku logicznym. Rys. 10. Realizacja funkcji uwzględniająca występowanie w bloku logicznym elementu XOR Wnioski końcowe Zbiorcze zestawienie wyników dla analizowanego przykładu zamieszczono w tabeli 1. Jak widać, wynik syntezy opartej na zaprezentowanej metodzie wykorzystującej element XOR jest znacznie lepszy pod względem oszczędności układowej w porównaniu z metodą klasyczną. Oczywiście, trudno na podstawie jednego prostego przykładu wyciągać daleko idące wnioski. Można jednak z proponowaną metodą wiązać duże nadzieje. Przemawiają za tym następujące przesłanki: wyniki licznych eksperymentów przeprowadzonych dla popularnych układów testowych pokazały, że metody oparte na dekompozycji opracowane dla struktur CPLD dają znacznie lepsze rezultaty w porównaniu z metodą klasyczną [1]; zaprezentowana metoda wykorzystująca element XOR stanowi uzupełnienie dekompozycji kolumnowej i tym samym prowadzi do nie gorszych rozwiązań niż strategie syntezy wykorzystujące wyłącznie tę dekompozycję [1]; proponowana metoda dekompozycji stanowi naturalne uzupełnienie strategii syntezy zaimplementowanych w systemie PALDec opracowanym w Politechnice Śląskiej [1].

240 D. Kania, W. Grabiec Metoda Wyniki końcowe Liczba bloków PAL (bloki 3-iloczynowe) Tabela 1 Liczba warstw logicznych Klasyczna 6 3 Oparta na dekompozycji kolumnowej 5 4 Dekompozycja z wykorzystaniem elementu XOR 3 3 5. Podsumowanie W artykule przedstawiono koncepcję syntezy logicznej, której głównym celem jest wykorzystanie bramki XOR powszechnie występującej w strukturach CPLD. Zaproponowana metoda dekompozycji stanowi rozszerzenie tzw. dekompozycji kolumnowej przedstawionej w pracy [1]. Wyniki poprzednich prac wskazały, że dekompozycja może być bardzo cennym elementem w syntezie logicznej dedykowanej dla struktur CPLD. Jej istota polega na podziale projektowanego układu na odpowiednie części, co prowadzi zwykle do znacznego ograniczenia zasobów struktury programowalnej niezbędnych do realizacji projektowanego układu. Nowatorstwo proponowanej metody polega na dopasowaniu procesu dekompozycji do struktury bloku logicznego typu PAL, wyposażonego w element XOR. Jej istota polega na wyszukiwaniu dopełnień wzorców kolumn matrycy podziałów. W procesie poszukiwania wzorców kolumn można wykorzystać algorytm kolorowania wierzchołków grafu niezgodności i dopełnień kolumn [1]. Celem dalszych prac będzie potwierdzenie skuteczności przedstawionej metody syntezy poprzez wykonanie wielu eksperymentów, wykorzystując do tego celu układy testowe (ang. benchmark) [5]. Artykuł wpłynął do redakcji 5.06.2007 r. Zweryfikowaną wersję po recenzji otrzymano we wrześniu 2007 r. LITERATURA [1] D. Kania, Synteza logiczna przeznaczona dla matrycowych struktur logicznych typu PAL, Zeszyty Naukowe Politechniki Śląskiej, Gliwice, 2004. [2] R. L. Ashenhurst, The decomposition of switching functions, Proceedings of an International Symposium on the Theory of Switching, April 1957. [3] H. A. Curtis, The Design of switching Circuits, D. van Nostrand Company Inc., Princeton, New Jersey, Toronto, New York, 1962.

Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR 241 [4] T. Łuba, H. Selvaraj, A General Approach to Boolean Function Decomposition and its Applications in FPGA-based Synthesis, VLSI Design, Special Issue on Decompositions in VLSI Design, vol. 3, no 3-4, 1995, 289-300. [5] Collaborative Benchmarking Laboratory, Department of Computer Science at North Carolina State University, http://www.cbl.ncsu.edu. D. KANIA, W. GRABIEC Logic synthesis on PAL-based CPLDs using XOR gates Abstract. This paper presents a conception of logical synthesis for CPLDs. Proposed solution bases on column decomposition. The main idea of the presented logic synthesis is based on utilization of XOR gates in CPLDs. In the proposed conception of logic synthesis we seek the complement column patterns in a partition matrix. This is a main idea for utilization of XOR gates in PAL-based logical blocks. Keywords: logic synthesis, decomposition, technology mapping Universal Decimal Classification: 621.38-181.4