Układy FPGA oparte na pamięci SRAM muszą ponownie ładować strumień bitów po wyłączeniu zasilania. Tymczasem nielotny nie potrzebuje tego.
Zastanawiam się, dlaczego przeprowadzono więcej eksperymentów i badań bezpieczeństwa na SRAM FPGA niż na bazie NVM, wydaje się, że niestabilna technologia jest częściej używana bez względu na jej granice bezpieczeństwa (jeśli chodzi o zapewnienie bezpiecznego rozruchu).
(PS: Nie mam statystyk, jest to osobista obserwacja)
Odpowiedzi:
Głównym sterownikiem jest fakt, że SRAM jest wysoce kompatybilny z tym samym procesem fizycznym, który jest wykorzystywany do implementacji rzeczywistej logiki. Rzeczywiście, większość układów FPGA w dzisiejszych czasach opiera się na LUT (tablicach przeglądowych), które tak naprawdę są tylko niewielkimi kawałkami pamięci RAM.
Z drugiej strony proces wymagany do zbudowania pamięci EEPROM (pamięć nieulotna) wymaga dodatkowych kroków - stworzenia pływających bram o specjalnej grubości tlenku itp. Proces ten NIE jest bezpośrednio zgodny z procesem logiki / SRAM. Oznacza to, że nielotne układy FPGA stanowią w pewnym stopniu kompromis w obu obszarach.
źródło
Oprócz odpowiedzi Dave'a Tweeda dotyczącej zaangażowanych procesów produkcyjnych, większość układów FPGA opartych na pamięci flash nadal używa SRAM do napędzania swoich tkanin. Strumień bitów jest ładowany do pamięci SRAM z pamięci flash, podobnie jak w bardziej konwencjonalnym układzie FPGA, jedyną różnicą jest to, że lampa błyskowa jest wewnętrzna. Ta architektura jest widoczna, gdy spojrzysz na ich arkusze danych i adnotacje. W szczególności niektóre urządzenia, takie jak Lattice MachXO2 / 3, obsługują przeprogramowanie pamięci flash podczas pracy urządzenia, co jest możliwe tylko dlatego, że urządzenie działa w rzeczywistości z pamięci SRAM zamiast bezpośrednio z pamięci flash. Tak więc FPGA „na bazie flash” potrzebuje flasha oprócz SRAM, co oznacza, że potrzebuje więcej obszaru matrycy.
Jeśli chodzi o bezpieczeństwo, masz rację, wskazując, że proces uruchamiania FPGA może być słabym punktem, jeśli chodzi o umożliwianie przechwytywania strumienia bitów. Aby pomóc wypełnić tę lukę, wiele układów FPGA obsługuje teraz szyfrowanie strumienia bitów, które jest oparte na bezpiecznym kluczu przechowywanym w dedykowanej pamięci w układzie FPGA. Obraz strumienia bitów jest szyfrowany tym kluczem, ładowany do pamięci konfiguracji, a następnie, gdy FPGA uruchamia się, odczytuje zaszyfrowany strumień bitów i odszyfrowuje go, gdy ładuje go do swojego (Niektóre mikrokontrolery wymagające pamięci zewnętrznej mają podobne możliwości i zasady są w dużej mierze takie same.)
źródło
Przede wszystkim zależy to od twoich wymagań. Podczas gdy rozmiar, waga i moc (SWaP) są głównymi czynnikami generującymi układy scalone, jeśli nie jesteś zmuszony do opracowania układu ASIC z powodu tych wymagań, wydajność jest kolejnym czynnikiem, który może zepchnąć cię z powrotem do układu ASIC, ale możesz użyć FPGA, jeśli możesz sobie pozwolić na kompromisy SWaP.
Układy FPGA oparte na technologii FLASH (Actel, teraz Microsemi), tradycyjnie, nie miały gęstości ani wydajności, jakie można uzyskać dzięki układom FPGA opartym na SRAM, więc jeśli wydajność była czynnikiem decydującym, wybrałbyś Xilinx lub Altera (obecnie Intel) lub może Krata.
Zasadniczo kierujesz się wymaganiami swojego systemu, a konkretnie Twojego układu scalonego. Od samego początku spełniasz te wymagania i przeprowadzasz analizę handlową różnych układów FPGA (arkusz kalkulacyjny). SWaP i wydajność, a następnie powtarzające się koszty są głównymi kwestiami, które chcesz powtórzyć ze swoim zespołem (systemy, CCA, może nawet SW), które są sprzężeniem zwrotnym z głównym inżynierem / kierownikiem projektu. Inne problemy, takie jak niezawodność, możliwości produkcyjne itp., Są zwykle przedstawiane przez innych członków zespołu z tych organizacji, ale zwykle nie mają większego znaczenia bez początkowej wymiany i zazwyczaj nie uniemożliwiają wyboru.
W Internecie znajdują się artykuły, jeśli szukasz „SRAM vs FLASH FPGA”, ale prawdopodobnie dowiesz się więcej na podstawie analizy handlu opartej na swoich wymaganiach, korzystając z arkuszy danych, niż cokolwiek innego.
źródło
Aby rozwiązać problem bezpieczeństwa, większość nowoczesnych układów SRAM FPGA można skonfigurować za pomocą szyfrowanego strumienia , zwykle z nowoczesnymi standardami szyfrowania, takimi jak 256-bitowy AES. Prawdopodobnie jest to tak samo bezpieczne, jak przechowywanie konfiguracji wewnętrznie: oddany administrator, który jest w stanie wyodrębnić klucz prywatny z odklejonego układu, będzie mógł również odczytać wewnętrzną pamięć flash.
Układy FPGA oparte na pamięci flash są zwykle używane, gdy implementacja jest raczej prosta (więc duża pamięć SRAM FPGA nie jest potrzebna) lub gdy wymagane jest natychmiastowe uruchomienie.
źródło