Czy rzeczywiście potrafisz złamać układ FPGA, programując go niepoprawnie?
Naprawdę jestem facetem od oprogramowania. Nie jest tajemnicą, że jeśli twoje oprogramowanie jest złe, możesz zniszczyć wszystkie ważne dane, a może nawet zawiesić całą maszynę. Ale naprawdę trudno jest fizycznie uszkodzić komputer przez samo jego zaprogramowanie.
(Niekończące się plotki na temat instrukcji Halt-and-Catch-Fire, lub możliwości ponownego flashowania oprogramowania układowego w celu zamurowania płyty głównej lub programowania nieprawidłowych wartości na karcie graficznej w celu usmażenia monitora. Ale wszystko wydaje się dokładnie takie : pogłoski. A wszystko o dawno przestarzałym sprzęcie. Wydaje się naprawdę bardzo trudne do złamania współczesnego sprzętu komputerowego przy złym programowaniu.)
Dzięki FPGA (przynajmniej nominalnie) łączysz poszczególne obwody razem. Wydaje się całkowicie prawdopodobne, że w przypadku pomyłki mogą wystąpić szkody fizyczne.
Na przykład możesz napisać VHDL z żądaniem powiązania dwóch wyjść. Jeśli wyprowadzą różne poziomy logiczne, wyobrażam sobie, że prawdopodobnie coś usmaży. (Mam nadzieję, że twoje narzędzie do syntezy krzyczy na ciebie, aby tego nie robić ... ale nie wiem, czy takie narzędzia faktycznie implementują ten poziom sprawdzania błędów).
Wydaje się również całkiem możliwe, aby przypadkowo wybrać niewłaściwy model FPGA w narzędziu do syntezy, co kończy się próbą zaprogramowania układu za pomocą strumienia bitów przeznaczonego dla zupełnie innego modelu. Nie wiem, co by to zrobiło, ale podejrzewam, że byłoby to „złe”.
W tym przypadku zdecydowanie można niepoprawnie podłączyć układ FPGA do reszty obwodu. Na przykład, jeśli zepsujesz numery pinów, możesz skończyć z płytką próbującą wbić pin we / wy, którą sama FPGA również próbuje prowadzić. Czy styki we / wy zazwyczaj mają jakąkolwiek „ochronę” przed takim błędem? A może chip po prostu się usmaży?