ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ
|
|
- Józef Paluch
- 5 lat temu
- Przeglądów:
Transkrypt
1 ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ 9. >1 Dariusz KANIA SYNTEZA LOGICZNA PRZEZNACZONA DLA MATRYCOWYCH STRUKTUR PROGRAMOWALNYCH TYPU PAL Gliwice 2004
2 POLITECHNIKA ŚLĄSKA ZESZYTY NAUKOW E Nr 1619 Dariusz KANIA SYNTEZA LOGICZNA PRZEZNACZONA DLA MATRYCOWYCH STRUKTUR PROGRAMOWALNYCH TYPU PAL Gliwice 2004
3 Opiniodawcy Prof. dr hab. inż. Marian ADAMSKI Prof. dr hab. Tadeusz ŁUBA Kolegium redakcyjne REDAKTOR NACZELNY 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 Od autora Pierwsza część pracy stanowi podsumowanie zadań realizowanych w ramach projektu badawczego nr 4T11B 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 PL ISSN Gliwice, m arzec 2004 C opyright by D ariusz K A N IA Gliwice 2004
4 S P IS T R E Ś C I W ykaz w ażniejszych o z n a c z e ń...9 W ykaz w ażniejszych sk ró tó w...13 W ykaz skrótów określających m etody oraz strategie sy n te z y W p r o w a d z e n ie Elementy syntezy logicznej układów cyfrowych przeznaczone dla struktur programowalnych Tematyka pracy Stosowana term inologia M e to d y re a liz a c ji w ie lo w y jś c io w y c h fu n k c ji w s tr u k tu r a c h ty p u PAL w y k o r z y s tu ją c e g ra fy w y j ś ć Klasyczna metoda realizacji wielowyjściowych funkcji w strukturach typu P A L Reprezentacja wielowyjściowej funkcji w postaci skierowanego grafu w yjść Idea implementacji funkcji wielowyjściowej wykorzystująca grafy w y jś ć Twierdzenie o wyborze wierzchołków grafu w yjść Algorytmy implementacji wielowyjściowych funkcji w strukturach typu P A L Algorytm implementacji wielowyjściowych funkcji w strukturach typu PAL (optymalizacja liczby bloków logicznych); metoda W _LB Algorytm implementacji wielowyjściowych funkcji w strukturach typu PAL (optymalizacja liczby warstw logicznych); metoda W _LW Wyniki eksperymentów M e to d y re a liz a c ji fu n k c ji lo g ic z n y c h w s tr u k tu r a c h ty p u PAL z tr ó js ta n o w y m i b u fo ra m i w y jś c io w y m i Idea wykorzystania trój stanowych buforów wyjściowych Reprezentacja sposobu implementacji funkcji w postaci grafu podziału Minimalizacja z rozłączaniem implikantów Koncepcja implementacji funkcji w strukturach typu PAL z trójstanowymi buforami wyjściowymi Metoda wyszukiwania zmiennej podziału, wykorzystywana w p -warstwowej implementacji funkcji w strukturach typu PAL z trójstanowymi buforami wyjściowymi Algorytm/i-warstwowej implementacji funkcji na blokach logicznych typu PAL z trójstanowymi buforami wyjściowymi o zadanej liczbie iloczynów (metoda B_PW) Metoda wyszukiwania kostek podziału, wykorzystywana w jednowarstwowej implementacji funkcji w strukturach typu PAL z trójstanowymi buforami wyjściowymi Algorytm jednowarstwowej implementacji funkcji na blokach logicznych typu PAL z trójstanowymi buforami wyjściowymi o zadanej liczbie iloczynów (metoda B _JW ) Wyniki eksperymentów... 81
5 6 4. M eto d y re a liz a c ji fu n k cji w s tr u k tu r a c h ty p u PAL b a z u ją c e n a d e k o m p o z y c ji Znaczenie dekompozycji w syntezie przeznaczonej dla układów programowalnych Istota dekompozycji przeznaczonej dla struktur typu P A L Kodowanie równom ierne Dekompozycja kolumnowa zorientowana na realizację w strukturach typu P A L Metody wyznaczania złożoności kolumnowej zorientowane na realizację układów w strukturach typu P A L Metoda kodowania wzorców kolumn zorientowana na realizację układów w strukturach typu P A L Algorytm implementacji funkcji jednowyjściowych w strukturach typu PAL oparty na dekompozycji kolumnowej Dekompozycja kolumnowa funkcji wielowyjściowych Wyniki eksperymentów Dekompozycja wierszowa zorientowana na realizację w strukturach typu P A L Metoda wyznaczania złożoności wierszowej Zagadnienia związane w wyborem dekompozycji wierszowej Algorytm implementacji funkcji w strukturach typu PAL oparty na dekompozycji wierszowej Wyniki eksperymentów Porównanie zaproponowanych modeli dekompozycji zorientowanych na realizację funkcji w strukturach typu P A L Z ło ż o n e s t r a t e g i e s y n te z y fu n k c ji w s tr u k tu r a c h ty p u P A L Dobór elementów syntezy pod kątem optymalizacji liczby bloków logicznych lub liczby warstw logicznych Strategia syntezy dla struktur typu PAL bez trójstanowych buforów wyjściowych, (optymalizacja liczby bloków logicznych); strategia W _DK-W _LB 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 Strategia syntezy dla struktur typu PAL bez trójstanowych buforów wyjściowych, (optymalizacja liczby warstw logicznych; strategia J_DW -W _LW Strategia syntezy dla struktur typu PAL z trójstanowymi buforami wyjściowymi, (optymalizacja liczby warstw logicznych); strategia B _ JP W Porównanie zaproponowanych strategii syntezy z innymi m etodam i Proste układy typu PAL (ABEL, MACHxl, ispdesignexpert, Synplify, A S Y L ) Układy Classic firmy Altera (M AX+PLUS) Układy MAX firmy Altera (M AX+PLUS) Układy MACH (Synplify+MACHxl) Układy FLASH firmy Cypress (W A RP) Systemy akademickie przeznaczone dla matryc P L A Analiza końcowa wyników eksperymentów P o d s u m o w a n i e L i t e r a t u r a S t r e s z c z e n i e D o d a tk i C O N T E N T S List o f more important sym bols...9 List o f more important abbreviations List of abbreviations used for defining methods and strategies of the synthesis Introduction Components on logic synthesis of digital circuits applicable to programmable structures Scope of work Applied terminology M ethods for realization of multi-output functions within PAL-based structures based on graphs of outputs Classical method for realization of multi-output function within PAL-based structures Representation of a multi-output function in the form of a directed graph of outputs The idea related to implementation of a multi-output function based on graph of outputs The theorem on choosing a node of a graph of outputs Algorithms for implementation of multi-output functions within PAL-based structures The algorithm for implementation of multi-output functions within PAL-based structures (optimization of logic blocks); the W_LB method The algorithm for implementation of multi-output functions within PAL-based structures (optimization of logic stages); the W_LW method Results of experiments M ethods for realization of multi-output functions within PAL-based structures, which contain three-state output buffers The concept of taking advantage of three-state output buffers Presentation of the concept how to implement a function by means of the graph of divisions Minimization that involves splitting of im plicants The concept related to implementation of a Boolean function within PAL-based structures, which contain three-state output buffers The method involving searching for the partitioning variable, applicable for the p -stage implementation of a function within PAL-based structures, which contain three-state output buffers The algorithm for the/>-stage implementation of a Boolean function within PAL-based logic blocks that contain three-state output buffers and constrained by certain number of terms (the B-PW method) The method involving searching for the partitioning cube, applicable for the single-stage implementation of a function within PAL-based structures, which contain three-state output buffers The algorithm for the single-stage implementation of a Boolean function within PAL-based logic blocks that contain three-state output buffers and constrained by certain number of terms (the B-JW method) Results of experiments...81
6 4. M e th o d s fo r re a liz a tio n o f a B o o le a n fu n c tio n w ith in P A L -b a se d s tr u c tu r e s, in v o lv in g th e a p p r o a c h o f d e c o m p o s itio n Importance of decomposition for synthesis methods designed for programmable circuits Essence of decomposition approach dedicated to PAL-based structures Even coding The column decomposition approach oriented towards realization within PAL-based structures Methods of determining the column complexity oriented towards realization of digital circuits within PAL-based structures The method for coding patterns of columns, oriented towards realization of digital circuits within PAL-based structures The algorithms for implementation of a single-output Boolean function within PAL-based structures that involves column decomposition approach The column decomposition of a multi-output Boolean function Results of experiments The row decomposition approach oriented towards realization within PAL-based structures Methods of determining the row complexity Problems connected with choice of the row decomposition The algorithms for implementation of a Boolean function within PAL-based structures that involves row decomposition approach Results of experiments Comparison of the proposed decomposition models, which are oriented towards realization of a Boolean function within PAL-based structures C o m p le x s tr a te g ie s fo r s y n th e s is a B o o le a n fu n c tio n w ith in P A L -b a se d s t r u c t u r e s Selection of components of the synthesis procedure from the point of optimization of either number of logic blocks or number of logic stages The strategy of synthesis applicable to PAL-based structures without three-state output buffers; (optimization from the point of number of logic blocks); (the W_DK-W_LB strategy) The strategy of synthesis applicable to PAL-based structures with three-state output buffers, (optimization from the point of number of logic blocks); the W_DK-W_LB-B-JWP strategy The strategy of synthesis applicable to PAL-based structures without three-state output buffers, (optimization from the point of number of logic stages); the J_DW-W_LW strategy The strategy of synthesis applicable to PAL-based structures with three-state output buffers, (optimization from the point of number of logic stages); the B-JWP strategy Comparison of proposed strategies of synthesis with other methods Simple PAL circuits (ABEL, MACHxl, ispdesignexpert, Synplify, ASYL) The Classic circuits from Altera (MAX+PLUS) The MAX circuits from Altera (MAX+PLUS) The MACH circuits (Synplify+MACHxl) The FLASH circuits from Cypress (WARP) The university-developed systems designed for PLA matrices Final analysis of experimental results C o n c lu s io n s R e f e r e n c e s A b s tr a c t S u p p le m e n ts W Y K A Z W A Ż N IE JS Z Y C H O Z N A C Z E Ń к - liczba iloczynów zawartych w bloku logicznym typu PAL n - liczba argumentó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 Bm 8 y- - liczba bloków logicznych typu PAL potrzebnych do realizacji funkcji f : B n ^> B m 1 m metodą klasyczną; 8 f = I 8, J /=1 Ji l8 f - wartość parametru 8f w /-tym kroku f - liczba warstw logicznych układu realizującego funkcję f t : B n -» B l Ji - liczba warstw logicznych układu realizującego funkcję / : B n > S OT metodą klasyczną; = m ax ( /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 implikantó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 Д _ rozpoczynające się w wierzchołku A 0 wyższych rzędów 'Ду - wartość parametru Ду w г-tym kroku wierzchołków grafu wyjść pokrywanych przez drogi 0 x > a kończące się w wierzchołkach 'Д у - wybrany w г-tym kroku wierzchołek grafu wyjść skojarzony z wyróżnikiem Д y Д fb - wyróżnik reprezentujący sprzężenia zwrotne
7 10 11 M( A y ) - rząd wyróżnika A y ; liczba elementó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ść parametru r j 1 w i-tym kroku y - liczba bloków logicznych typu PAL, wykorzystanych do realizacji implikantów w /-tym 'A - k y kroku; 'y = + 1 k - 1 M - najmniejsza wartość naturalna (z włączeniem zera) nie mniejsza od x y = M < 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 - liczba dziesiętna rów na m ocy zbioru A y ; A ^ = A y^, I A - zbiór stanów w ejściow ych f, pokrytych przez kostkę Ay =(an,...<a2,ai) R - zbiór reszt r j 1; R = {rj1; j e < l,m > } MĆA y ) fjć Ay) > rh reszta należąca do zbioru reszt R = {rj j <!,//( A j, ) >} Sfx ai e A 0,l,- = i 0 1 ~} >i= l»2,...,n ; ( I Ay ~ 2r )> gdzie ''je s t liczbą elem entów a,= - - liczba bloków logicznych typu PAL potrzebnych do realizacji funkcji / - t; f - liczba w arstw logicznych układu realizującego funkcję f y J X A / _ - liczba dziesiętna rów na m ocy zbioru A, J x Jx 5 f - liczba bloków logicznych typu PAL potrzebnych do realizacji im plikantów (kostek) I={i,...,i2,ii) - wektor wejściowy Ij - stan wejściowy; «-elementowy ciąg wartości 0 lub 1 odpowiadających zmiennym wejściowym in,...,i2,u, (Z=0,l,...,2n- 1) = (an -- a2 al) " kostka, dla której funkcja y przyjmuje 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 implikantów opisujących funkcję/; zbiór kostek, dla których funkcja przyjmuje wartość 1 f i - element rozwinię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 wyjścia bloku logicznego typu PAL z trójstanowym buforem wyjściowym sterowanym przez zm iennąx rx _ J f x d la x = l [stan wysokiej impedancji dla x = 0 X = (x p,...,x2,x l ) - kostka podziału, x, ex01 ={0,1}, ( /= U -,p ) należących do zbioru x==x+ł - x staje się x + l [x] - najw iększa w artość całkow ita nie w iększa od x; (część całkowita liczby x) Xi - zbiór związany X 2 - zbiór wolny -2-1 y V y = W 2 1 v(x2 1X]) - złożoność (krotność) kolumnowa siatki Kamaugha (matrycy podziałów) X
8 12 AX2,X,) - funkcja opisana siatką Kamaugha, w której X2 jest zbiorem zmiennych skojarzonych z wierszami, a Xj - zbiorem zmiennych skojarzonych z kolumnami siatki wk(is- 1»- -» *r+l> V) współczynnik komplikacji; liczba różnych słów kodowych utworzonych W Y K A Z W A Ż N IE JS Z Y C H S K R Ó T Ó W przez zmienne ir+ j, ir. n, - liczba wejść transkodera m, - liczba wyjść transkodera kt - liczba możliwych do utworzenia w programowalnym transkoderze wyjściowych słów kodowych y(g )- liczba chromatyczna i)k - kolumnowy współczynnik kodowy t]a - współczynnik pokrycia wzorca A Tl ab - współczynnik pokrycia pary wzorców (A,B) tjs - współczynnik sąsiedztwa wzorców HA - liczba jedynek wystę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 //(X2 1Xj) - złożoność wierszowa siatki Kamaugha (matrycy podziałów) AHDL - Altera Hardware Description Language ASIC - Application Specific Integrated Circuit BDD - Binary Decision Diagram CLB - Configurable Logic Block CPLD - Complex Programmable Logic Device FPGA - Field Programmable Gate Array FPLA - Field Programmable Logic Array GAL - Generic Array Logic HDL - Hardware Description Language MACH - Macro Array CMOS High-density MAPL - Multiple Array Programmable Logic MAX - Multiple Array MatriX plsi - Lattice programmable Large Scale Integration PAL - Programmable Array Logic PIA - Programmable Interconnect Area PLA - Programmable Logic Array PLD - Programmable Logic Device PLE - Programmable 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 WYKAZ SKRÓTÓW OKREŚLAJĄCYCH METODY ORAZ STRATEGIE 1. W PRO W ADZENIE m etoda W _LW - metoda realizacji funkcji Wielowyjściowej wykorzystująca grafy wyjść (optymalizacja Liczby Warstw logicznych) m etoda W _LB - metoda realizacji funkcji Wielowyjściowej wykorzystująca grafy wyjść (optymalizacja Liczby Bloków logicznych) m etoda B_PW - metoda P - Warstwowej realizacji funkcji wykorzystująca trójstanowe Bufory wyjściowe m etoda B _JW - metoda JednoWarstwowej realizacji funkcji wykorzystująca trójstanowe Bufory wyjściowe m etoda K _LW - Klasyczna metoda realizacji funkcji w strukturach typu PAL (optymalizacja Liczby Warstw logicznych) m etoda J_D W - metoda realizacji funkcji Jedno wyjściowej w strukturach typu PAL wykorzystująca Dekompozycję Wierszowa m etoda J_D K - metoda realizacji Jedno wyjściowej funkcji w strukturach typu PAL wykorzystująca Dekompozycję Kolumnową m etoda W _D K - metoda realizacji Wielowyjściowej funkcji w strukturach typu PAL wykorzystująca Dekompozycję Kolumnową strateg 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) strategia W _D K-W _LB (optymalizacja liczby bloków logicznych) strategia syntezy przeznaczona dla struktur typu PA L bez trój stanowych buforów wyjściowych, oparta na realizacji W ielow yjściow ej funkcji w ykorzystującej D ekom pozycję K olum now ą i metodzie W _L B, użytej do realizacji bloku związanego i wolnego strategia W _D K -W _LB-B_JPW (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ę Kolumnową i metodzie W JL W, użytej do realizacji bloku związanego i wolnego, uzupełniona strategią B_JPW, prowadzącą do poprawy właściwości dynamicznych uzyskiwanych układów strateg ia J D W -W L W (optymalizacja liczby warstw logicznych) strategia syntezy przeznaczona dla struktur typu PA L bez trój stanowych buforów wyjściowych, oparta na realizacji funkcji Jednow yjściow ej wykorzystującej Dekom pozycję W ierszow a i metodzie W _L W, użytej do realizacji bloku zw iązanego i wolnego Rozwój technologiczny w sposób do niedawna niewyobrażalny zmienia w ostatnim czasie oblicze przemysł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 jest możliwy dzięki opracowaniu i ciągłemu doskonaleniu komputerowych narzędzi wspomagających projektowanie. W ostatnich latach najdynamiczniej rozwijającą się formą implementacji układów cyfrowych, zmieniających oblicze urządzeń elektronicznych, stały się układy specjalizowane (ang. ASIC - Application 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łą pewnością stwierdzić, że najbliższe lata będą erą układów programowalnych. Rosnąca dostępność coraz lepszych, jednocześnie tańszych komputerowych systemów wspomagają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 matrycowe (ang. CPLD - Complex PLD) 3. Układy FPGA (ang. Field Programmable Gate Array), do których należą między innymi: Struktury tablicowe (ang. Look up Table) Struktury multiplekserowe [Acte95], Większość struktur programowalnych wykorzystuje jedną z trzech konfiguracji matryc AND-OR przedstawionych na rys PLE (PROM ) Program m able Logic Elem ent M atry ca A N D - stale p o łą c ze n ia P ro g ram o w aln a m a try ca O R k = 2" k - liczba iloczynów PAL Program m able Array Logic ' M R A R RA r r rę A N O A R R A Y O O O O P ro g ram o w aln a m a try ca A N D M atry ca O R - stałe p o łą c ze n ia k «2n n - lic z b a w ejść Rys Podstawowe konfiguracje matryc AND-OR Fig Basic configurations o f AND-OR matrices PLA Program m able Logic Array lov.by.! P ro g ram o w aln a m a try c a A N D P ro g ram o w aln a m a try c a O R k «2 "
10 16 17 Struktury przedstawione na rys. 1.1 stanowią podstawę większości prostych układów PLD. Największą popularność zdobyły struktury PAL, składające się z odrębnych bloków logicznych typu PAL (rys. 1.2), wyposażonych w dodatkowe elementy, między innymi takie jak [Adva96, Latt94, Sign92]: sterowane trój stanowe bufory wyjściowe - wyprowadzenia wejścia/wyjścia, mechanizm programowania aktywnego poziomu wyjściowego, przerzutniki (najczęściej typu D), mechanizm ustawiania i/lub zerowania przerzutników, bramki XOR. Rozbudowane układy programowalne (CPLD - Complex Programmable Logic Devices, FPGA - Field Programmable Gate Array) składają się z programowalnych komórek (bloków) logicznych oraz dodatkowych zasobów logicznych do ich łączenia i wymiany informacji z otoczeniem [Alte99, Shar98, Xili99]. Struktury CPLD, często nazywane strukturami matrycowymi [ŁubaZ02], zbudowane są z bloków logicznych podobnych do prostych układów PLD, bloków wejścia/wyjścia oraz matrycy połączeń, umożliwiającej wykonywanie dowolnych połączeń pomiędzy blokami logicznymi oraz blokami wejścia/wyjścia. Cechą charakterystyczną tego typu struktur, odróżniających je od układów FPGA, jest stały czas propagacji sygnału (niezależny od "drogi połączenia") wnoszony przez wewnętrzne połączenia [Alte99]. D rugą rodziną najbardziej rozbudowanych układów programowalnych są struktury FPGA typu tablicowego. Zawierają one konfigurowalne bloki logiczne (CLB - Configurable Logic Block), bloki wejścia/wyjścia oraz przestrzeń pomiędzy nimi, wykorzystywaną do wykonywania połączeń. Konfigurowalne bloki logiczne umożliwiają realizację każdej funkcji logicznej o określonej, najczęściej niewielkiej (3-8) liczbie argumentów. Struktura logiczna tych bloków jest 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 jest w komórkach pamięci typu RAM [Xili99]. Uproszczoną strukturę układów CPLD oraz FPGA przedstawia rys Struktury CPLD znajdują znaczące miejsce w szerokiej gamie układów programowalnych, dostarczanych na rynek przez wiele różnych firm, na czele z firmami Altera, AMD, Atmel, Cypress, Xilinx, Lattice [Alte99, AtmeOO, Adva95, Cypr96, Latt94, Xili99]. Jądrem większości tego typu układów jest struktura PAL, zawierająca programowalną matrycę AND i stałe połączenia w matrycy OR, tworząca blok logiczny typu PAL (rys. 1.2). Bloki te m ają zwykle dodatkowe zasoby logiczne pozwalające na efektywne wykorzystywanie występujących w nich iloczynów. Należą do nich między innymi: różnego typu ekspandery [Alte99], programowalne rozdzielacze (ang. Logic Allocator) [Adva95, Cypr96, Xili99], szybkie lokalne sprzężenia zwrotne [AtmeOO], elementy XOR, czy też wyjściowe bufory trój stanowe. C P L D PIA - Programmable Interconnect Area F P G A [ûô] [Pô] GüD CEE 0 s h S 0 J 3 0 H H CLB - Configurable Logic Block Rys Architektura układów CPLD i FPGA Fig CPLD and FPGA architectures Dodatkowe, sprzętowe zasoby układów programowalnych typu PAL najczęściej umożliwiają nierównomierny rozdział iloczynów pomiędzy poszczególne komórki wyjściowe (logic allocator w układach MACH [Adva95] oraz FLASH [Cypr96], mixed mode w układach plsi [Latt94] itp.). Mimo swoich niewątpliwych zalet nie zapewniają 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 dostosowaną do potrzeb liczbę iloczynów. Przykładem może być jedno z rozwiązań zawarte w opracowanych przez firmę AMD strukturach MACH, którego istota przedstawiona jest na rys k { Blok logiczny typu PAL Rys Struktura bloku logicznego typu PAL, zawierającego k iloczynów Fig Structure o f PAL-based logic block consisting o f Æterms Rys Konfiguracje bloków logicznych typu PAL w układach MACH Fig PAL-based logic blocks configurations applied to MACH devices
11 Elementy syntezy logicznej układów cyfrowych przeznaczone dla struktur programowalnych Współczesna synteza logiczna stanowi ogniwo pośredniczące pomię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 programowalnych sprawia, iż proces syntezy jest odmienny od klasycznej syntezy, przeznaczonej dla standardowych układów cyfrowych SSI/MSI [GarbG02, Kali91, KamiMOO, Lee76, MajeŁ86, Maje99, Mowl76, Trac86, Wagn78], 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 wszystkim w procesie syntezy pojawiły się nieznane dla struktur standardowych elementy, takie jak na przykład: podział projektowanego układu na poszczególne części (ang. partitioning) realizowane przez odrębne proste układy programowalne lub bloki logiczne zawarte wewnątrz układów CPLD lub FPGA, rozmieszczenie poszczególnych bloków powstałych po podziale w odpowiednich prostych układach programowalnych lub wewnątrz struktury programowalnej (ang. placement), wykonywanie połączeń pomiędzy poszczególnymi blokami logicznymi (ang. routing). W przypadku najprostszych struktur programowalnych (PAL, GAL, PLA) dominującą rolę odgrywa dwupoziomowa minimalizacja [Mich94], Ma ona bezpośredni wpływ na redukcję liczby wykorzystywanych iloczynów w tego typu strukturach. Powszechnie uważa się, że jest ona wystarczająco skutecznym elementem syntezy logicznej dla prostych układów PLD. Niewielka złożoność tych struktur sprawia, że w procesie syntezy pojawia się problem podziału projektu na części i doboru odpowiednich struktur do ich realizacji [BabbC92], Ze względu na możliwość wykonywania połączeń, łączących każde dwa wybrane elementy struktury programowalnej, proces rozmieszczenia poszczególnych części w układzie oraz ich połączenie nie wprowadza 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 elementów syntezy, oprócz dwupoziomowej minimalizacji, najczęściej wykonywanej dla każdej jedno wyjściowej funkcji oddzielnie za pom ocą klasycznego już algorytmu Espresso [BrayH84, ŁubaOO, Mich94], jest 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 problemu polega na tworzeniu sprzężeń zwrotnych zwiększających czas propagacji sygnału od wejść do wyjść [Bolt90, Skah96], W literaturze znana jest również inna koncepcja ekspansji liczby iloczynów, wykorzystująca trójstanowe bufory wyjściowe [Bolt90, Phil85], Koncepcja ta stanowi podwaliny metod zaprezentowanych między innymi w pracach [Kani99a, Kani99b], Istnieje szereg prac prezentujących alternatywne metody syntezy, ukierunkowane przede wszystkim na optymalizację powierzchni prostych matryc programowalnych PLA. Wykorzystują one najczęściej elementy optymalizacji wielopoziomowej [BabbC92, DevaW88a, DevaW 88b, Puch98, SaucS90b, Kani99c], logiki wielowartościowej [DevaW88a, DevaW88b, ChenM88, ŁubaL94, Łuba95, Sasa88, Sasa89a, Sasa91], metody doboru aktywności poziomu wyjściowego [WeyC90], elementy kodowania wejść i wyjść [AshaD92, DevaN91, Mich94, SaldK88, Kani02a], odpowiedniego podziału matryc PLA [HsuL91, LiuW94, Gree86, MaliH91, YangC89, Kani99d], elementy dekompozycji [CiesY92, JóźwV95, MaliH91, Łuba94, ProuN95, Sasa89b, KaniOOa] lub sieci Petriego [AdamW97, Adam98], W wielu sytuacjach prowadzą do znacznie lepszych rozwiązań pod względem powierzchni od metody klasycznej [DevaW88a, DevaW88b, ChenM88, CiesY92, MajeŁ92, Łuba94, SaucS90b, YangC89, Kani99c]. Najwięcej elementów nowatorskich zawierają 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 wewnątrz struktury FPGA (ang. placement) i ściśle z nim związany proces prowadzenia połączeń (ang. routing) [Acte95, Xili99]. Dodatkowo dwa końcowe etapy syntezy (placement, routing) odgrywają 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 mogą być realizowane w blokach logicznych występujących w strukturach FPGA. Pierwsze algorytmy syntezy (MIS-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, Mich94], faktoryzację wyrażeń boolowskich wspomaganą 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, LeglW95, 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, MiliHOl, Mili03, 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, pojawiają się coraz to trudniejsze problemy, związane na
12 20 21 przykład z syntezą wysokiego poziomu, współbieżnym projektowaniem programu i sprzętu [CarpM98, GajsD92, GajsD98, OrteL98], syntezą układów wielokontekstowych [AtmeOO] itp. Głównym etapem syntezy logicznej przeznaczonej dla rozbudowanych struktur matrycowych (CPLD) jest podział projektu na znajdujące się wewnątrz bloki logiczne. W większości przypadków struktury CPLD składają się z bloków logicznych typu PAL, zawierających ograniczoną liczbę iloczynów ( =3,4,5,8). Pierwszoplanowym celem syntezy jest efektywne wykorzystywanie bloków logicznych typu PAL. Synteza logiczna dla struktur matrycowych najczęściej stanowi rozszerzenie syntezy przeznaczonej dla prostych struktur programowalnych. Polega ona najczęściej na dwupoziomowej minimalizacji z dodatkowymi elementami związanymi z odpowiednim odwzorowaniem technologicznym, umoż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, Mich94], syntezy wykorzystującej elementy XOR [Sasa93a, BranS93, SasaB90, SasaP93, Puch96] i różnego typu dekompozycji. W przypadku matrycowych struktur typu PAL mogą być wykorzystywane zarówno algorytmy przeznaczone do realizacji układów w strukturach bramkowych, jak i strategie klasycznej dekompozycji funkcjonalnej. Zdaniem autora elementy dekompozycji nie zostały jeszcze wprowadzone do procesu syntezy przeznaczonego dla struktur matrycowych. Okazuje się, że m ogą one doprowadzić do znaczących oszczędności układowych [KaniOOa], Warto zwrócić uwagę, że w początkowym okresie, teoria dekompozycji (lata ) wykorzystywana była do minimalizacji układów logicznych realizowanych na bramkach, stanowiąc konkurencję do minimalizacji Quine a-mccluskeya [Quin52, McC156, Bolt90, Kali91 ]. Wydaje się, że można by tą ideę wykorzystać również w procesie minimalizacji, przeznaczonej dla struktur matrycowych typu PAL. Proces syntezy, zaimplementowany w znanych autorowi narzędziach wspomagających projektowanie układów cyfrowych dla struktur typu PAL (ABEL [Abel90], SNAP [Snap91], MACHXL [Mach95], MAX+PLUS [Alte96, Alte97] itp.), najczęściej rozpoczyna dwupoziomowa minimalizacja 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 jest logicznie związane z wewnętrzną budową struktury typu PAL. Często rozbudowywane jest o elementy umożliwiające wykorzystanie dodatkowych zasobów logicznych, występujących w elementarnym bloku logicznym (np. element XOR, wyjściowy 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 uniwersalnych narzędzi projektowych, przeznaczonych dla szerokiej gamy układów programowalnych [Abel90, SympOOa, SympOOb]. Zaletą takich narzędzi wspomagających projektowanie jest możliwość przenoszenia opisu projektu pomiędzy różnymi firmowymi narzędziami. Najczęściej, ze względu na nieuwzględnienie w początkowym etapie syntezy właściwości docelowej struktury, nie zapewniają one jednak efektywnego wykorzystywania zasobów układu programowalnego. Drugą grupę narzędzi wspomagających projektowanie stanowią narzędzia specjalizowane, wchodzące w skład firmowych pakietów oprogramowania dostarczanego przez poszczególnych producentów układów PLD [Snap91, Mach95, Alte97]. Pozwalają one stosunkowo efektywnie wykorzystać specyficzne elementy struktur, lecz m ogą być wykorzystane do ograniczonej grupy układów programowalnych. Najczęściej jednak w pierwszych etapach synteza logiczna wykonywana jest w oderwaniu od końcowego sposobu implementacji. Takie podejście, oprócz niewątpliwych zalet, do których należy przede wszystkim łatwa 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 umożliwiają 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 zainteresowania autora ukierunkowane były przede wszystkim na opracowanie różnorodnych metod 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. Pierwotną Tablicą Przepaleń (PTP). Podział PTP na tzw. Charakterystyczne Tablice Przepaleń, odpowiadające konkretnym układom PAL, FPLA, stanowił podstawę podziału projektowanego układu na 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 wzorcó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 pomocą 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], Wszystkie pomysły były weryfikowane za pomocą tworzonych do tego celu prototypowych modułów programowych, często wykorzystujących moduły systemu Decomp, stanowiących ostatecznie poszczególne elementy systemu PALDec.
13 Tematyka pracy 1.3. Stosow ana terminologia Metody syntezy będące przedmiotem niniejszej pracy wykorzystują specyficzne cechy struktur matrycowych, scharakteryzowane przez właściwości bloku logicznego typu PAL. Koncepcja podziału całego układu matrycowego na bloki logiczne typu PAL umożliwia opracowanie ogólnych metod 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 programowalnych. Dopiero w końcowym etapie syntezy istnieje możliwość optymalizacji układu, dopasowująca go do specyficznych właściwości wykorzystywanej struktury programowalnej. Projektowany układ cyfrowy najczęściej optymalizowany jest pod kątem powierzchni (minimalizacja liczby wykorzystywanych bloków logicznych typu PAL) lub szybkości (minimalizacja warstw logicznych). Zaproponowane strategie syntezy obejmują obydwa obszary optymalizacyjne. Istotne nowatorstwo opracowanych strategii syntezy, którym poświęcona jest 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 wykorzystywanych zasobów struktury programowalnej, często zapewniając realizację w znacznie prostszym, mniejszym, tańszym układzie niż struktura wymagana przez strategię klasyczną. W kolejnych częściach pracy zostaną przedstawione między innymi: Metody realizacji wielowyjściowych funkcji w strukturach typu PAL wykorzystujące grafy wyjść (rozdział 2) Metody realizacji funkcji wykorzystujące wyjściowe bufory trój stanowe, prowadzące do znacznego zmniejszenia czasu propagacji sygnałów od wejścia do wyjścia (rozdział 3) (dwupoziomowa realizacja układów cyfrowych w strukturach typu PAL) Metody dekompozycji przeznaczone dla struktur typu PAL (rozdział 4) 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 macierzowe) 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 zawierają matryce AND-OR, z programowalnymi połączeniami w matrycy AND i stałymi połączeniami w matrycy OR. Tego typu konfiguracja matryc AND-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. Drugą 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 MAPL (ang. Multiple Array Programmable Logic). Tak więc, mówiąc o strukturach typu PAL autor 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 elementów logicznych, zawierających określoną liczbę iloczynów dołączonych na stałe do sumy logicznej, nazywanych w pracy blokami logicznymi typu PAL. Blok logiczny typu PAL, zawierający ^-iloczynów, nazywany będzie skrótowo A-iloczynowym blokiem PAL. Ograniczona liczba iloczynów zawartych w bloku logicznym typu PAL sprawia, że często trzeba zawracać sygnały z wyjść na matrycę 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. Wszystkie oznaczenia, pojęcia, skróty wprowadzone przez autora zostały przedstawione w tekście pracy oraz ujęte w odpowiednich wykazach znajdujących się na początku pracy. Strategie syntezy logicznej układów kombinacyjnych w strukturach typu PAL, wykorzystujące poszczególne, uprzednio przedstawione metody syntezy (rozdział 5). Metodyka badań sprowadza się do zaimplementowania algorytmów syntezy i ich praktycznej weryfikacji. Efekty syntezy układów testowych będą porównane w pierwszej kolejności z metodą klasyczną a potem z innymi metodami, zaimplementowanymi w dostępnych narzędziach programowych. Każda część pracy kończy się przedstawieniem wyników eksperymentów, uzyskanych za pom ocą opracowanych prototypowych programów, wykorzystanych do syntezy układów testowych (ang. benchmark) [Bench] w różnorodnych strukturach typu PAL (zawierających różnej wielkości bloki logiczne typu PAL).
14 25 2. M ETODY REALIZACJI W IELOW YJŚCIOW YCH FUNKCJI W STRU KTURACH TYPU PAL W YKO RZYSTU JĄCE GRAFY W YJŚĆ Załóżmy, że dla uproszczenia będą rozpatrywane struktury typu PAL 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. Niech wyróżnik Ay będzie liczbą implikantów, dla których funkcja f :B n -» B przyjmuje wartość 1. Niech 8 f. oznacza liczbę bloków potrzebnych do realizacji /'-tej funkcji. Rozważmy Większość układów programowalnych wykorzystuje jedną z trzech konfiguracji matryc AND-OR (rys. 1.1). Taka dwupoziomowa struktura układów programowalnych niejako naturalnie wymusza w pierwszym etapie syntezy wykonanie minimalizacji dwupoziomowej. W późniejszym etapie występuje wpasowanie zminimalizowanych funkcji do wybranej struktury programowalnej. Typ struktury układu programowalnego wpływa na sposób wykonywania minimalizacji dwupoziomowej. Struktura PLA umożliwia dołączenie każdego iloczynu do kilku sum równocześnie. W tej sytuacji w pierwszym etapie syntezy wskazane jest wykonanie minimalizacji dwupoziomowej wielo wyjściowej funkcji opisującej zachowanie układu. W strukturach typu PAL możliwe jest dołączenie wybranego iloczynu tylko do jednej sumy, stąd najczęściej minimalizacja jest wykonywana dla każdego wyjścia oddzielnie Klasyczna metoda realizacji wielowyjściowych funkcji w strukturach typu PAL Niech / będzie «-wejściową i m-wyjściową funkcją logiczną odwzorowującą zbiór B n w zbiór B m, tzn. f : B n ^> B m, gdzie 5={0,1}. Klasyczna metoda realizacji funkcji f : B n -> B m w strukturach typu PAL związana jest z realizacją zminimalizowanych funkcji f i : B n > B (i=\,2,...,m) w sieciach zbudowanych z ł-iloczynowych bloków PAL. przypadek realizacji funkcji f za pom ocą ^-iloczynowych bloków PAL. W sytuacji, gdy A f. > k, realizując funkcję f konieczne jest zawracanie sygnałów z wyjść na matrycę połączeń, określane mianem 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 mniejszą od x. Do realizacji m-funkcji (każda funkcja f : B n > B (/=1,2,...,m) zminimalizowana oddzielnie) używa się rri 4 = Z 5 /, j=i bloków logicznych typu PAL, gdzie: (2.1) 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 pomocą programu Espresso (Espresso-Dso) przedstawiona jest w postaci plików utworzonych w formacie berkeleyowskim y,.pla (rys.2.2). Z wyniku 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ć: Każda funkcja f i : B n -» B (i=\,2,...,m) może być opisana przez zbiór implikantów będących zbiorem kostek o wymiarach n oraz 1 nazywanych odpowiednio częścią wejściową oraz częścią wyjściową [Mich94], Część wejściowa składająca się z elementów 0,-,l reprezentuje iloczyn literałów, dla którego funkcja przyjmuje wartość 1, stanowiącą część wyjściową jednowyjściowego implikantu. / 4 : h - l II < Ki II c > > 1 k - \ 1 > ii?' k = = 3 Przykład 2.1 Rozważmy funkcję / : B 3 -» B 2, którą po minimalizacji funkcji /, : fi3 -» B l (/=1,2) można przedstawić w postaci f i = ac + b c, /2 = bc + a b. Zbiory kostek określających każdą z funkcji zawierają po 2 elementy, tzn.: f - U a b c a b c / 2 : f l - wybranych bloków. 5 h = -u; 1 < <1 1 II > k k - l = = 1
15 26 27 Sumując wyznaczone wartości okazuje się, że do klasycznej realizacji funkcji 5 -» fi4 należy użyć ó \ = ;=1 V i k = Z 8 f. =12 bloków logicznych typu /=1 PAL, zawierających trzy iloczyny. Jeżeli Ay\ > k, gdzie A: jest liczbą iloczynów zawartych w pojedynczym bloku logicznym typu PAL, to realizacja implikantów wymaga użycia więcej niż jednego bloku. Konsekwencją tego jest wprowadzanie wewnętrznych sprzężeń zwrotnych, umożliwiających ekspansję liczby iloczynów. Istnieją dwa sposoby ekspansji liczby iloczynów wykorzystujące sprzężenia zwrotne (rys.2.1). a) Rys Ekspansja liczby iloczynów wykorzystująca sprzężenia zwrotne Fig Product term expansion using feedback Strategia ekspansji przedstawiona na rys. 2.Ib wykorzystuje identyczną liczbę bloków co strategia z rys. 2. la, wprowadzając jednocześnie m niejszą liczbę warstw logicznych. Klasyczna realizacja przykładowej funkcji wraz z opisem poszczególnych elementów, wykorzystująca pierwszy sposób ekspansji (rys. 2. la), przedstawiona jest na rys W ogólnym przypadku realizacja funkcji f i : B n -» B będącej sum ą A j- implikantów za pom ocą bloków logicznych zawierających k iloczynów, przedstawiona na rys. 2. Ib, prowadzi do uzyskania układu w postaci struktury warstwowej, gdzie, jest m inim alną Ji Ji liczbą naturalną spełniającą nierówność A j. < k ^, tzn. /-. =f"lg^ay. ]. Wielowyjściowa funkcja f :B n >B m realizowana jest m etodą klasyczną z minimalizacją liczby warstw logicznych (metoda K_LW) w postaci struktury warstwowej, gdzie = m a x ( ^ X h - - A fm Y f - B 5. i 5 Bą. o 4. i l b a b c d e. o b f 4 f 3 f 2 f l. p e. i l b a b.ob f4.p f 3 :B 5 ^ B. i i l b a b. ob f3.p e. i 5. o 1. i l b a b.ob f 2.p e. i 5. o 1. i l b a b.ob f l.p e c d e c d e * /4 = * * /4 = A / 3 = 6 s h = A / 4 ~ k k -1 A / 3 ~ k k - \ A h = i 5h = A / 2 k \ A/,=3 abed e abode PAL /1 abde k= 3 <v,= A/i ~ k k = = = = 1 Rys Klasyczna realizacja funkcji f : B 5 ^ B Ą wykorzystująca bloki logiczne typu PAL zawierające trzy iloczyny logiczne (linią przerywaną oznaczono nie wykorzystane iloczyny) Fig Classical implementation of the function / :B 5 B 4 based on PAL-based logic blocks including three terms (unused terms marked with a dashed line)
Synteza logiczna układu realizującego zespół funkcji przełączających z użyciem bramek XOR w strukturach CPLD
BIULETYN WAT VOL. LVIII, NR 3, 29 Synteza logiczna układu realizującego zespół funkcji przełączających z użyciem bramek XOR w strukturach CPLD DARIUSZ KANIA 1, WALDEMAR GRABIEC 1 Politechnika Śląska, Wydział
Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek
Programowalne Układy Logiczne Wykład I dr inż. Paweł Russek Literatura www.actel.com www.altera.com www.xilinx.com www.latticesemi.com Field Programmable Gate Arrays J.V. Oldfield, R.C. Dorf Field Programable
Synteza logiczna dla struktur CPLD typu PAL wykorzystująca elementy XOR
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,
Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA
Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA Ogromną rolę w technice cyfrowej spełniają układy programowalne, często określane nazwą programowalnych modułów logicznych lub krótko hasłem FPLD
Elementy cyfrowe i układy logiczne
Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie
Język opisu sprzętu VHDL
Język opisu sprzętu VHDL dr inż. Adam Klimowicz Seminarium dydaktyczne Katedra Mediów Cyfrowych i Grafiki Komputerowej Informacje ogólne Język opisu sprzętu VHDL Przedmiot obieralny dla studentów studiów
Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.
Elementy cyfrowe i układy logiczne Wykład Legenda Kryterium kosztu realizacji Minimalizacja i optymalizacja Optymalizacja układów dwupoziomowych Tablica (mapa) Karnaugh a Metoda Quine a-mccluskey a Złożoność
ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS
inż. Michał HALEŃSKI Wojskowy Instytut Techniczny Uzbrojenia ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH Streszczenie: W artykule przedstawiono budowę oraz zasadę działania układów FPGA oraz
Systemy wbudowane. Układy programowalne
Systemy wbudowane Układy programowalne Układy ASIC Application Specific Integrated Circuits Podstawowy rozdział cyfrowych układów scalonych: Wielkie standardy: standardowe, uniwersalne elementy o strukturze
Minimalizacja form boolowskich
Sławomir Kulesza Technika cyfrowa Minimalizacja form boolowskich Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Minimalizacja form boolowskich Minimalizacja proces przekształcania form
Technika cyfrowa Synteza układów kombinacyjnych (I)
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych (I) Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1
Technika cyfrowa Synteza układów kombinacyjnych
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1 y 1
Temat: Pamięci. Programowalne struktury logiczne.
Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w
Część 2. Funkcje logiczne układy kombinacyjne
Część 2 Funkcje logiczne układy kombinacyjne Zapis funkcji logicznych układ funkcjonalnie pełny Arytmetyka Bool a najważniejsze aksjomaty i tożsamości Minimalizacja funkcji logicznych Układy kombinacyjne
Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara
Elektronika cyfrowa i mikroprocesory Dr inż. Aleksander Cianciara Sprawy organizacyjne Warunki zaliczenia Lista obecności Kolokwium końcowe Ocena końcowa Konsultacje Poniedziałek 6:-7: Kontakt Budynek
Elektronika i techniki mikroprocesorowe
Elektronika i techniki mikroprocesorowe Technika cyfrowa ZłoŜone one układy cyfrowe Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2 PLAN WYKŁADU idea
Wielopoziomowa synteza układów logicznych
Wielopoziomowa synteza układów logicznych Dwupoziomowa synteza sprowadza się do realizacji, w których pierwszy poziom tworzą bramki AND, a drugi bramki OR. Cała struktura układu jest opisana formułą typu:
Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie
Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej e-mail: Jacek.Mazurkiewicz@pwr.edu.pl Sprawy formalne konsultacje,
PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE
Paweł Bogumił BRYŁA IV rok Koło Naukowe Techniki Cyfrowej Dr inŝ. Wojciech Mysiński opiekun naukowy PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE Keywords: PAL, PLA, PLD, CPLD, FPGA, programmable device, electronic
Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych
Elementy logiki: Algebra Boole a i układy logiczne 1 Elementy logiki dla informatyków Wykład III Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a
Układy programowalne. Wykład z ptc część 5
Układy programowalne Wykład z ptc część 5 Pamięci ROM Pamięci stałe typu ROM (Read only memory) umożliwiają jedynie odczytanie informacji zawartej w strukturze pamięci. Działanie: Y= X j *cs gdzie j=linia(a).
PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH
II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 5-8 czerwca 005, Z otniki Luba skie PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH
T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.
Książkę: T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002. Można zakupić po najniższej cenie w księgarni Wyższej Szkoły Informatyki Stosowanej i Zarządzania ul. Newelska 6 pok.
Wielokontekstowy sterownik programowalny przyszłości wykorzystujący układy programowalne psoc
Wielokontekstowy sterownik programowalny przyszłości wykorzystujący układy programowalne psoc Dariusz Kania* Celem artykułu jest przedstawienie koncepcji działania wielokontekstowego sterownika przemysłowego
Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych
Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki
FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak mkapruziak@wi.ps.pl pok. 107, tel. 449 55 44
Synteza systemów reprogramowalnych /27 dr inż. Mariusz Kapruziak mkapruziak@wi.ps.pl pok. 07, tel. 449 55 44 FPGA, CPLD, SPLD 945 950 955 960 965 970 975 980 985 990 995 2000 0 D CLK update v cur Q Q 0
Analiza korespondencji
Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy
Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.
Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z funktorami realizującymi podstawowe funkcje logiczne poprzez zaprojektowanie, wykonanie i przetestowanie kombinacyjnego układu logicznego realizującego
SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO
II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie SNTEZA AUTOMATÓW SKOŃCZONCH Z WKORZSTANIEM METOD KODOWANIA WIELOKROTNEGO Arkadiusz Bukowiec Instytut
x x
DODTEK II - Inne sposoby realizacji funkcji logicznych W kolejnych podpunktach zaprezentowano sposoby realizacji przykładowej funkcji (tej samej co w instrukcji do ćwiczenia "Synteza układów kombinacyjnych")
Sterowniki Programowalne (SP)
Sterowniki Programowalne (SP) Wybrane aspekty procesu tworzenia oprogramowania dla sterownika PLC Podstawy języka funkcjonalnych schematów blokowych (FBD) Politechnika Gdańska Wydział Elektrotechniki i
Katedra Mikroelektroniki i Technik Informatycznych
Katedra Mikroelektroniki i Technik Informatycznych Bloki obieralne na kierunku Mechatronika rok akademicki 2013/2014 ul. Wólczańska 221/223, budynek B18 www.dmcs.p.lodz.pl Nowa siedziba Katedry 2005 2006
Sterowniki Programowalne (SP) Wykład 11
Sterowniki Programowalne (SP) Wykład 11 Podstawy metody sekwencyjnych schematów funkcjonalnych (SFC) SP 2016 WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Kierunek: Automatyka
Opracował: Jan Front
Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny
Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
Krótkie przypomnienie
Krótkie przypomnienie x i ={,} y i ={,} w., p. Bramki logiczne czas propagacji Odpowiedź na wyjściu bramki następuje po pewnym, charakterystycznym dla danego układu czasie od momentu zmiany sygnałów wejściowych.
Układy programowalne. Wykład z ptc część 5
Układy programowalne Wykład z ptc część 5 Pamięci ROM Pamięci stałe typu ROM (Read only memory) umożliwiają jedynie odczytanie informacji zawartej w strukturze pamięci. Działanie: Y= X j *cs gdzie j=linia_pamięci(a).
Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu PAL
Załącznik nr 2a Autoreferat Metody syntezy i odwzorowania technologicznego automatów sekwencyjnych dla struktur programowalnych typu Robert Czerwiński Gliwice 2017 1 1 Imię i nazwisko Robert Czerwiński
Minimalizacja form boolowskich UC1, 2009
Minimalizacja form boolowskich UC, 29 mplikanty funkcji boolowskiej UC, 29 2 mplikanty funkcji boolowskiej UC, 29 3 Metody minimalizacji UC, 29 4 Siatki Karnaugh UC, 29 5 Siatki Karnaugh UC, 29 Stosowanie
Minimalizacja formuł Boolowskich
Minimalizacja formuł Boolowskich Stosowanie reguł algebry Boole a w celu minimalizacji funkcji logicznych jest niedogodne brak metody, aby stwierdzić czy dana formuła może być jeszcze minimalizowana czasami
Tranzystor JFET i MOSFET zas. działania
Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej
o d ro z m ia r u /p o w y ż e j 1 0 c m d ł c m śr e d n ic y 5 a ) o ś r e d n ic y 2,5 5 c m 5 b ) o śr e d n ic y 5 c m 1 0 c m 8
T A B E L A O C E N Y P R O C E N T O W E J T R W A Ł E G O U S Z C Z E R B K U N A Z D R O W IU R o d z a j u s z k o d z e ń c ia ła P r o c e n t t r w a łe g o u s z c z e r b k u n a z d r o w iu
Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski
Wykład nr 1 Techniki Mikroprocesorowe dr inż. Artur Cichowski ix jy i j {0,1} {0,1} Dla układów kombinacyjnych stan dowolnego wyjścia y i w danej chwili czasu zależy wyłącznie od aktualnej kombinacji stanów
Wstęp do Techniki Cyfrowej... Teoria automatów
Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia
MIKROELEKTRONIKA [gr.], dział. elektroniki zajmujący się działaniem, konstrukcją Fifth i technologią Level układów scalonych.
Click Co to to jest edit mikroelektronika Master title style Click to edit Master text styles Second Level MIKROELEKTRONIKA [gr.], dział Third Level elektroniki zajmujący się działaniem, Fourth Level konstrukcją
Synteza układów kombinacyjnych
Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 4.0, 23/10/2014 Bramki logiczne Bramki logiczne to podstawowe elementy logiczne realizujące
Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall
Grzegorz Sułkowski, Maciej Twardy, Kazimierz Wiatr Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall Plan prezentacji 1. Architektura Firewall a załoŝenia 2. Punktu
Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08
Spis treści Wstęp.............................................................. 7 Część I Podstawy analizy i modelowania systemów 1. Charakterystyka systemów informacyjnych....................... 13 1.1.
Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera
Lekcja na Pracowni Podstaw Techniki Komputerowej z wykorzystaniem komputera Temat lekcji: Minimalizacja funkcji logicznych Etapy lekcji: 1. Podanie tematu i określenie celu lekcji SOSOBY MINIMALIZACJI
Układy kombinacyjne Y X 4 X 5. Rys. 1 Kombinacyjna funkcja logiczna.
Układy kombinacyjne. Czas trwania: 6h. Cele ćwiczenia Przypomnienie podstawowych praw Algebry Boole a. Zaprojektowanie, montaż i sprawdzenie działania zadanych układów kombinacyjnych.. Wymagana znajomość
Elementy cyfrowe i układy logiczne
Elementy cyfrowe i układy logiczne Wykład Legenda Optymalizacja wielopoziomowa Inne typy bramek logicznych System funkcjonalnie pełny Optymalizacja układów wielopoziomowych Układy wielopoziomowe układy
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 3 (4h) Konwersja i wyświetlania informacji binarnej w VHDL Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza
Minimalizacja funkcji boolowskich
Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych 2 wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 8. rzyczyna:
Technika Cyfrowa 2. Wykład 1: Programowalne układy logiczne
Technika Cyfrowa Wykład : Programowalne układy logiczne dr inż Jarosław Sugier JaroslawSugier@pwrwrocpl II pok C- J Sugier TC - Treść wykładu w tym semestrze: I Programowalne układy logiczne II Architektura
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 1 (3h) Wprowadzenie do obsługi platformy projektowej Quartus II Instrukcja pomocnicza do laboratorium z przedmiotu
Wstęp do Techniki Cyfrowej... Algebra Boole a
Wstęp do Techniki Cyfrowej... Algebra Boole a Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w
Układy logiczne układy cyfrowe
Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Jednostki obliczeniowe w zastosowaniach mechatronicznych Kierunek: Mechatronika Rodzaj przedmiotu: dla specjalności Systemy Sterowania Rodzaj zajęć: Wykład, laboratorium Computational
2. SYNTEZA UKŁADÓW LOGICZNYCH REALIZOWANYCH NA BAZIE DEMULTIFLEK3ERÓW
ZESZYTY NAUKOWE POLITECHNIKI ŁĘSKIEJ 1975 Serias Automatyka z. 34 Nr kol. 456 Ferdynand Wagner Liarla n Budka Instytut Automatyki Przemysłowej i Pomiarów SYNTEZA UKŁADÓW LOGICZNYCH REALIZOWANYCH HA BAZIE
UKŁADY MIKROPROGRAMOWALNE
UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim
Systemy na Chipie. Robert Czerwiński
Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki
Projektowanie układów FPGA. Żródło*6+.
Projektowanie układów FPGA Żródło*6+. Programowalne układy logiczne W elektronice cyfrowej funkcjonują dwa trendy rozwoju: Specjalizowane układy scalone ASIC (ang. Application Specific Integrated Circuits)
Echa Przeszłości 11,
Irena Makarczyk Międzynarodowa Konferencja: "Dzieje wyznaniowe obu części Prus w epoce nowożytnej: region Europy Wschodniej jako obszar komunikacji międzywyznaniowej", Elbląg 20-23 września 2009 roku Echa
b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.
DODATEK: FUNKCJE LOGICZNE CD. 1 FUNKCJE LOGICZNE 1. Tablice Karnaugha Do reprezentacji funkcji boolowskiej n-zmiennych można wykorzystać tablicę prawdy o 2 n wierszach lub np. tablice Karnaugha. Tablica
Metoda Karnaugh. B A BC A
Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który
1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów
Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69
Metody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne
Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Schemat ogólny X Y Układ kombinacyjny S Z Pamięć Zegar Działanie układu Zmiany wartości wektora S możliwe tylko w dyskretnych chwilach czasowych
Cyfrowe układy scalone
Ryszard J. Barczyński, 2 25 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Układy cyfrowe stosowane są do przetwarzania informacji zakodowanej
Wstęp do Techniki Cyfrowej... Układy kombinacyjne
Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.
Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek
Układy FPGA Programowalne Układy Cyfrowe dr inż. Paweł Russek Program wykładu Geneza Technologia Struktura Funktory logiczne, sieć połączeń, bloki we/wy Współczesne układy FPGA Porównanie z ASIC Literatura
Układy równań liniowych. Krzysztof Patan
Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych
Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013
Cyfrowe układy scalone
Cyfrowe układy scalone Ryszard J. Barczyński, 2010 2015 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Cyfrowe układy scalone Układy cyfrowe
Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja
Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja dr inż. Paweł Russek Program wykładu Metody konfigurowania PLD Zaawansowane metody konfigurowania FPGA Rekonfigurowalne systemy obliczeniowe Pamięć
Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.
Projekt z przedmiotu Systemy akwizycji i przesyłania informacji Temat pracy: Licznik binarny zliczający do 10. Andrzej Kuś Aleksander Matusz Prowadzący: dr inż. Adam Stadler Układy cyfrowe przetwarzają
doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.
doc. dr Beata Pułska-Turyna Zakład Badań Operacyjnych Zarządzanie B506 mail: turynab@wz.uw.edu.pl mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505. Tel.: (22)55 34 144 Mail: student@pgadecki.pl
Rok akademicki: 2030/2031 Kod: EEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Podstawy sterowania logicznego Rok akademicki: 2030/2031 Kod: EEL-1-523-s Punkty ECTS: 5 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Elektrotechnika
Adam Opara. Dekompozycyjne metody syntezy układów kombinacyjnych wykorzystujące binarne diagramy decyzyjne
POLITECHNIKA ŚLĄSKA W GLIWICACH WYDZIAŁ AUTOMATYKI ELEKTRONIKI I INFORMATYKI INSTYTUT INFORMATYKI Adam Opara Dekompozycyjne metody syntezy układów kombinacyjnych wykorzystujące binarne diagramy decyzyjne
Podział układów cyfrowych. rkijanka
Podział układów cyfrowych rkijanka W zależności od przyjętego kryterium możemy wyróżnić kilka sposobów podziału układów cyfrowych. Poniżej podam dwa z nich związane ze sposobem funkcjonowania układów cyfrowych
Bramki logiczne Podstawowe składniki wszystkich układów logicznych
Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości
Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 12 - synteza i minimalizacja funkcji logicznych Instytut Automatyki i Robotyki Warszawa, 2017 Synteza funkcji logicznych Terminy - na bazie funkcji trójargumenowej y = (x 1, x 2, x 3 ) (1) Elementarny
Cyfrowe układy scalone
Cyfrowe układy scalone Ryszard J. Barczyński, 2012 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Publikacja współfinansowana ze środków
Minimalizacja funkcji boolowskich c.d.
Minimalizacja funkcji boolowskich c.d. Metoda tablic Karnaugha Metoda Quine a McCluskey a Absolutnie nieprzydatna do obliczeń komputerowych Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych
WYKORZYSTYWANIE WYJŚCIOWYCH MAKROKOMÓREK UKŁADU PLD W
WYKORZYSTYWANIE WYJŚCIOWYCH MAKROKOMÓREK UKŁADU PLD W CHARAKTERZE ELEMENTÓW PAMIĘCI AUTOMATU SKOŃCZONEGO Adam Klimowicz, Walery Sołowjew Wydział Informatyki Politechniki Białostockiej, ul. Wiejska 45A,
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury
ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
Macierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
Układy kombinacyjne. cz.2
Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)
Współczesne techniki informacyjne
Współczesne techniki informacyjne są multimedialne, można oczekiwać, że po cywilizacji pisma (i druku) nastąpi etap cywilizacji obrazowej czyli coraz większa jest potrzeba gromadzenia i przysyłania wielkiej
SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie
SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1 Układy kombinacyjne i sekwencyjne - przypomnienie SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 2 Stan
Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL
Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Arkadiusz Bukowiec 1 Radosław Gąsiorek 2 Agnieszka Węgrzyn 3 Prezentowany referat przedstawia ogólną koncepcję
Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18
Spis treści Przedmowa... 11 Wykaz oznaczeń... 13 1. Wstęp... 15 1.1. Układycyfrowe... 15 1.2. Krótki esej o projektowaniu.... 15 2. Układy kombinacyjne... 18 2.1. Podstawyprojektowaniaukładówkombinacyjnych...
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Układy cyfrowe. Najczęściej układy cyfrowe służą do przetwarzania sygnałów o dwóch poziomach napięć:
Układy cyfrowe W układach cyfrowych sygnały napięciowe (lub prądowe) przyjmują tylko określoną liczbę poziomów, którym przyporządkowywane są wartości liczbowe. Najczęściej układy cyfrowe służą do przetwarzania
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Dekompozycja i odwzorowanie technologiczne z wykorzystaniem binarnych diagramów decyzyjnych
POLITECHNIKA ŚLĄSKA W GLIWICACH WYDZIAŁ AUTOMATYKI ELEKTRONIKI I INFORMATYKI INSTYTUT INFORMATYKI mgr inż. Marcin Kubica Dekompozycja i odwzorowanie technologiczne z wykorzystaniem binarnych diagramów
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 ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów
Wykorzystanie bramek prądowych i napięciowych CMOS do realizacji funkcji bloku S-box algorytmu Whirlpool
Magdalena Rajewska Robert Berezowski Oleg Maslennikow Adam Słowik Wydział Elektroniki i Informatyki Politechnika Koszalińska ul. JJ Śniadeckich 2, 75-453 Koszalin Wykorzystanie bramek prądowych i napięciowych