Kategorie: Obwody mikrokontrolera
Liczba wyświetleń: 21445
Komentarze do artykułu: 0

Czym jest FPGA - prosty język dla początkujących

 

Z czym związana jest elektronika cyfrowa? Przede wszystkim z elementami logicznymi AND, OR, NOT. Ponadto do pamięci przychodzą rejestry przesuwne, dekodery, multipleksery itp. Jednak wraz ze wzrostem złożoności urządzeń elektronicznych i tendencji do miniaturyzacji tworzenie urządzeń opartych na układach scalonych (IC) z powyższych elementów stało się trudniejsze, niestandardowe układy scalone o wymaganej topologii i obwodach okazały się opłacalne tylko wtedy, gdy urządzenie było replikowane w dużych ilościach, w innych przypadkach było nieuzasadnione drogie.

Wyjściem z tej sytuacji było opracowanie programowalnych zintegrowanych układów logicznych (w skrócie FPGA, obcy skrót jako programowalne urządzenie logiczne, PLD). Co to jest i gdzie jest używane, powiemy w tym artykule.

Czym jest FPGA - prosty język dla początkujących

Różnice w stosunku do mikrokontrolerów

Ze słowem „programowalny” większość początkujących się kojarzy z mikrokontrolerami. Pomimo tego, że są również zaprogramowane, układy FPGA są zupełnie innym urządzeniem.

Dla programistów mikrokontrolerów dostępny jest stały zestaw rozwiązań i narzędzi, które są nieodłączne od konkretnego układu, nie będzie w żaden sposób działało w celu wycofania się z architektury. Dostajesz zestaw poleceń, za pomocą których wykonujesz operacje interakcji ze środowiskiem, odczytując dane z wejść cyfrowych i analogowych i wysyłając sygnały do ​​siłowników za pomocą wyjść.

Ponadto możesz wykonywać obliczenia, zapisywać dane w rejestrach lub pamięciach ROM, a także operować danymi zapisanymi w pamięci mikrokontrolera. Na tym polega w istocie cel i cechy pracy z mikrokontrolerami.

Programowalny 769; log 769; liczba całkowita 769; len 769; ma (FPGA, angielskie programowalne urządzenie logiczne, PLD)

Programowalne logiczne układy scalone (FPGA) różnią się tym, że programując urządzenie, sam tworzysz architekturę z podstawowych elementów logicznych. W ten sposób zyskujesz dużą szybkość i elastyczność układu. Umożliwia to, bez zmiany jednego układu, wykonanie szeregu projektów.

Zasadniczo wewnętrzne urządzenie FPGA można podzielić na trzy główne grupy:

1. Tablica elementów logicznych (makrokomórki, bloki logiczne).

2. Bloki wejścia / wyjścia (IO).

3. Linie komunikacyjne między nimi a urządzeniem kontrolującym te połączenia.

Jednak taka struktura jest bardzo ogólna, omówimy ten problem bardziej szczegółowo poniżej.

Programując, łączysz elementy w taki sam sposób, jak robisz, montując urządzenie z poszczególnych elementów i łącząc ich wejścia i wyjścia z przewodnikami.

Uwaga:

Główna różnica między układami FPGA i mikrokontrolerami polega na tym, że w mikrokontrolerze nie można zmieniać wewnętrznych połączeń między najprostszymi elementami, a programowanie i praca z nimi polega na rejestrowaniu połączeń w układach FPGA.

Wybór mikrokontrolerów opiera się na wielu kryteriach, takich jak:

  • Prędkość i prędkość zegara;

  • Ilość pamięci ROM i RAM;

  • Liczba wejść i wyjść.

Inne funkcje funkcjonalne i urządzenia peryferyjne, takie jak obsługa linii komunikacyjnych i protokołów (I2C, jednoprzewodowy, sygnał PWM itp.).

Wybierając układ FPGA, głównym kryterium jest liczba programowalnych bloków - powinny one wystarczyć do realizacji zadania.

W zależności od konkretnego układu FPGA liczba bloków może się znacznie różnić, a koszt również się zmienia.

Mikrokontroler wykonuje kolejno wszystkie operacje określone w jego programie, podczas gdy bloki FPGA wykonują to zadanie równolegle i niezależnie od siebie, dlatego porównywanie tych urządzeń według częstotliwości taktowania jest niepraktyczne. Ich zasada działania jest zbyt inna.

Rodzaje FPGA

Gatunek

Obecnie istotne są dwa główne rodzaje układów FPGA:


1. CPLD (złożone programowalne urządzenie logiczne - programowalny układ logiczny, w rzeczywistości jest to układ FPGA w klasycznym znaczeniu). Zwykle ma wbudowaną pamięć nieulotną, do której ładowane jest oprogramowanie układowe.

Struktura wewnętrzna zbudowana jest na matrycy makrokomórek lub bloków logicznych, a liczba zawartych w nich elementów wynosi od setek i tysięcy sztuk. Ze względu na ich względną prostotę są one tańsze niż następny typ programowalnej logiki. Wszystko to prowadzi do tego, że CPLD jest stosowany głównie w obwodach, w których potrzebna jest duża prędkość i duża liczba wyjść, przy wykonywaniu prostych zadań.


2. FPGA (Field-Programmable Gate Array - Array Gate Programmable User Array, jednak często nazywany FPGA) - bardziej rozwinięte i złożone urządzenia w porównaniu do CPLD, są zbudowane na logicznych blokach z elastycznym przełączaniem i zawierają większą liczbę elementów (dziesiątki lub setki tysięcy sztuk).

Oprogramowanie układowe jest zwykle przechowywane w zewnętrznej nieulotnej pamięci. Oprócz najprostszych elementów logicznych układy FPGA mogą zawierać gotowe bloki do wykonywania dowolnych operacji, na przykład bloki przetwarzania sygnału DSP. Wszystko to pozwala wdrożyć procesor, urządzenia przetwarzające sygnał i inne złożone urządzenia.


Ciekawe:

Chociaż w rzeczywistości obecność nieulotnej pamięci nie czyni programowalnej logiki CPLD. Jest to częściowo mylące. Główną różnicą między CPLD a FPGA jest struktura wewnętrzna.

Różnica między CPLD a FPGA polega na strukturze wewnętrznej

Wewnętrzne urządzenie CPLD pokazano bardziej szczegółowo na poniższym rysunku.

Urządzenie wewnętrzne CPLD

Przybliżony schemat jego makrokomórki wygląda następująco:

Przykładowy układ makrokomórek CPLD

Makrokomórka składa się z programowalnych multiplekserów, wyzwalaczy (jednego lub więcej) i tworzy grupę wyjściowych sygnałów FB w kilku wersjach.

Oto kolejny przykład - schemat blokowy układu CPLD z rodziny układów Altera MAX II.

Schemat blokowy Altera MAX II CPLD

I plan strukturalny układów z tej samej rodziny.

Schemat blokowy Altera MAX II CPLD

Opony pośrednie są przypisywane do makrokomórek za pomocą węzła, takiego jak dystrybutor w języku angielskim. brzmi to jak logiczny alokator, pokazany na poniższym schemacie, pokazuje także macierz globalnej puli routingu, a na wyjściowych makrokomórkach ma dwa sprzężenia zwrotne.

Matryca rozdzielcza i przełączająca

Zewnętrzne wyjścia mikroukładu są połączone z wyjściami makrokomórek przez inny blok (macierz) - ORP (Output Routing Pool), zauważ, że za jego pośrednictwem logika INPUT jest podłączona do GRP, jak pokazano na poniższej ilustracji.

Uwaga:

Niektóre CPLD mają tzw wejścia bezpośrednie (wejście bezpośrednie) - są one podłączone bezpośrednio do wejść komórek, co zmniejsza opóźnienia.

Struktura FPGA ma postać:

Struktura FPGA
  • L - logicznie konfigurowalny blok;

  • S (blok substytucyjny) - blok substytucyjny, otrzymuje określoną liczbę bitów na ruch, konwertuje zgodnie z pewnym algorytmem i wysyła inną liczbę bitów na wyjściu. Innymi słowy, dekoder, szyfrator i przełącznik.

  • C (blok połączeń) - blok połączeń.

Schemat blokowy S:

 

Schemat blokowy S.



Programowanie


HDL (język opisu sprzętu) - jest to język, w którym programowane są układy FPGA. Popularne i wszechstronne są Verilog HDL i VHDL. Istnieją inne języki, takie jak te specyficzne dla producentów, takie jak AHDL dla produktów ALTERA.

Programowanie graficzne jest dostępne dla programistów pracujących z układami FPGA. Oznacza to, że możesz po prostu rysować obwody logiczne lub łączyć kod z grafiką. Ten ostatni nazywa się modułową metodą programowania, gdy określone są określone moduły, a górny moduł, w którym wszystko jest połączone, jest programowany graficznie.


Przykłady popularnych producentów i serii

W chwili pisania najbardziej znane są produkty dwóch producentów.

  • Altera (założona w 1983 r.);

  • Xilinx (założony w 1984 r.).

Altera

Altera ma kilka głównych serii programowalnych układów logicznych:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Cyklon

  • Arria;

  • Stratix

Rozważmy każdy z nich bardziej szczegółowo. W poniższych tabelach znajdziesz ogólne informacje o żetonach rodziny.

Charakterystyka głównej serii programowalnej logiki
Charakterystyka głównej serii programowalnej logiki

Altera 3 CPLD CPLD:

  • MAX to CPLD do użytku w urządzeniach mobilnych, cechami charakterystycznymi są stosunkowo niskie zużycie energii i rozpraszanie ciepła. W zależności od złożoności i lat wydania wyróżnia się następujące modyfikacje:

  • 7000S jest nieaktualny, został wydany w 1995 roku.

  • 3000A - wydany w 2002 roku, produkowany jest w technologii 300 nm. Składa się z niewielkiej liczby makrokomórek (32–512)

  • MAX II wydany w 2004 roku, jest produkowany w technologii 100 nm, składa się z większej liczby jednostek (240-2210) pracujących na częstotliwościach do 304 MHz. Produkt jest wytwarzany w skrzyniach typu TQFP 0,5 młyna ze 100 lub więcej nóżkami.

  • MAX IIZ - 2007, główną cechą jest obniżone zużycie energii - jest to pozytywny punkt, jednak częstotliwości są zmniejszone do 152 MHz. Te mikroukłady są zasilane z 1,8 V.

  • MAX V - 2010 rok. Jest produkowany zgodnie z technologią 180 nm, może zawierać od 40 do 2210 bloków i działać na częstotliwościach do 152 MHz lub 304 MHz - zależy to od liczby bloków.

Altera 3 CPLD CPLD

FPGA:

  • Cyclone to budżetowy układ typu FPGA. Istnieje pięć pokoleń oznaczonych liczbami greckimi (odpowiednio od I do V). Pierwsza generacja została wydana w 2002 roku, wyprodukowana w technologii 180 nm, a piąta generacja została wydana w 2011 roku i wyprodukowana w technologii 28 nm. Warto zauważyć, że wszystkie pokolenia pozostają aktualne.

  • Arria - patrz także FPGA klasy średniej.

  • Stratix - Potężne układy FPGA.

Poniżej znajdują się programowalne tabele przestawne Altera FPGA.

Funkcje FPGA
Funkcje FPGA
Funkcje FPGA

I pełna tabela pod linkiem:https://e.imadeself.com/pl/tablitsa.docx

Producent Xilinx CPLD zaprezentowany szeregowo:

  • XC9500XL z 36-288 makrokomórek. Działają na częstotliwościach do 178 MHz, a modele na 288 makrokomórkach na 208 MHz. Odbywa się to jak w małych skrzynkach z 44 pinami (wyprowadzeniami) w odległości 0,8 mm od siebie - takie skrzynki są uważane za łatwe do lutowania. Dostępne również z nóżkami 64 i 100 w odstępach co 0,5 mm, a także modele w obudowach typu PLCC.

  • Seria CoolRunner-II to energooszczędny, ale produktywny CPLD. Funkcja jest zasilana napięciem 1,8 V, wejścia i wyjścia są zaprojektowane do pracy w zakresie 1,5-3,3 V. Składają się z 32-512 makrokomórek i są wytwarzane w technologii 180 nm. W zależności od liczby komórek pracują w zakresie częstotliwości 179–323 MHz, a im mniejsze komórki, tym więcej częstotliwości mogą w tym przypadku pracować. Można je znaleźć w różnych przypadkach, w tym łatwo lutowanych, jak w mikroukładach z serii rozważanej powyżej.

Firma Xilinx nie przeszła, a FPGA:

  • Spartan-6 - składa się z 6-wejściowych bloków logicznych, ich liczba mieści się w zakresie 3840-147443 sztuk. Interesujące jest to, że mogą zawierać kontrolery do wymiany danych, takie jak DDR2, DDR3, PCI-EXPRESS, Ethernet 1 Gbit, SerialATA itp.

  • Seria Vitrex-7 jest złożona, mikroukłady mogą zawierać do 2 000 000 bloków logicznych i 1 200 kontaktów.

Poniżej znajdują się tabele podsumowujące ze specyfikacjami CPLD i FPGA z serii Xilinx 6 i 7, a także Zynq-7000.

Funkcje FPGA Xilinx serii 6 i 7
Charakterystyka układów FPGA Virtex-6
Charakterystyka rodziny FPGA Spartan-6
Charakterystyka rodziny FPGA Spartan-6
Funkcje FPGA
Funkcje FPGA

Wniosek

FPGA i PPVM są również produkowane przez inne firmy, takie jak Lattice Semiconductor (w 2002 r. Zaczął produkować FPGA), Actel i jego dobrze znanych czytelników naszej witryny. mikrokontrolery ATMEL i wiele innych. Na logice programowalnej można zaimplementować wiele urządzeń, wykonać równoległe obliczenia niezależnie od siebie w jednym urządzeniu, jednak w przypadku projektów domowych ich zakup jest często nieuzasadniony finansowo, ale jednocześnie całkiem rozsądny na skalę produkcyjną, jako alternatywa dla niestandardowych układów scalonych.

P.S.Obejrzyj wideo, w którym zobaczysz przykład implementacji konsoli do gier Nintendo na FPGA:

Zobacz także na e.imadeself.com:

  • Funkcjonalny język schematów blokowych (FBD) i jego zastosowanie
  • Rodzaje nowoczesnych układów scalonych - rodzaje logiki, przypadki
  • Układy logiczne. Część 1
  • Mikrokontrolery PIC dla początkujących
  • Programowalne sterowniki logiczne do automatyki domowej

  •