FPGA를 잘못 프로그래밍하여 실제로 중단 시킬 수 있습니까 ?
저는 정말 소프트웨어 녀석입니다. 소프트웨어가 잘못되면 모든 종류의 중요한 데이터를 파괴 할 수 있으며 전체 시스템을 손상시킬 수도 있습니다. 그러나 컴퓨터를 프로그래밍하는 것만으로 실제로 컴퓨터를 손상 시키는 것은 매우 어렵 습니다.
(Halt-and-Catch-Fire 명령에 대한 소문이 있거나, 시스템 펌웨어를 다시 플래시하여 마더 보드를 브릭 킹하거나, 잘못된 값을 그래픽 카드에 프로그래밍하여 모니터를 튀길 수 있습니다. 그러나이 모든 것이 정확히 : 소문. 그리고 오래 쓸모없는 하드웨어에 관한 것. 나쁜 프로그래밍으로 현대의 컴퓨터 장비를 깨뜨리는 것은 정말로 어렵다.)
FPGA를 사용하면 개별 회로를 함께 연결합니다 (적어도 명목상). 실수로 인해 물리적 손상이 발생할 수 있다는 것은 완전히 그럴듯 해 보입니다.
예를 들어, 두 개의 출력이 서로 연결되도록 요청하는 VHDL을 작성할 수 있습니다. 그들이 다른 논리 레벨을 출력하면 아마도 무언가를 볶을 것이라고 생각합니다. (나는 당신의 합성 도구가 이것을하지 않기 위해 비명을 지길 바랄 것입니다 ... 그러나 그러한 도구가 실제로 그 수준의 오류 검사를 구현하는지는 모르겠습니다.)
합성 툴에서 실수로 잘못된 FPGA 모델을 선택하는 것이 가능하기 때문에 완전히 다른 모델을위한 비트 스트림으로 칩을 프로그래밍하려고 시도하게됩니다. 나는 그것이 어떻게 될지 모르지만 그것이 "나쁜"것으로 생각됩니다.
그 문제 때문에 FPGA 칩을 나머지 회로에 잘못 연결할 수 있습니다. 예를 들어, 핀 번호를 엉망으로 만들면 보드 자체가 FPGA 자체도 구동하려고하는 I / O 핀을 구동하려고 할 수 있습니다. I / O 핀에는 일반적으로 이러한 실수에 대한 "보호"기능이 있습니까? 아니면 칩이 튀겨 질까요?