[입력날짜 : 2009-07-02 14:39:09]
글 ALTERA
본고에서는 FPGA를 이용해서 임베디드 시스템에 LCD 및 GUI 디스플레이를 추가하는 것에 대해 설명한다. 고정적인 프로세서 디바이스 구현과 달리 이 기법은 확장이 가능하며 어떠한 디스플레이 인터페이스나 지원할 수 있다. 그래픽은 외부 프로세서나, 임베디드 프로세서나, 디스플레이 그래픽 컨트롤러와 동일한 FPGA 디자인에 통합된 하드웨어 그래픽 가속화 엔진을 이용해서 작성할 수 있다. FPGA 구현의 이점 및 이용 가능한 툴 및 IP에 대해 설명하고 참조 디자인 및 써드파티 솔루션 업체에 대해 소개한다.
1. 개요
PC, 휴대전화, PDA, 기타 전자기기 등의 대량 애플리케이션에 있어서 GUI(Graphic User Interface)의 사용이 급속히 늘어남에 따라 많은 새로운 애플리케이션 및 산업 분야에서 그래픽 디스플레이가 갈수록 인기가 높아지고 있다. 이제 사용자들은 모든 애플리케이션에 대해 GUI를 기대하며 이것이 제공하는 사용 편의성을 매우 중요시한다. 두 번째 요인은 대량생산에 따른 원가 절감으로서 소형 및 중형 디스플레이 시장이 2009/2010년에 연간 33억 개 수량 및 270억 달러 이상에 달할 것으로 전망된다1). 이러한 규모에 의해서 디스플레이 가격이 큰폭으로 낮아졌으며 시장에서 이용할 수 있는 품질, 해상도, 크기가 향상되고 있다. 그에 따라서 많은 애플리케이션이 고해상도 컬러 디스플레이 및 GUI를 채택하고 있다. 이는 5~10년 전에는 시장에서 수용하기에 지나치게 비쌌던 것들이다.
LCD 개발업체들이 자사 디스플레이의 해상도, 콘트라스트, 시야각, 응답속도를 향상시키기 위해서 해마다 새로운 소재 및 기법을 모색함에 따라서 디스플레이 기술은 항상 역동적인 분야였다. 뿐만 아니라 터치 스크린, 백라이팅 기법, 새로운 디스플레이 유형(OLED(Organic Light-Emitting Diode), EPD(electrophoretic display) 디스플레이, 전자 종이 등)에 있어서 기술 발전이 이루어지고 있다.
이러한 결과로 디스플레이 모듈은 수명이 길지 않다. 1~2년 사이에 더 우수하고, 저렴하고, 더 기능이 풍부한 디스플레이가 시장에 선을 보이고 이전 모듈은 노후화 단계에 접어들기 때문이다. 이 점이 전자기기 시장에는 문제가 되지 않을지 모르나 다른 많은 시장은 제품을 그렇게 빈번하게 변경할 여력을 갖고 있지 못하다. 실제 디스플레이를 계속해서 이용할 수 있음에도 업체들이 최신 기술 및 수량 요구를 쫓아가기 위해서 업그레이드함에 따라서 부품 조달에 있어서 문제가 있을 수 있다. 마케팅 측면에서도 구형 디스플레이의 낮은 해상도가 문제가 될 수 있다. 사용자들은 GUI에 대한 날로 높아지는 기대를 충족하지 못하는 제품을 구매하려고 하지 않기 때문이다.
2. 디스플레이 드라이버 및 컨트롤러
현재 시장에는 다양한 유형의 LCD 드라이버 및 컨트롤러가 출시되어 있다. 이들 제품은 순수한 디스플레이 드라이버(자체적인 지능 포함하지 않음), 디스플레이 메모리를 통합한 디스플레이 컨트롤러(제한적/사전설정 기능), LCD 컨트롤러를 통합한 범용 마이크로컨트롤러 등으로 구분할 수 있다(<그림 1>).
순수 디스플레이 드라이버(MSM5219, UPD7225, HD44100, LC7942 등)는 대체적으로 고주파 직렬 입력을 이용하며 가능한 최대의 리프레시 주파수를 달성하기 위해서 지속적으로 새로운 디스플레이 데이터를 필요로 한다. 반면에 디스플레이 컨트롤러는 일련의 그래픽 데이터 및 제어 코드를 전송 받으며 이미지(보통 폰트 포함), 내부 메모리, 디스플레이 다중화를 자체적으로 관리한다.
널리 인기 있는 마이크로컨트롤러 제품군은 디스플레이 컨트롤러를 통합한 제품을 하나 이상 포함한다. 이들 제품은 특수한 I/O 핀을 이용해서 디스플레이로 인터페이스하며 또한 최대의 성능을 제공하기 위해 내부 디스플레이 메모리를 포함한다. 사용되는 핀 수를 줄이고 지원할 수 있는 디스플레이 수를 늘리기 위해서 마이크로컨트롤러 디바이스는 병렬 데이터 인터페이스 또는 LVDS 인터페이스를 이용해서(보통 디스플레이 모듈 내에 구축되는) 순수 디스플레이 드라이버 디바이스로 인터페이스한다.
그래픽 시스템을 구축하기 위한 가장 수월한 방법은 마이크로컨트롤러 기반 디바이스와 LCD 모듈을 이용하는 것이다. 이 모듈이 이미 디스플레이 드라이버 디바이스를 포함하므로 마이크로컨트롤러로 곧바로 연결할 수 있다. 표시해야 할 이미지는 마이크로컨트롤러 상에서 실행되는 프로그램에 의해서 마이크로컨트롤러의 메모리 공간에서 생성되고 저장된다. 이들 디바이스는 흔히 컴퓨팅적으로 집중적인 특수 효과를 처리하기 위해 전용 온칩 그래픽 메모리 및 전용 하드웨어 그래픽 엔진을 포함한다. 또한 하드웨어가 최종적인 이미지를 메모리에서 LCD 모듈 인터페이스로 복사하는 것을 담당한다. 이를 마이크로컨트롤러를 이용해 하는 것은 프로세싱 시간 측면에서 너무 고비용이기 때문이다.
하지만 이 셋업은 마이크로컨트롤러로서 그리고 그래픽 엔진으로서 성능의 측면에서 마이크로컨트롤러의 고정적인 특성 때문에 제한적이다. 임베디드 애플리케이션은 언제나 마이크로컨트롤러의 성능에 의해 제한적인데 디바이스 업체들은 각기 다른 I/O 특성 및 성능 수준의 다양한 유형의 변종 제품을 생산함으로써 이 문제를 완화한다. 불행히도 이러한 소수의 제품들만이 그래픽 엔진을 포함하므로 그래픽 요구가 이용 가능한 마이크로컨트롤러 선택을 심각하게 제한한다. 뿐만 아니라 그래픽 엔진의 기능을 변경할 수 없으므로 만약 애플리케이션이 새로운 그래픽 기능, 더 높은 품질의 디스플레이, 새로운 입력 장치(터치 스크린 등) 등을 필요로 했을 때 더 높은 성능의 그러므로 더 비싼 디바이스가 필요하게 된다. 그러면 애플리케이션 코드를 새로운 프로세서 아키텍처로 이식해야 하며 이를 위해서 비용과 시간이 소요된다.
3. FPGA 기반 구현
Altera의 Cyclone FPGA 시리즈와 같은 저가형 FPGA가 등장함으로써 많은 개발자들이 소프트 마이크로프로세서 코어(Nios Ⅱ 임베디드 프로세서 등), 규격형 IP(Intellectual Property), 맞춤화 설계 로직의 조합을 이용해 맞춤화 시스템을 설계함으로써 마이크로컨트롤러 기능 제한에 따른 문제를 제거할 수 있게 되었다2). 요구되는 사양이 변화하는 것에 따라서 Altera의 SOPC Builder 툴2)을 이용해서 시스템의 설계를 수분 이내에 변경할 수 있다. 기본적인 디자인(<그림 2>)에 마이크로컨트롤러 기반 시스템(<그림 1>)과 동일한 모든 기능을 포함한다.
Nios Ⅱ 프로세서(또는 선택적인 외부 CPU)에 의해 이미지가 메모리로 처리되며 그래픽 컨트롤러 내의 DMA(Direct Memory Access) 하드웨어 블록을 이용해서 LCD로 전송된다. HDL 기반 컨트롤러이므로 현재 및 향후의 LCD 장치에 적합하게 LCD 데이터 및 제어 인터페이스를 수정하는 것이 편리하다. 그러므로 또한 비용을 절감하기 위해서 또는 새로운 더 저렴한 메모리 기술(DDR2, DDR3 등) 등과 같이 다른 시스템 요소를 향상시키기 위해서 시스템을 새로운 FPGA로 편리하게 이식할 수 있다.
FPGA의 유연성에 의해서 다른 디바이스 및 시스템으로 편리하게 인터페이스할 수 있다(PCI, PCI Express, Serial RapidIO, 메모리 맵드 버스, 코프로세서 인터페이스 등). 그래픽 용으로 가능하지 않은 고성능 마이크로컨트롤러를 이용하는 것이 비용적으로 더 효과적일 때는 외부 호스트 프로세서(<그림 1>)를 이용할 수 있다. 이는 그래픽이나 I/O 기능을 절충할 필요 없이 성능, 경제성, 다양한 마이크로컨트롤러 선택을 가능하게 한다. 그래픽 시스템의 어떠한 변경으로부터 애플리케이션이 차단되며 FPGA가 추가적인 비표준 인터페이스 및 애플리케이션 관련 기능을 지원한다.
4. 확장가능 솔루션
그래픽 디스플레이에 관련해서 임베디드 시스템에 가장 흔히 요구되는 업그레이드 기능은 컬러(혹은 더 많은 색상), 더 높은 해상도, 터치 스크린 기능이다. 고정적인 마이크로컨트롤러를 이용하면 이러한 기능들을 추가하기가 매우 어렵거나 아예 불가능하나 FPGA를 이용하면 비교적 간단하며 Nios Ⅱ 임베디드 평가 보드와 함께 제공되는 디자인 예를 이용하면 더욱 더 편리하다3). 간단한 예로서 <그림 2>의 픽셀 형식 및 싱크 생성기 블록을 시스템 또는 소프트웨어의 나머지 부분을 변경하지 않고 다른 유형의 디스플레이를 지원하도록 수정할 수 있다(7페이지의 “생산성” 부분 참조). <그림 3>은 기본형 시스템 및 컨트롤러를 알파 블렌딩이나 터치 스크린 기능 등과 같은 추가적인 기능을 지원하도록 향상시키는 것을 보여준다.
<그림 3>에서 보는 것과 같은 향상 기능을 지원하기 위해서는 통상적으로 고성능의 비싼 마이크로컨트롤러가 필요하나 FPGA를 채택하면 해당 하드웨어 IP(출시되어 있는 규격형 또는 맞춤화 구현)와 충분한 FPGA 로직 게이트만 있으면 된다(필요하다면 더 대형의 핀 호환 디바이스로 이전 가능). 많은 작업이 FPGA 로직에 의해 하드웨어로 수행되므로 기존의 고정적 아키텍처 마이크로프로세서 기반 시스템 상의 소프트웨어 기반 솔루션보다 클록당 더 많은 그래픽 기능을 지원할 수 있다. 만약 표준적 Nios Ⅱ 프로세서가 애플리케이션을 실행하고 그래픽을 처리하기 위한 성능을 제공하지 못한다면 다음과 같은 방식으로 그래픽 또는 애플리케이션을 가속화함으로써 시스템 성능을 최적화할 수 있다.
■ Nios Ⅱ 프로세서로 애플리케이션을 가속화하기 위한 맞춤화 명령을 추가한다.
■ 애플리케이션을 가속화하기 위한 하드웨어 가속화기 모듈을 추가한다.
■ LCD 컨트롤러로 그래픽 작업을 가속화하기 위한 맞춤화 하드웨어를 추가한다.
■ DMA 모듈에 메모리 대역폭을 최적화하기 위한 버스트 액세스를 구현한다.
■ 애플리케이션을 실행하기 위한 이차 프로세서를 추가한다.
※애플리케이션의 하드웨어 가속화에 관한 자세한 내용을 위해서는 Altera의 “Scale System Performance” 웹페이지 참조4).
<그림 2>와 <그림 3>을 비교해 보면(이차 DMA 구축 및 하드웨어 모듈 혼합을 제외하고) 프로세서로 어떠한 성능 부하를 추가하지 않으면서 알파 블렌딩을 수행하기 위한 하드웨어가 추가되었다는 것을 알 수 있다. 흔히 알파 블렌딩을 이용하기 위해서는 픽셀 단위 알파 데이터를 이용하며 이를 위해서는 프로세서 및 메모리 공간으로부터 더 높은 데이터 쓰루풋을 필요로 한다. 하지만 시스템을 맞춤화할 수 있음으로 해서 필요한 곳에만 알파 컴포넌트를 구현하고 (프로세서가 아니라) 픽셀 형식화 하드웨어 모듈을 이용해 데이터가 해당 모듈로 스트리밍될 때 데이터 형식을 변환함으로써 공간 및 성능에 대해서 프로세서를 최적화할 수 있다. 예를 들어 Nios II 임베디드 평가 플랫폼에 제공되는 픽셀 형식화 모듈은 디스플레이로 전송에 앞서 픽셀로부터 알파 데이터를 분리시킬 수 있다. 이는 SOPC Builder 호환 컴포넌트이므로 HDL을 편집하는 것이 아니라 그래픽 구성 윈도우(<그림 4>, 왼쪽)의 숫자를 변경하는 것으로 이 기능을 작동시킬 수 있다. 이러한 유형의 컴포넌트는 <그림 4>의 오른쪽에서 보는 비디오 싱크 모듈 등과 같이 다른 동작 모드를 지원하도록 편리하게 재구성할 수 있다.
화면 분할, 백그라운드, 중첩 이미지 등의 추가적인 기능 역시 알파 블렌딩과 동일한 방식으로 구현할 수 있다. 이들 기능은 단순히 메모리의 특정 구역의 데이터를 다른 구역의 것으로 대체하는 것이므로 편리하게 구현할 수 있으며(높은 성능 및 메인 메모리 시스템의 대역폭 부하 감소를 위해) 투명도, 압축(또는 팔레트화) 소스 데이터, 스케일링 및 로컬 온칩 메모리 저장 등과 같은 기능을 지원할 수 있다.
그래픽 표현의 정교함이 높아질수록 규격형 그래픽 가속화기를 라이센싱 하는 것이 비용적으로 효율적일 것이다. PC의 비디오 카드로 이러한 유형의 그래픽 엔진을 흔히 구현한다. 이들 엔진은 그래픽 작업을 가속화하도록 맞춤화 하드웨어로 메모리를 액세스하고 데이터를 처리하기 때문이다. 이들 시스템에서는 Nios II 프로세서의 기능이 하우스키핑 및 매우 고수준의 그래픽 제어로 감소하며 나머지 모든 영상 표현 및 데이터 이동은 그래픽 엔진 및 LCD 컨트롤러로 위임된다. <그림 5>는 그래픽 가속화기를 이용해서 이전에 LCD 컨트롤러로 구현하던 다수의 그래픽 기능을 대체하는 고성능 시스템의 예를 보여준다.
그래픽 엔진은 TES5) 및 Imagem6) 등과 같은 Altera의 파트너 업체들로부터 라이센싱 할 수 있으며 다양한 애플리케이션 성능 및 기능 요구에 적합하게 다양한 구성으로 이용할 수 있다. 이들 그래픽 가속화기가 달성하는 성능 향상 및 품질은 인상적인 것이며 이들 엔진은 훨씬 낮은 시스템 클록 주파수로 가장 우수한 마이크로컨트롤러 솔루션과 동일한 또는 더 우수한 품질의 그래픽을 제공한다. FPGA 로직으로 구현할 수 있는 효과로서는 알파 블렌딩, 앤티 에일리어싱, 기하학적 형태의 그리기 및 채우기, 그래픽 요소의 스케일링 및 색상 변환, 스케일드 폰트 지원, 3D 렌더링을 포함한다.
<그림 5>에서 보는 시스템은 또한 FPGA 로직으로 간편하게 구현할 수 있는 비디오 입력 스트리밍 데이터 변환 동작을 지원한다. 비디오 스트림을 실행 중에 또는 일단 비디오 프레임이 메모리에 저장되었을 때 처리할 수 있으므로 자동차 시장의 차선 이탈 탐지 등과 같은 애플리케이션에 이들 기법이 이용된다7). Altera는 비디오 프로세싱 시스템을 신속하고 편리하게 개발할 수 있도록 설계된 SOPC Builder 호환 비디오 및 영상 프로세싱 IP 스위트를 제공한다8).
이러한 모든 추가적인 기능을 구현한다고 했을 때 일어날 수 있는 문제는 메모리 대역폭이다. 데이터가 시스템을 통과해서 로컬 버퍼를 위해 온칩 메모리로 이동할 때 실행중 프로세싱을 채택한다고 하더라도 이용 가능한 최대 메모리 대역폭이 궁극적으로 시스템 성능을 제한한다. FPGA의 유연성에 의해서 이 문제에 대해 여러 가지 솔루션이 가능하다. 한 가지 간단한 솔루션은 이차 메모리 디바이스를 추가하는 것이다. 하지만 이는 비용적으로 효율적이지 않으며 그러므로 대부분의 솔루션은 메모리 컨트롤러를 최적화하고 메모리 동작을 메모리 버스트가 랜덤 메모리 액세스에 의해 중단되지 않도록 좀더 효율적으로 시퀀싱하는 것에 중점을 두고 있다. <그림 5>에서는 메모리 컨트롤러와 메모리 사이에 하프 레이트 브리지(표준적 Altera 컴포넌트)를 삽입함으로써 시스템이 메모리 절반의 레이트로 작동할 수 있도록 한다. 그럼으로써 DDR 타입 메모리에 수반되는 메모리 지연시간 및 셋업 시간을 크게 단축할 수 있다. 이러한 간단한 변경으로 더 높은 메모리 대역폭을 제공하고 그럼으로써 더 우수한 그래픽 성능을 달성할 수 있다.
FPGA의 유연성을 이용해서 여러 가지 방식으로 추가적인 성능을 제공할 수 있다. 예를 들어서 Imagem의 Ahtlet 엔진(<그림 6>)은 디스플레이 객체 목록을 읽고 프레임 버퍼를 이용하지 않고 곧바로 디스플레이로 영상을 처리한다. 그럼으로써 필요한 메모리 요구량을 감소시키고, 메모리 대역폭 요구량을 최소화하고, 디스플레이 해상도를 스케일링하는 것을 용이하게 한다. 객체 및 이들의 파라미터는 모두 Nios II 프로세서에 의해 셋업되나 렌더링 파이프라인은 실제 렌더링 프로세스에 전혀 관여하지 않는다.
FPGA를 이용함으로써 또한 표준적 마이크로컨트롤러를 이용해서 추가하기가 어렵거나 불가능한 기능들을 추가할 수 있다. 그러한 예로서 다중 채널의 스트리밍 비디오, 화면 분할 기능, 다중 디스플레이 지원, 영상 향상, 객체 인식, 모션 추적, 카메라 왜곡 교정, 잡음 필터링, 플래시 애니메이션 파일 등과 같은 특정 시장 기능을 포함한다. <표 1>은 그래픽 IP 컴포넌트 예와 각각의 컴포넌트에 필요한 Cyclone III FPGA 로직 엘리먼트(LE)의 양을 보여준다.
(<그림 2>의 것과 같은) 최소한의 기본적인 그래픽 시스템이라면 Cyclone Ⅲ EP3C5 FPGA(이 제품군의 가장 소형 디바이스)로 적합할 것이며, 반면에 <그림 5>에서 보는 것과 같은 고성능 시스템은 EP3C16 디바이스나 그보다 대형의 디바이스를 필요로 할 것이다. 간단한 디스플레이의 메모리 및 DSP 블록 요구량은 최소한이나 하드웨어 가속화 기능이 추가되는 것에 따라 증가한다. 다행히 DSP 및 메모리와 Cyclone III 제품의 로직 비율이 이러한 유형의 애플리케이션에 적합하도록 되어 있으므로 이용 가능한 온칩 메모리 및 DSP 자원의 양은 거의 문제가 되지 않는다. <표 2>는 각기 다른 그래픽 기능의 Nios II 프로세서 구동 그래픽 시스템에 필요한 LE의 양과 그 시스템을 지원하기 위해 필요한 FPGA 디바이스를 보여준다.
5. 생산성
개발자들이 FPGA에 대해서 가장 염려하는 것은 하드웨어 및 소프트 프로세서 코어를 변경할 때 생산성이 저하된다는 점이다. 새로운 프로세서 아키텍처 및 툴셋으로 전환하기 위해서는 언제나 어느 정도 작업을 필요로 하나 일단 초기의 학습 과정이 지나면 FPGA 기반 시스템을 작업하는 것은 여느 다른 프로세서 툴 체인과 마찬가지로 간편하다. 뿐만 아니라 하드웨어를 변경할 수 있으므로 훨씬 더 효율적이며 창의적인 엔지니어링 솔루션을 가능하게 한다.
Altera의 Quartus Ⅱ 설계 소프트웨어를 이용해서 HDL을 이용해 전체적 임베디드 시스템을 작성할 수 있으나 통합되어 있는 SOPC Builder 툴을 이용하는 것이 훨씬 수월하다. 이 툴은 단 한 라인의 HDL 코드를 작성할 필요 없이 임베디드 시스템을 작성하고 수정할 수 있다. Nios II 임베디드 평가 키트는 전적으로 SOPC Builder 컴포넌트로 구성된 LCD 그래픽 컨트롤러를 포함하는 임베디드 프로세서 시스템 디자인 예를 제공한다. 그러므로 시스템을 유지관리 및 변경하기가 용이하며 맞춤화 그래픽 컨트롤러를 개발하기 위한 훌륭한 토대를 제공한다9). 그러한 예로서 Altera로부터 자동차 시장 용으로 최적화된 HDL 기반 참조 디자인을 다운로드할 수 있다10). Altera의 파트너 업체들이 SOPC Builder 가능 컴포넌트 형태로 IP를 제공하므로 이들 업체의 그래픽 가속화기 솔루션을 자신의 디자인으로 편리하게 통합할 수 있다.
그래픽 인터페이스를 채택한 시스템을 개발할 때 가장 중요한 생산성 문제는 GUI를 그래픽적으로 및 구조적으로 변경하는 것이다. 일반적으로 GUI는 C로 개발되므로 만약 높은 수준의 그래픽 객체 및 사용자 인터페이스 구조 추상화를 이용하지 않고 코드를 구현한다면 어떠한 변경을 위해서 상당한 소프트웨어 개발을 필요로 할 것이다. IP 및 (SOPC Builder를 이용한) 설계 자동화가 하드웨어 개발을 가속화하듯이 동일한 원리로 GUI 설계를 가속화할 수 있다. Imagem6) 및 Altia11) 등과 같은 업체에서 GUI 설계 가속화를 위한 설계 툴 및 개발 플로우를 제공한다.
첫 번째 단계는 전문적인 그래픽 툴(Adobe Photoshop 등)을 이용해 설계된 그래픽을 곧바로 시스템 메모리로 집어넣을 수 있는 형식으로 변환할 수 있는 툴을 이용하는 것이다. 그럼으로써 그래픽을 프로그래머가 아니라 아티스트와 그래픽 디자이너가 설계할 수 있으므로 시각적으로 훨씬 더 인상적인 GUI 디자인을 달성하고 개발 작업의 시간을 단축할 수 있다. 그 다음 단계는 PC 상에서 (실제 그래픽을 이용해서) GUI 디자인을 개발하고 신속하게 프로토타이핑할 수 있도록 하는 것이다. PC가 임베디드 환경을 에뮬레이트하므로 한 줄의 코드도 작성하지 않고 적정한 해상도 및 색 깊이로 GUI 및 그래픽을 구축하고 테스트할 수 있다. 그럼으로써 그래픽 디자이너 및 비전문적 직원들에게 설계 작업이 훨씬 더 수월하고 친숙하다. 이 방식으로 구축된 GUI는 편리하게 테스트하고 수정할 수 있으므로 훨씬 더 짧은 시간 안에 효율적이고 그래픽적으로 인상적인 구현을 달성할 수 있다.
설계가 완료되었으면 툴이 그래픽과 임베디드 플랫폼 코드를 위한 C 코드를 작성할 수 있으므로 임베디드 시스템 상에서 편리하게 GUI를 구현할 수 있다. 어떠한 변경이든 PC 환경으로 달성하고 테스트할 수 있으며 그런 다음 코드를 작성할 필요 없이 임베디드 플랫폼으로 이전할 수 있다. 이는 기존의 비자동화 프로세스에서 그래픽 디자이너와 프로그래머 사이의 반복적인 검토/재구성/재작성 과정보다 훨씬 더 신속하며 간편한 것이다.
6. 시작하기
어느 임베디드 시스템 개발이나 마찬가지로 작업을 시작하기 위한 가장 간편한 방법은 그 애플리케이션을 목표로 한 개발 키트를 구입하는 것이다. Nios Ⅱ 임베디드 평가 키트(<그림 7>, 왼쪽)3)는 FPGA와 Nios II 프로세서를 이용해서 그래픽 솔루션을 개발하는 것을 배울 수 있는 편리한 기법을 제공할 것이다. 이 키트는 다수의 참조 하드웨어 및 소프트웨어 디자인을 제공하며 Altera의 모든 써드파티 그래픽 솔루션으로 지원된다5),6),11).
※이 키트에 이용되는 디자인에 관한 자세한 내용을 위해서는 AN527: “Implementing an LCD Controller” 참조9).
Sasco Holz Pablo 디스플레이 컨트롤러 플랫폼은 다양한 유형의 규격형 애드온 어댑터 카드 및 IP 코어를 이용해서 다양한 디스플레이를 지원하며 다양한 유형의 디스플레이에 대해 FPGA의 유연성을 평가하고 검증하기에 적합하다.
7. 결론
시각적으로 인상적이며 사용하기 편리한 GUI가 다양한 시장 및 제품에 있어서 갈수록 중요한 요소가 되고 있다. 그러한 GUI를 달성하기 위한 가장 좋은 방법은 전문적인 그래픽 개발, PC 플랫폼 프로토타이핑, 임베디드 플랫폼으로 자동 변환을 가능하게 하는 자동화 개발 플로우를 이용하는 것이다. 그래픽을 지원하는 마이크로프로세서와 FPGA 기반 시스템 모두 이러한 플로우를 이용할 수 있으나 FPGA 기반 디자인은 애플리케이션 코드를 새로운 프로세서 아키텍처로 이식할 필요 없이 시스템 업데이트 및 고해상도 디스플레이, 각기 다른 인터페이스의 디스플레이, 새로운 GUI 기능 지원 측면에서 훨씬 더 높은 유연성을 제공한다. FPGA를 이용하면 디자인이 IP 기반이므로 시장의 요구가 변화하는 것에 따라서 더 대형의 또는 새로운 FPGA로 간편하게 이전할 수 있다.
<참고자료>
- DisplaySearch Quarterly Worldwide FPD Forecast Report : www.displaysearch.com
- Quartus II Design Entry and Synthesis-SOPC Builder: www.altera.com/products/software/quartus-ii/subscription-edition/design-entry-synthesis/qts-des-ent-syn.html
- Nios II Embedded Evaluation Kit, Cyclone III Edition : www.altera.com/products/devkits/altera/kit-cyc3-embedded.html/
- Scale System Performance : www.altera.com/technology/embedded/fpgas/performance/emb-hi-perf.html
- DAVE IP core : www.TESBV.com
- Athlet IP core : www.imagem-technology.com
- Image-Based Driver Assistance Development Environment : www.altera.com/literature/wp/wp-01091-driver-assistance.pdf
- Image and Video Processing : www.altera.com/products/ip/dsp/image_video_processing/ipm-index.jsp
- AN 527: Implementing an LCD Controller : www.altera.com/literature/an/an527.pdf
- Automotive Graphics Controller Reference Design : www.altera.com/support/refdesigns/sys-sol/auto/ref-auto.html
- Altia PhotoProto, Altia Design, DeepScreen : www.altia.com/products.php
- Sasco Holz Pablo Display controller platform : www.sascoholz.com/designsupport/solutions/pablo
감사의 말
■ Stefano Zammattio, Altera의 유럽 지역 제품 마케팅 부문 제품 책임자
편집부 기자 (yoonjy31@displayasia.net)
[ Copyright ⓒ (주)기술정보. 무단전재 및 재배포 금지 ]
==========
출처: http://www.ei.co.kr/articles/publication_view.htm?cate_a=3&countc=8&countb=4&idx=3337
댓글 없음:
댓글 쓰기