Bạn thực sự có thể phá vỡ một FPGA bằng cách lập trình nó không chính xác?
Tôi thực sự là một người làm phần mềm. Không có gì bí mật rằng nếu phần mềm của bạn sai, bạn có thể phá hủy tất cả các loại dữ liệu quan trọng và thậm chí có thể làm hỏng toàn bộ máy. Nhưng thực sự rất khó để làm hỏng máy tính chỉ bằng cách lập trình nó.
(Có rất nhiều tin đồn về hướng dẫn Halt-And-Catch-Fire hoặc có thể khởi động lại phần sụn hệ thống để gạch bo mạch chủ hoặc lập trình các giá trị không chính xác vào card đồ họa để xào màn hình của bạn. Nhưng tất cả những điều này có vẻ chính xác : tin đồn. Và tất cả về phần cứng đã lỗi thời. Có vẻ như thực sự, rất khó để phá vỡ các thiết bị máy tính hiện đại với lập trình xấu.)
Với một đồ họa, bạn (ít nhất là trên danh nghĩa) nối các mạch riêng lẻ lại với nhau. Có vẻ như hoàn toàn hợp lý rằng thiệt hại vật lý có thể xảy ra trong trường hợp có lỗi.
Ví dụ: bạn có thể viết một số VHDL yêu cầu hai đầu ra được gắn với nhau. Nếu họ đưa ra các mức logic khác nhau, tôi tưởng tượng rằng nó có thể sẽ chiên thứ gì đó. (Tôi hy vọng rằng công cụ tổng hợp của bạn sẽ hét vào bạn để không làm điều này ... nhưng tôi không biết liệu các công cụ đó có thực sự thực hiện mức độ kiểm tra lỗi đó không.)
Dường như cũng có thể vô tình chọn sai mô hình của FPGA trong công cụ tổng hợp, và do đó cuối cùng cố gắng lập trình chip của bạn với một dòng bit dành cho một số mô hình hoàn toàn khác. Tôi không biết điều đó sẽ làm gì, nhưng tôi nghi ngờ nó sẽ "tệ".
Đối với vấn đề đó, bạn chắc chắn có thể kết nối chip FPGA với phần còn lại của mạch không chính xác. Ví dụ, nếu bạn làm xáo trộn các số pin, bạn có thể kết thúc với bảng cố gắng lái một pin I / O mà chính bản thân FPGA cũng đang cố gắng lái. Các chân I / O thường có bất kỳ "bảo vệ" nào trước lỗi đó không? Hay con chip sẽ chỉ chiên?