[FPGA]

FPGA 디자인 보안[3] : 플래시내장 FPGA

Neo Park 2012. 3. 4. 15:55

 

비휘발성 FPGA는 Flash 보안의 기능을 추가로 제공한다. 갑작스런 동작 문제를 피하기 위해,보안상 Flash를 보호 할 수 있다.

이 기능은 64비트 key를 통해 보호된다.삭제 또는 재프로그래밍 시, ispVM 시스템은 Flash의 보호를 확인한다.

64비트 key의 입력을 유저에게 묻는다. 그리고 ispVM은 디바이스 내에 저장된 key와의 일치 여부를 확인한다.

만약 일치하면 동작은 수행되고, 그렇지 않으면 더 이상 삭제 할 수 없다.이런 안전책은 유저의 보드 애플리케이션뿐만 아니라,

시스템의 수정 시 도용 등의 문제를 보호한다. 이 기능은 또한 원격 시스템 업데이트 할 때도 도움이 된다. Lattice FPGA는 주변의

컴포넌트의 손상 없이 FPGA 재 프로그램 기능을 제공한다. 이 기능을 TransFR이라 부른다.


FPGA의 주목할 만한 주요 기능 중 하나는 쉽게 재구성이 되는 것이다. 하지만, 재구성은 전형적으로 중대한 시스템의 중단을 의미한다.
그러나 Lattice는 재구성시 불편을 최소화 할수 있는 TransFR을 개발했다. 여러 LatticeFPGA 제품군은 TransFR 기술을 제공한다.
이는 SRAM FPGA인 LatticeECP2/M 뿐만아니라, Flash가 내장된 MachXO, LatticeXP와 LatticeXP2를 포함한다.

 


TransFR은 기본적으로 동시에 바운더리-셀과 프로그램을 동시에 수행하는 기술이다.기본 프로그래밍 동작은 FPGA의 SRAM영역은

계속해서 동작하고 비휘발성 메모리(내부또는 외부)의 내용을 수정하는 것이다. LatticeFPGA는 프로그래밍 동안, FPGA I/O를

샘플링과 프리-로딩 할 수 있는 바운더리 스켄 셀을 가지고 있다.TransFR은 네 단계로 수행된다.


1. 기본 프로그래밍. SRAM 영역의 기능상 문제없이 FPGA의 비휘발성 메모리에 재프로그램 한다.
2. 유저는 I/O상태를 현 상태 유지 또는 미리정의 할지를 정의한다. 시스템 셧-다운을 방지하기 위해, I/O 값을 유지한다.
3. JTAG 명령을 통해, 비휘발성 메모리에 새로운 컨피규레이션을 전송한다. SRAM프로그래밍이 완료될 때, 글로벌 리셋이 수행된다.
PLL과 I/O 상태는 릴리즈 된다.

4. 출력은 릴리즈 되고, 내부 로직은 I/O의 확인을 멈춘다.


TransFR은 ispLEVER 개발 툴과 ispVM 프로그래밍 툴을 통해 동작한다.
업데이트는 128비트 AES key 파일과Lattice TransFR 기술을 사용하여 완료된다.
그러나 시스템 결점은 여전히 심각하고 문제가 많은 시스템의 원인이 된다. 비록 FPGA의비트스트림이 암호화되어 있더라도, 전송의 문제

또는 비정상적인 동작으로 인해 문제가 된다. 이 문제는 FPGA가 봉쇄되고, 시스템이 정상
적으로 재시작 되지 않는 원인이 될 것이다. 이런 비정상적 문제를 극복하기 위해, Lattice는 “Dual boot”를 구현했다.