TC Moduł 1

From Studia Informatyczne

Grafika:TC_M1_Slajd1.png Rola i znaczenie techniki cyfrowej we współczesnej informatyce.

Grafika: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).

Grafika: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ą.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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.


Grafika: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ą.


Grafika: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.

Grafika:TC_M1_Slajd12.png Okno edytora graficznego komputerowego systemu projektowania MAX+PLUSII firmy Altera.

width="450px"|Grafika:TC_M1_Slajd13.png Okno edytora tekstowego komputerowego systemu projektowania MAX+PLUSII firmy Altera.

Grafika:TC_M1_Slajd14.png Okno kompilatora komputerowego systemu projektowania MAX+PLUSII firmy Altera.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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.


Grafika: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ę.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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.

Grafika: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

Grafika: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.

Grafika:TC_M1_Slajd26.png

Grafika:TC_M1_Slajd27.png

Grafika:TC_M1_Slajd28.png

Grafika:TC_M1_Slajd29.png