From 3be9713d10287e613b09eccc9fe216c6e12be67f Mon Sep 17 00:00:00 2001 From: Jan Potocki Date: Wed, 16 Jan 2019 22:04:56 +0100 Subject: [PATCH] =?UTF-8?q?Kierunkowe:=20uk=C5=82ady=20programowalne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- W4-INF-kierunkowe.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/W4-INF-kierunkowe.md b/W4-INF-kierunkowe.md index a1b9bba..e89fb83 100644 --- a/W4-INF-kierunkowe.md +++ b/W4-INF-kierunkowe.md @@ -8,3 +8,20 @@ __W modelu TCP/IP wyróżnia się 4 warstwy:__ - __warstwa dostępu do sieci__ – najniższa warstwa, której zadaniem jest transmitowanie danych przez fizyczne łącza między urządzeniami w obrębie pojedynczej sieci. Każda z warstw jest niezależna od pozostałych. Przykładowo, na poziomie warstwy aplikacji po drugiej stronie łącza widoczna jest bezpośrednio aplikacja, z którą zostało nawiązane połączenie, niezależnie od trasy pokonywanej przez pakiety w warstwie internetowej. Z kolei z perspektywy warstwy internetowej po przeciwnej stronie łącza znajduje się następne urządzenie na trasie posiadające adres IP, niezależnie od fizycznej struktury sieci i przykładowo liczby przełączników, jakie musi pokonać ramka przenosząca pakiet IP. Dzięki temu można łatwo wykorzystać w sieci różne technologie i z punktu widzenia wyższych warstw nie ma na przykład znaczenia, czy fizycznie transmisja odbywa się kablem w standardzie Ethernet, czy bezprzewodowo w jednym ze standardów Wi-Fi – dowolny rodzaj danych da się przesłać dowolnym łączem. + +# Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA + +Układy PLD, CPLD oraz FPGA należą do specjalizowanych scalonych układów cyfrowych (ASIC) konfigurowanych przez użytkownika – w odróżnieniu od typowych układów ASIC konfigurowanych maską przez producenta na zamówienie użytkownika. Układy programowalne mogą być dzięki temu produkowane i sprzedawane masowo, co w porównaniu z układami konfigurowanymi maską pozwala znacząco ograniczyć koszty stałe projektu użytkownika (właściwie każdy może taki układ kupić). Wyższy jest natomiast ich jednostkowy koszt i przy seriach rzędu kilkudziesięciu tysięcy urządzeń stają się przez to mniej opłacalne od układów konfigurowanych maską. + +W porównaniu z układami ogólnego przeznaczenia, przystosowane do określonych zastosowań układy ASIC cechują się wyższą wydajnością i efektywnością, na przykład umożliwiając zrównoleglenie na etapie projektu operacji, które przez mikroprocesor musiałyby być wykonywane sekwencyjnie. Układy ASIC stosuje się często do sterowania urządzeniami i szybkiego przetwarzania dużych ilości danych – na przykład w kryptografii, w urządzeniach sieciowych (przełączniki), czy też przy cyfrowym przetwarzaniu sygnałów. Układów programowalnych używa się zwykle do prototypowania układów cyfrowych i produkcyjnie dla małych serii (lub większych serii, które szybko powinny trafić na rynek). + +Najprostszym i najstarszym rodzajem omawianych układów są układy PLD (_Programmable Logic Device_). Składają się one z 2 matryc bramek logicznych, AND-OR, sprzętowo najczęściej realizowanych jako NAND-NAND (prawa de Morgana) i występują w trzech odmianach: +- __PAL__ – z programowalną matrycą AND (najpowszechniejsze) +- __PLE__ - z programowalną matrycą OR +- __PLA__ - z programowalnymi obydwoma matrycami + +Układy PLD składają się z małej liczby bramek logicznych (typowo posiadają 8-10 wejść i wyjść oraz kilkadziesiąt bramek), a zwiększanie rozmiarów matryc bardzo szybko zaczyna powodować powolne działanie. Dlatego jako ich rozwinięcie opracowano układy CPLD (_Complex PLD_), składające się z wielu układów PLD połączonych szybką globalną matrycą połączeń – takie układy mogą posiadać już kilka tysięcy bramek logicznych. W układach PLD i CPLD jako pamięć konfiguracji wykorzystuje się różne rodzaje pamięci nieulotnej, we współczesnych konstrukcjach najczęściej EEPROM (elektrycznie programowalną i kasowalną). + +Układy FPGA (_Field Programmable Gate Array_) to najbardziej skomplikowany rodzaj układów programowalnych o największych możliwościach, pierwotnie opracowany przez firmę Xilinx, ich pojemności dochodzą do kilkuset tysięcy bramek logicznych. Podstawową różnicą w stosunku do CPLD jest sposób realizacji funkcji logicznych – w FPGA zamiast klasycznych bramek logicznych wykorzystuje się generatory LUT (_LookUp Table_), tablicujące tabele prawdy funkcji. Układy FPGA składają się z wielu połączonych globalną matrycą bloków CLB (_Configurable Logic Block_), zawierających LUT, przerzutniki i multipleksery. Jako pamięć konfiguracji wykorzystywana jest pamięć statyczna RAM (SRAM) – ponieważ jest to pamięć ulotna, często do układów FPGA dołącza się oddzielne układy pamięci EEPROM, z których FPGA po podłączeniu zasilania automatycznie może odczytać konfigurację połączeń. Jest to kolejna ważna różnica w porównaniu z CPLD. + +Do konfigurowania współczesnych układów programowalnych wykorzystuje się języki opisu sprzętu (HDL – _Hardware Description Language_), 2 najczęściej stosowane to VHDL i Verilog. Za ich pomocą opisuje się zachowanie projektowanego układu w pewnej określonej konwencji (zwanej szablonem), którą narzędzia syntezy tworzone przez producentów układów są w stanie przetłumaczyć na konfigurację konkretnego układu FPGA lub CPLD.