Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kariera programowalnych układów logicznych

magic9 03 Nov 2021 11:53 1686 3
Fluke Kamera Termowizyjna
  • Pięćdziesiąt lat temu powstał pierwszy programowalny układ logiczny do zastosowań komercyjnych, a dostępne dziś części pozwalają inżynierom przekraczać nowe granice technologiczne w wielu branżach.

    Mark Patrick, Mouser Electronics

    Kariera programowalnych układów logicznych


    FPGA (field-programmable gate array – bezpośrednio programowalne macierze bramek) i inne programowalne układy logiczne stają się coraz wydajniejsze i bardziej uniwersalne, dysponując funkcjami tradycyjnie realizowanymi przez CPU oraz procesory graficzne i sygnałowe. Można powiedzieć, że układy te są półprzewodnikowym odpowiednikiem scyzoryków szwajcarskich.

    Układy FPGA mogą wykonywać bardziej złożone funkcje niż najbliżej spokrewnione z nimi CPLD (complex programmable logic device – złożone programowalne układy logiczne). Są też czystą kartą, na której inżynierowie mogą zapisywać swoje własne funkcje, w przeciwieństwie do zdefiniowanych przez producenta. Z tego powodu układy FPGA są niesamowicie uniwersalne: mogą wykonywać obliczenia, przetwarzać sygnały, obsługiwać szybką komunikację i wiele innych funkcji – i to wszystko bez pomocy zewnętrznych układów peryferyjnych. Co więcej, w przeciwieństwie do standardowych, specjalizowanych układów scalonych (ASIC), które niekiedy zastępują, układy FPGA można w dowolnej chwili przeprogramować, często bez zmian sprzętowych.

    Lecz definiowanie mnogości połączeń i funkcji elementów logicznych w układzie FPGA nigdy nie było proste. Aby je ułatwić, producenci tych układów i dostawcy programów do projektowania stworzyli wyspecjalizowane narzędzia. Dostępne są też wstępnie zaprojektowane i sprawdzone bloki funkcjonalne, które upraszczają programowanie układów FPGA.

    Krótka historia FPGA

    Koniec lat 60. przyniósł wiele spektakularnych wydarzeń: pierwszy lot Concorde, misja Apollo 11 i lądowanie na Księżycu, zaprzysiężenie prezydenta Nixona. Pojawienie się programowalnej macierzy bramek typu MPGA (mask-programmed gate array) XC157 w katalogu „The Integrated Circuit Data Book” przeszło przy nich niemal niedostrzeżone, lecz był to wielki przełom. Pojawienie się tego układu, wyposażonego w 12 bramek i 30 wejść/wyjść, stanowiło istotny kamień milowy na ścieżce rozwoju programowalnych układów logicznych: od tej chwili weszły one na stałe do zastosowań komercyjnych.

    Dalszy rozwój postępował szybko. W późnych latach 80., w ramach programu marynarki Stanów Zjednoczonych (w Naval Surface Warfare Department), cywilne firmy stworzyły komputer wyposażony w 600 tysięcy reprogramowalnych bramek logicznych. Niedługo potem założyciele firmy Xilinx, Ross Freeman i Bernard Vonderschmitt, zaprezentowali XC2064 – pierwszy komercyjny układ FPGA. Była to macierz 8 x 8 konfigurowalnych bloków logicznych (CLB), łącznie 64 CLB, wyposażona w dwie trzywejściowe tablice LUT.

    Minęło ponad trzydzieści lat i wiele się zmieniło. Nowoczesne układy FPGA są wyposażone we własne rdzenie procesorów (np. ARM Cortex), nawet 50 milionów elementów logicznych, dużą i szybką pamięć, własne przetworniki analogowo-cyfrowe i 128-bitowe szyfrowanie. Mogą wykonywać ponad bilion operacji zmiennoprzecinkowych na sekundę (teraflop) dla cyfrowego przetwarzania sygnałów, charakteryzują się niską latencją i łączną przepustowością szeregowych kanałów nadawczo-odbiorczych na poziomie niemal 3 Tb/s. Wszystkie te możliwości tkwią w pojedynczym układzie zużywającym bardzo mało energii, przez co dzisiejsze układy FPGA są nadzwyczajnie uniwersalnymi układami typu system-on-chip (SoC). Na przykład system komunikacji, który kiedyś wymagałby licznych specjalizowanych układów scalonych (ASIC) do początkowego przetwarzania odbieranych informacji, może dzisiaj opierać się na jednym układzie FPGA.

    Rekonfigurowalne systemy obliczeniowe

    Następnym krokiem w niezwykłej karierze układów FPGA może być zastosowanie ich do obliczeń rekonfigurowalnych. W połączeniu z oprogramowaniem układy FPGA, wspierane przez sterujący procesor ogólnego przeznaczenia, mogą tu pełnić wszystkie funkcje komputera. Pomysł ten, o którym mówiło się już w latach 60., został zademonstrowany w roku 1991 w postaci komputera Algotronix CHS2x4. Zastosowano w nim opracowany przez firmę Algotronix układ FPGA CAL1024, wyposażony w 1024 programowalne komórki w technologii CMOS 1,5 µm double-metal. Był to pierwszy układ FPGA, który umożliwiał swobodny dostęp do swojej pamięci sterującej i współdzielenie sygnałów we/wy, pozwalając projektantom na tworzenie macierzy urządzeń. To osiągnięcie techniki było tak przełomowe, że kilka lat później skłoniło firmę Xilinx do zakupu własności intelektualnej technologii firmy Algotronix.

    Obliczenia rekonfigurowalne z pomocą układów FPGA okazały się rewelacją dla wyspecjalizowanych systemów o dużej wydajności. Weźmy na przykład Cost-Optimized Parallel COde Breaker (COPACOBANA), czyli maszynę zaprojektowaną do przeliczania algorytmów kryptograficznych, takich jak Data Encryption Standard (DES), a także innych zadań wymagających obliczeń równoległych.
    COPACOBANA nie jest komputerem wielozadaniowym: jest taktowany znacznie wolniej niż maszyny oparte na procesorach CPU, ma też ograniczoną szybkość i przepustowość komunikacji. Lecz jest niesamowicie wydajny w zadaniach, do których został stworzony, a ponieważ powstał wyłącznie z ogólnodostępnych komponentów i układów FPGA, jest znacznie tańszy niż komputery kryptograficzne wykorzystujące CPU.

    Sterowana ze standardowego PC z systemem Windows albo Linux, maszyna COPACOBANA zawiera około 120 układów FPGA (zależnie od projektu) i może wykonywać 48 miliardów operacji dekryptażu DES na sekundę, wymagając zaledwie 600 W mocy zasilania.
    Możliwości tego sprzętu pokazał konkurs przeprowadzony podczas warsztatów Cryptographic Hardware and Embedded Systems 2006, w którym maszyna znalazła klucz w niecałe 21,5 godziny (po przeszukaniu niespełna 5% przestrzeni możliwych kluczy), sprawdzając ponad 43 miliardy kluczy na sekundę.

    Układy FPGA z górnej półki

    Wywiad elektromagnetyczny, wojna elektroniczna, radary programowane – to niektóre z najbardziej wymagających zastosowań obliczeniowych. Można by przypuszczać, że do takich zadań nadają się tylko superkomputery. Lecz układy FPGA z ich niewielkim zużyciem energii i potężnymi możliwościami równoległego przetwarzania danych, obsługi sygnałów we/wy oraz zmiennoprzecinkowych operacji arytmetycznych, zaczynają odnosić w tej dziedzinie spore sukcesy.

    Kariera programowalnych układów logicznych
    Ilustracja 1: Intel Stratix 10.


    Przykładem FPGA do tak wymagających zadań może być rodzina układów Stratix 10. Ponad cztery miliony zawartych w nich elementów logicznych powstaje w procesie 14 nm tri-gate firmy Intel. Są wyposażone w 64-bitowe, czterordzeniowe procesory ARM Cortex-A53 o przepustowości danych czterokrotnie wyższej od poprzedników. Szeregowe pasmo nadawczo-odbiorcze jest również czterokrotnie większe. Ponadto każdy układ oferuje łączność z płytą montażową 28 Gb/s, chip-to-chip i chip-to-module z prędkością 56 Gb/s, transmisję szeregową pamięci ponad 2,5 Tb/s, interfejs równoległy pamięci o paśmie ponad 1,3 Tb/s i obsługę pamięci DDR4 3200 Mb/s. Wydajność procesora sygnałowego na poziomie 10 teraflopów liczb o pojedynczej precyzji zaspokaja zapotrzebowanie na operacje zmiennoprzecinkowe.

    Urządzenia te potrzebują znacznie mniej energii niż high-endowe układy FPGA poprzedniej generacji (o około 70%), charakteryzując się wydajnością 100 gigaflopów/W dla operacji zmiennoprzecinkowych o pojedynczej precyzji. Ponadto inżynierowie sięgający po układy Stratix 10 mogą korzystać z licznych narzędzi dla projektantów i deweloperów, opracowanych przez firmę Altera.

    Układy FPGA średniej klasy

    Oczywiście nie każde zastosowanie będzie wymagać tak wyśrubowanych parametrów, ale mimo wszystko może być potrzebny sprzęt o możliwościach nieco większych niż są w stanie zapewnić podstawowe układy FPGA. W takiej sytuacji warto rozważyć FPGA średniej klasy, takie jak np. MAX 10. Układy te mają wbudowaną obsługę procesorów programowych, kontrolery pamięci, DSP, bloki analogowe z 12-bitowymi przetwornikami A/C, czujnik temperatury, pętle synchronizacji fazy (PLL) i zegary globalne o niskich przesunięciach impulsów czasowych. Poza tym mogą mieć nawet 736 kB pamięci flash w konfiguracji dual, co oznacza, że można zapisać dwa obrazy na jednym chipie i dynamicznie je przełączać. Co więcej, pracują w trybie instant-on, więc mogą sterować włączaniem i inicjalizacją komponentów systemu. Układy FPGA MAX 10 są dostępne w wersjach mających od 2000 do 50 000 elementów logicznych, 18 kanałów wejść analogowych i maksymalnie 500 definiowanych przez użytkownika pinów we/wy oraz obsługują 128-bitowy zaawansowany standard szyfrowania AES.

    Kariera programowalnych układów logicznych
    Ilustracja 2: Intel MAX 10.


    Mocne układy FPGA do codziennych zastosowań

    Wiele z układów FPGA do standardowych zastosowań również ma duże możliwości. Na przykład rodzina MachXO3 firmy Lattice Semiconductor jest ultra-kompaktowym, ekonomicznym rozwiązaniem mogącym łączyć interfejsy powstających systemów łączności przez wejścia/wyjścia zarówno szeregowe, jak i równoległe. Dzięki technologii obudów firmy Lattice łączenie drutowe należy już do przeszłości, co pozwala obniżyć koszty i zwiększyć gęstość upakowania we/wy. Różne układy FPGA z rodziny MachXO3 mają od 640 do 6900 tablic LUT. Układy tego typu mogą być stosowane w automatyce przemysłowej, motoryzacji, elektronice użytkowej, komunikacji bezprzewodowej, technice obliczeniowej i systemach pamięci masowej. I podobnie jak w przypadku innych wspomnianych już układów FPGA, korzystający z nich inżynierowie mają do dyspozycji narzędzia, gotowe projekty i inne materiały pomocnicze.

    Jest jeszcze firma Terasic, która oferuje swoją platformę Cyclone V GX Starter Kit, wspierającą projektantów sprzętu i opartą na układzie FPGA Cyclone V GX. Płytka drukowana jest wyposażona w header Arduino, szybkie transceivery, interfejs USB Blaster i funkcje audio-wideo.

    Alternatywy dla układów FPGA

    Po tych hymnach pochwalnych na cześć FPGA warto wspomnieć, że nie jest to jedyny typ programowalnych układów logicznych, po które można sięgnąć. Inne opcje, takie jak portfolio programowalnych systemów na chipie (PSoC) firmy Cypress Semiconductor, oferują bogactwo funkcjonalności w jednym układzie. Cypress PSoC jest unikatowy na skalę branży, będąc jedynym programowalnym wbudowanym SoC z mikrokontrolerem, pamięcią, logiką programowalną opartą na architekturze PLD i wysoce wydajnym blokiem analogowym na jednym chipie, który mimo wszystko jest w stanie zaskoczyć inżynierów bardzo niskim zużyciem energii.

    Najwyższej klasy rodzina PSoC 5 stosuje rozwiązania sygnałów mieszanych oparte na rdzeniach ARM Cortex-M najnowszej generacji. Układ CY8C56LP z serii PSoC 5 udostępnia konfigurowalne bloki obwodów cyfrowych, analogowych i pośredniczących, zorganizowanych wokół podsystemu CPU. Połączenie CPU z systemem we/wy, routingiem oraz podsystemami analogowymi i cyfrowymi sprawia, że jest to atrakcyjna opcja dla zastosowań w elektronice użytkowej, medycynie i przemyśle. Podsystem cyfrowy korzysta z własnych połączeń interfejsowych do efektywnego łączenia sygnału cyfrowego z urządzenia peryferyjnego z dowolnym pinem. Uniwersalne bloki danych (UDB) dają dużą swobodę wyboru funkcjonalności.

    Programowanie i konfigurowanie tego układu jest stosunkowo proste. Wszystkie urządzenia peryferyjne dostępne w bibliotece PSoC Creator są zmapowane na matrycę UDB. Obejmują one funkcje timera, licznika, AND, OR, PRS, CRC, UART, SPI, LIN oraz PWM. Każdy blok UDB posiada zarówno funkcjonalność logiki programowalnej, jak i prosty silnik maszyny stanowej, co pozwala pracować z szeroką gamą urządzeń peryferyjnych. Można korzystać z konfigurowalnych bloków cyfrowych obsługujących protokoły komunikacyjne USB, CAN 2.0 oraz I2C slave/master.

    Podsumowanie

    Na koniec chciałbym podać jeden przykład, który najlepiej pokazuje, jak wszechstronne i efektywne mogą być nowoczesne programowalne układy logiczne. Aby stworzyć dzisiaj kompletny podsystem do rejestrowania i przetwarzania sygnału, wystarczą zaledwie trzy karty w formacie OpenVPX (stosowanym w sprzęcie programowalnym). Jego kluczowe komponenty to para high-endowych układów FPGA z niezbędnymi przetwornikami A/C i C/A do konwertowania danych, plus czterordzeniowy procesor Intel Core i7 wraz z potrzebnym zasobem pamięci, systemem we/wy i transceiverami SERDES. Układy FPGA są na tyle potężne, a szerokość pasma i częstotliwość próbkowania współpracujących z nimi obwodów kondycjonujących sygnał na tyle duże, że takie urządzenie zbudowane z trzech kart jest w stanie bezpośrednio przechwytywać sygnały radiowe do 6 GHz. Nawet kilka lat temu, aby zrealizować coś takiego, potrzeba było niemal dziesięciokrotnie więcej miejsca na płytkach drukowanych.

    Tempo innowacji rośnie wraz z popularnością programowalnych układów logicznych. Ta klasa technologii jest już z nami od lat 60., lecz dzisiaj (dobre 50 lat później) pozwala tworzyć naprawdę pionierskie rozwiązania.

    Mouser Electronics
    Autoryzowany dystrybutor
    www.mouser.com
    Śledź nas na Twitterze


    [Artykuł sponsorowany]

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    magic9
    Editor
    Offline 
    Has specialization in: redaktor treści elektroda
    magic9 wrote 664 posts with rating 308, helped 10 times. Live in city Kielce. Been with us since 2010 year.
  • Fluke Kamera Termowizyjna
  • #2
    Obywatel LutZek
    Level 13  
    Wszystko pięknie, układy FPGA są wspaniałe. Natomiast w tym momencie ich dostępność to koszmar (także na Mouserze). Lead time na niektóre układy Intela to 70 tygodni, Xilinx trochę lepiej. Sam szukam 10M08SCU169C8G i zapewne skończy się zakupem od Chińczyków.
  • Fluke Kamera Termowizyjna
  • #3
    DJ_KLIMA
    Level 17  
    Dokładnie, w automotive doczekać się nie można...
  • #4
    ghost666
    Translator, editor
    Obywatel LutZek wrote:
    Wszystko pięknie, układy FPGA są wspaniałe. Natomiast w tym momencie ich dostępność to koszmar (także na Mouserze). Lead time na niektóre układy Intela to 70 tygodni, Xilinx trochę lepiej. Sam szukam 10M08SCU169C8G i zapewne skończy się zakupem od Chińczyków.


    To nie przypadłość FPGA. Tak jest ze wszystkim - STM32, w zasadzie dowolny - lead time ok 50 tygodni. Układy zasilania, przetwornice etc - często powyżej 30 tygodni...