FPGA




FPGA를 선택할 때 시스템 디자이너는 FPGA 실리콘 아키텍처를 고려해야 할 뿐만 아니라 자신이 원하는 알고리즘을 빠르고 효율적으로 구현하기 위해서 어떤 설계 툴, IP, 기능 시스템 블록, 참조 디자인을 이용할 수 있는지 고려해야 한다. 이 글에서는 FPGA-DSP 디자인을 신속하게 구현할 수 있도록 하기 위해서 요구되는 DSP 솔루션들에 대해서 살펴보려고 한다.

 

글 : Suhel Dhanani
알테라 / www.altera.com

 

개요


신호 프로세싱이라면 대부분 디지털 신호 프로세서를 떠올리는데, 고성능 고정밀 신호 프로세싱을 구현하기 위한 플랫폼으로는 FPGA의 사용이 갈수록 늘어나고 있다. 이러한 많은 애플리케이션들이 단일 FPGA를 이용하거나, FPGA에 DSP 프로세서를 결합해서 이용하거나, 일련의 DSP 프로세서를 이용하는 것으로 선택폭을 좁힐 수 있다.



일반적으로 DSP 프로세서를 C를 이용해서 프로그램할 수 있으며 그럼으로써 개발 플로우를 훨씬 간소화할 수 있는 것으로 알려지고 있으나, 다중의 DSP 프로세서 또는 DSP 프로세서와 FPGA 사이에 디자인을 분할해야 하는 경우에는 그러한 이점이 급격하게 약해진다. 사실 단일 DSP 프로세서는 대부분의 인프라 시스템에 요구되는 신호 프로세싱을 처리하기 위한 성능을 제공하지 못한다.



그러므로 시스템 디자이너들이 다중의 DSP 프로세서를 이용할 것인지 FPGA를 이용할 것인지 선택의 기로에 놓이게 된다. FPGA를 이용하는 것이 모든 경우에 시스템 비용/전력을 최소화하는 구현을 달성할 수 있다.



그림 1은 한 가지 공통점을 갖는 인프라 시스템들의 예를 보여주고 있는데, 그것은 바로 기존의 프로그래머블 디지털 신호 프로세서의 성능을 뛰어넘는 성능을 요구한다는 것이다. 이들 시스템은 또 각기 다른 성능과 정밀도를 요구하며 각기 다른 설계 및 개발 플로우를 이용한다. 예를 들어서 비디오 프로세싱은 9비트~12비트의 정밀도를 요구하며 일부 하이엔드 디자인은 12비트 색 깊이를 필요로 한다. 이들 디자인을 일반적으로 HDL 설계 플로우를 이용해서 작성하며, 개발 플로우를 가속화하기 위해서 비디오 및 이미지 프로세싱 IP 기능의 사용이 갈수록 늘어나고 있다.



이와는 달리 군용 레이더 시스템은 최대의 동적 범위를 달성하기 위해서 최대의 DSP 성능과 부동소수점 정밀도를 필요로 한다. 이러한 많은 디자인들은 MATLAB 및 시뮬링크 툴을 이용해서 모델링하고 FPGA 아키텍처에 대해서 최적화된 부동소수점 기능들을 이용한다.

 

애플리케이션에 따라 FPGA 정밀도 맞춤화



알고리즘의 정밀도 요구에 적합한 FPGA-DSP 아키텍처를 선택해야 한다. FPGA 업체가 제공하는 임의적인 정밀도로 알고리즘을 수정해야 한다면 이는 피하는 것이 좋다.



기존의 FPGA 아키텍처들은 고정 정밀도 DSP 아키텍처를 이용함으로써 귀중한 실리콘 자원을 낭비하거나 디자인을 다중의 블록들로 분할해야 함으로써 시스템 성능을 떨어트렸다. 예를 들어서 HD 비디오 프로세싱 애플리케이션은 통상적으로 9×9 곱셈 연산을 이용하는데 이 시스템을 구현하기 위해서 고정 정밀도 18×25 DSP 아키텍처를 이용한다면 성능 과잉이고 DSP 블록의 절반 이상을 낭비하는 것이다.



또는 고성능 DSP 시스템에서 FFT(fast Fourier transform) 기능을 위해서 보드 상에 널리 구현하는 빌딩 블록으로서 복소수 곱셈기를 구현할 때는 대부분의 경우에 18×25나 18×36 복소수 곱셈 연산을 지원하기 위해서 DSP 블록들을 캐스케이드 방식으로 연결해야 한다.



DSP 블록이 충분히 넓은 캐스케이드 체인 및 누산기 폭을 이용해서 전용 루팅으로 캐스케이드 체인을 구현하도록 해야 한다. FPGA 내의 범용 루팅을 이용하면 성능 저하를 일으킬 수 있다. 또한 캐스케이드 버스/누산기가 폭이 충분하지 않으면 결과 값을 다음 DSP 블록으로 루팅하기 앞서 정밀도 히트(precision hit)를 실시해야 한다.



일부 디자이너들은 디자인의 일부분에 대해서 부동소수점 데이터패스를 구현하고자 할 수 있다. 그러기 위해서는 단일 정밀도 형식으로 가수부 곱셈을 구현하기 위해서 24비트 이상의 정밀도가 필요할 것이다. 그러므로 FPGA-DSP 아키텍처를 선택할 때는 시스템 정밀도 요구를 충족할 수 있도록 다중의 정밀도를 지원하고 캐스케이스 버스가 폭이 충분히 넓은 아키텍처인지 검토해야 한다(표 1 참조).



FPGA로 널리 구현하는 기능 중의 하나가 FIR(finite impulse response) 필터이다. 그러므로 FPGA의 DSP 블록 아키텍처가 고성능 다채널 FIR 필터 구현을 효율적으로 지원할 수 있어야 한다. 알테라의 28nm DSP 아키텍처는 표 2에서 보는 것과 같이 FIR 필터 디자인을 염두에 두고 설계한 다수의 기능들을 포함한다.



MATLAB/시뮬링크 디자인을 버튼 한 번으로 하드웨어로 구현할 수 있다는 것이 항상 마케팅 선전의 대상이 되어 왔다. 하지만 그런 다음에 모든 타이밍 제약을 충족하도록 하기 위해서 디자인을 대대적으로 손질해야 한다는 점은 간과되어 왔다. 그러므로 '타이밍 지향적' 시뮬링크 합성 엔진이 필요하다.



이러한 툴은 raw structural HDL을 작성할 수 있어야 할 뿐 아니라 결과적인 HDL이 fMAX나 대기시간 제약을 충족할 수 있도록 충분히 직관적인 방식으로 파이프라인 레지스터나 시분할 다중화를 추가할 수 있어야 한다. 알테라의 DSP 빌더 어드밴스 블록셋트는 이와 같이 설계된 툴이다. 이 툴이 시뮬링크 디자인 기술(description)을 분석하고, 목표 FPGA 디바이스에 대해서 fMAX나 대기시간 같은 타이밍 제약을 포함해서 HDL과 비트 스트림을 작성한다. 요구되는 타이밍을 달성하거나 초과하도록 파이프라인 레지스터와 적정한 양의 타이밍 시분할 다중화를 추가하면 이 작업이 자동으로 이루어진다.



DSP 빌더 어드밴스 블록셋트를 이용해 개발한 대형의 고성능 군용 레이더 디자인이 HDL을 수작업으로 수정하지 않고 타이밍 종결을 달성할 수 있는 것으로 나타난다. 그림 2는 50,000 로직 엘리먼트(LE) FPGA 기반 디자인이 350Mhz 이상으로 타이밍 종결을 달성하는 예를 보여준다. 이 디자인 예는 레이더 시스템의 프론트엔드 부분인데, 여기서 구현하고 있는 다위상 FIR 필터, FFT, 믹서 등의 기능들은 많은 고성능 DSP 디자인에 널리 이용되는 것들이다.

 

HD 비디오 프로세싱 근본적으로 FPGA가 적합



다음과 같이 비디오 해상도에 대한 요구가 계속해서 갈수록 높아지고 있다.
-비디오 감시 시스템이 SD(standard definition) 비디오에서 HD(high-definition)로 전환하고 있으며 WDR(wide dynamic range) 같은 기능들을 이용함으로써 갈수록 더 높은 해상도 비디오 프로세싱이 요구되고 있다. 많은 산업용 영상 시스템 역시 마찬가지의 경향을 나타내고 있다.
-브로드캐스트 비디오 시스템이 차세대 시네마 및 스튜디오 요구를 지원하기 위해서 갈수록 1080p HD 해상도에서 2K, 4K, 3D 해상도로 전환하고 있다.
-의료 영상 시스템 해상도가 갈수록 더 높아짐으로써 더 높은 성능의 신호 프로세싱이 요구된다.

 

비디오 프로세싱에는 FPGA가 적합하며, 특히 1080p HD 해상도 이상으로 전환할 때는 더 그렇다. FPGA를 이용해서 비디오 디자인을 개발하기 위해서는 많은 시간이 소요되는데 그림 3에서 보는 것과 같은 빌딩 블록 기능, 표준 비디오 인터페이스, 참조 디자인을 이용함으로써 이 시간을 크게 단축할 수 있다.



알테라의 비디오 디자인 프레임워크는 18개 비디오 기능, 스트리밍 비디오 인터페이스 표준, 일련의 하드웨어 검증 참조 디자인, 다수의 비디오 개발 키트를 포함한다. 비디오 디자인 프레임워크를 이용함으로써 기존에 구현했던 디자인에서 스케일링, 디인터레이싱(de-interlacing), 믹싱 같은 공통적 기능의 사전에 검증된 IP를 재사용하고 자신의 맞춤화된 기능들을 추가함으로써 디자인을 처음부터 개발해야 할 때 걸리는 시간의 수 분의 일의 시간으로 디자인을 완성할 수 있다.

 

부동소수점 정밀도 고성능 DSP 달성


고성능 DSP 분야에서는 부동소수점 신호 프로세싱이 동적 범위를 향상시킬 수 있는 방안으로서 점차 인식이 확대되고 있다. 첨단 군용 STAP 레이더, LTE 채널 카드의 MIMO 균등화, 고성능 컴퓨팅 박스 등의 시스템에서 이러한 경향이 나타나고 있다. 조사에 따르면 부동소수점 신호 프로세싱 알고리즘 비율이 현재 FPGA DSP 디자인의 10%에서 2012년에 20%로 늘어날 전망이다.



부동소수점 프로세싱은 통상적으로 가수부 곱셈, 가수부 정규화/역정규화, 지수부 덧셈으로 이루어진다. 지수부 덧셈/뺄셈은 상당히 간단한 반면에, 가수부 곱셈과 정규화를 위해서는 24비트 이상 정밀도 곱셈기를 필요로 한다. 2개의 고정소수점 DSP 블록을 캐스케이드 방식으로 연결하거나 아니면 단일 가변 정밀도 DSP 블록을 고정밀도(high-precision) 모드로 구성해서 이를 달성할 수 있다.



부동소수점 정밀도를 구현하기 위해서는 단일 DSP 블록으로 부동소수점 가수부 곱셈이나 가수부 정규화를 지원할 수 있는 DSP 아키텍처를 선택해야 한다. 그럼으로써 자원을 절약할 수 있을 뿐만 아니라 더 높은 성능의 구현을 달성할 수 있다(높은 fMAX 등).



그림 4에서 보는 것처럼 FPGA 업체들이 자신들의 아키텍처를 활용할 수 있도록 효율적이며 매우 높은 성능의 부동소수점 빌딩 블록 IP 코어를 제공한다. 부동소수점 DSP 애플리케이션에 이용하기 위한 FPGA 플랫폼을 선택할 때는 부동소수점 연산에 대한 실리콘 효율뿐만 아니라 빌딩 블록 부동소수점 기능들을 이용할 수 있는지를 신중하게 평가해야 한다. 부동소수점 DSP를 구현할 수 있도록 최적화된 FPGA DSP 아키텍처를 이용함으로써 더 높은 시스템 fMAX를 달성할 수 있을 것이며, 부동소수점 빌딩 블록 기능들을 이용함으로써 개발 시간을 크게 단축할 수 있을 것이다.

 

요약


FPGA 업체들이 제공하는 DSP 솔루션과 시장에서 필요로 하는 솔루션은 시간이 지나면서 변화하고 발전하기 마련이다. 그러므로 고성능 DSP 시스템 디자인을 구현할 때는 먼저 각기 다른 실리콘 업체들이 제공하는 DSP 솔루션들을 면밀하게 검토하는 것이(출시시간 단축 면에서) 유용할 것이다. 이러한 솔루션들을 이용함으로써 설계/개발 시간을 크게 단축할 수 있을 뿐만 아니라 그 업체가 DSP 시장을 지원하기 위해서 얼마나 헌신적으로 임하고 있는지 알 수 있을 것이다. 이 점은 이와 같은 고도로 복잡한 시스템을 구현하고 업데이트할 때 특히 중요하다.

 

그림 1. 각기 다른 애플리케이션이 각기 다른 성능, 정밀도, IP, 툴 요구

그림 2. 50,000 로직 엘리먼트(LE) FPGA 기반 디자인이 350MHz 이상으로
타이밍 종결 달성

그림 3. 비디오 프로세싱 애플리케이션을 개발할 때 시간을 절약할 수 있는 설계 요소들

그림 4. 부동소수점 빌딩 블록 IP 코어
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지