Czy układy FPGA mogą dynamicznie modyfikować swoją logikę?

15

Jest teoretycznie możliwe, że FPGA zapisuje obraz konfiguracji do pamięci zewnętrznej i ładuje obraz konfiguracji z pamięci, aby się zrekonfigurować. Byłaby to „niedynamiczna” rekonfiguracja.

Czy układy FPGA potrafią dynamicznie przeplatać strukturę logiki? Rzeczywiście, chociaż przerzutniki mogą mieć modyfikowaną wartość, nie słyszałem o dynamicznej rekonfiguracji tabel przeglądowych i wewnętrznych okablowań, które składają się na logikę.

Czy wewnętrzną logikę FPGA (inną niż pamięć) można dynamicznie modyfikować? Jeśli nie, dlaczego nie?

Randomblue
źródło
„dynamiczna rekonfiguracja” jest rzeczywiście frazą, której szukasz :)
Martin Thompson
Czy szukasz układów FPGA, które same mogą się zrekonfigurować (tak jak niektóre mikrokontrolery mogą), czy też można je ponownie skonfigurować (środowisko wykonawcze) z zewnętrznego komponentu?
Trygve Laugstøl

Odpowiedzi:

12

Tak, wiem, że przynajmniej Xilinx ma części, które obsługują dynamiczną rekonfigurację, a inni główni dostawcy prawdopodobnie również.

Jest to jednak duże przedsięwzięcie, więc naprawdę musisz się upewnić, że tego potrzebujesz. Musisz fizycznie podzielić układ na dwa lub więcej obszarów, z których co najmniej jednego nie można rekonfigurować, i fizycznie „przypiąć” wszystkie wewnętrzne interfejsy między obszarami, aby narzędzia do syntezy mogły wykonać wszystkie właściwe połączenia.

Dave Tweed
źródło
1
Wyszukaj na stronie internetowej Xilinx „rekonfigurowalność”!
Leon Heller
3

Można zastosować dwa ogólne podejścia. Wiele rodzajów układów FPGA utrzymuje konfigurację w zatrzaskach, które są pobierane z urządzenia zewnętrznego (zazwyczaj EEPROM) podczas uruchamiania; FPGA po odczytaniu nie potrzebuje zewnętrznego urządzenia. Zmiany w EEPROM podczas pracy urządzenia nie zostaną wprowadzone, dopóki FPGA nie zostanie poinstruowane, aby ponownie załadować jego zawartość. Tak więc możliwe jest, że urządzenie, które byłoby całkowicie niesprawne bez FPGA, przeprogramuje to FPGA podczas pracy; jeśli jednak coś pójdzie nie tak podczas zapisu w pamięci EEPROM, urządzenie może nie działać, chyba że może zostać przepisane przez urządzenie zewnętrzne (stan określany czasem jako „zablokowany”).

Alternatywnym podejściem, często przydatnym w przypadku CPLD, których komórki EEPROM „bezpośrednio” kontrolują swoją funkcjonalność (w przeciwieństwie do kopiowania do zatrzasków), jest posiadanie systemu, który może działać z ograniczoną funkcjonalnością, nawet gdy programowalne urządzenie jest w stanie bezużytecznym. Jeśli taka ograniczona funkcjonalność jest wystarczająca do przeprogramowania CPLD, urządzenie może być odporne na „blokowanie”. Na przykład urządzenie bezprzewodowe może używać CPLD do kontrolowania swojej funkcji bezprzewodowej i innych funkcji. Normalną metodą przeprogramowania CPLD może być otrzymanie obrazu do pamięci RAM za pośrednictwem łącza bezprzewodowego, a następnie użycie tego obrazu do przeprogramowania CPLD. Jeśli programujesz pliki, połączenie bezprzewodowe może być bezużyteczne do czasu przeprogramowania CPLD. Aby jednak umożliwić przywrócenie systemu, procesor może zawierać „domyślny”

supercat
źródło