FPGA: wszystko o tych chipach i ich programowaniu

Układ FPGA

L FPGA stają się coraz bardziej popularne w ostatnich czasach. Te chipy są często używane nawet w zastosowaniach profesjonalnych, ale także dla majsterkowiczów i producentów, którzy chcą wdrożyć dyskretny obwód wewnątrz chipa ze wszystkimi zaletami, jakie to oznacza. Nie jest tanio ani łatwo znaleźć fabrykę, która wyśle ​​Twoje układy lub wzory i zleci wykonanie niestandardowego chipa.

Prawdą jest, że niektóre odlewnie na to pozwalają robić wafle lub wafle wieloprojektowe robić chipy od osób fizycznych lub uniwersytetów do testowania z nimi. Tego typu fabryki są, jak mówię, trudne do znalezienia, zwykle są za granicą i nie są tanie. Po chwili próbki twoich chipów są wysyłane na uzgodniony adres, ale nie są oni odpowiedzialni za ich testowanie ani sprawdzanie, czy działają. Wszystko zależy od Twojego projektu ...

A alternatywnym rozwiązaniem jest zakup FPGA i zaprogramuj wszystko, czego potrzebujesz, aby zaimplementować wewnątrz chipa ...

Co to jest FPGA?

Programowalne komórki

FPGA to skrót od Field Programmable Gate Array. Są to urządzenia cyfrowe lub chipy, które można skonfigurować tak, aby umożliwić zaimplementowanie praktycznie wszystkiego. Innymi słowy, jest to pusty chip, na którym można „pisać”. Oznacza to, że możesz zaimplementować procesor, pamięć, kontroler, dowolną logikę itp., Osiągając bardzo szybkie działanie i ze wszystkimi zaletami zintegrowania go z chipem, a nie z elementami elektronicznymi.

Ross Freeman i Bernard Vonderschmitt, współzałożyciele Xilinx, byli tymi, którzy wynaleźli FPGA w 1984 roku. Zrobili to jako ewolucję układów CPLD tamtych czasów. Programowalne chipy CPLD miały wady, które rozwiązywały nowe konstrukcje FPGA i od tamtej pory ewoluowały.

Rynek FPGA jest tak owocny, że firmy lubią Intel, Xilinx, Altera, Quick Logic, Lattice itp., dużo zainwestowali, aby opracować lepsze układy FPGA, a także wbudowane środowiska programistyczne lub IDE dla nich. Zapewniając w ten sposób bardzo dobre platformy, aby ułatwić zadanie programistom lub twórcom.

Obecnie producenci ci zapewniają nie tylko programowalny chip, ale także obejmują liczne elementy pomocnicze przynieść więcej możliwości programistom. Na przykład obejmują komórki pamięci flash, komórki pamięci SDRAM itp.

Do czego są używane?

IDE do programowania FPGA

Dlatego FPGA może być podobny do ASIC, ale to możemy wybrać Co się stanie. Na przykład moglibyśmy stworzyć kod, aby go zaprogramować i przekształcić go w procesor, procesor graficzny, sumator, kontroler pamięci lub dowolny inny obwód logiczny zaimplementowany na pojedynczym chipie.

Możliwości są nieskończone. Właściwie polecam odwiedzić stronę internetową opencores.org, strona poświęcona oferowaniu wielu projektów hardware libre. Znajdziesz kody w VHDL, Verligo itp., dla RAM, CPU, GPU, kontrolery, ALU, FPU, dekodery i długie itp..

Jak to jest zaprogramowane?

Programator dla FPGA

Aby zaprogramować FPGA, możemy to zrobić z naszego ulubionego systemu operacyjnego, takiego jak GNU / Linux, Windows i MacOS, chociaż z pewnością jest więcej środowisk programistycznych dla Windows. Ogólnie rzecz biorąc, te same firmy, które oferują FPGA Bardzo kompletne środowisko IDE do pracy i gdzie znaleźć wszystkie potrzebne narzędzia w tym samym pakiecie oprogramowania.

Będziesz także potrzebować Układ lub płytka FPGA i niezbędny kabel lub programator za pomocą którego można podłączyć FPGA do komputera, aby przekazać napisany kod do FPGA i tak jest zaprogramowany. To jest coś podobnego do tego, co robisz z płytką Arduino, pisząc program Arduino IDE do programowalnej pamięci mikrokontrolera.

Jedynie w przypadku FPGA mamy matrycę lub tablicę elementarnych elementów takich jak komórki pamięci, bramki AND, OR, NOT, przerzutniki i inne. podstawowe elementy lub bloki elektroniki cyfrowej których możemy użyć. Za pomocą napisanego programu narzucimy sposób, w jaki te podstawowe bloki mają być zgrupowane w taki mały obwód, jaki chcemy, taki jak ALU.

Oznacza to, że jeśli programujemy sumator w naszym IDE, niezbędne bloki do zaimplementowania tego dodatku będą się łączyć w prawidłowy sposób wewnątrz FPGA, aby układ działał jako sumator. Proste, prawda? Ogólnie rzecz biorąc, do programowania na poziomie fizycznym stosuje się kilka metod, takich jak pamięci lub bezpieczniki, aby w takim przypadku utworzyć trwałe połączenie.

Szybkość, z jaką będą działać, będzie zależeć od częstotliwość zegara do którego działa zakupiony przez nas FPGA. Na przykład najbardziej podstawowe z nich zwykle działają na częstotliwości 50 MHz, inne na znacznie wyższych częstotliwościach. W przypadku FPGA przy 50 MHz oznacza to, że będzie działał z szybkością 50.000.000 XNUMX XNUMX razy na sekundę. Jeśli będziemy kontynuować z sumatorem, który podałem jako przykład, będziesz w stanie zrobić tę ilość sum w ciągu jednej sekundy ...

Kontynuując temat Programowanie, gdy już wiemy, że można pisać kod tak, jak byśmy to robili w Arduino IDE lub opracowywać jakikolwiek inny program i widząc, jak to się robi na poziomie sprzętowym, powiem, że tak naprawdę nie jest to programowanie jako takie. Jest to raczej opis sprzętu. W rzeczywistości używane są języki opisu sprzętu, takie jak VHDL, Verilog itp.

z program ten jest opisany na poziomie logicznym co robi mały obwód, który chcemy zaimplementować. A potem trafia do FPGA. Chociaż prawdą jest, że niektóre platformy umożliwiają programowanie w językach programowania, takich jak C, aby móc zaimplementować procesor w układzie FPGA, a następnie generować programy w celu załadowania do pamięci i przetworzenia przez wspomniany procesor.

Integracja z Arduino

Arduino dla FPGA

Układy FPGA są zwykle używane osobno, ale prawdą jest, że na rynku jest wiele narzędzi i zestawów, które ułatwią Ci integrację Twojego życia. FPGA z platformą Arduino. Przykładem płytki wprowadzającej układy FPGA do projektów z Arduino jest MKR Vidor 4000, chociaż są też inne.

MKR Viewer 4000 jest to plansza z trzema żetonami. Jednym z nich jest FPGA, a konkretnie Intel Cyclone 10. Istnieją również inne chipy do Bluetooth LE lub łączności o niskim poborze mocy, a także kompatybilności z WiFi. Dobre uzupełnienie, aby zapewnić Twojemu Arduino funkcje łączności i móc zaimplementować to, czego potrzebujesz w FPGA.

Dzięki temu masz plik konfigurowalny sprzęt, skonfigurowany przez Ciebie do wybranego celu. To daje nieskończone możliwości.


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.