• Nie Znaleziono Wyników

Synteza logiczna przeznaczona dla matrycowych struktur programowalnych typu PAL

N/A
N/A
Protected

Academic year: 2022

Share "Synteza logiczna przeznaczona dla matrycowych struktur programowalnych typu PAL"

Copied!
110
0
0

Pełen tekst

(1)

NAUKOWE

POLITECHNIKI ŚLĄSKIEJ

9.

Dariusz KANIA

>1

SYNTEZA LOGICZNA

PRZEZNACZONA DLA MATRYCOWYCH STRUKTUR PROGRAMOWALNYCH TYPU PAL

Gliwice 2004

(2)

ZESZYTY N A U K O W E N r 1619

Dariusz KANIA

SYNTEZA LOGICZNA

PRZEZNACZONA DLA MATRYCOWYCH STRUKTUR PROGRAMOWALNYCH TYPU PAL

Gliwice 2004

(3)

Prof. dr hab. inż. Marian ADAMSKI Prof. dr hab. Tadeusz ŁUBA

Kolegium redakcyjne

REDAKTOR N A CZELN Y — Prof. dr hab. inż. Andrzej BUCHACZ REDAKTOR DZIAŁU — Doc. dr inż. Zdzisław POGODA SEKRETARZ REDAKCJI — Mgr Elżbieta LEŚKO

Redakcja

Mgr Kazimiera SZAFIR

Redakcja techniczna Alicja NOWACKA

PL ISSN 1231-1596

© C o p y rig h t by D a riu sz K A N IA G liw ice 2004

O d a u to ra

Pierwsza część pracy stanowi podsumowanie zadań realizowanych w ramach projektu badawczego nr 4T11B 060 22 pt.: „Synteza logiczna układów cyfrowych dedykowana dla macierzowych struktur programowalnych” . W kolejnej części przedstawiono rozszerzenie teorii dekompozycji funkcjonalnej. Podsumowaniem całości są, zawarte w końcowej części pracy, złożone strategie syntezy.

Recenzentom, prof. dr. hab. inż. Marianowi Adamskiemu oraz prof. dr. hab. Tadeuszowi Łubie składam serdeczne podziękowania za wiele cennych uwag, które wpłynęły na ostateczną postać niniejszej pracy.

Prof. dr. hab. inż. Edwardowi Hrynkiewiczowi dziękuję za słowa zachęty, stworzenie możliwości realizacji tej pracy oraz szereg cennych uwag.

Żonie Krystynie oraz wszystkim bliskim dziękuję za pomoc i wyrozumiałość.

Autor

G liw ice, m arzec 2004

(4)

W ykaz w ażn iejszy ch o z n a c z e ń ...9

W y k az w ażn iejszy ch s k r ó tó w ...13

W ykaz sk ró tó w o kreślający ch m e to d y oraz strategie s y n te z y ... 14

1. W p r o w a d z e n i e ...15

1.1. Elementy syntezy logicznej układów cyfrowych przeznaczone dla struktur programowalnych. 18 1.2. Tematyka p ra c y ... 22

1.3. Stosowana term inologia...23

2 . M e to d y r e a l i z a c j i w i e l o w y j ś c i o w y c h f u n k c ji w s t r u k t u r a c h ty p u P A L w y k o r z y s t u j ą c e g r a f y w y j ś ć ...24

2.1. Klasyczna metoda realizacji wielowyjściowych funkcji w strukturach typu P A L ... 24

2.2. Reprezentacja wielowyjściowej funkcji w postaci skierowanego grafu w y jś ć ...28

2.3. Idea implementacji funkcji wielowyjściowej wykorzystująca grafy w y j ś ć ...31

2.4. Twierdzenie o wyborze wierzchołków grafu w y jść ... 33

2.5. Algorytmy implementacji wielowyjściowych funkcji w strukturach typu P A L ...38

2.5.1. Algorytm implementacji wielowyjściowych funkcji w strukturach typu PAL (optymalizacja liczby bloków logicznych); metoda W _ L B ...38

2.5.2. Algorytm implementacji wielowyjściowych funkcji w strukturach typu PAL (optymalizacja liczby warstw logicznych); metoda W _ L W ... 45

2.6. Wyniki eksperym entów ... 48

3. M e to d y r e a l i z a c j i f u n k c ji l o g i c z n y c h w s t r u k t u r a c h t y p u P A L z t r ó j s t a n o w y m i b u f o r a m i w y j ś c i o w y m i ... 58

3.1. Idea wykorzystania trój stanowych buforów w yjściow ych...58

3.2. Reprezentacja sposobu implementacji funkcji w postaci grafu podziału... 60

3.3. Minimalizacja z rozłączaniem im plikantów ... 67

3.4. Koncepcja implementacji funkcji w strukturach typu PAL z trójstanowymi buforami w yjściow ym i... 70

3.4.1. Metoda wyszukiwania zmiennej podziału, wykorzystywana wp-warstwowej implementacji funkcji w strukturach typu PAL z trójstanowymi buforami w yjściow ym i... 71

3.4.2. Algorytm/i-warstwowej implementacji funkcji na blokach logicznych typu PAL z trójstanowymi buforami wyjściowymi o zadanej liczbie iloczynów (metoda B_PW )... 75

3.4.3. Metoda wyszukiwania kostek podziału, wykorzystywana w jednowarstwowej implementacji funkcji w strukturach typu PAL z trójstanowymi buforami wyjściowymi...76

3.4.4. Algorytm jednowarstwowej implementacji funkcji na blokach logicznych typu PAL z trójstanowymi buforami wyjściowymi o zadanej liczbie iloczynów (metoda B _ JW )... 78

3.5. Wyniki eksperymentów... 81

(5)

4. M e to d y r e a liz a c ji fu n k c ji w s t r u k t u r a c h ty p u PA L b a z u j ą c e n a d e k o m p o z y c j i . . .90

4.1. Znaczenie dekompozycji w syntezie przeznaczonej dla układów program ow alnych... 90

4.2. Istota dekompozycji przeznaczonej dla struktur typu P A L ...93

4.3. Kodowanie rów nom ierne...9 6 4.4. Dekompozycja kolumnowa zorientowana na realizację w strukturach typu P A L ...105

4.4.1. M etody wyznaczania złożoności kolumnowej zorientowane na realizację układów w strukturach typu P A L ...105

4.4.2. M etoda kodowania wzorców kolumn zorientowana na realizację układów w strukturach typu P A L ... 109

4.4.3. Algorytm implementacji funkcji jednowyjściowych w strukturach typu PAL oparty na dekompozycji kolumnowej ...1 1 7 4.4.4. Dekompozycja kolumnowa funkcji w ielow yjściow ych... 121

4.4.5. Wyniki eksperymentów...127

4.5. Dekompozycja wierszowa zorientowana na realizację w strukturach typu P A L ...130

4.5.1. M etoda wyznaczania złożoności w ierszow ej... 134

4.5.2. Zagadnienia związane w wyborem dekompozycji w ierszow ej... 137

4.5.3. Algorytm implementacji funkcji w strukturach typu PAL oparty na dekompozycji w ierszow ej...141

4.5.4. Wyniki eksperym entów ...1 4 6 4.6. Porównanie zaproponowanych modeli dekompozycji zorientowanych na realizację funkcji w strukturach typu P A L ...1 4 9 5. Z ł o ż o n e s t r a t e g i e s y n t e z y f u n k c j i w s t r u k t u r a c h t y p u P A L ...155

5.1. Dobór elementów syntezy pod kątem optymalizacji liczby bloków logicznych lub liczby warstw logicznych...155

5.2. Strategia syntezy dla struktur typu PAL bez trójstanowych buforów wyjściowych, (optymalizacja liczby bloków logicznych); strategia W _D K -W _LB... 156

5.3. Strategia syntezy dla struktur typu PAL z trójstanowymi buforami wyjściowymi, (optymalizacja liczby bloków logicznych); strategia W D K - W L B - B J P W ...158

5.4. Strategia syntezy dla struktur typu PAL bez trójstanowych buforów wyjściowych, (optymalizacja liczby warstw logicznych; strategia J_D W -W _L W ...159

5.5. Strategia syntezy dla struktur typu PAL z trójstanowymi buforami wyjściowymi, (optymalizacja liczby warstw logicznych); strategia B _ J P W ... 160

5.6. Porównanie zaproponowanych strategii syntezy z innymi m etodam i...161

5.6.1. Proste układy typu PAL (ABEL, MACHxl, ispDesignEXPERT, Synplify, A S Y L ). .162 5.6.2. Układy Classic firmy Altera (M A X +PLU S)... 167

5.6.3. Układy MAX firmy Altera (M A X +PLU S)... 167

5.6.4. Układy MACH (Synplify+M A CH xl)...176

5.6.5. Układy FLASH firmy Cypress (W A R P )... 178

5.6.6. Systemy akademickie przeznaczone dla matryc P L A ... 180

5.6.7. A naliza końcowa wyników eksperym entów ... 181

6. P o d s u m o w a n i e ...1 84 L i t e r a t u r a ...1 8 7 S t r e s z c z e n i e ...201

D o d a t k i ...203

C O N T E N T S List o f m ore im portant sym bols...9

List o f m ore im portant abbreviations...13

List o f abbreviations used for defining methods and strategies o f the synthesis...14

1. In tro d u c tio n ...15

1.1. Components on logic synthesis o f digital circuits applicable to programmable structures 18 1.2. Scope o f w ork...22

1.3. Applied terminology...23

2. M e th ods for realization of multi-output functions within P A L-b a se d structures based on grap h s of o u tp u ts...24

2.1. Classical method for realization o f multi-output function within PAL-based structures... 24

2.2. Representation o f a multi-output function in the form o f a directed graph o f outputs...28

2.3. The idea related to implementation o f a multi-output function based on graph o f outputs... 31

2.4. The theorem on choosing a node o f a graph o f outputs... 33

2.5. Algorithms for implementation o f multi-output functions within PAL-based structures... 38

2.5.1. The algorithm for implementation o f multi-output functions within PAL-based structures (optimization o f logic blocks); the W_LB m ethod... 38

2.5.2. The algorithm for implementation o f multi-output functions within PAL-based structures (optimization o f logic stages); the W_LW method... 45

2.6. Results o f experim ents... 48

3. M e th o ds for realization of multi-output functions within P A L-b a se d structures, w hich contain three-state output b u ffe rs...58

3.1. The concept o f taking advantage o f three-state output buffers... 58

3.2. Presentation o f the concept how to implement a function by means o f the graph o f divisions...60

3.3. Minimization that involves splitting o f im plicants... 67

3.4. The concept related to implementation o f a Boolean function within PAL-based structures, which contain three-state output buffers ...70

3.4.1. The method involving searching for the partitioning variable, applicable for the p-stage implementation o f a function within PAL-based structures, which contain three-state output b u ffe rs...71

3.4.2. The algorithm for the/>-stage implementation o f a Boolean function within PAL-based logic blocks that contain three-state output buffers and constrained by certain number o f terms (the B-PW m ethod)...75

3.4.3. The method involving searching for the partitioning cube, applicable for the single-stage implementation o f a function within PAL-based structures, which contain three-state output buffers ... 76

3.4.4. The algorithm for the single-stage implementation o f a Boolean function within PAL-based logic blocks that contain three-state output buffers and constrained by certain number o f terms (the B-JW m ethod)...80

3.5. Results o f experiments ... 81

(6)

in v o lv in g t h e a p p r o a c h o f d e c o m p o s i t i o n ...9 0

4 .1. Importance o f decomposition for synthesis methods designed for programmable circuits...90

4.2. Essence o f decomposition approach dedicated to PAL-based structures...93

4.3. Even coding... .. 4.4. The column decomposition approach oriented towards realization within PAL-based structures...105

4.4.1. Methods o f determining the column complexity oriented towards realization of digital circuits within PAL-based structures...105

4.4.2. The method for coding patterns of columns, oriented towards realization o f digital circuits within PAL-based structures... 109

4.4.3. The algorithms for implementation o f a single-output Boolean function within PAL-based structures that involves column decomposition approach... 117

4.4.4. The column decomposition of a multi-output Boolean function...121

4.4.5. Results o f experiments...127

4.5. The row decomposition approach oriented towards realization within PAL-based structures... 130

4.5.1. Methods of determining the row complexity...134

4.5.2. Problems connected with choice o f the row decomposition... 137

4.5.3. The algorithms for implementation of a Boolean function within PAL-based structures that involves row decomposition approach... 141

4.5.4. Results o f experiments... 146

4.6. Comparison o f the proposed decomposition models, which are oriented towards realization of a Boolean function within PAL-based structures... 149

5. C o m p le x s t r a t e g i e s f o r s y n t h e s i s a B o o l e a n f u n c ti o n w ith in P A L - b a s e d s t r u c t u r e s ...155

5.1. Selection o f components of the synthesis procedure from the point o f optimization o f either number o f logic blocks or number of logic stages...155

5.2. The strategy o f synthesis applicable to PAL-based structures without three-state output buffers; (optimization from the point o f number o f logic blocks); (the W_DK-W_LB strategy)...156

5.3. The strategy o f synthesis applicable to PAL-based structures with three-state output buffers, (optimization from the point of number o f logic blocks); the W_DK-W_LB-B-JWP strategy 158 5.4. The strategy o f synthesis applicable to PAL-based structures without three-state output buffers, (optimization from the point o f number of logic stages); the J_DW-W_LW strategy... 159

5.5. The strategy of synthesis applicable to PAL-based structures with three-state output buffers, (optimization from the point o f number o f logic stages); the B-JWP strategy...160

5.6. Comparison o f proposed strategies o f synthesis with other methods...161

5.6.1. Simple PAL circuits (ABEL, MACHxl, ispDesignEXPERT, Synplify, A SY L)...162

5.6.2. The Classic circuits from Altera (MAX+PLUS)... 167

5.6.3. The MAX circuits from Altera (MAX+PLUS)... 167

5.6.4. The MACH circuits (Synplify+MACHxl)...176

5.6.5. The FLASH circuits from Cypress (WARP)...178

5.6.6. The university-developed systems designed for PLA matrices... 180

5.6.7. Final analysis o f experimental results ...181

6. C o n c l u s i o n s ...184

R e f e r e n c e s ... 187

A b s t r a c t ...201

S u p p l e m e n t s ...203

W Y K A Z W A Ż N I E J S Z Y C H O Z N A C Z E Ń

к - liczba iloczynów zawartych w bloku logicznym typu PAL n - liczba argum entów funkcji; liczba wejść układu logicznego

m - liczba elementów wyjściowych wielowyjściowej funkcji; liczba wyjść układu logicznego 8 f . - liczba bloków logicznych typu PAL potrzebnych do realizacji funkcji f i : B n -> В 8 f - liczba bloków logicznych typu PAL potrzebnych do realizacji funkcji f Bn B m 8 y- - liczba bloków logicznych typu PAL potrzebnych do realizacji funkcji f : B n ^ > B m

1 m m etodą klasyczną; 8 f = I 8 ,

J /=1 Ji l8 f - wartość param etru 8 f w /-tym kroku

£ f - liczba warstw logicznych układu realizującego funkcję f t : B n -» B l Ji

- liczba w arstw logicznych układu realizującego funkcję / : B n —> S OT m etodą klasyczną; = m a x (£ /j, £ / 2 >•■■>£/ )

у - те-elementowy wektor wyjściowy, odpowiadający części wyjściowej wielo wyjściowego implikantu; np.: jeżeli m=A, to przykładowy wektor wyjściowy y= 0110

Ay. - liczba im plikantów funkcji : .B” —> B ]

A y - liczba wektorów у występujących w zbiorze wielowyjściowych implikantów funkcji f B n - » B m skojarzona z wierzchołkiem grafu wyjść, пр.: Дщо

A"? - suma wyróżników Д _ wierzchołków grafu wyjść pokrywanych przez drogi rozpoczynające się w wierzchołku A 0 0 x 0 ...00> a kończące się w wierzchołkach wyższych rzędów

'Ду - wartość param etru Ду w г-tym kroku

'Д у - wybrany w г-tym kroku wierzchołek grafu wyjść skojarzony z wyróżnikiem Д y Д fb - wyróżnik reprezentujący sprzężenia zwrotne

(7)

M( A y ) - rząd wyróżnika A y ; liczba elem entów {1} zawartych w wektorze y M - skrót oznaczenia ju{ A y ) stosowany na rysunkach

r f - reszta z dzielenia Ay - 1 przez (k - 1 ) ; Amj - 1 = r j 1 (mod(k -1 )) ' r J 1 - wartość param etru r j 1 w i-tym kroku

y - liczba bloków logicznych typu PAL, wykorzystanych do realizacji im plikantów w /-tym

kroku; 'y =

'A - k y

k - 1 + 1

M - najm niejsza wartość naturalna (z włączeniem zera) nie m niejsza od x

y = M

£

1 2 3

R - zbiór reszt r j 1; R = { r j1; j e < l , m > }

MĆA y ) fjĆ A y)

> rh reszta należąca do zbioru reszt R = {rj • j € < ! , / / ( A j , ) >}

I={i„,...,i2,ii) - w ektor wejściowy

Ij - stan wejściowy; «-elem entowy ciąg wartości 0 lub 1 odpowiadających zmiennym wejściowym in,...,i2,U, (Z=0,l,...,2n- 1)

= (a n’-- ’a2 ’al) " kostka, dla której funkcja y przyjm uje wartość 1; część wejściowa jedno wyjściowych implikantów; ai eA 01_ ={0,1,-}, (i= l,2,...,n)

Ay - zbiór części wejściowych jedno wyjściowych im plikantów opisujących fu n k c ję /; zbiór kostek, dla których funkcja przyjmuje wartość 1

f i - elem ent rozw inięcia Shannona funkcji f ( i n, - j j+\,ij,ij- \,...Ą ,i0) równy y^(*nv)/y+i)0,/y_j,...,/],/o) dla ij — i j lub f ( i n, . . . , ^_j,1,/y—i ,—,/],/q) dla ij — ij x - literał zmiennej x; x = x lub x

f x - funkcja opisująca zachowanie w yjścia bloku logicznego typu PAL z trójstanowym buforem w yjściow ym sterowanym przez z m ien n ąx

r x _ J f x d la x = l

[stan wysokiej impedancji dla x = 0

X = ( x p ,...,x 2 , x l ) - kostka podziału, x, eX 01 ={0,1}, ( / = U - , p )

< a l , x i > - para uporządkowana elementów at e A 0 1 _ ={0,1,-} oraz x( e X 01 ={0,1}

A ^ - zbiór kostek niesprzecznych z kostką podziału X (definicja 3.1)

A „ - zbiór kostek niesprzecznych z kostką podziału zredukow ą do pojedynczej zmiennej x Jx

(<definicja 3.1)

*A f x - zbiór kostek nierównoważnych z kostką podziału X (definicja?).2)

* A y _ - zbiór kostek nierównoważnych z kostką podziału zredukowaną do pojedynczej zmiennej x (definicja 3.2)

A - moc zbioru A; liczba elementów zbioru A

A ^ - liczba dziesiętna równa mocy zbioru A^_; A y = A j - ^

* »

A y - lic z b a d ziesiętn a ró w n a m ocy zbioru A y ; A ^ = A y ^ , IA - zbiór stanów w ejściow ych f , pokry ty ch p rzez kostkę Ay =(an,...<a2,ai)

ai e A 0 ,l,- = i 0’1 ~} >i= l»2,...,n ; ( I Ay ~2r )> gdzie ''j e s t lic z b ą elem en tó w a,= - Sfx - liczb a b lo k ó w logicznych typu P A L p o trzebnych do realizacji funkcji / -

t; f - lic zb a w arstw lo gicznych układu realizującego funkcję f y

J X

A /•_ - lic zb a d ziesiętn a ró w n a m ocy zbioru A ,

J x Jx

5 f - liczba blo k ó w logicznych typu P A L p o trzebnych do realizacji im plikantów (kostek) n ależący ch do zbioru

x = = x + ł - x staje się x + l

[x] - n ajw ięk sza w artość ca łkow ita nie w ięk sza od x; (część całkow ita liczby x)

y V y = W 2

1

-2 -1

1 2 3 X

Xi - zbiór związany

X 2 - zbiór wolny

v(X2 1X]) - złożoność (krotność) kolumnowa siatki K am augha (matrycy podziałów)

(8)

A X 2,X ,) - funkcja opisana siatką Kam augha, w której X2 je st zbiorem zmiennych skojarzonych z wierszam i, a Xj - zbiorem zmiennych skojarzonych z kolum nam i siatki

w k(is- 1 »-■-» *r+l> V) ■ współczynnik komplikacji; liczba różnych słów kodowych utworzonych przez zm ienne ir+ j, ir .

n, - liczba wejść transkodera m, - liczba wyjść transkodera

kt - liczba m ożliwych do utw orzenia w program owalnym transkoderze w yjściowych słów kodowych

y(G )- liczba chrom atyczna

i)k - kolum now y współczynnik kodowy t]a - współczynnik pokrycia w zorca A

Tl a b - współczynnik pokrycia pary w zorców (A,B) tjs - w spółczynnik sąsiedztw a wzorców

HA - liczba jedynek w ystępujących w słowie kodowym przyporządkowanym wzorcowi A z - współczynnik złożoności bloku związanego (definicja 4 .4)

w - współczynnik złożoności bloku wolnego (definicja 4 .5)

4 - liczba bloków logicznych typu PAL potrzebnych do realizacji bloku związanego Sy, - liczba bloków logicznych typu PAL potrzebnych do realizacji bloku wolnego

Ą w - liczba bloków logicznych typu PAL potrzebnych do realizacji bloku związanego i wolnego; Ą w= & + <Sw

//(X 2 1 X j) - złożoność wierszowa siatki Kam augha (matrycy podziałów)

W Y K A Z W A Ż N I E J S Z Y C H S K R Ó T Ó W

AHDL - A ltera Hardware Description Language ASIC - A pplication Specific Integrated Circuit BDD - Binary Decision Diagram

CLB - Configurable Logic Block

CPLD - Com plex Programmable Logic Device FPGA - Field Program m able Gate Array FPLA - Field Programmable Logic Array GAL - Generic Array Logic

HDL - Hardware Description Language M ACH - M acro Array CMOS High-density M APL - M ultiple Array Programmable Logic MAX - M ultiple Array M atriX

pLSI - Lattice program m able Large Scale Integration PAL - Program m able Array Logic

PIA - Program m able Interconnect Area PLA - Program m able Logic Array PLD - Program m able Logic Device PLE - Program m able Logic Element PTP - Pierwotna Tablica Przepalen

PROM - Programmable Read Only Memory SPLD - Simple Programmable Logic Device

VHDL - Very high speed integrated circuit Hardware Description Language

(9)

m eto d a W _ L W - metoda realizacji funkcji Wielowyjściowej wykorzystująca grafy wyjść (optymalizacja Liczby W arstw logicznych)

m eto d a W _L B - metoda realizacji funkcji Wielowyjściowej wykorzystująca grafy wyjść (optymalizacja Liczby Bloków logicznych)

m e to d a B _P W - metoda P - Warstwowej realizacji funkcji wykorzystująca trójstanowe Bufory wyjściowe

m eto d a B _ JW - metoda JednoW arstwowej realizacji funkcji wykorzystująca trójstanowe Bufory wyjściowe

m eto d a K _ L W - Klasyczna metoda realizacji funkcji w strukturach typu PAL (optymalizacja Liczby W arstw logicznych)

m e to d a J_ D W - metoda realizacji funkcji Jedno wyjściowej w strukturach typu PAL wykorzystująca Dekompozycję W ierszowa

m e to d a J_ D K - metoda realizacji Jedno wyjściowej funkcji w strukturach typu PAL wykorzystująca Dekompozycję Kolumnową

m eto d a W _ D K - metoda realizacji Wielowyjściowej funkcji w strukturach typu PAL wykorzystująca Dekompozycję Kolum nową

stra te g ia B _ JP W (optymalizacja liczby warstw logicznych)

strategia syntezy przeznaczona dla struktur typu PAL z trój stanowymi buforami wyjściowymi; (metoda B_JW ; w przypadku braku rozwiązania metoda B_PW zapewniająca minimalną liczbę warstw)

s tra te g ia W _D K -W _L B (optymalizacja liczby bloków logicznych)

strateg ia syntezy p rzezn aczo n a dla stru ktur typu P A L bez trój stanow ych buforów w yjściow ych, oparta na re alizacji W ielo w y jścio w ej funkcji w ykorzystującej D ekom pozycję K o lu m n o w ą i m etodzie W _ L B , użytej do realizacji bloku zw iązanego i w olnego

stra te g ia W _D K -W _L B -B _JP W (optymalizacja liczby bloków logicznych)

strategia syntezy przeznaczona dla struktur typu PAL z trój stanowymi buforami wyjściowymi, oparta na realizacji Wielowyjściowej funkcji wykorzystującej Dekompozycję Kolum nową i metodzie W JL W , użytej do realizacji bloku związanego i wolnego, uzupełniona strategią B _JP W , prowadzącą do poprawy właściwości dynamicznych uzyskiwanych układów

stra te g ia J D W -W L W (optymalizacja liczby warstw logicznych)

strateg ia syntezy p rzeznaczona dla struk tu r typu P A L bez trój stanow ych buforów w yjściow ych, oparta na re alizacji funkcji Jed n o w y jśc io w ej w ykorzystującej D ekom pozycję W ie rsz o w a i m etodzie W _ L W , użytej do realizac ji bloku zw iązanego i w olnego

Rozwój technologiczny w sposób do niedaw na niewyobrażalny zm ienia w ostatnim czasie oblicze przem ysłu elektronicznego. Urządzenia elektroniczne są o wiele bardziej złożone, m ają coraz większe funkcjonalne możliwości, a równocześnie stają się coraz mniejsze. Rozwój ten je st możliwy dzięki opracowaniu i ciągłem u doskonaleniu kom puterowych narzędzi wspomagających projektowanie.

W ostatnich latach najdynamiczniej rozw ijającą się form ą implementacji układów cyfrowych, zm ieniających oblicze urządzeń elektronicznych, stały się układy specjalizowane (ang. ASIC - A pplication Specific Integrated Circuit) projektowane lub dostosowywane do indywidualnych potrzeb użytkownika. Jedną z głównych grup tych układów s ą struktury programowalne (PLD - Programmable Logic Devices). Układy te, produkowane seryjnie, są dostosowywane do potrzeb projektanta poprzez ich odpowiednie zaprogramowanie.

Śledząc rozwój układów programowalnych oraz prognozy ich rozwoju w przyszłości, można z całą pew nością stwierdzić, że najbliższe lata będą erą układów programowalnych.

R osnąca dostępność coraz lepszych, jednocześnie tańszych kom puterowych systemów w spomagających projektowanie powoduje upowszechnienie tej formy implementacji układów cyfrowych dla szerokiego kręgu projektantów. Struktury programowalne dzielą się na trzy podstawowe grupy [Shar98]:

1. Proste układy PLD (ang. SPLD - Simple PLD)

2. Złożone układy m atrycowe (ang. CPLD - Com plex PLD)

3. Układy FPGA (ang. Field Programmable Gate Array), do których należą m iędzy innymi:

• Struktury tablicowe (ang. Look up Table)

• Struktury multiplekserowe [Acte95],

W iększość struktur programowalnych wykorzystuje je d n ą z trzech konfiguracji matryc A ND-OR przedstaw ionych na rys. 1.1.

P L E (P R O M )

P ro g ra m m a b le L ogic E lem en t

PA L

P ro g ra m m a b le A rray L ogic

M R A R R Ar

'

r rĘ

A N O A R R A Y O O O O

PLA

P ro g ra m m a b le L o g ic A rray

loV.bY.!

M a tr y c a A N D - s ta le p o łą c z e n ia P r o g ra m o w a ln a m a try c a O R

k = 2"

k - lic z b a ilo c z y n ó w

P r o g ra m o w a ln a m a try c a A N D M a tr y c a O R - s ta łe p o łą c z e n ia

k « 2n

n - lic z b a w e jś ć

Rys. 1.1. Podstawowe konfiguracje matryc AND-OR Fig. 1.1. Basic configurations o f AND-OR matrices

P r o g r a m o w a ln a m a tr y c a A N D P r o g r a m o w a ln a m a tr y c a O R

k « 2 "

(10)

Struktury przedstaw ione na rys. 1.1 stanow ią podstawę większości prostych układów PLD. N ajw iększą popularność zdobyły struktury PAL, składające się z odrębnych bloków logicznych typu PA L (rys. 1.2), wyposażonych w dodatkowe elementy, m iędzy innymi takie ja k [Adva96, Latt94, Sign92]:

• sterowane trój stanowe bufory wyjściowe - w yprowadzenia wejścia/wyjścia,

• m echanizm program ow ania aktywnego poziom u wyjściowego,

• przerzutniki (najczęściej typu D),

• m echanizm ustaw iania i/lub zerowania przerzutników,

• bram ki XOR.

Rozbudow ane układy program owalne (CPLD - Complex Programmable Logic Devices, FPGA - F ield Program m able Gate Array) składają się z program owalnych kom órek (bloków) logicznych oraz dodatkow ych zasobów logicznych do ich łączenia i wym iany informacji z otoczeniem [Alte99, Shar98, Xili99]. Struktury CPLD, często nazyw ane strukturami m atrycow ym i [ŁubaZ02], zbudowane są z bloków logicznych podobnych do prostych układów PLD, bloków w ejścia/w yjścia oraz m atrycy połączeń, umożliwiającej wykonywanie dow olnych połączeń pom iędzy blokami logicznymi oraz blokami wejścia/wyjścia. C echą charakterystyczną tego typu struktur, odróżniających je od układów FPGA, je st stały czas propagacji sygnału (niezależny od "drogi połączenia") wnoszony przez w ew nętrzne połączenia [Alte99].

D rugą rodziną najbardziej rozbudowanych układów program ow alnych są struktury FPGA typu tablicowego. Z aw ierają one konfigurowalne bloki logiczne (CLB - Configurable Logic Block), bloki w ejścia/w yjścia oraz przestrzeń pomiędzy nimi, w ykorzystyw aną do w ykonyw ania połączeń. Konfigurowalne bloki logiczne um ożliw iają realizację każdej funkcji logicznej o określonej, najczęściej niewielkiej (3-8) liczbie argumentów. Struktura logiczna tych bloków je st podobna do struktury układów PLE. Program konfigurujący, odpowiadający za sposób wykonania połączeń wewnątrz układu, najczęściej zawarty je st w kom órkach pam ięci typu RAM [Xili99]. U proszczoną strukturę układów CPLD oraz FPGA przedstaw ia rys. 1.3.

Struktury CPLD znajdują znaczące m iejsce w szerokiej gamie układów program ow alnych, dostarczanych na rynek przez wiele różnych firm, na czele z firmami Altera, AM D, Atmel, Cypress, Xilinx, Lattice [Alte99, AtmeOO, Adva95, Cypr96, Latt94, Xili99]. Jądrem większości tego typu układów je st struktura PAL, zaw ierająca program ow alną matrycę AND i stałe połączenia w matrycy OR, tw orząca blok logiczny typu PAL (rys. 1.2). Bloki te m ają zwykle dodatkowe zasoby logiczne pozwalające na efektywne w ykorzystyw anie w ystępujących w nich iloczynów. N ależą do nich m iędzy innymi: różnego typu ekspandery [Alte99], programowalne rozdzielacze (ang. Logic A llocator) [Adva95, Cypr96, Xili99], „szybkie” lokalne sprzężenia zwrotne [AtmeOO], elementy XOR, czy też wyjściow e bufory trój stanowe.

k {

B lok logiczny typu PAL

Rys. 1.2. Struktura bloku logicznego typu PAL, zawierającego k iloczynów Fig. 1.2. Structure o f PAL-based logic block consisting o f Æ term s

C P L D F P G A

[ûô] [Pô] GüD CEE

0 s 0 0 0

h

S 0 J 3 0

H 0 0 0 0

H 0 0 0 0

PIA - Program m able Interconnect Area CLB - Configurable Logic Block Rys. 1.3. Architektura układów CPLD i FPGA

Fig. 1.3. CPLD and FPGA architectures

Dodatkowe, sprzętowe zasoby układów programowalnych typu PAL najczęściej um ożliw iają nierównomierny rozdział iloczynów pomiędzy poszczególne kom órki wyjściowe (logic allocator w układach M ACH [Adva95] oraz FLASH [Cypr96], m ixed mode w układach pLSI [Latt94] itp.). M imo swoich niewątpliwych zalet nie zapew niają jednak realizacji każdej funkcji w jednym bloku. W tej sytuacji konieczna jest dodatkowa ekspansja liczby term ów - składników sum. Ekspansja taka może wykorzystywać wewnętrzne sprzężenia zwrotne z wyjść na matrycę AND lub dodatkowe zasoby logiczne do tworzenia bloków logicznych typu PAL, zawierających dostosow aną do potrzeb liczbę iloczynów.

Przykładem może być jedno z rozwiązań zawarte w opracowanych przez firm ę AMD strukturach M ACH, którego istota przedstawiona je st na rys. 1.4.

Rys. 1.4. Konfiguracje bloków logicznych typu PAL w układach M ACH Fig. 1.4. PAL-based logic blocks configurations applied to M ACH devices

(11)

1.1. Elementy syntezy logicznej układów cyfrowych przeznaczone dla struktur programowalnych

W spółczesna synteza logiczna stanowi ogniwo pośredniczące pom iędzy ogólną specyfikacją w językach opisu sprzętu (ang. HDL — Hardware Description Language) a odwzorowaniem technologicznym. Uniwersalność opisu w językach opisu sprzętu oraz różnorodność docelowej implementacji projektowanego układu znacząco utrudnia proces syntezy logicznej.

Specyfika układów program owalnych sprawia, iż proces syntezy je st odm ienny od klasycznej syntezy, przeznaczonej dla standardowych układów cyfrowych SSI/MSI [GarbG02, Kali91, KamiMOO, Lee76, M ajeŁ86, M aje99, Mowl76, Trac86, W agn78], W ostatnich latach powstało wiele rozbudowanych metod syntezy, które podlegają ciągłej modyfikacji, wynikającej z potrzeby dostosowania ich do nowych struktur programowalnych.

Przede w szystkim w procesie syntezy pojaw iły się nieznane dla struktur standardowych elementy, takie jak na przykład:

podział projektowanego układu na poszczególne części (ang. partitioning) realizow ane przez odrębne proste układy programowalne lub bloki logiczne zawarte wew nątrz układów CPLD lub FPGA,

• rozm ieszczenie poszczególnych bloków powstałych po podziale w odpowiednich prostych układach program owalnych lub wewnątrz struktury programowalnej (ang. placem ent),

• wykonywanie połączeń pom iędzy poszczególnymi blokami logicznymi (ang. routing).

W przypadku najprostszych struktur program owalnych (PAL, GAL, PLA) dom inującą rolę odgryw a dwupoziom ow a m inim alizacja [Mich94], M a ona bezpośredni w pływ na redukcję liczby wykorzystyw anych iloczynów w tego typu strukturach. Powszechnie uważa się, że je st ona w ystarczająco skutecznym elementem syntezy logicznej dla prostych układów PLD.

N iew ielka złożoność tych struktur sprawia, że w procesie syntezy pojaw ia się problem podziału projektu na części i doboru odpowiednich struktur do ich realizacji [BabbC92], Ze względu na m ożliw ość w ykonywania połączeń, łączących każde dwa wybrane elementy struktury program ow alnej, proces rozm ieszczenia poszczególnych części w układzie oraz ich połączenie nie w prow adza dodatkowych ograniczeń.

Specyfika struktury PAL, tzn. ograniczona liczba iloczynów (k) dołączonych do sumy wyjściowej, w istotny sposób wpływa na proces syntezy układów cyfrowych przeznaczony dla tego typu układów. Jednym z głównych elem entów syntezy, oprócz dwupoziomowej m inim alizacji, najczęściej wykonywanej dla każdej jedno wyjściowej funkcji oddzielnie za pom ocą klasycznego ju ż algorytmu Espresso [BrayH84, ŁubaOO, M ich94], je st sposób realizacji funkcji y,-, będących sum ą p, implikantów, na blokach logicznych zawierających

^-iloczynów, gdy p, > k. Klasyczne rozwiązanie tego problem u polega na tw orzeniu sprzężeń zwrotnych zw iększających czas propagacji sygnału od wejść do wyjść [Bolt90, Skah96], W literaturze znana je st również inna koncepcja ekspansji liczby iloczynów, w ykorzystująca trójstanow e bufory wyjściowe [Bolt90, Phil85], Koncepcja ta stanowi podwaliny metod zaprezentowanych m iędzy innymi w pracach [Kani99a, Kani99b],

Istnieje szereg prac prezentujących alternatywne metody syntezy, ukierunkowane przede w szystkim na optymalizację powierzchni prostych matryc programowalnych PLA.

W ykorzystują one najczęściej elementy optymalizacji wielopoziomowej [BabbC92, D evaW 88a, D evaW 88b, Puch98, SaucS90b, Kani99c], logiki wielowartościowej [DevaW 88a, D evaW 88b, ChenM 88, ŁubaL94, Łuba95, Sasa88, Sasa89a, Sasa91], metody doboru aktywności poziom u wyjściowego [WeyC90], elementy kodowania wejść i wyjść [AshaD92, DevaN91, M ich94, SaldK 88, Kani02a], odpowiedniego podziału matryc PLA [HsuL91, LiuW94, G ree86, M aliH91, YangC89, Kani99d], elementy dekompozycji [CiesY92, JóźwV95, M aliH91, Łuba94, ProuN95, Sasa89b, KaniOOa] lub sieci Petriego [AdamW97, Adam98], W wielu sytuacjach prow adzą do znacznie lepszych rozwiązań pod względem powierzchni od metody klasycznej [DevaW 88a, D evaW 88b, ChenM 88, CiesY92, MajeŁ92, Łuba94, SaucS90b, YangC89, Kani99c].

Najwięcej elementów nowatorskich zaw ierają strategie syntezy przeznaczone dla struktur FPGA. Jednym z podstawowych elementów syntezy jest proces podziału projektowanego układu na poszczególne bloki logiczne. Ze względu na segmentowy charakter połączeń dużego znaczenia nabiera sposób rozmieszczenia bloków powstających po podziale w ewnątrz struktury FPGA (ang. placem ent) i ściśle z nim związany proces prowadzenia połączeń (ang. routing) [Acte95, X ili99]. Dodatkowo dwa końcowe etapy syntezy (placement, routing) odgryw ają dużą rolę ze względu na ograniczone zasoby połączeń występujące w strukturach FPGA.

Układy FPGA przyczyniły się do odrodzenia teorii dekompozycji wprowadzonej przez Ashenhursta [Ashe57] i rozszerzonej przez Curtisa [Curt62, Curt63], pierwotnie wykorzystywanej do minimalizacji układów realizowanych na bramkach logicznych [Piec72a, Piec72b, Piec74, ShenM70, ShenM71], Teoria dekompozycji stanowi teoretyczne podstawy podziału projektowanego układu na podukłady, które m ogą być realizowane w blokach logicznych występujących w strukturach FPGA.

Pierwsze algorytmy syntezy (M IS-PGA [BrayR87, BrowF93], Chortle [FrancR91, BrowF93], Asyl [BabbC92, SicaC91]) przeznaczone dla struktur bramkowych (ang. gate array) zostały wykorzystane w procesie syntezy dla układów FPGA. Algorytmy te wykorzystują między innymi dekompozycję Roth-Karpa [RothK62], technikę wyłączania rdzeni (ang. kernel extraction) [BrayM82, M ich94], faktoryzację wyrażeń boolowskich wspom aganą procedurami grupowania [AbouS90], metodę leksykograficznego porządkowania zmiennych [AbouB93], programowanie dynamiczne itd. Bardzo często poszczególne etapy dekompozycji polegają na iteracyjnym podziale sieci logicznej, odpowiadającej w początkowym etapie wyrażeniu booleowskiemu po dwupoziomowej minimalizacji. Podział sieci logicznej polega na odpowiednim wyborze węzłów, gałęzi itd. [BrouF93, Mich94],

Klasyczny model dekompozycji funkcjonalnej zaproponowany przez Ashenhursta i Curtisa [Ashe57, Curt62] stanowi podstawę szerokiej grupy algorytmów dekompozycji opracowanych dla struktur FPGA typu tablicowego [BrzoŁ97, LeglW 95, NowiŁ97, WanP92, KaniOOb], Jedną z zalet tych metod < jest uwzględnianie stanów nieokreśloności w początkowym etapie syntezy, najczęściej związanym z dekompozycją. W ostatnich latach dużym zainteresowaniem cieszą się metody wykorzystujące binarne diagramy decyzyjne przedstawione między innymi w pracach [Aker78, ChanM96, DzikHOl, DzikH03, Deva93, FujiF93, Laso99, M iliHOl, M ili03, Sasa93b, StanS94, YangC02],

Szybki rozwój technologiczny układów FPGA sprawia, iż proces syntezy logicznej staje przed coraz większymi wyzwaniami. Mimo iż wiele elementów syntezy nie zostało jeszcze zadowalająco rozwiązanych, pojaw iają się coraz to trudniejsze problemy, związane na

(12)

przykład z syntezą wysokiego poziomu, współbieżnym projektowaniem program u i sprzętu [CarpM 98, G ajsD92, GajsD98, OrteL98], syntezą układów wielokontekstowych [AtmeOO] itp.

Głównym etapem syntezy logicznej przeznaczonej dla rozbudow anych struktur m atrycow ych (CPLD ) je st podział projektu na znajdujące się w ewnątrz bloki logiczne. W większości przypadków struktury CPLD składają się z bloków logicznych typu PAL, zaw ierających ograniczoną liczbę iloczynów (£=3,4,5,8). Pierwszoplanowym celem syntezy je st efektywne w ykorzystywanie bloków logicznych typu PAL. Synteza logiczna dla struktur matrycow ych najczęściej stanowi rozszerzenie syntezy przeznaczonej dla prostych struktur program owalnych. Polega ona najczęściej na dwupoziomowej minimalizacji z dodatkowymi elementami związanym i z odpowiednim odwzorowaniem technologicznym, um ożliwiającym wykorzystanie specyficznych cech poszczególnych rodzin układów. W przypadku układów CPLD znajdują również zastosowanie elementy optymalizacji wielopoziomowej [BrayH90, M ich94], syntezy wykorzystującej elem enty X O R [Sasa93a, BranS93, SasaB90, SasaP93, Puch96] i różnego typu dekompozycji. W przypadku matrycowych struktur typu PAL m ogą być wykorzystyw ane zarówno algorytmy przeznaczone do realizacji układów w strukturach bram kowych, ja k i strategie klasycznej dekom pozycji funkcjonalnej. Zdaniem autora elementy dekom pozycji nie zostały jeszcze wprowadzone do procesu syntezy przeznaczonego dla struktur m atrycowych. Okazuje się, że m ogą one doprowadzić do znaczących oszczędności układowych [KaniOOa], W arto zwrócić uwagę, że w początkowym okresie, teoria dekompozycji (lata 1960-1970) wykorzystywana była do minimalizacji układów logicznych realizowanych na bramkach, stanowiąc konkurencję do minimalizacji Quine’a-McCluskeya [Quin52, McC156, Bolt90, Kali91 ]. W ydaje się, że m ożna by tą ideę wykorzystać również w procesie m inim alizacji, przeznaczonej dla struktur matrycowych typu PAL.

Proces syntezy, zaimplem entowany w znanych autorowi narzędziach wspom agających projektow anie układów cyfrowych dla struktur typu PAL (ABEL [Abel90], SNAP [Snap91], M ACHXL [Mach95], M AX+PLUS [Alte96, Alte97] itp.), najczęściej rozpoczyna dwupoziom ow a m inim alizacja jedno wyjściowych funkcji, po której następuje etap realizacji poszczególnych funkcji na występujących w strukturze blokach logicznych. Takie podejście je st logicznie związane z w ew nętrzną budow ą struktury typu PAL. Często rozbudowywane je st o elem enty um ożliw iające wykorzystanie dodatkowych zasobów logicznych, występujących w elem entarnym bloku logicznym (np. element XOR, wyjściow y bufor trójstanowy itp.) lub w większej jednostce strukturalnej, wyposażonej we wspólne lokalne zasoby (np. „szybkie” lokalne sprzężenia zwrotne, ekspandery itp.).

Różnorodność form implementacji układów cyfrowych doprowadziła do powstania uniw ersalnych narzędzi projektowych, przeznaczonych dla szerokiej gamy układów program ow alnych [Abel90, SympOOa, SympOOb]. Zaletą takich narzędzi wspomagających projektowanie je st m ożliwość przenoszenia opisu projektu pom iędzy różnym i firmowymi narzędziami. N ajczęściej, ze względu na nieuwzględnienie w początkowym etapie syntezy właściwości docelowej struktury, nie zapew niają one jednak efektywnego wykorzystywania zasobów układu programowalnego.

D rugą grupę narzędzi wspom agających projektowanie stanow ią narzędzia specjalizowane, wchodzące w skład firm owych pakietów oprogram owania dostarczanego przez poszczególnych producentów układów PLD [Snap91, Mach95, Alte97]. Pozw alają one stosunkowo efektyw nie wykorzystać specyficzne elementy struktur, lecz m ogą być wykorzystane do ograniczonej grupy układów programowalnych.

Najczęściej jednak w pierw szych etapach synteza logiczna w ykonywana je st w oderwaniu od końcowego sposobu implementacji. Takie podejście, oprócz niewątpliwych zalet, do których należy przede w szystkim łatw a przenoszalność, prowadzi często do nieefektywnego wykorzystywania iloczynów zawartych w strukturach typu PAL. Pojawia się zatem oczywisty wniosek, iż trzeba poszukiwać metod syntezy, które um ożliw iają implementację sieci logicznej w postaci elementów dostępnych w danej grupie układów programowalnych, wprowadzając charakterystyczne cechy tych układów w początkowe etapy syntezy. Tylko takie podejście zapewnia efektywne wykorzystanie zasobów struktur programowalnych.

Inspiracją do poszukiwania metod syntezy spełniających powyższe warunki były doświadczenia autora zdobyte podczas projektowania różnorodnych układów cyfrowych w strukturach programowalnych [HrynB96, KaniS92b, KaniS93b, HrynK96], W pierwszym okresie zainteresow ania autora ukierunkowane były przede wszystkim na opracowanie różnorodnych m etod podziału projektowanego układu. Podział projektowanego układu ściśle związany był z metodami ekspansji liczby wejść, wyjść i termów [HrynK95, Kani99e].

Projektowany układ opisywany był tzw. Pierw otną T ablicą Przepaleń (PTP). Podział PTP na tzw. Charakterystyczne Tablice Przepaleń, odpowiadające konkretnym układom PAL, FPLA, stanowił podstaw ę podziału projektowanego układu n a poszczególne proste struktury PLD [KaniS92a, KaniS93a, Kani95]. Drugi obszar zainteresowań związany był z metodami dekompozycji przeznaczonymi dla układów FPGA typu tablicowego [Kani96, Kani98a, KaniH96, KaniOla]. Prace te zostały zakończone rozpraw ą doktorską [Kani95] i opracowaniem prototypowego systemu syntezy Decomp [KaniOOb], Algorytmy dekompozycji zaimplementowane w tym systemie były ciągle udoskonalane [HrynK03, Kani03a], lecz w późniejszym okresie zainteresowania autora zostały skierowane przede wszystkim na struktury matrycowe typu PAL.

Okazało się, że dostosowanie poszczególnych elementów syntezy, pierwotnie opracowanych dla struktur typu FPGA, do właściwości struktur typu PAL (np. sposobu kodowania w zorców kolumn matrycy podziału, sposobu kodowania słów uwzględniającego typ aktywności wyjścia) doprowadziło do zaskakująco lepszych wyników od tych, które uzyskiwano za pom ocą klasycznej metody syntezy [CzerK02, CzerK03, HrynP97, Kani98b, KaniH98, Kani99f, Kani99h, Kani99i, KaniOOd, KaniOOe, KaniOlb], Spowodowało to głębsze zainteresowanie się strukturami typu PAL. Opracowano dla nich szereg różnorodnych algorytmów syntezy [Kani99g, KaniOOe, KaniOOf, KaniOOg, KaniO lc , Kani02b, Kani02c, Kani02d, Kani03b, Kani03c, Kani03d], W szystkie pom ysły były weryfikowane za pom ocą tworzonych do tego celu prototypowych m odułów programowych, często wykorzystujących moduły system u Decomp, stanowiących ostatecznie poszczególne elementy systemu PALDec.

(13)

1.2. Tematyka pracy

M etody syntezy będące przedmiotem niniejszej pracy w ykorzystują specyficzne cechy struktur m atrycow ych, scharakteryzowane przez właściwości bloku logicznego typu PAL.

K oncepcja podziału całego układu matrycowego na bloki logiczne typu PAL umożliwia opracow anie ogólnych m etod syntezy dla powszechnie występujących zasobów struktury matrycowej. Podejście to nie ogranicza jednak prezentowanych metod syntezy do konkretnej rodziny układów program owalnych. Dopiero w końcowym etapie syntezy istnieje możliw ość optym alizacji układu, dopasowująca go do specyficznych właściwości wykorzystywanej struktury program owalnej.

Projektow any układ cyfrow y najczęściej optym alizowany je st pod kątem powierzchni (m inim alizacja liczby w ykorzystywanych bloków logicznych typu PAL) lub szybkości (m inim alizacja w arstw logicznych). Zaproponowane strategie syntezy obejm ują obydwa obszary optym alizacyjne. Istotne nowatorstwo opracowanych strategii syntezy, którym pośw ięcona je st niniejsza praca, polega na dopasowaniu poszczególnych etapów syntezy projektowanego układu do zasobów logicznych struktur typu PAL.

Takie podejście w wielu przypadkach prowadzi do istotnego ograniczenia wykorzystyw anych zasobów struktury programowalnej, często zapewniając realizację w znacznie prostszym , m niejszym , tańszym układzie niż struktura w ym agana przez strategię klasyczną.

W kolejnych częściach pracy zostaną przedstawione m iędzy innymi:

• M etody realizacji w ielow yjściow ych funkcji w strukturach typu PA L wykorzystujące grafy w yjść (rozdział 2)

• M etody realizacji funkcji wykorzystujące wyjściowe bufory trój stanowe, prowadzące do znacznego zm niejszenia czasu propagacji sygnałów od wejścia do w yjścia (rozdział 3) (dw upoziom ow a realizacja układów cyfrowych w strukturach typu PAL)

• M etody dekom pozycji przeznaczone dla struktur typu PAL (rozdział 4)

• Strategie syntezy logicznej układów kombinacyjnych w strukturach typu PAL, wykorzystujące poszczególne, uprzednio przedstawione metody syntezy (rozdział 5).

M etodyka badań sprowadza się do zaim plem entowania algorytm ów syntezy i ich praktycznej weryfikacji. Efekty syntezy układów testowych będą porów nane w pierwszej kolejności z m etodą klasyczną a potem z innymi metodami, zaimplem entowanym i w dostępnych narzędziach programowych.

K ażda część pracy kończy się przedstawieniem wyników eksperymentów, uzyskanych za p om ocą opracow anych prototypow ych programów, wykorzystanych do syntezy układów testow ych (ang. benchmark) [Bench] w różnorodnych strukturach typu PAL (zawierających różnej w ielkości bloki logiczne typu PAL).

1.3. Stosow ana terminologia

Intencją autora było stosowanie ogólnie przyjętego nazewnictwa. Niestety polskie nazewnictwo dotyczące układów programowalnych nie jest dostatecznie ugruntowane i wystarczająco precyzyjne, dlatego zdaniem autora konieczne jest uzasadnienie występujących w pracy pojęć.

Stosowane w literaturze pojęcie układy matrycowe (czasami m acierzowe) dotyczy szerokiej rodziny układów CPLD (ang. Complex Programmable Logic Devices). Tak się składa, że w obecnej chwili prawie wszystkie układy matrycowe zaw ierają matryce AND-OR, z programowalnymi połączeniami w matrycy AND i stałymi połączeniami w matrycy OR.

Tego typu konfiguracja matryc A N D-OR występuje w układach PAL. W niniejszej pracy zaproponowano określenie układy matrycowe typu PAL, odnoszące się do układów CPLD, zbudowanych z matryc typu PAL. D rugą grupą układów matrycowych są układy matrycowe typu PLA, tzn. układy CPLD zbudowane z matryc typu PLA. Ta grupa układów matrycowych była i jest mało popularna. Przedstawicielem tej grupy układów były opracowane przez firmę National Semiconductor układy M APL (ang. M ultiple Array Programmable Logic). Tak więc, mówiąc o strukturach typu PALautor myśli o zanikających już prostych układach PAL oraz złożonych strukturach matrycowych typu PAL.

Proste układy PAL (np. PAL22V10), jak i matrycowe układy typu PAL składają się z podobnych elem entów logicznych, zawierających określoną liczbę iloczynów dołączonych na stałe do sum y logicznej, nazywanych w pracy blokami logicznymi typu PAL. Blok logiczny typu PAL, zawierający ^-iloczynów, nazywany będzie skrótowo A-iloczynowym blokiem PA L .

Ograniczona liczba iloczynów zawartych w bloku logicznym typu PAL sprawia, że często trzeba zawracać sygnały z wyjść na m atrycę AND. Ta powszechnie stosowana technika, wykorzystująca do ekspansji liczby iloczynów sprzężenia zwrotne, została nazwana realizacją klasycznąfunkcji w strukturach typu PAL.

W szystkie oznaczenia, pojęcia, skróty wprowadzone przez autora zostały przedstawione w tekście pracy oraz ujęte w odpowiednich w ykazach znajdujących się na początku pracy.

(14)

2. M E T O D Y R E A L IZ A C JI W IE LO W Y J ŚC IO W Y C H FUNKCJI W ST R U K T U R A C H TYPU PAL W Y K O R Z Y S T U J Ą C E G R A F Y W Y J Ś Ć

W iększość układów program owalnych wykorzystuje jed n ą z trzech konfiguracji matryc A N D -O R (rys. 1.1). Taka dwupoziom owa struktura układów program ow alnych niejako naturalnie w ym usza w pierwszym etapie syntezy wykonanie minimalizacji dwupoziomowej.

W późniejszym etapie występuje wpasowanie zminimalizowanych funkcji do wybranej struktury program ow alnej.

Typ struktury układu program owalnego w pływ a na sposób w ykonywania minimalizacji dwupoziom owej. Struktura PLA um ożliwia dołączenie każdego iloczynu do kilku sum równocześnie. W tej sytuacji w pierwszym etapie syntezy wskazane je st w ykonanie m inim alizacji dwupoziomowej wielo wyjściowej funkcji opisującej zachowanie układu. W strukturach typu PA L m ożliwe jest dołączenie wybranego iloczynu tylko do jednej sumy, stąd najczęściej m inim alizacja je st wykonywana dla każdego w yjścia oddzielnie.

2.1. Klasyczna metoda realizacji wielowyjściowych funkcji w strukturach typu PAL

N iech / będzie «-w ejściow ą i m -wyjściową funkcją logiczną odw zorow ującą zbiór B n w zbiór B m , tzn. f : B n ^ > B m , gdzie 5={0,1}. Klasyczna m etoda realizacji funkcji f : B n -> B m w strukturach typu PAL związana je st z realizacją zm inim alizowanych funkcji f i : B n —> B (i= \,2,...,m ) w sieciach zbudowanych z ł-iloczynow ych bloków PAL.

Każda funkcja f i : B n - » B (i= \,2,...,m ) może być opisana przez zbiór im plikantów będących zbiorem kostek o w ym iarach n oraz 1 nazywanych odpowiednio częścią w ejściow ą oraz częścią w yjściow ą [Mich94], Część wejściowa składająca się z elem entów 0,-,l reprezentuje iloczyn literałów, dla którego funkcja przyjm uje wartość 1, stanow iącą część w yjściow ą jednow yjściow ego implikantu.

P rzykład 2.1

Rozw ażm y funkcję / : B 3 - » B 2 , którą po minimalizacji funkcji / , : fi3 - » B l (/=1,2) m ożna przedstaw ić w postaci f i = ac + b c , / 2 = bc + a b .

Zbiory kostek określających każdą z funkcji zaw ierają po 2 elementy, tzn.:

f - U

a b c a b c

0 - 0 - 1 1

- 1 1 1 1 -

Załóżm y, że dla uproszczenia będą rozpatrywane struktury typu PA L z wyjściem aktywnym w stanie wysokim, stąd 1 w części wyjściowej jednowyjściowego implikantu odpowiada wykorzystaniu jednego iloczynu w bloku logicznym typu PAL.

N iech wyróżnik Ay będzie liczbą implikantów, dla których funkcja f :B n - » B przyjmuje wartość 1.

N iech 8 f . oznacza liczbę bloków potrzebnych do realizacji /'-tej funkcji. Rozważmy przypadek realizacji funkcji f za pom ocą ^-iloczynowych bloków PAL. W sytuacji, gdy A f. > k , realizując funkcję f konieczne je st zawracanie sygnałów z wyjść na matrycę połączeń, określane m ianem sprzężeń zwrotnych. Prowadzi to do wykorzystania

8 f . = | —t 1—— +1 ^-iloczynowych bloków PAL, gdzie [Y| oznacza najm niejszą liczbę

I 1

naturalną nie m niejszą od x. Do realizacji m-funkcji (każda funkcja f : B n —> B (/=1,2,...,m) zminim alizow ana oddzielnie) używa się bloków logicznych typu PAL, gdzie:

rri 4 = Z 5 /,

(2.1) j=i

Przykład 2.2

Rozważmy funkcję f B* -> B4 , która po dwupoziomowej minimalizacji jednowyjściowych funkcji f i : B 5 -> B (/=1,2,3,4) za pom ocą programu Espresso (Espresso-Dso) przedstawiona jest w postaci plików utworzonych w formacie berkeleyowskim y,.pla (rys.2 .2).

Z w yniku minimalizacji określane są wartości Ay4 = 8 , A y3 = 6 , Ay2 = 8 i A y = 3 . Zakładając realizację funkcji z wykorzystaniem bloków logicznych typu PAL, zawierających trzy iloczyny (k=3), należy użyć:

/ 4 :

h -

/ 2 :

f l -

wybranych bloków.

II

<Ki l > > 1

k - \

II

c 1 > ii?' 1 11

k - 1

II -u;1<<11

__

k - 1

5 h =

> 1 1

k - l

+ 1 = 4

+ 1 = 3

+ 1 = 4

+ 1 = 1

(15)

Sum ując wyznaczone wartości okazuje się, że do klasycznej realizacji funkcji

£ 5 -» fi4 należy użyć ó \ = £

;=1 V i

k - 1 + 1 = Z 8 f. =12 bloków logicznych typu /=1

PAL, zawierających trzy iloczyny.

Jeżeli Ay\ > k , gdzie A: je st liczbą iloczynów zawartych w pojedynczym bloku logicznym typu PAL, to realizacja im plikantów w ym aga użycia więcej niż jednego bloku.

K onsekw encją tego je st wprowadzanie wewnętrznych sprzężeń zwrotnych, um ożliwiających ekspansję liczby iloczynów.

Istnieją dw a sposoby ekspansji liczby iloczynów wykorzystujące sprzężenia zwrotne (rys.2 . 1).

■a)

Rys. 2.1. Ekspansja liczby iloczynów w ykorzystująca sprzężenia zwrotne Fig. 2.1. Product term expansion using feedback

Strategia ekspansji przedstaw iona na rys. 2 .Ib wykorzystuje identyczną liczbę bloków co strategia z rys. 2 . la , w prow adzając jednocześnie m niejszą liczbę w arstw logicznych.

K lasyczna realizacja przykładowej funkcji wraz z opisem poszczególnych elementów, wykorzystująca pierw szy sposób ekspansji (rys. 2 . la ), przedstawiona je st na rys. 2 .2 .

W ogólnym przypadku realizacja funkcji f i : B n - » B będącej sum ą A j- im plikantów za pom ocą bloków logicznych zaw ierających k iloczynów, przedstawiona na rys. 2 . Ib, prowadzi do uzyskania układu w postaci struktury warstwowej, gdzie £ , je st m inim alną

J i Ji

liczbą naturalną spełniającą nierówność A j. < k ^ ‘ , tzn. £/-. =f"lg^Ay. ].

W ielow yjściow a funkcja f :B n —> B m realizowana je st m etodą klasyczną z m inim alizacją liczby w arstw logicznych (metoda K_LW ) w postaci struktury

warstwowej, gdzie = m a x ( ^ X h - - A f m Y

f - B 5 ■Bą

. i 5 . o 4

. i l b a b c d e . o b f 4 f 3 f 2 f l . p 2 5

0 0 0 1 0 1 0 0 0 10011 1000 01-11 1000 -0101 1000 -1000 1000 00-01 1000 1100- 1000 - 111- 1000 111-0 0100 01011 0100 00010 0100 00-01 0100 -1000 0100 - 111- 0100 10011 0010 00010 0010 01-11 0010 0010- 0010 -1000 0010 00-01 0010 1100- 0010 - 111- 0010 01000 0001 01011 0001 00-01 0001

. e

. i l b a b . o b f 4 . p 8

00010 1 10011 1 01-11 1 -0101 1 -1000 1 00-01 1 1100- 1 - 111- 1

f 3 :B 5 ^ B

. i 5

.0 1

. i l b a b . o b f 3 . p 6

111-0 1 01011 1 00010 1 00-01 1 -1000 1 - 111- 1

. e

c d e

. i 5 . o 1

. i l b a b . o b f 2 . p 8

10011 1 00010 1 01-11 1 0010- 1 -1000 1 00-01 1 1100- 1 - 111- 1

. e

c d e

* / 4 = * * /4 =

A / 4 ~ k

k - 1

+ 1 = 4

A / 3 = 6 s h =

A / 3 ~ k

k - \

+ 1 = 3

A h = i 5h =

A / 2

k — \

+ 1 = 4

. i 5

. o 1

. i l b a b . o b f l . p 3

01000 1 01011 1 00-01 1

. e

A/ , = 3

<v,=

A/ i k - 1~ k + 1 = 1

abed e

PA L /1

abode abde k= 3

Rys. 2.2. K lasyczna realizacja funkcji f : B 5 ^ B Ą wykorzystująca bloki logiczne typu PAL zawierające trzy iloczyny logiczne (linią przeryw aną oznaczono nie wykorzystane iloczyny)

Fig. 2.2. Classical implementation o f the function / :B 5 B 4 based on PAL-based logic blocks including three terms (unused terms marked w ith a dashed line)

(16)

2.2. Reprezentacja wielowyjściowej funkcji w postaci skierowanego grafu wyjść

Okazuje się, że istnieje inny sposób, często efektywniejszej realizacji wielowyjściowych funkcji logicznych w strukturach typu PAL, bazujący na wyszukiwaniu implikantów, stanowiących wspólne zasoby kilku jedno wyjściowych funkcji.

Zm inim alizow ana postać wielowyjściowej funkcji f : B n -> B m je st przedstaw iona przez zbiór wielow yjściow ych im plikantów zawierających część w ejściow ą złożoną z elem entów 0,-,l oraz część w yjściow ą złożoną z elem entów 0,1 [Mich94],

P rzykład 2.3

o 2 —

N iech f : B -> B , gdzie f i = ac + b c , / 2 = bc + a b . Zbiór wielow yjściow ych im plikantów opisujący zm inim alizow aną postać funkcji / zawiera 3 elementy, tzn.:

a b c / 1 / 2

0 - 0 1 0

- 1 1 1 1 1 1 - 0 1

N iech y będzie /«-elementowym w ektorem wyjściowym odpow iadającym części wyjściowej wielo w yjściowego im plikantu (przykładowo dla pierw szego im plikantu 0- 0 10 w artość m=2, natom iast y = 10).

W yróżnikiem A y nazw ijm y liczbę identycznych w ektorów y w ystępujących w zbiorze im plikantów wielowyjściowych, opisujących funkcję / : B n B m .

N iech ju( A y ) będzie liczbą elem entów 1 zawartych w wektorze y. Nazw ijm y wartość ju( A y ) rzędem w yróżnika A y .

N iech G < Y , U > będzie grafem skierowanym, gdzie Y jest zbiorem wszystkich w ierzchołków A^,, natom iast U zbiorem krawędzi łączących wierzchołki A ^ , A yr takie, że odległość kodow a w ektorów y s, y r w ynosi 1 oraz / / ( A ^ ) + l = M(Ay r ).

P rzykład 2.4

R ozw ażm y funkcję f : B 5 ^ B z przykładu 2.2, która po m inim alizacji przyjm uje postać przedstaw ioną w pliku f.p la (rys.2.3). W artości wyróżników A y dla poszczególnych rzędów w yróżników n ( A ^ )= l,2 ,3 ,4 w ierzchołków grafu, krawędzie skierowane w raz z pierw otnym grafem wyjść, odpowiadającym przykładowej funkcji / : B 5 —» B ^ przedstaw ione s ą na rys. 2 .3.

f : B 5 - ^ B 4 (f.pla)

. i 5 . o 4 .ilb a b c .o b f4 £3

. p 10 11-00 10011 00010 01000 01011 -0101 0010- 00-01 1100-

-111-

. e

d e

t z n 0100 1010 1 1 1 0 1111 1111 1000 0010 1111 1010 1 1 1 0

|i( A y )=4 A] j i i = 3

p (A >,)=3 Aj n o = 2 ; A) ,oi = 0 ; A i 0n = 0 ;A 0n i = 0

\x(Ay )=2

Anoo = ° ; Aioio = 2 ;A 100i = 0 ;A 0]1o = ° ; Aoioi = ° ; Aoon = 0

H ( A J>) = 1 A j o o o = 1 ; A 0 1 0 0 = 1 : ^ 0 0 1 0 = 1 ; A 0 0 0 1 = 0

Y-{Aiiii,Aiiio»Aiioi,Aioii,Aoiii,Ahoo,Aioio,Aiooi,Aoiio,Aoioi,Aooii,AiooO)Aoioo5Aooio»Aoooi}

U = {(Aiooo>Aiioo); (Aiooo.Aioio); (Aiooo>Aiooi); (Aoioo.Anoo); (Aoioo>Aono); (Aoioo5Aoioi);

(Aooio.Aioio); (Aooio,Aono); (Aooio.Aooii); (Aoooi,Aiooi); (AooouAoioi); (AooohAoon);

(Ahoo,Aiuo); (Aioio,Amo); (Aono,Amo); (Auoo>Anoi); (Aiooi,Anoi); (Aoioi.Anoi);

(Aioio,Aion); (Aiooi,Aioh); (Aooii,Aioii); (Aoiio,Aom); (Aoioi,Aom); (Aooii,Aom);

(A m o.A iin); (Anoi>Aiin)j (Aion,Aim ); (Aom,Auii)}

Rys. 2.3. Przykład pierwotnego grafu wyjść Fig. 2.3. Example o f a prim ary graph o f outputs

(17)

R ozpatrując g ra f z rys. 2.3 każdem u w ierzchołkowi pierwszego rzędu związanem u z im plikantam iy-tego (y—1,2 ,3 ,4 ) w yjścia /и-wyjściowej ( m=4 ) funkcji przyporządkow uje się wartość dziesiętną Ay ró w n ą sum ie wyróżników należących do dróg skierowanych, których początkiem je st w ybrany w ierzchołek 1 rzędu, a końcem w ierzchołek 4 rzędu. Przykładowo dla w ierzchołka Доюо istnieje sześć takich dróg:

д 0100 ~ * д 1100 д 1110 д 1111 д 0100 “ ^ 0 1 1 0 д 0111 - > д 1111 Д0100 “ ^ 1 1 0 0 ~> Д 1101 “*^1111 Д0100 Л0101 Д 1101 Д1111 Д 0100 Д0110 Д 1110 Д1111 Д0100 _> Д 0101 _>,Д0111 Д 1111 stąd

д 3 = д 0100 + д 1100 + д 0110 + д 0101 + д 1110 + д 1101 + д 0111 + д 1111 = 6 ■ U ogólniając rozw ażanie stwierdza się, że każdem u w ierzchołkowi pierw szego rzędu д o o i o ...oo n a le ż y p rz y p o rz ą d k o w a ć liczb ę A"j ró w n ą su m ie w y ró ż n ik ó w A_ _ , ______ zaw artych w w ierzchołkach pokrytych przez wszystkie drogi wychodzące z tego w ierzchołka, a kończące się w w ierzchołkach wyższych rzędów. Elim inując z pierw otnego grafu wyjść wierzchołki, dla których A y = 0 i przyporządkow ując w tej sytuacji wyróżniki A у wierzchołkom najniższych rzędów, związanych z realizacją у-tej funkcji, otrzym ujem y zredukow any g ra f wyjść przedstawiony na rys. 2.4. Rysunek 2.4 przedstaw ia dwie rów now ażne formy zredukowanego grafu wyjść funkcji z przykładu 2.4. Uproszczona postać z prawej strony rysunku zaw iera w wierzchołkach grafu wyjść tylko wartości poszczególnych wyróżników.

f A h f f* A A A

Rys. 2.4. Przykład zredukowanego grafu wyjść z wartościami w yróżników Ay Fig. 2.4. Exam ple o f a reduced graph o f outputs with associated values o f discrim inants Aj

N a podstaw ie wartości wyróżników Ay określa się liczbę ł-iloczynow ych bloków PAL, potrzebnych do realizacji wielo wyjściowej funkcji. Liczba ta wynosi:

f - \

Amj - k + 1 к- 1

V /

Najczęściej je st ona większa od wartości współczynnika ó y , wyznaczonego z zależności (2.1). N ależy podkreślić, że wartość współczynnika 8j- określa liczbę bloków logicznych typu PAL, potrzebnych do realizacji wielowyjściowej funkcji / : B n B m , przy czym każda jedno w yjściow a funkcja f i ' - B n —> 5 , ( z - 1,2,...,w) realizowana je st oddzielnie, a proces realizacji wykonany jest po minimalizacji funkcji / : B n -» B m .

2.3. Idea implementacji funkcji wielowyjściowej wykorzystująca grafy wyjść

Załóżmy, że chcemy zrealizować wielow yjściow ą funkcję / : B n —> B m opisaną grafem wyjść G < Y ,U > na ^-iloczynowych blokach PAL.

W ierzchołki grafu wyjść odpow iadają poszczególnym grupom wielo wyjściowych implikantów z identyczną częścią wyjściową. Jeżeli przykładowo na grafie znajduje się wierzchołek / / ( A ^)-tego rzędu, dla którego A y = k ,\.o m ożliwe jest zrealizowanie w jednym bloku ^-implikantów, stanowiących wspólne zasoby //(A ^ ) jedno wyjściowych funkcji.

Efektem realizacji w i-tym kroku wybranej grupy wielo wyjściowych implikantów, z identyczną częścią w yjściow ą skojarzonych z wierzchołkiem lA y , jest m odyfikacja grafu. Z grafu elim inowany jest wierzchołek lA y . Tworzone są wierzchołki, które reprezentują sprzężenia zwrotne, występujące dla wszystkich niezrealizowanych jeszcze funkcji.

M odyfikacja obejm uje następujące elementy:

• eliminację wybranego wierzchołka lA y ,

• eliminację krawędzi łączących wybrany wierzchołek z wierzchołkami niższych rzędów,

• utworzenie wierzchołków reprezentujących sprzężenia zwrotne, oznaczonych wyróżnikam i A FB,

• utworzenie krawędzi łączących wierzchołki reprezentujące sprzężenia zwrotne z odpowiednimi wierzchołkami, niezrealizowanych jeszcze jedno wyjściowych funkcji.

W ierzchołki reprezentujące sprzężenia zwrotne tworzone są dla każdej niezrealizowanej jeszcze jedno wyjściowej funkcji, wybranej spośród ju( ‘A y )-funkcji, dla których w części

Cytaty

Powiązane dokumenty

ci funkcji zadanej opisującej poszukiwaną sieć. Dzięki tej'właściwości,sieci realizujące te funkcje mają też jednakową konstrukcję. Różnią się jedynie

[r]

Realizuje się to przez utrzymywanie rzędnej poziomu górnej wody na zadanej wartości Wtedy natężenie dopływu wody do zbiornika górnego ze zlewni Qj jest równe sumie

Rys. Graf biegunowy układu z rys.. 17+25) przeryw aną linią zaznaczono amplitudy w przypadku, gdy na układ działa jedynie wzbudzenie kinematyczne, a ciągłą linią zaznaczono

Jest równie˙z kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu tak˙ze spełniaj ˛ a w/w zasad˛e... wyra˙zenie abc + abc jest równowa˙zne

For a given palladium loading on the carrier and the catalyst concentration in the reaction system, the catalytic performance of the Pd/Cu system was affected by the

Dla aktywności 1 i 2 dofinansowanie w formie zwiększenia subwencji jest naliczane przez Dział Kontrolingu na podstawie danych przekazanych przez Centrum Obsługi Studiów w

• Projekt, realizacja, symulacja, programowanie i sprzętowa weryfikacja indywidualnych zadań projektowanych realizowanych w przygotowanych do tego celu modelach