Bezpośrednio programowalna macierz bramek

Programowalna przez użytkownika tablica bramek (często skrócona do FPGA) jest elektronicznym komponentem używanym do budowy rekonfigurowalnych obwodów cyfrowych. Oznacza to, że FPGA różni się od bramki logicznej, ponieważ bramka logiczna ma stałą funkcję. W przeciwieństwie do tego FPGA ma nieokreśloną funkcję w momencie produkcji. Zanim FPGA może być używany w obwodzie, musi być zaprogramowany, to znaczy skonfigurowany.

FPGA to układy scalone w kategorii programowalnych urządzeń logicznych lub PLD. FPGA to układy o najwyższej wydajności, najbardziej elastyczne i jednocześnie najdroższe z typów PLD. Wadą układów FPGA w porównaniu do innych PLD jest to, że nie pamiętają one swojej konstrukcji po odłączeniu zasilania. Dlatego też FPGA potrzebuje oddzielnego układu pamięci konfiguracyjnej, który utrzyma konstrukcję FPGA. Gdy zasilanie jest oddawane do FPGA, stała część FPGA odczytuje konfigurację z układu pamięci konfiguracyjnej. Po skonfigurowaniu FPGA będzie ona w stanie wykonać funkcję, którą nadała jej konstrukcja.

FPGA różni się od mikroprocesora lub mikrokontrolera. FPGA w swojej podstawowej formie nie jest w stanie uruchomić oprogramowania. Tylko wtedy, gdy FPGA otrzyma konfigurację, która zawiera strukturę procesorowo-architekturową, ma zdolność do uruchamiania oprogramowania.

Producenci FPGA dostarczają oprogramowanie inżynierskie dla Windows, a czasem także dla Linuksa, w celu opracowania projektów dla FPGA. Projekt jest powszechnie zapisywany w czytelnych dla człowieka plikach komputerowych zwanych Hardware Description Language (HDL). Najbardziej popularne to VHDL i Verilog. Języki opisu sprzętu są silnie porównywalne z językami programowania. Jednak intencją HDL jest projektowanie cyfrowych układów logicznych podczas projektowania oprogramowania w językach programowania.

Oprogramowanie inżynierskie FPGA ma za zadanie przetłumaczyć abstrakcyjny kod HDL na elementy logiczne dostępne w wybranym FPGA. Jest to tzw. synteza logiczna. Następnie wykonywany jest proces lokalizacji i przebiegu elementów logicznych w FPGA. Wynikiem tego jest plik bitowy, który można zaprogramować w FPGA lub w pamięci konfiguracyjnej. Zazwyczaj odbywa się to za pomocą programatora USB podłączonego do portu JTAG w FPGA.

Ponieważ FPGA jest układem scalonym, producent FPGA może zdecydować się na dodanie innych powszechnie stosowanych elementów układu scalonego. Te stałe części nazywane są rdzeniami. Są to na przykład kontrolery sieci Ethernet lub nawet kompletna architektura procesora-architektura. Dla różnych segmentów rynku, takich jak obronność, medycyna, komunikacja i robotyka, producent FPGA stara się dodać najbardziej wartościowy zestaw tych dodatkowych rdzeni.

Zoom


Struktura wewnętrzna

FPGA są generalnie zbudowane na programowalnych elementach logicznych i programowalnych połączeniach. Jednym z elementów składowych elementów logicznych jest programowalna tabela odnośników (LUT). LUT może być zaprogramowany tak, aby wyświetlać dowolne wartości wejściowe. W ten sposób LUT może być zaprogramowany jako dowolny typ układu logicznego z taką samą liczbą wejść i wyjść. Na przykład, 2-wejściowy, 1-wyjściowy LUT można zaprogramować tak, aby emulował logikę 2-wejściową AND, OR, NAND, NOR, XOR, itd. Wyjście tego LUT może być zapisywane za pomocą rejestru lub podłączone do wejścia innych LUT. Za pomocą programowalnego menu, FPGA może być zaprogramowany do wyboru zarejestrowanego lub niezarejestrowanego wyjścia. Ta kombinacja LUT, rejestru i menu jest ogólną strukturą elementu logicznego.

Do połączenia tych elementów logicznych wykorzystywane są tranzystory przepustowe. Tranzystor może być zaprogramowany tak, aby albo łączył sygnał, albo nie, co daje FPGA możliwość bardzo specyficznego łączenia ze sobą elementów logicznych. Na przykład, jeśli wyjście jednego z elementów logicznych zasila wejście innego, tranzystor przelotowy może być zaprogramowany tak, aby połączyć te dwa przewody razem i dopasować je do określonej logiki. Pomiędzy elementami logicznymi a tranzystorami przepustowymi, kompilator może pobrać opis sprzętowy z HDL, stworzyć logikę dla elementów logicznych i połączyć je razem za pomocą tranzystorów przepustowych.

Pytania i odpowiedzi

P: Co to jest Field-programmable gate array (FPGA)?


O: Field-programmable gate array (FPGA) to elektroniczny komponent używany do budowy rekonfigurowalnych obwodów cyfrowych. W momencie produkcji ma nieokreśloną funkcję i musi zostać zaprogramowana lub przekonfigurowana, zanim będzie można ją zastosować w układzie.

P: Czym różni się FPGA od bramki logicznej?


O: FPGA różni się od bramki logicznej tym, że bramka logiczna ma stałą funkcję, natomiast FPGA ma funkcję nieokreśloną w momencie produkcji.

P: Jakim rodzajem układu scalonego jest FPGA?


O: FPGA to układ scalony z kategorii programowalnych urządzeń logicznych lub PLD.

P: Jakie są wady stosowania FPGA w porównaniu z innymi PLD?


O: Jedną z wad stosowania FPGA w porównaniu z innymi PLD jest to, że nie pamiętają one swojego projektu po odłączeniu zasilania, dlatego potrzebują oddzielnego układu pamięci konfiguracyjnej, w którym przechowywany jest projekt. Są one również droższe niż inne rodzaje PLD.

P: Jak programuje się FPGA?


O: Aby zaprogramować FPGA, inżynierowie używają oprogramowania inżynierskiego dla Windows lub Linux do opracowania projektów napisanych w językach opisu sprzętu, takich jak VHDL i Verilog. Następnie oprogramowanie tłumaczy ten kod na elementy logiczne dostępne w wybranych FGPA i pozycjonuje je za pomocą procesów place and route, co tworzy plik bitowy, który można zaprogramować w pamięci konfiguracyjnej lub bezpośrednio w samym FGPA za pomocą programatora USB podłączonego do portu JTAG.

P: Czy mikroprocesory i mikrokontrolery są podobne do FGPA?


O: Nie, mikroprocesory i mikrokontrolery różnią się od FGPA, ponieważ w swojej podstawowej formie nie mogą uruchamiać oprogramowania; dopiero po podaniu konfiguracji zawierającej architekturę procesora mają tę zdolność.

AlegsaOnline.com - 2020 / 2023 - License CC3