FPGA가 로직을 동적으로 수정할 수 있습니까?


15

이론적으로 FPGA는 구성 이미지를 외부 메모리에 기록하고 구성 이미지를 메모리에서로드하여 자체적으로 재구성 할 수 있습니다. 이것은 "비 동적"재구성입니다.

FPGA는 로직 패브릭을 동적으로 다시 연결할 수 있습니까? 실제로 플립 플롭의 값을 수정할 수는 있지만 로직 패브릭을 구성하는 룩업 테이블 및 내부 배선의 동적 재구성에 대해서는 들어 본 적이 없습니다.

메모리가 아닌 FPGA 내부 로직을 동적으로 수정할 수 있습니까? 그렇지 않다면 왜 안됩니까?


"동적 재구성"은 실제로 당신이 찾고있는 문구입니다 :)
Martin Thompson

일부 마이크로 컨트롤러처럼 자체 재구성이 가능하거나 외부 구성 요소에서 재구성 (런타임)이 가능한 FPGA를 찾고 있습니까?
Trygve Laugstøl

답변:


12

예, 적어도 Xilinx에는 동적 재구성을 지원하는 부품이 있으며 다른 주요 공급 업체도 마찬가지입니다.

하지만이 작업을 수행하는 것은 주요한 일이므로 실제로 필요한지 확인해야합니다. 칩을 물리적으로 둘 이상의 영역으로 분할해야하며, 그 중 하나 이상은 재구성 할 수 없으며 영역간에 모든 내부 인터페이스를 물리적으로 "핀 다운"하여 합성 툴이 모든 올바른 연결을 수행 할 수 있습니다.


1
Xilinx 웹 사이트에서 "재구성 가능성"을 검색하십시오!
Leon Heller

3

사용할 수있는 두 가지 일반적인 방법이 있습니다. 많은 유형의 FPGA는 시작시 외부 장치 (일반적으로 EEPROM)에서 가져온 래치로 구성을 유지합니다. FPGA는 외부 디바이스를 읽은 후에 필요하지 않습니다. 디바이스 작동 중 EEPROM에 대한 변경 사항은 FPGA가 내용을 다시로드하도록 지시 할 때까지 적용되지 않습니다. 따라서, FPGA없이 완전히 동작 할 수없는 디바이스는 동작 중에 FPGA를 재 프로그래밍 할 수있다. 그러나 EEPROM 쓰기 중에 문제가 발생하면 외부 장치 (때로는 '벽돌 림'이라고도 함)에 의해 다시 쓰여질 때까지 또는 장치가 작동하지 않을 수 있습니다.

EEPROM 셀이 자신의 기능을 "직접"제어하는 (래치에 복사되는 대신) CPLD에 유용한 대체 방법은 프로그램 가능 장치가 쓸모없는 상태 일 때에도 제한된 기능으로 작동 할 수있는 시스템을 갖추는 것입니다. 그러한 제한된 기능이 CPLD를 재 프로그래밍하기에 충분하다면, 장치는 '벽돌 기'에 영향을받지 않을 수 있습니다. 예를 들어, 무선 장치는 CPLD를 사용하여 무선 기능 및 기타 기능을 제어 할 수 있습니다. CPLD를 다시 프로그래밍하는 일반적인 방법은 무선 링크를 통해 RAM으로 이미지를 수신 한 다음 해당 이미지를 사용하여 CPLD를 다시 프로그래밍하는 것입니다. 파일을 프로그래밍하는 경우 CPLD가 다시 프로그래밍 될 때까지 무선 링크를 사용하지 못할 수 있습니다. 그러나 시스템을 복구하기 위해 프로세서에 "기본값"이 포함될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.