TC Moduł 1: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
 
Linia 1: Linia 1:
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd1.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd1.png]]
|valign="top"|
+
|valign="top"|Rola i znaczenie techniki cyfrowej we współczesnej informatyce.
 
|}
 
|}
  
Linia 7: Linia 7:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd2.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd2.png]]
|valign="top"|Podstawą teoretyczną techniki cyfrowej są układy logiczne. Funkcjonalnie układy logiczne klasyfikujemy na układy kombinacyjne i układy sekwencyjne. Wykład rozpoczynamy od układów kombinacyjnych. Układ kombinacyjny jest podstawowym układem logicznym umożliwiającym realizację funkcji boolowskich. Układ kombinacyjny konstruujemy z elementów logicznych po to, aby realizować funkcje lub ich zespoły opisujące bardziej skomplikowane układy cyfrowe. Dlatego rozważania o układach kombinacyjnych rozpoczynamy od pojęcia funkcji boolowskiej.
+
|valign="top"|Technika cyfrowa jest w dzisiejszych czasach obszarem wiedzy o całkowicie interdyscyplinarnym obliczu. Jej zagadnienia kształtowane z jednej strony przez języki opisu sprzętu, a z drugiej przez programowalne moduły logiczne, śmiało mogą być zaliczone zarówno do Informatyki, Elektroniki jak i Telekomunikacji. Dzisiejsze techniki projektowania układów cyfrowych polegają już nie tylko na składaniu układu z dostępnych komponentów, a raczej na procesie formalnej, abstrakcyjnej specyfikacji projektu w odpowiednim języku opisu sprzętu (HDL – Hardware Description Language) oraz na transformacji tej specyfikacji przy użyciu różnorodnych narzędzi komputerowego wspomagania projektowania '''CAD''' (''Computer Aided Design'').  
 
|}
 
|}
  
Linia 14: Linia 14:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd3.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd3.png]]
|valign="top"|Pojęcie funkcji boolowskiej jest pojęciem podstawowym umożliwiającym modelowanie zjawisk fizycznych reprezentowanych jako odwzorowanie ciągów (wektorów) binarnych należących do zbioru <b><i>X</i></b> w ciągi binarne (wektory) ze zbioru <b><i>Y</i></b>, gdzie zbiory <b><i>X</i></b>, <b><i>(Y)</i></b> są podzbiorami <math>n\,</math>-krotnego, (<math>m\,</math>-krotnego) iloczynu kartezjańskiego zbioru <b><i>B</i></b> = {0, 1}. Na planszy podana jest definicja funkcji boolowskiej. Zasygnalizowane są również najczęściej stosowane metody reprezentacji funkcji boolowskich.
+
|valign="top"|Przykładowe tytuły rozdziałów książki De Micheliego ''Synteza i optymalizacja układów cyfrowych: Języki modelowania sprzętu, Języki behawioralne, Kompilacja oraz optymalizacja behawioralna, Model problemów kolejkowania, Kolejkowanie przy ograniczeniach czasowych'' itp. w pełni potwierdzają tezę, że współczesna technika cyfrowa przekroczyła granice tradycyjnej elektroniki dochodząc do obszarów do tej pory zaliczanych do informatyki. Jednocześnie ogromne możliwości realizacji układów cyfrowego przetwarzania sygnałów w strukturach programowalnych FPGA potwierdzają związki techniki cyfrowej z telekomunikacją.
 
|}
 
|}
  
Linia 21: Linia 21:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd4.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd4.png]]
|valign="top"|Funkcja <math>f\,</math> może być przedstawiona w postaci tablicy prawdy. Jest to tablica o <math>n+1\,</math> kolumnach i <math>2^n\,</math> wierszach. W kolejnych wierszach są zapisywane wszystkie wartości ciągu
+
|valign="top"|Ogromną rolę w zacieraniu różnicy między oprogramowaniem (software), tradycyjnie zaliczanym do produktów informatyki, a sprzętem (hardware) jako produktem tradycyjnie rozumianej elektroniki, spełniają układy programowalne przez użytkownika. Stały się one podstawą powstania nowego rynku własności intelektualnej, którego ofertą handlową są rdzenie projektowe (IP Core), czyli sprzęt reprezentowany w postaci oprogramowania, docelowo przeznaczonego do implementacji w układzie scalonym (programowalnym lub bezpośrednio wykonywanym w krzemie), zamiast w komputerze.
<math>x_1 ,..., x_n\,</math>, czyli wszystkie wektory <math>x\,</math>. W ostatniej kolumnie podana jest wartość <math>y\,</math> przyporządkowywana danemu wektorowi lub „–”, jeżeli funkcja dla tego wektora nie jest określona. Kolejne wektory są numerowane, przy czym wartość <math>i\,</math> podana z lewej strony w dodatkowej kolumnie jest dziesiętnym odpowiednikiem wektora <math>x\,</math> traktowanego jako liczba w zapisie dwójkowym.  
 
  
 
|}
 
|}
Linia 30: Linia 29:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd5.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd5.png]]
|valign="top"|Oto przykłady uproszczonego zapisu funkcji boolowskich. Podane zapisy specyfikują funkcje boolowskie, których wektory wejściowe określone są liczbami dziesiętnymi.
+
|valign="top"|Technika cyfrowa ma obecnie przemożny wpływ na wszystkie obszary ludzkiej aktywności; między innymi radykalnie przeobraziła metody i formy komunikacji społecznej zarówno w ujęciu zbiorowym jak i indywidualnym, a układy cyfrowe można dziś znaleźć niemal w każdym urządzeniu technicznym.
 
|}
 
|}
  
Linia 37: Linia 36:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd6.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd6.png]]
|valign="top"|Funkcje boolowskie reprezentowane odwzorowaniem <math>f\,</math>, jakkolwiek możliwe do bezpośredniej realizacji technicznej, nie najlepszą formą do zastosowań. Znacznie wygodniejsze są reprezentacje funkcji w postaci formuł boolowskich. Ich zaleta wynika przede wszystkim z łatwej realizacji elementów logicznych zwanych bramkami logicznymi, które to elementy stanowią naturalną realizację formuł (wyrażeń) boolowskich, gdzie występują w postaci operatorów.
+
|valign="top"|Obszarem, w którym technika cyfrowa doprowadziła do bardzo istotnych zmian urządzenia multimedialne. Dzięki multimediom rozwinęły się niespotykane do tej pory usługi teleinformatyczne takie jak: wirtualne usługi bankowe, telenauczanie, wideokonferencje, itp. Masowe zapotrzebowanie na te usługi tworzy atrakcyjny obszar działalności przemysłowo-gospodarczej.  
Formuła boolowska to wyrażenie, w którym zmienne boolowskie połączone są operatorami:
+
|}
  
+ (OR), <math>\dot{ }\,</math> (AND), <math>\bar{x}\,</math> (NOT).
+
<hr width="100%">
  
Operatory te zdefiniowane są w tabelce podanej na planszy dla działań dwuargumentowych AND i OR i jednoargumentowego NOT, ale ich uogólnienie na operatory wieloargumentowe jest oczywiste.
+
{| border="0" cellpadding="4" width="100%"
 +
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd7.png]]
 +
|valign="top"|Przykładem firmy, która odniosła sukces w takiej działalności jest ''Advanced Digital Broadcast'' z Zielonej Góry – potentat technologii dla telewizji cyfrowej. ADB jest firmą, której podstawą sukcesu specjaliści wykształceni w Instytucie Informatyki i Elektroniki Politechniki Zielonogórskiej.
 
|}
 
|}
  
Linia 49: Linia 50:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd7.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd8.png]]
|valign="top"|Dla funkcji opisanej tablicą prawdy podaną w tabelce na planszy podajemy sposób tworzenia formuły boolowskiej.
+
|valign="top"|Rozwój techniki cyfrowej jest bezpośrednio związany z rozwojem technologii mikroelektronicznych. Dzisiejsze możliwości technologiczne są ogromne. Technologia dostarcza konstruktorom układów cyfrowych specjalizowane układy scalone (Application Specific Integrated Circuits) o zasobach sprzętowych rzędu kilkudziesięciu milionów tranzystorów, co z punktu widzenia techniki cyfrowej jest równoważne kilku milionom bramek logicznych.  
 +
 
 
|}
 
|}
  
Linia 56: Linia 58:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd8.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd9.png]]
|valign="top"|A na tej planszy pokazana jest realizacja tej funkcji na bramkach AND, OR, NOT.
+
|valign="top"|W zależności od technologii i techniki projektowania specjalizowane układy scalone klasyfikujemy w następujących kategoriach:
 +
<ol style="list-style-type:lower-alpha">
 +
  <li>układy zamawiane przez użytkownika (''Full Custom''),</li>
 +
  <li>układy projektowane przez użytkownika (''Semi Custom''),</li>
 +
  <li>układy programowane przez użytkownika (FPLD – ''Field Programmable Logic Devices'').</li>
 +
</ol>
 +
 
 +
Największe układy ASIC są zwykle produkowane w wielkich seriach i najczęściej całkowicie wykonywane przez producenta dla zamawiającego (''Full Custom''). Rola zamawiającego ogranicza się do przedstawienia wymagań (założeń projektowych), a do producenta należy wykonanie projektu, prototypu, sprawdzenie działania prototypu oraz ostateczna produkcja. Układy takie opłaca się produkować tylko w bardzo dużych seriach (np. sprzęt powszechnego użytku, mikrokomputery) lub do wyjątkowych zastosowań.
  
W układzie kombinacyjnym z rysunku na planszy funkcja <math>f\,</math>, realizowana na jego wyjściu <math>f\,</math>, reprezentuje odwzorowanie z tabelki prawdy, co łatwo sprawdzić wprowadzając na wejścia układu odpowiednie wektory binarne i obliczając wartość uzyskaną na wyjściu <math>y\,</math>. Na przykład dla <math>x_1 = x_2 = 0, x_3 = 1\,</math> na wyjściu bramki AND1 pojawi się sygnał o wartości 1, i w rezultacie wyjście <math>y\,</math> przyjmie wartość 1. Natomiast dla <math>x_1 = x_2 = x_3 = 0\,</math> na wyjściach wszystkich bramek AND będzie 0, a więc jednocześnie <math>y\,</math> przyjmie wartość 0, co jest zgodne z tabl. 3.5.
+
Cechą charakterystyczną układów ''Semi Custom'' jest wielokrotne wykorzystywanie raz zaprojektowanych bloków funkcjonalnych, które są przechowywane w bibliotece (w praktyce w pamięci komputera). Bloki takie są często zwane komórkami bibliotecznymi. W układach ''Semi custom'' typowym uproszczeniem projektowania jest standaryzacja komórek bibliotecznych przez narzucanie jednolitych wymagań dotyczących kształtu, wymiarów, rozmieszczenia szyn zasilania, wejść i wyjść, co pozwala w znacznym stopniu zautomatyzować proces projektowania struktury fizycznej układu.
 +
 
 +
Struktura fizyczna każdego układu zaprojektowanego w stylu ''Full Custom'' lub ''Standard Cells'' wymaga przygotowania projektów masek produkcyjnych i przeprowadzenia złożonego procesu technologicznego. Oznacza to, że czas potrzebny do otrzymania prototypowych egzemplarzy nowo zaprojektowanego układu jest rzędu co najmniej kilku tygodni.
 +
   
 +
Z tych powodów coraz większą rolę w technice cyfrowej odgrywają programowalne moduły logiczne (FPLD – Field Programmable Logic Devices), krótko zwane układami (strukturami) programowalnymi.
  
 
|}
 
|}
Linia 66: Linia 79:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd9.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd10.png]]
|valign="top"|W dwuelementowej algebrze Boole'a wprowa¬dza się też inne działania (operatory). Do najważniejszych z nich należą: zanegowany iloczyn (NAND), zanegowana suma (NOR), suma wyłączająca (tzw. suma modulo 2 lub różnica symetryczna, oznaczana EXOR). Operatorom tym odpowiadają stosowne symbole bramek. 
+
|valign="top"|Układy programowalne to – z punktu widzenia struktury – układy typu matrycowego lub komórkowego, jednak z możliwością programowania połączeń na drodze elektrycznej. W ich przypadku proces produkcyjny jest odmienny – producent dostarcza „prefabrykaty” projektantowi, który może je zaprogramować u siebie „na biurku”.
 +
 
 +
Atrakcyjność układów FPLD jako alternatywy dla układów ''Full Custom'' i ''Semi Custom'' wynika przede wszystkim z połączenia naturalnych walorów układów programowalnych, które zapewniają krótki czas opracowania prototypu i łatwość jego modyfikacji i są dostępne „z półki”, z coraz doskonalszymi parametrami użytkowymi – szybkością działania i pojemnością.  
 +
 
 
|}
 
|}
  
Linia 73: Linia 89:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd10.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd11.png]]
|valign="top"|Nie kwestionowaną zaletą formuł boolowskich jest możliwość ich upraszczania, a co zatem idzie możliwość uzyskiwania realizacji oszczędniejszych z punktu widzenia liczby bramek. Zasady formalne upraszczania formuł boolowskich związane są z prawami i własnościami algebry Boole’a.
+
|valign="top"|Rozwój technologii stymuluje rozwój komputerowych narzędzi projektowania, co tym bardziej poszerza związek techniki cyfrowej z Informatyką.  Jest to zrozumiałe, gdyż sensowne przetworzenie milionów bramek w zamierzenia konstruktora układów cyfrowych nie może się odbyć bez udziału komputerowych systemów  projektowania wyposażonych w edytor graficzny, tekstowy oraz kompilator.
 
|}
 
|}
  
Linia 80: Linia 96:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd11.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd12.png]]
|valign="top"|
+
|valign="top"|Okno edytora graficznego komputerowego systemu projektowania MAX+PLUSII firmy Altera.
 
|}
 
|}
  
Linia 87: Linia 103:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd12.png]]
+
|valign="top" width="500px"|width="450px"|[[Grafika:TC_M1_Slajd13.png]]
|valign="top"|Stosując prawa algebry Boole’a, poprzednio podane wyrażenie na <math>f\,</math> można uprościć w sposób pokazany na planszy. Ostatecznie wyrażenie to można zrealizować w układzie kombinacyjnym, którego struktura – znacznie prostsza od poprzedniej realizacji – jest pokazana na rysunku. Zasygnalizowany tu proces upraszczania wyrażeń boolowskich ma ogromne znaczenie praktyczne i opracowano dla jego potrzeb wiele zaawansowanych metod syntezy, które z technicznego punktu widzenia nazywa się <i>metodami minimalizacji funkcji boolowskich</i>. Wiele z nich doczekało się realizacji w postaci zaawansowanych narzędzi komputerowych i stanowi podstawę nowoczesnej syntezy logicznej.
+
|valign="top"|Okno edytora tekstowego komputerowego systemu projektowania MAX+PLUSII firmy Altera.
 
|}
 
|}
  
Linia 94: Linia 110:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd13.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd14.png]]
|valign="top"|Na kolejnych planszach pokazujemy cały proces syntezy funkcji boolowskiej oraz omawiamy jej sens fizyczny.
+
|valign="top"|Okno kompilatora komputerowego systemu projektowania MAX+PLUSII firmy Altera.
 
|}
 
|}
  
Linia 101: Linia 117:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|[[Grafika:TC_M1_Slajd14.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd15.png]]
|valign="top"|
+
|valign="top"|Typowy komputerowy system projektowania jest wyposażony w moduł syntezy funkcjonalnej, moduł syntezy logicznej, oraz procedury odwzorowania technologicznego. Zadaniem takiego systemu jest realizacja algorytmu przetwarzania informacji cyfrowej w układzie scalonym zbudowanym z milionów bramek logicznych.
 
|}
 
|}
  
Linia 108: Linia 124:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd15.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd16.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Nie jest to zadanie łatwe i z tych powodów synteza układów logicznych jest jednym z najważniejszych działów techniki cyfrowej. Trudności wynikają przede wszystkim z faktu, iż inne były wymagania stawiane układom logicznym wtedy, gdy były one konstruowane z pojedynczych tranzystorów (lata 50.) lub wtedy, gdy cyfrowe układy scalone zwierały kilka bramek (lata 70.). Wobec dzisiejszych milionów bramek zawartych w jednym, reprogramowalnym i rekonfigu¬rowalnym module scalonym, jest to postęp ilościowy, który musiał całkowicie zmienić – i ciągle jeszcze zmienia – metody syntezy układów logicznych.
 
|}
 
|}
  
Linia 115: Linia 131:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd16.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd17.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Najważniejszymi zagadnieniami nowoczesnej syntezy logicznej  jakie rozwinęły się w ciągu ostatnich 20. lat w wyniku postępu technologii : synteza dwupoziomowa (''two-level synthesis''), synteza wielopoziomowa (''multi-level synthesis''), minimalizacja symboliczna, dekompozycja matryc PLA oraz dekompozycja funkcjonalna.  
 
|}
 
|}
  
Linia 122: Linia 138:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd17.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd18.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Ze zrozumiałych względów komercyjne systemy projektowania nie nadążają za rozwojem technologii. Dlatego powstają uniwersyteckie systemy syntezy logicznej. Systemy te – często wykonywane w formie niezbyt wygodnej do stosowania w bezpo¬średniej praktyce inżynierskiej – spełniają w dziedzinie nowoczesnych metod syntezy układów cyfrowych nie mniejszą rolę niż firmowe systemy komercyjne. Z założenia są to systemy przy¬stosowane do obsługi przez użytkownika o głębszej wiedzy w zakresie syntezy logicznej. Speł¬niają więc rolę niejako  „awaryjną”, tzn. stosowane w tych przypadkach, w których systemy komercyjne nie dają pozytywnych rezultatów ze względu na dużą złożoność obliczeniową.  
|}
 
  
<hr width="100%">
+
Drugą, nie mniej ważną rolą systemów uniwersyteckich jest zdobywanie wiedzy i doświadczenia w zakresie skuteczności procedur obliczeniowych. Tak więc z biegiem lat wiele programów i procedur obliczeniowych, stosowanych w systemach uniwersyteckich, weszło do wyposażenia systemów komercyjnych. Typowym przykładem mogą tu być systemy opracowane na uniwersytecie kalifornijskim w Berkeley, na przykład ESPRESSO, oraz SIS. Dziś  procedury  minimalizacji funkcji boolowskich programu ESPRESSO są stosowane bezpo¬średnio (jako wbudowane do systemu) lub pośrednio (z możliwością wymiany danych) we wszystkich prawie systemach komputerowego projektowania układów cyfrowych.
  
{| border="0" cellpadding="4" width="100%"
 
|width="450px"|[[Grafika:TC_M1_Slajd18.png]]
 
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
 
 
|}
 
|}
  
Linia 136: Linia 148:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd19.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd19.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Wraz z wprowadzeniem języków HDL oraz struktur programowalnych pojawiły się nowe możliwości aplikacyjne dla techniki cyfrowej. Wynikają one nie tylko z poprawy parametrów funkcjonalnych i czasowych oraz zmian w architekturze logicznej, ale również z samej istoty reprogramowalności. Jeden z kierunków takich aplikacji określa koncepcja produktu wirtualnego – systemu, funkcji lub układu scalonego, które nie istnieją w rzeczywistości materialnej, ale mogą być potencjalnie w każdej chwili zrealizowane. Takie układy wirtualne mogą być zarówno gotowymi produktami o zmiennych funkcjach i właściwościach, jak również elastycznymi „klockami”, z których można konstruować większe systemy. Z punktu widzenia gotowego produktu wytwarzanego seryjnie możliwość modyfikacji i nadawania jego standardowej konstrukcji indywidualnie wyspecjalizowanych funkcji i parametrów stwarza wspaniałą perspektywę.  
 
|}
 
|}
  
Linia 143: Linia 155:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd20.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd20.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Powstaje ogromny rynek wirtualnych produktów specjalizowanych, tzw. rynek własności intelektualnej IP (''Intellectual Property'') zawartej w układach zaprojektowanych w postaci kodów źródłowych języków HDL. Do najważniejszych stowarzyszeń i firm zajmujących się opracowywaniem rdzeni projektowych należą: Altera Megafunction Partners Program, Xilinx Alliance CORE, TILAB, inSILICON CORPORATION, DIGITAL COMMUNICATION, IP SEMICONDUCTORS, a w Polsce Evatronix. Oferta tych firm obejmuje oprócz standardowych układów cyfrowych takich jak: sumatory, multiplikatory, również zaawansowane układy przetwarzania sygnałów cyfro¬wych: filtry, kodeki, kodery FFT, DCT, układy kryptograficzne, dekodery Viterbiego dla sieci LAN, skramblery i deskramblery, a także komutatory i rutery ATM.  
 
|}
 
|}
  
Linia 150: Linia 162:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd21.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd21.png]]
|valign="top"|Zastosowania omówionego procesu syntezy w dzisiejszej technice ogromne.  
+
|valign="top"|Rynek produktów wirtualnych, to jednocześnie ogromne wyzwanie dla zaawan¬sowanych metod optymalizacji logicznej. Wynika to z faktu, że konkurencję na tym rynku wygrywać będą tylko najlepsze produkty, do których realizacji wykorzystane będą zaawansowane metody syntezy, niejednokrotnie występujące wyłącznie w specja¬listycznym oprogramowaniu uniwersyteckim. Duża złożoność struktur programowalnych (w szczególności FPGA), a także ich nietypowe konstrukcje (komórki), spowodowały wzrost roli i znaczenia zaawansowanych procedur syntezy logicznej. Nie jest przypadkiem, że to właśnie układom FPGA poświęcono ogromną liczbę publikacji, a odpowiednie procedury syntezy logicznej stały się już kanonem nowoczesnych metod projektowania i testowania układów cyfrowych.  
 
|}
 
|}
  
Linia 157: Linia 169:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd22.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd22.png]]
|valign="top"|Zastosowania omówionego procesu syntezy w dzisiejszej technice ogromne.  
+
|valign="top"|Synteza logiczna układów cyfrowych dotyczy głównie układów przetwarzających sygnały binarne, a jej podstawowym zadaniem jest optymalizacja realizacji tych układów przy stosowaniu różnych technologii. W ostatnich latach można zaobserwować tendencje do stosowania podobnych lub identycznych metod syntezy w zadaniach typowych dla przechowywania i wyszukiwania informacji, pozyskiwania wiedzy, optymalizacji baz danych, a więc w zadaniach z dziedziny systemów ekspertowych i maszynowego uczenia, a nawet sztucznej inteligencji.  
 
|}
 
|}
  
Linia 164: Linia 176:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd23.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd23.png]]
|valign="top"|Zastosowania omówionego procesu syntezy w dzisiejszej technice ogromne.  
+
|valign="top"|Przyczyną tych tendencji jest podobieństwo reprezentacji danych w systemach informacyjnych i syntezie logicznej.  System informacyjny opisywany jest tablicą decyzyjną zaś układ logiczny – tablicą prawdy. Atrybutom warunku systemu informacyjnego odpowiadają zmienne wejściowe, zaś atrybutom decyzji – zmienne wyjściowe układu logicznego. Wspomniane podobieństwa systemów informacyjnych i syntezy logicznej umożliwiają zastosowanie podobnych metod kompresji danych. Na przykład problem nadmiarowości danych w systemach informacyjnych jest rozwiązywany za pomocą minimalizacji liczby atrybutów i usuwaniem nadmiarowych reguł decyzyjnych. W syntezie logicznej analogiczną funkcję spełnia minimalizacja, czyli poszukiwanie jak najprostszych wyrażeń boolowskich opisujących układ oraz redukcja argumentów i dekompozycja.  
 
|}
 
|}
  
Linia 171: Linia 183:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd24.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd24.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
+
|valign="top"|Z powyższego omówienia wynika, że w ramach niniejszego wykładu omówimy kolejno następujące zagadnienia:
 +
*Układy logiczne
 +
*Synteza logiczna i odwzorowanie technologiczne
 +
*Programowalne moduły logiczne
 +
*Języki opisu sprzętu
 +
*Synteza sprzętowo-programowa
 +
 
 
|}
 
|}
  
Linia 178: Linia 196:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd25.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd25.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.  
+
|valign="top"|Plansze 25 do 29 przedstawiają podręczniki do przedmiotu, literaturę uzupełniającą  oraz witryny strony internetowej http://www.zpt.tele.pw.edu.pl do korzystania z której serdecznie zapraszamy.
 
|}
 
|}
  
Linia 185: Linia 203:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd26.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd26.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
+
|valign="top"|
 
|}
 
|}
  
Linia 192: Linia 210:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd27.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd27.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
+
|valign="top"|
 
|}
 
|}
  
Linia 199: Linia 217:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd28.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd28.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
+
|valign="top"|
 
|}
 
|}
  
Linia 206: Linia 224:
  
 
{| border="0" cellpadding="4" width="100%"
 
{| border="0" cellpadding="4" width="100%"
|width="450px"|[[Grafika:TC_M1_Slajd29.png]]
+
|valign="top" width="500px"|[[Grafika:TC_M1_Slajd29.png]]
|valign="top"|Zastosowania omówionego procesu syntezy są w dzisiejszej technice ogromne.
+
|valign="top"|
 
|}
 
|}

Aktualna wersja na dzień 12:49, 28 sie 2006

TC M1 Slajd1.png Rola i znaczenie techniki cyfrowej we współczesnej informatyce.

TC M1 Slajd2.png Technika cyfrowa jest w dzisiejszych czasach obszarem wiedzy o całkowicie interdyscyplinarnym obliczu. Jej zagadnienia kształtowane z jednej strony przez języki opisu sprzętu, a z drugiej przez programowalne moduły logiczne, śmiało mogą być zaliczone zarówno do Informatyki, Elektroniki jak i Telekomunikacji. Dzisiejsze techniki projektowania układów cyfrowych polegają już nie tylko na składaniu układu z dostępnych komponentów, a raczej na procesie formalnej, abstrakcyjnej specyfikacji projektu w odpowiednim języku opisu sprzętu (HDL – Hardware Description Language) oraz na transformacji tej specyfikacji przy użyciu różnorodnych narzędzi komputerowego wspomagania projektowania CAD (Computer Aided Design).

TC M1 Slajd3.png Przykładowe tytuły rozdziałów książki De Micheliego Synteza i optymalizacja układów cyfrowych: Języki modelowania sprzętu, Języki behawioralne, Kompilacja oraz optymalizacja behawioralna, Model problemów kolejkowania, Kolejkowanie przy ograniczeniach czasowych itp. w pełni potwierdzają tezę, że współczesna technika cyfrowa przekroczyła granice tradycyjnej elektroniki dochodząc do obszarów do tej pory zaliczanych do informatyki. Jednocześnie ogromne możliwości realizacji układów cyfrowego przetwarzania sygnałów w strukturach programowalnych FPGA potwierdzają związki techniki cyfrowej z telekomunikacją.

TC M1 Slajd4.png Ogromną rolę w zacieraniu różnicy między oprogramowaniem (software), tradycyjnie zaliczanym do produktów informatyki, a sprzętem (hardware) jako produktem tradycyjnie rozumianej elektroniki, spełniają układy programowalne przez użytkownika. Stały się one podstawą powstania nowego rynku własności intelektualnej, którego ofertą handlową są rdzenie projektowe (IP Core), czyli sprzęt reprezentowany w postaci oprogramowania, docelowo przeznaczonego do implementacji w układzie scalonym (programowalnym lub bezpośrednio wykonywanym w krzemie), zamiast w komputerze.

TC M1 Slajd5.png Technika cyfrowa ma obecnie przemożny wpływ na wszystkie obszary ludzkiej aktywności; między innymi radykalnie przeobraziła metody i formy komunikacji społecznej zarówno w ujęciu zbiorowym jak i indywidualnym, a układy cyfrowe można dziś znaleźć niemal w każdym urządzeniu technicznym.

TC M1 Slajd6.png Obszarem, w którym technika cyfrowa doprowadziła do bardzo istotnych zmian są urządzenia multimedialne. Dzięki multimediom rozwinęły się niespotykane do tej pory usługi teleinformatyczne takie jak: wirtualne usługi bankowe, telenauczanie, wideokonferencje, itp. Masowe zapotrzebowanie na te usługi tworzy atrakcyjny obszar działalności przemysłowo-gospodarczej.

TC M1 Slajd7.png Przykładem firmy, która odniosła sukces w takiej działalności jest Advanced Digital Broadcast z Zielonej Góry – potentat technologii dla telewizji cyfrowej. ADB jest firmą, której podstawą sukcesu są specjaliści wykształceni w Instytucie Informatyki i Elektroniki Politechniki Zielonogórskiej.

TC M1 Slajd8.png Rozwój techniki cyfrowej jest bezpośrednio związany z rozwojem technologii mikroelektronicznych. Dzisiejsze możliwości technologiczne są ogromne. Technologia dostarcza konstruktorom układów cyfrowych specjalizowane układy scalone (Application Specific Integrated Circuits) o zasobach sprzętowych rzędu kilkudziesięciu milionów tranzystorów, co z punktu widzenia techniki cyfrowej jest równoważne kilku milionom bramek logicznych.

TC M1 Slajd9.png W zależności od technologii i techniki projektowania specjalizowane układy scalone klasyfikujemy w następujących kategoriach:
  1. układy zamawiane przez użytkownika (Full Custom),
  2. układy projektowane przez użytkownika (Semi Custom),
  3. układy programowane przez użytkownika (FPLD – Field Programmable Logic Devices).

Największe układy ASIC są zwykle produkowane w wielkich seriach i najczęściej całkowicie wykonywane przez producenta dla zamawiającego (Full Custom). Rola zamawiającego ogranicza się do przedstawienia wymagań (założeń projektowych), a do producenta należy wykonanie projektu, prototypu, sprawdzenie działania prototypu oraz ostateczna produkcja. Układy takie opłaca się produkować tylko w bardzo dużych seriach (np. sprzęt powszechnego użytku, mikrokomputery) lub do wyjątkowych zastosowań.

Cechą charakterystyczną układów Semi Custom jest wielokrotne wykorzystywanie raz zaprojektowanych bloków funkcjonalnych, które są przechowywane w bibliotece (w praktyce w pamięci komputera). Bloki takie są często zwane komórkami bibliotecznymi. W układach Semi custom typowym uproszczeniem projektowania jest standaryzacja komórek bibliotecznych przez narzucanie jednolitych wymagań dotyczących kształtu, wymiarów, rozmieszczenia szyn zasilania, wejść i wyjść, co pozwala w znacznym stopniu zautomatyzować proces projektowania struktury fizycznej układu.

Struktura fizyczna każdego układu zaprojektowanego w stylu Full Custom lub Standard Cells wymaga przygotowania projektów masek produkcyjnych i przeprowadzenia złożonego procesu technologicznego. Oznacza to, że czas potrzebny do otrzymania prototypowych egzemplarzy nowo zaprojektowanego układu jest rzędu co najmniej kilku tygodni.

Z tych powodów coraz większą rolę w technice cyfrowej odgrywają programowalne moduły logiczne (FPLD – Field Programmable Logic Devices), krótko zwane układami (strukturami) programowalnymi.


TC M1 Slajd10.png Układy programowalne to – z punktu widzenia struktury – układy typu matrycowego lub komórkowego, jednak z możliwością programowania połączeń na drodze elektrycznej. W ich przypadku proces produkcyjny jest odmienny – producent dostarcza „prefabrykaty” projektantowi, który może je zaprogramować u siebie „na biurku”.

Atrakcyjność układów FPLD jako alternatywy dla układów Full Custom i Semi Custom wynika przede wszystkim z połączenia naturalnych walorów układów programowalnych, które zapewniają krótki czas opracowania prototypu i łatwość jego modyfikacji i są dostępne „z półki”, z coraz doskonalszymi parametrami użytkowymi – szybkością działania i pojemnością.


TC M1 Slajd11.png Rozwój technologii stymuluje rozwój komputerowych narzędzi projektowania, co tym bardziej poszerza związek techniki cyfrowej z Informatyką. Jest to zrozumiałe, gdyż sensowne przetworzenie milionów bramek w zamierzenia konstruktora układów cyfrowych nie może się odbyć bez udziału komputerowych systemów projektowania wyposażonych w edytor graficzny, tekstowy oraz kompilator.

TC M1 Slajd12.png Okno edytora graficznego komputerowego systemu projektowania MAX+PLUSII firmy Altera.

width="450px"|TC M1 Slajd13.png Okno edytora tekstowego komputerowego systemu projektowania MAX+PLUSII firmy Altera.

TC M1 Slajd14.png Okno kompilatora komputerowego systemu projektowania MAX+PLUSII firmy Altera.

TC M1 Slajd15.png Typowy komputerowy system projektowania jest wyposażony w moduł syntezy funkcjonalnej, moduł syntezy logicznej, oraz procedury odwzorowania technologicznego. Zadaniem takiego systemu jest realizacja algorytmu przetwarzania informacji cyfrowej w układzie scalonym zbudowanym z milionów bramek logicznych.

TC M1 Slajd16.png Nie jest to zadanie łatwe i z tych powodów synteza układów logicznych jest jednym z najważniejszych działów techniki cyfrowej. Trudności wynikają przede wszystkim z faktu, iż inne były wymagania stawiane układom logicznym wtedy, gdy były one konstruowane z pojedynczych tranzystorów (lata 50.) lub wtedy, gdy cyfrowe układy scalone zwierały kilka bramek (lata 70.). Wobec dzisiejszych milionów bramek zawartych w jednym, reprogramowalnym i rekonfigu¬rowalnym module scalonym, jest to postęp ilościowy, który musiał całkowicie zmienić – i ciągle jeszcze zmienia – metody syntezy układów logicznych.

TC M1 Slajd17.png Najważniejszymi zagadnieniami nowoczesnej syntezy logicznej jakie rozwinęły się w ciągu ostatnich 20. lat w wyniku postępu technologii są: synteza dwupoziomowa (two-level synthesis), synteza wielopoziomowa (multi-level synthesis), minimalizacja symboliczna, dekompozycja matryc PLA oraz dekompozycja funkcjonalna.

TC M1 Slajd18.png Ze zrozumiałych względów komercyjne systemy projektowania nie nadążają za rozwojem technologii. Dlatego powstają uniwersyteckie systemy syntezy logicznej. Systemy te – często wykonywane w formie niezbyt wygodnej do stosowania w bezpo¬średniej praktyce inżynierskiej – spełniają w dziedzinie nowoczesnych metod syntezy układów cyfrowych nie mniejszą rolę niż firmowe systemy komercyjne. Z założenia są to systemy przy¬stosowane do obsługi przez użytkownika o głębszej wiedzy w zakresie syntezy logicznej. Speł¬niają więc rolę niejako „awaryjną”, tzn. są stosowane w tych przypadkach, w których systemy komercyjne nie dają pozytywnych rezultatów ze względu na dużą złożoność obliczeniową.

Drugą, nie mniej ważną rolą systemów uniwersyteckich jest zdobywanie wiedzy i doświadczenia w zakresie skuteczności procedur obliczeniowych. Tak więc z biegiem lat wiele programów i procedur obliczeniowych, stosowanych w systemach uniwersyteckich, weszło do wyposażenia systemów komercyjnych. Typowym przykładem mogą tu być systemy opracowane na uniwersytecie kalifornijskim w Berkeley, na przykład ESPRESSO, oraz SIS. Dziś procedury minimalizacji funkcji boolowskich programu ESPRESSO są stosowane bezpo¬średnio (jako wbudowane do systemu) lub pośrednio (z możliwością wymiany danych) we wszystkich prawie systemach komputerowego projektowania układów cyfrowych.


TC M1 Slajd19.png Wraz z wprowadzeniem języków HDL oraz struktur programowalnych pojawiły się nowe możliwości aplikacyjne dla techniki cyfrowej. Wynikają one nie tylko z poprawy parametrów funkcjonalnych i czasowych oraz zmian w architekturze logicznej, ale również z samej istoty reprogramowalności. Jeden z kierunków takich aplikacji określa koncepcja produktu wirtualnego – systemu, funkcji lub układu scalonego, które nie istnieją w rzeczywistości materialnej, ale mogą być potencjalnie w każdej chwili zrealizowane. Takie układy wirtualne mogą być zarówno gotowymi produktami o zmiennych funkcjach i właściwościach, jak również elastycznymi „klockami”, z których można konstruować większe systemy. Z punktu widzenia gotowego produktu wytwarzanego seryjnie możliwość modyfikacji i nadawania jego standardowej konstrukcji indywidualnie wyspecjalizowanych funkcji i parametrów stwarza wspaniałą perspektywę.

TC M1 Slajd20.png Powstaje ogromny rynek wirtualnych produktów specjalizowanych, tzw. rynek własności intelektualnej IP (Intellectual Property) zawartej w układach zaprojektowanych w postaci kodów źródłowych języków HDL. Do najważniejszych stowarzyszeń i firm zajmujących się opracowywaniem rdzeni projektowych należą: Altera Megafunction Partners Program, Xilinx Alliance CORE, TILAB, inSILICON CORPORATION, DIGITAL COMMUNICATION, IP SEMICONDUCTORS, a w Polsce Evatronix. Oferta tych firm obejmuje oprócz standardowych układów cyfrowych takich jak: sumatory, multiplikatory, również zaawansowane układy przetwarzania sygnałów cyfro¬wych: filtry, kodeki, kodery FFT, DCT, układy kryptograficzne, dekodery Viterbiego dla sieci LAN, skramblery i deskramblery, a także komutatory i rutery ATM.

TC M1 Slajd21.png Rynek produktów wirtualnych, to jednocześnie ogromne wyzwanie dla zaawan¬sowanych metod optymalizacji logicznej. Wynika to z faktu, że konkurencję na tym rynku wygrywać będą tylko najlepsze produkty, do których realizacji wykorzystane będą zaawansowane metody syntezy, niejednokrotnie występujące wyłącznie w specja¬listycznym oprogramowaniu uniwersyteckim. Duża złożoność struktur programowalnych (w szczególności FPGA), a także ich nietypowe konstrukcje (komórki), spowodowały wzrost roli i znaczenia zaawansowanych procedur syntezy logicznej. Nie jest przypadkiem, że to właśnie układom FPGA poświęcono ogromną liczbę publikacji, a odpowiednie procedury syntezy logicznej stały się już kanonem nowoczesnych metod projektowania i testowania układów cyfrowych.

TC M1 Slajd22.png Synteza logiczna układów cyfrowych dotyczy głównie układów przetwarzających sygnały binarne, a jej podstawowym zadaniem jest optymalizacja realizacji tych układów przy stosowaniu różnych technologii. W ostatnich latach można zaobserwować tendencje do stosowania podobnych lub identycznych metod syntezy w zadaniach typowych dla przechowywania i wyszukiwania informacji, pozyskiwania wiedzy, optymalizacji baz danych, a więc w zadaniach z dziedziny systemów ekspertowych i maszynowego uczenia, a nawet sztucznej inteligencji.

TC M1 Slajd23.png Przyczyną tych tendencji jest podobieństwo reprezentacji danych w systemach informacyjnych i syntezie logicznej. System informacyjny opisywany jest tablicą decyzyjną zaś układ logiczny – tablicą prawdy. Atrybutom warunku systemu informacyjnego odpowiadają zmienne wejściowe, zaś atrybutom decyzji – zmienne wyjściowe układu logicznego. Wspomniane podobieństwa systemów informacyjnych i syntezy logicznej umożliwiają zastosowanie podobnych metod kompresji danych. Na przykład problem nadmiarowości danych w systemach informacyjnych jest rozwiązywany za pomocą minimalizacji liczby atrybutów i usuwaniem nadmiarowych reguł decyzyjnych. W syntezie logicznej analogiczną funkcję spełnia minimalizacja, czyli poszukiwanie jak najprostszych wyrażeń boolowskich opisujących układ oraz redukcja argumentów i dekompozycja.

TC M1 Slajd24.png Z powyższego omówienia wynika, że w ramach niniejszego wykładu omówimy kolejno następujące zagadnienia:
  • Układy logiczne
  • Synteza logiczna i odwzorowanie technologiczne
  • Programowalne moduły logiczne
  • Języki opisu sprzętu
  • Synteza sprzętowo-programowa

TC M1 Slajd25.png Plansze 25 do 29 przedstawiają podręczniki do przedmiotu, literaturę uzupełniającą oraz witryny strony internetowej http://www.zpt.tele.pw.edu.pl do korzystania z której serdecznie zapraszamy.

TC M1 Slajd26.png

TC M1 Slajd27.png

TC M1 Slajd28.png

TC M1 Slajd29.png