TC Moduł 15: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd1.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd1.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Zaawansowane metody syntezy logicznej w projektowaniu układów cyfrowych w strukturach programowalnych. | ||
|} | |} | ||
Linia 8: | Linia 8: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd2.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd2.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Jak już mówiliśmy 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 (''Field Programmable Logic Devices''). | ||
Obecnie produkowane układy FPLD w zależności od ich struktury klasyfikujemy na: proste układy PLD, złożone układy PLD (''Complex'' PLD, w skrócie CPLD) oraz układy FPGA. W prostych układach PLD podstawowym elementem konstrukcyjnym jest matryca AND-OR i zespoły elementów wyjściowych, które w najprostszych układach ograniczają się do przerzutników i trójstanowych buforów wyjściowych, a w bardziej rozbudowanych obejmują dodatkowo multipleksery oraz bramki XOR i z tych powodów nazywane są makrokomórkami (''Macrocell''). | |||
Matryca AND-OR może być matrycą typu PAL (''Programmable Array Logic''), której cechą charakterystyczną jest programowalna matryca AND i stała matryca OR lub typu PLA (''Programmable Logic Array''), gdzie obie matryce, AND i OR są programowalne. Znaczy to, że PAL jest zespołem bramek iloczynowych dołączonych do oddzielnych bramek OR, a w PLA każda bramka AND może być dołączona do dowolnej bramki OR. | |||
|} | |} | ||
Linia 15: | Linia 20: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd3.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd3.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Symboliczny schemat matrycy PLA rozumieć należy następująco: linie poziome reprezentują zmienne wejściowe i wyjściowe. Linie wejściowe są podwójne, górna odpowiada zmiennej w postaci prostej, dolna – zmiennej w postaci zanegowanej. Linie pionowe reprezentują iloczyny (wejścia bramek AND). Zmienna (prosta lub zanegowana) jest czynnikiem iloczynu jeżeli na przecięciu odpowiedniej linii poziomej i pionowej jest kropka. Jeśli iloczyn ten jest składnikiem odpowiedniej sumy (bramki OR) – analogiczna kropka jest umieszczona na przecięciu linii pionowej i poziomej wyjściowej. Fizycznie kropka oznacza, że dany punkt połączeniowy między linią pionową i poziomą jest zaprogramowany. Proces programowania jest wykonywany automatycznie, najczęściej na podstawie schematu punktów programowania wytworzonego wg. procesu syntezy wykonanego w komputerowym systemie projektowania. W rezultacie tradycyjny układ logiczny zbudowany z bramek może być łatwo zrealizowany w strukturze PLA. | ||
|} | |} | ||
Linia 22: | Linia 27: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd4.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd4.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|W podobny sposób interpretujemy schemat matrycy PAL. Jedyną różnicą jest to, że w tym przypadku wyjścia bramek AND są dołączone do wejść bramek OR na stałe – czyli nie są programowane. Z tych powodów liczba linii iloczynu w strukturach typu PAL jest przy realizacjach zespołów funkcji na ogół większa niż w matrycach PLA. Mimo to w produkowanych obecnie strukturach programowalnych częściej stosuje się matryce typu PAL. Decydują o tym inne zalety tych struktur, a właściwie technologiczne wady matryc PLA. | ||
|} | |} | ||
Linia 29: | Linia 34: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd5.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd5.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Bardziej rozbudowane struktury programowalne to przede wszystkim układy CPLD oraz FPGA. | ||
|} | |} | ||
Linia 36: | Linia 41: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd6.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd6.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|W układach CPLD cechą charakterystyczną struktury jest programowalna matryca połączeń (PIA – ''Programmable Interconnect Array'') otoczona makrokomórkami (''Macrocell''). | ||
Typowa makrokomórka układów CPLD typu MAX (ALTERA) jest zbudowana z matrycy AND-OR (najczęściej typu PAL), z programowalnych przerzutników, bramek OR i XOR, multiplekserów i buforów trójstanowych. Jest to jakby sekcja układu PAL dodatkowo wyposażona w przerzutniki i inne elementy logiczne spełniające rolę pomocniczą. | |||
Cechą charakterystyczną tej struktury są bloki logiczne LAB (''Logic Array Block''), zbudowane z matrycy tzw. ekspanderów i matrycy makrokomórek (na ogół kilkanaście makrokomórek) połączonych z matrycą PIA i blokiem wejściowo-wyjściowym (''I/O Control Block''). | |||
|} | |} | ||
Linia 43: | Linia 53: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd7.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd7.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|W układach FPGA typową strukturą jest prostokątna macierz elementów logicznych zwanych komórkami, rozmieszczonych w środowisku komutacyjnym kanałów połączeniowych, jak to jest pokazane na rysunku na planszy. | ||
Komórka struktur FPGA jest zazwyczaj zbudowana z uniwersalnego układu kombinacyjnego (w sensie możliwości realizacji dowolnej funkcji logicznej) o kilku wejściach i jednym lub dwóch wyjściach, przerzutników i pomocniczych multiplekserów. Uniwersalny układ kombinacyjny nazywa się strukturą tablicową – LUT (''Look Up Table''), a jednocześnie klasę układów zbudowanych z takich komórek nazywa się układami FPGA typu LUT. Budowa komórek układów FPGA wywarła ogromny wpływ na rozwój specjalnych procedur syntezy logicznej zwanych dekompozycją funkcjonalną. | |||
|} | |} | ||
Linia 50: | Linia 63: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd8.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd8.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Wpływ zaawansowanych procedur syntezy logicznej na jakość implementacji sprzętowych układów cyfrowych jest najbardziej znaczący w algorytmach wykorzys¬tujących struktury FPGA typu LUT. Struktury takie są powszechnie stosowane w ukła¬dach przetwarzania informacji i sygnałów np. w realizacjach algorytmów kryptogra¬ficznych, w filtrach cyfrowych, układach transformacji falkowej oraz w realiza¬cjach układów wykorzystujących arytmetykę rozproszoną. Zatem stosowanie zaawansowanych procedur syntezy logicznej – dostępnych głównie w oprogramowaniu uniwersyteckim – niejednokrotnie może się przyczynić do sukcesu rynkowego wielu urządzeń cyfrowych, w szczególności tych realizowanych w technologii układów programowalnych przez użytkownika PLD/FPGA. | ||
|} | |} | ||
Linia 57: | Linia 70: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd9.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd9.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Zalety struktur FPGA to przede wszystkim elastyczność architektury (równoległość przetwarzania i dowolna szerokość ścieżki danych), wielokrotne użycie tych samych zasobów sprzętowych oraz rekonfigurowalność. Wady to niedoskonałość narzędzi projektowania oraz trudny proces uczenia się języka HDL. | ||
|} | |} | ||
Linia 64: | Linia 77: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:TC_M15_Slajd10.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:TC_M15_Slajd10.png|thumb|500px]] | ||
|valign="top"| | |valign="top"|Jak już mówiliśmy, tworzenie modelu układu cyfrowego w języku HDL bardziej przypomina pisanie programów komputerowych niż tradycyjne projektowanie polegające na syntezie strukturalnej. Tym samym synteza układów cyfrowych za pomocą komputerowych narzędzi projektowania jest złożonym procesem, którego procedury obejmują: | ||
:a) specyfikację układu w języku HDL, | |||
:b) syntezę funkcjonalną, | |||
:c) syntezę i optymalizację logiczną, | |||
:d) odwzorowanie technologiczne, | |||
:e) syntezę fizyczną lub programowanie układu. | |||
|} | |} |
Wersja z 02:28, 15 wrz 2006
![]() |
Zaawansowane metody syntezy logicznej w projektowaniu układów cyfrowych w strukturach programowalnych. |
![]() |
Bardziej rozbudowane struktury programowalne to przede wszystkim układy CPLD oraz FPGA. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |