fpga for dummies altera korean

51

Upload: dsshinps

Post on 25-Dec-2015

40 views

Category:

Documents


8 download

DESCRIPTION

Introduction

TRANSCRIPT

Page 1: FPGA for Dummies Altera Korean
Page 2: FPGA for Dummies Altera Korean
Page 3: FPGA for Dummies Altera Korean

FPGA

알테라 특별판

저자 앤드류 무어

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 4: FPGA for Dummies Altera Korean

FPGA For Dummies®, 알테라 특별판발행인 John Wiley & Sons, Inc. 111 River St. Hoboken, NJ 07030-5774 www.wiley.com

Copyright © 2014 by John Wiley & Sons, Inc., Hoboken, New Jersey

1976년 미국 저작권법 107항 또는 108항에 따라 허가된 경우를 제외하고 본 출판물의 어떠한 부분도 발행인의 사전 서면 허가없이 전자적, 기계적, 복사, 녹화, 스캔 등 어떠한 형태나 방식으로든 검색 시스템에 복제, 저장하거나 전송할 수 없습니다. 발행인에게 허가를 요청하려면 John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, 팩스 (201) 748-6008 또는 온라인( http://www.wiley.com/go/permissions)으로 허가 부서에 문의하십시오.

상표: Wiley, For Dummies, Dummies Man 로고, The Dummies Way, Dummies.com, Making Everything Easier 및 관련 트레이드 드레스는 미국 및 기타 국가에서 John Wiley & Sons, Inc. 및/또는 해당 계열사의 상표 또는 등록 상표이며 서면 허가없이 사용하지 못할 수도 있습니다. Altera 및 Altera 로고는 Altera Corporation의 상표 또는 등록 상표입니다. 기타 모든 상표는 해당 소유자의 자산입니다. John Wiley & Sons, Inc.는 이 책에 언급된 모든 제품이나 업체와 연관이 없습니다.

책임의 제한/보증의 부인: 발행인 및 저자는 이 책의 내용의 정확성이나 완전성과 관련하여 어떠한 진술이나 보증도 하지 않으며 특히 특정 목적에 대한 적합성의 보증을 포함하여 모든 보증을 제한 없이 부인합니다. 판매 또는 홍보 자료를 통해 어떠한 형태의 보증도 생성되거나 연장될 수 없습니다. 여기에 포함된 조언과 전략은 모든 상황에 적합하지 않을 수도 있습니다. 이 책은 발행인이 법률, 회계 또는 기타 전문 서비스 업종에 종사하지 않음을 이해하고 판매됩니다. 전문적인 도움이 필요한 경우 유능한 전문가를 찾아야 합니다. 발행인이나 저자 모두 이로부터 발생하는 손해에 대해 책임을 지지 않습니다. 이 책에서 인용 및/또는 잠재적인 추가 정보 소스로 조직 또는 웹사이트가 언급된 사실이 저자 또는 발행인이 해당 조직 또는 웹사이트에서 제공하거나 추천하는 정보를 보증함을 의미하지는 않습니다. 독자는 이 책이 작성된 시점과 이 책을 읽는 시점 사이에 이 책에 나열된 인터넷 웹사이트가 변경되거나 사라졌을 수도 있음을 인지해야 합니다.

당사의 다른 제품과 서비스에 대한 정보 또는 조직이나 비즈니스용 맞춤형 For Dummies 책을 만드는 방법을 알아보려면 미국에 있는 당사 비즈니스 개발 부서(877-409-4177) 또는 [email protected]에 문의하거나 www.wiley.com/go/custompub을 방문하십시오. 제품 또는 서비스에 For Dummies 브랜드를 라이선스하는 방법을 알아보려면 BrandedRights&[email protected]에 문의하십시오.

ISBN 978-1-119-06594-4 (pbk); ISBN 978-1-119-06582-1 (ebk)

미국에서 제작

10 9 8 7 6 5 4 3 2 1

프로젝트 편집자: 제니퍼 빙험(Jennifer Bingham)원고 검토 편집자: 케이티 모흐(Katie Mohr)편집 관리자: 레브 멩레(Rev Mengle)비즈니스 개발 담당자: 카렌 하튼(Karen Hattan)프로젝트 코디네이터: 멜리사 코셀(Melissa Cossell)특별 도움: Altera Corporation의 수많은 기고자 분들

발행인 감사의 글다음은 이 책을 발간할 수 있도록 도움을 주신 분들입니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 5: FPGA for Dummies Altera Korean

목차소개 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

이 책에 대한 정보 ........................................................................ 1이 책에서 사용된 아이콘 ............................................................ 1추가 자료 ..................................................................................... 2

1장: 모두를 위한 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . .3왜 FPGA가 필요합니까? .............................................................. 4FPGA 살펴보기 ............................................................................ 6

FPGA의 빌딩 블록 ............................................................. 6새로운 시각으로 FPGA 설명 ............................................ 8

FPGA와 ASIC 비교 ..................................................................... 10비용 및 유연성 ................................................................ 10설계 시 위험 감소 대비 속도 .......................................... 10

놀라울 정도로 사용하기 쉬운 FPGA ........................................ 11하드 IP ............................................................................. 11병렬 연산 및 명령 감소 ................................................... 12

2장: FPGA에는 무엇이 있습니까? . . . . . . . . . . . . . . . . .13기본 개념 – 프로그래머블 패브릭 및 I/O ................................. 13상향 스케일링 ............................................................................ 16하드 IP 및 통합 CPU .................................................................. 17FPGA의 모던 설계 흐름 ............................................................ 17

기능 블록 다이어그램 만들기 ........................................ 18기존 IP로 기능 블록 교체................................................ 20누락된 블록 코딩 ............................................................ 21시스템 설계 확인 ............................................................. 22시스템을 FPGA 하드웨어로 매핑 ................................... 23시스템에서 설계해보기 .................................................. 23

3장: 시스템으로 바라본 FPGA . . . . . . . . . . . . . . . . . . . .25시스템 설계에서 FPGA ............................................................. 25FPGA를 장착한 자동차 전자 시스템 ........................................ 27

구동 장치 ......................................................................... 28인포테인먼트 .................................................................. 28운전자 지원 ..................................................................... 29FPGA의 중요성 ................................................................ 29

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 6: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 iv

4장: 미래: 이종 컴퓨팅 및 OpenCL . . . . . . . . . . . . . . . . .31이종 컴퓨팅................................................................................ 31왜 FPGA에서 OpenCL을 사용합니까? ..................................... 32

5장: FPGA의 다섯 가지 응용 분야 . . . . . . . . . . . . . . . . .35단일 장치 모터 제어 .................................................................. 35TV 방송 ...................................................................................... 37무선 데이터: 3G 및 GPP LTE 인프라 ....................................... 37자동차 운전자 지원 카메라 ...................................................... 39고성능 컴퓨팅 ............................................................................ 40

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 7: FPGA for Dummies Altera Korean

소개

F PGA (Field Programmable Gate Array)는 설계자가 현장에서 맞춤형 디지털 로직을 프로그래밍할 수 있는 집적 회로입

니다. FPGA는 1980년대 이래로 주변에서 접할 수 있었으며 처음에는 모든 설계 팀이 맞춤형 로직을 작성할 수 있도록 구상되었습니다. 초기에는 설계에서 FPGA를 사용하는 것은 단지 간단한 기능을 수행하기 위해 FPGA에서 많은 프로그래밍을 해야 한다는 의미였으므로, 대부분의 설계자가 회피했습니다. 대학 졸업 이후 FPGA를 접해보지 않았다면 FPGA의 또 다른 면모를 발견하게 될 것입니다.

FPGA는 유용하지만 보잘것 없는 인터페이스 장치에서 자체 마이크로프로세서, 메모리 블록 및 인터페이스를 갖춘 시스템 레벨 집적 회로(IC)로 진화하면서 차세대 주역으로 자리매김했습니다.

지금이 저렴한 개발 키트를 얻고, 무료 툴을 다운로드하고, 직접 이 세계를 살펴볼 수 있는 좋은 기회입니다. 그리고 이 책은 FPGA의 실용적인 측면을 이해하는 데 도움이 될 것입니다.

이 책에 대한 정보이 책은 시스템 설계자, 경험이 풍부한 엔지니어 또는 학창 시절 이후 FPGA를 접해본 적이 없는 분들에게 적합합니다.

이 책은 Altera Corporation의 협조로 제작되었습니다.

이 책에서 사용된 아이콘이 책 전반에 걸쳐, 종종 중요한 정보에 대해 주의를 환기시키기 위해 특별한 아이콘을 사용하고 있습니다. 일반적인 웃는 얼굴이나 이모티콘 형태는 아니지만 분명히 읽기를 멈추고 주의를 기울이게 될 것입니다! 다음은 각 아이콘의 쓰임새입니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 8: FPGA for Dummies Altera Korean

2 FPGA For Dummies, 알테라 특별판

이 아이콘은 나중에 사용할 수 있도록 캐시, 메모리 혹은 기타 매체에 보관하고 싶은 생일이나 전화 번호 등의 정보를 가리킵니다.

혹시 압니까? 파티에서 몇 가지 근사한 정보를 선보여 친구들을 감동시킬 수도 있습니다.

아니요, 웨이터나 바텐더에게 팁을 주도록 부탁하는 것이 아닙니다! 나중에 힘든 상황을 줄여줄 수 있는 단편적인 지식들이 담겨 있으므로 잠시 멈춰서 주목하십시오.

추가 자료이 책은 풍부한 정보들로 채워져 있지만 단 48 페이지에서 많은 내용을 다루고 있습니다. 그러므로 FPGA에 대한 자세한 정보를 찾으려면 www.altera.com을 방문하십시오. 여기에서 Altera와 FPGA에 대한 자세한 정보를 찾을 수 있습니다. 또한 동영상과 웨비나를 보고, 데모를 다운로드하고, 데이터 시트와 백서를 읽고, 그 밖의 다양한 자료를 활용할 수 있습니다!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 9: FPGA for Dummies Altera Korean

1장

모두를 위한 FPGA이 장에서 다루는 내용▶ FPGA 소개▶ FPGA의 작동 원리 및 기능 탐색▶ FPGA와 ASIC의 차이점 살펴보기

반 갑습니다! 이 장을 읽고 있다면 이전에 FPGA (Field Programmable Gate Array)에 대해 배웠지만 더 자세히

알고자 하는 엔지니어에게 훌륭한 길잡이가 되어줄 것입니다. 어쩌면 여러분의 설계에서 어떤 방식으로 사용할 수 있는지 궁금할 것입니다. 여기에서는 FPGA를 소개하고 어떤 문제를 해결해주는지 설명합니다. 또한 작동 원리와 기능을 살펴보고 설계 트레이드오프와 FPGA 기능의 실체를 파헤칩니다.

다른 하드웨어 구현 방법에 비해 FPGA는 두 가지 큰 이점을 지니고 있습니다. 첫째, 모든 경쟁업체에서 사용하는 동일한 ASSP (Application Specific Standard Product)를 사용하거나 ASIC (Application Specific Integrated Circuit) 설계에 따른 시간, 비용, 위험을 감수하지 않고 필요한 하드웨어를 정확하게 구현할 수 있습니다.

하지만 마찬가지로 중요한 점은, FPGA 커스터마이즈 기능을 통해 일반적으로 ASSP의 마이크로프로세서 코어에서 작업을 수행할 때보다 FPGA에서 더 간단하고, 더 빠르고, 더 에너지 효율적인 방식으로 작업을 수행할 수 있다는 것입니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 10: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 4

왜 FPGA가 필요합니까?당연한 질문입니다! FPGA는 제조 후 기능을 정의할 수 있는 반도체 소자입니다. FPGA는 제품이 현장에 설치된 이후에도 제품 특성 및 기능을 프로그래밍하고, 새 표준을 채택하고, 특정 애플리케이션에 맞게 하드웨어를 재구성할 수 있습니다. 그래서 필드 프로그래머블이라는 용어를 사용합니다. 그리고 게이트 어레이는 논리 게이트의 2차원 배열입니다. 이러한 내용을 충분히 이해하면 이처럼 간단한 계산 기능을 추가하여 의미있는 작업을 수행할 수 있습니다.

덜 기술적인 표현을 빌리자면, FPGA는 설계에서 유연성을 허용하고, 설계 일정에 많은 비용을 투입하거나 지연 위험을 감수하지 않고 시스템 일부의 작동 방식을 변경하는 방법입니다.

간단한 예로 차량용으로 설계된 후방 카메라를 들 수 있습니다. 카메라 시스템이 이미지 센서에 영상이 포착된 순간부터 이미지 프레임이 디스플레이에 실제로 나타날 때까지 250 밀리초가 걸리고, 변경된 정부 규정에서 이러한 지연이나 대기 시간이 100 밀리초를 넘지 않도록 요구하는 경우, FPGA에서 이미지 신호 처리 파이프라인을 조정하여 새로운 대기 시간 요구 사항을 준수하는 방법을 찾을 수 있습니다. 이는 마이크로프로세서 기반 시스템으로는 거의 불가능합니다. 이 예에서 회사는 부품을 재설계하거나 새로운 프로세서를 모두 구매하지 않아도 되므로 FPGA를 사용하여 큰 혜택을 얻을 수 있습니다.

초창기에 FPGA 회로는 매우 컸으며 단일 칩에 많은 기능을 구현할 수 없었습니다. 설계자가 할 수 있는 일은 단지 FPGA로 인터페이스를 구축하는 것이었고, 고객은 해당 인터페이스를 다른 작업을 수행하도록 다시 프로그래밍할 수 있었습니다(예를 들어, 키보드 입력으로 작동하는 인터페이스를 터치 스크린 장치의 입력을 처리하는 인터페이스로 변경). 하지만, 곧 설계자는 FPGA에서 하위 시스템 전체를 구축할 수 있다는 것을 알게 되었으며, 이는 더 이상 ASIC만 사용하여 이러한 하위 시스템을 구현하도록 제약이 따르지 않음을 의미했습니다. 회로 구성 요소가 점차 작아짐에 따라 설계자가 동일한 보드 공간에 더 많은 소자를 담고 더 복잡한 기능과 더 빠른 연산을 수행할 수 있게 되었으며, 그 결과 처리 속도가 더 빨라지고 전력 소모가 줄어들었습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 11: FPGA for Dummies Altera Korean

1장: 모두를 위한 FPGA 5

요즘의 FPGA는 구성 가능한 SRAM (Static Random Access Memory 또는 플래시), 고속 입출력 핀(I/O), 논리 블록 및 라우팅이 혼재되어 구성되어 있습니다. 특히 FPGA는 LE라고 하는 프로그래머블 논리 요소는 물론, LE가 서로 물리적으로 연결될 수 있도록 재구성 가능한 인터커넥트 계층구조도 포함합니다. 복잡한 기능을 수행하거나 단순히 AND 및 OR 같은 기초 논리 게이트를 실행하도록 LE를 구성할 수 있습니다. 대부분의 FPGA는 메모리 블록도 포함합니다. (이러한 주제에 대한 자세한 내용은“FPGA의 빌딩 블록”섹션을 참조하십시오.)

오늘날 하드IP는 전력 소모를 줄이고 비용을 낮추면서도 다양한 기능을 제공하도록 FPGA 패브릭으로 구축할 수 있습니다. 현재 FPGA에 포함된 하드 IP의 일부 예로는 메모리 블록, 회로 계산,

ASIC 과 ASSPASIC (Application Specific Integrated Circuit)은 트랜지스터, 콘덴서 및 레지스터 등의 전자 구성 요소로 구성된 집적 회로로, 대개 특정 용도로 커스터마이즈된 실리콘 또는 기타 반도체 재료로 구성된 웨이퍼에서 제작됩니다. ASIC의 두 가지 예로 음성 녹음기나 고효율 비트코인 마이너가 있습니다. 시간이 지나면서 IC에서 사용되는 구성 요소의 크기가 줄어들었습니다. 즉 동일한 공간을 사용하여 더 복잡한 회로를 만들 수 있게 되었습니다. 이러한 구성 요소의 축소 덕분에 이제 일부 ASIC은 여러 마이크로프로세서와 기타 복잡한 하위 시스템을 포함할 정도로 커졌습니다.

ASSP(Application Specific Standard Product)는 단일 고객을 대상으로 설계되고 판매되는 ASIC과는 반대로, 특정 애플리케이션 시장에

집중하고 둘 이상의 고객에게 판매되는 (따라서 표준인) IC입니다. ASSP의 몇 가지 예로 많은 스마트폰과 태블릿의 중심부에 있는 마이크로컨트롤러와 시스템 칩을 들 수 있습니다.

ASIC과 ASSP는 전용 기능에 맞춰 특별히 설계됩니다. 구성의 엄격한 통제로 인해 ASIC 및 ASSP는 아주 작으며, 저렴하고 빠르면서도 전력 소모가 적습니다. 따라서 전자 설계에 가장 적합한 특성을 모두 갖추고 있습니다. 제조 시 기능이 고정 배선되므로 회로의 일부 기능을 변경하기가 쉽지 않습니다. 실제로 이러한 회로는 실리콘 웨이퍼에 영구적으로 구현되므로, 단순히 회로망을 떼어내고 다른 것으로 교체할 수 없습니다. 설계에서 변경해야 할 사항이 있는 경우, 전체 칩을 폐기하고 처음부터 다시 시작해야 합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 12: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 6

트랜시버, 프로토콜 컨트롤러 및 심지어 중앙 처리 장치(CPU)도 있습니다. 하지만 기억해야 할 중요한 사실은 이 하드 IP는 나머지 FPGA처럼 커스터마이즈할 수 없다는 것입니다! 예를 들어, DSP(Digital Signal Processor)와 같은 하드 IP 통합은 설계자가 이러한 공통 부분을 시스템에 추가할 때마다 처음부터 새로 구축해야 하는 번거로움으로부터 해방시켜줍니다. 이러한 편리한 기능 덕분에 상품성을 갖추게 되었고, 그에 따라 대부분의 전자 시스템에서 상당히 일관성있게 작동하므로, FPGA 제조업체가 수월하게 하드 IP 구성 요소를 FPGA에 통합할 수 있습니다.

FPGA 살펴보기다음 섹션에서는FPGA를 처음 배운 이후 오랜 시간이 지나 일부 세부 내용이 기억나지 않는 분들을 위해 FPGA 구성 요소에 대해 자세히 논하고 FPGA란 무엇인지 좀 더 쉽게 설명합니다.

FPGA의 빌딩 블록와이어, 논리 게이트 및 레지스터의 세 가지 간단한 조각으로 모든 디지털을 구축할 수 있습니다(그림 1-1 참조). 레지스터는 다른 정보를 기억하도록 명령을 받기 전까지 정보 조각을 기억합니다. 논리 게이트는 신호에서 간단한 논리 연산을 실행하고 와이어는 이러한 다른 조각들을 연결합니다.

Altera Corporation 제공

그림 1-1: 디지털 시스템의 빌딩 블록.

논리 게이트논리 게이트는 디지털 회로의 핵심 기능을 수행합니다. 즉, 컴퓨터가 0과 1을 나타내기 위해 사용하는 전기적 펄스인 입력에서 간단한 논리를 수행합니다. 이러한 간단한 연산만으로는 그다지 많은

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 13: FPGA for Dummies Altera Korean

1장: 모두를 위한 FPGA 7

작업을 수행할 수 없지만 수천 또는 수백만 개가 합쳐지면 진정으로 강력한 기능을 발휘할 수 있습니다. 컴퓨터의 CPU는 컴퓨터로 가능한 모든 기능을 수행할 수 있는 수십억 개의 논리 게이트로 구성되어 있습니다.

기능적 회로 역할을 수행하기 위해 논리 게이트는 부울 대수라는 산술 유형을 사용합니다. 부울 대수는 1854년 조지 불(George Boole)에 의해 처음 소개되었습니다. 기초 대수학과 달리, 변수의 값은 숫자이며 주요 연산은 더하기와 곱하기이고, 부울 대수의 기본 연산은 결합 AND, 분리 OR 및 부정 NOT입니다. 부울 대수에서 변수의 값은 참과 거짓입니다.

기본적인 부울 대수 연산은 다음과 같습니다.

✓ And (결합)는 x AND y로 나타내며, x와 y 모두가 참이면 참인 결과를 산출하고 그렇지 않으면 거짓인 결과를 산출합니다.

✓ Or (분리)는 x OR y로 나타나며, x나 y 중 하나가 참이면 참인 결과를, x와 y가 모두 참이 아니면 거짓인 결과를 산출합니다.

✓ Not (부정)은 NOT x로 나타내며, x가 거짓이면 참인 결과를, x가 참이면 거짓인 결과를 산출합니다.

부울 대수가 가장 일반적으로 사용되는 분야 중 하나는 디지털 논리 설계입니다. 부울 대수는 입력이 0과 1 또는 거짓과 참인 디지털 회로에 직접 매핑되는 것으로 밝혀졌습니다. 0과 1로 간단한 부울 연산을 실행하는 이러한 논리 게이트를 더 많이 연결하여 고급 기능을 실행하는 시스템을 구현할 수 있습니다. 예를 들어, 논리 게이트는 화성 탐사 로봇을 안내하고, 수십억 개의 소자를 위성 위치 확인 시스템(GPS)에 연결하고, 심지어 아이폰에서 즐겨찾는 게임에 접속하여 배드 피기스(bad piggies)에서 버드(birds)를 실행할 수도 있습니다!

레지스터레지스터는 나중에 사용하기 위해 데이터 조각을 저장하는 간단한 소자입니다. 레지스터는 신속하게 액세스할 수 있는 단기 데이터 저장소라고 생각하십시오. 이곳은 전화를 걸기 전에 해당 전화 번호를 잠시 보관하는 장소입니다. 새로운 약속 시간 등 무언가를 기억하려고 하면, 즉시 이전에 기억했던 전화 번호가 약속 시작 시간으로 교체됩니다. 레지스터는 기존 정보를 잊고 새 정보를 보관하라는 명령을 받을 때까지 해당 정보를 보관합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 14: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 8

와이어모든 디지털의 세 번째 부분은 모든 레지스터와 논리 게이트를 연결하는 데 사용되는 와이어입니다. 1 + 2와 같은 간단한 작업에서부터, 블루레이 디스크를 읽어들여 블루 LED의 펄스를 TV 화면에서 고화질 이미지로 변환하는 등의 복잡한 작업에 이르기까지 원하는 작업을 수행하려면, 이러한 요소들을 전체 시스템에 연결해야 합니다. 정확한 수량의 논리 게이트와 레지스터를 와이어로 모두 연결하여 원하는 모든 디지털 시스템을 구축할 수 있습니다.

새로운 시각으로 FPGA 설명그러나 잠시만 기다리십시오! 논리 게이트, 레지스터 및 와이어에 대해 앞서 언급한 이 모든 내용은 지극히 기술적이며 매우 추상적으로 들립니다. FPGA를 이해하려면 경험이 풍부한 전자 엔지니어여야 할까요? 아닙니다! 두 가지 서로 다른 은유를 사용하여 FPGA 작동 원리를 설명할 수 있습니다. 첫 번째는 비드와 문자열 은유입니다. 두 번째는 레고 은유입니다.

그렇다면 디지털 전자 시스템 설계 시 비드와 레고 조각은 어떤 역할을 해야 할까요? 비드와 레고 조각은 논리 요소를 사용하여 전자 시스템을 구축하는 두 가지 접근 방법을 보여주는 것으로 밝혀졌습니다.

비드와 문자열비드와 문자열에서 제시하는 방법은 설계자가 소량의 비드와 짧은 문자열을 사용하여 패턴을 가장 세밀하게 제어하고 모두 연결할 수 있도록 합니다. 그 결과는 아름답고 매우 복잡한 패턴입니다. 하지만 이처럼 세분화된 제어는 대가가 따릅니다. 모든 작업을 실행 취소하고 다시 시작하지 않으면 패턴을 살짝 변경하는 것조차 불가능하지는 않더라도 매우 어렵습니다. 비드와 스레드를 디지털 전자 설계로 매핑하면 ASIC 또는 ASSP와 매우 유사한 설계를 구현할 수 있습니다.

다른 패턴으로 배열되고 스레드에 의해 연결된 서로 다른 색상의 많은 비드로부터 만들어진 비드워크 패턴을 가정합시다. 이러한 간단한 구성 요소를 사용하여 비드의 수, 해당 색상 및 이를 배열하는 방법에 따라 가장 간단한 패턴부터 가장 복잡한 패턴에 이르기까지 거의 모든 유형의 패턴을 만들 수 있습니다.

이제 비드가 레지스터와 논리 게이트를 모두 나타낸다고 가정하고, 문자열을 와이어로 가정합시다. 비드나 문자열과 마찬가지로

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 15: FPGA for Dummies Altera Korean

1장: 모두를 위한 FPGA 9

이러한 요소는 매우 간단한 연산부터 매우 복잡한 연산에 이르기까지 모든 유형의 연산을 실행할 수 있는 시스템을 구현합니다. 서로 다른 비드 색상은 AND, OR 또는 NOT과 같은 서로 다른 유형의 논리 게이트를 나타내는 것으로 생각할 수 있으며, 간단한 비드의 색상 배열을 문자열과 함께 사용할 경우 매우 복잡한 패턴이 될 수 있는 것과 마찬가지로, 이러한 간단한 산술 연산이 얼마나 복잡한 계산이 될 수 있는지 살펴 볼 수 있습니다.

패턴에서 비드를 배열하여 아름다운 디자인을 만들 수 있지만, 비드를 재배열하거나 비드의 색상을 변경하여 다른 패턴으로 변경하려고 하면 어떤 일이 발생할까요? 이렇게 하면 일이 상당히 복잡해 질 수 있습니다! 패턴을 변경하려면 주변 항목들도 변경해야 하는데, 그러면 모든 문자열을 풀어헤쳐야 합니다. 스레드가 매우 긴밀하게 연결되어 있어서 설계의 일부를 실행 취소할 수 없다는 것을 곧 알게 될 것입니다. 패턴을 살짝 변경하려고만 해도 전체 설계를 뜯어내야 한다는 것을 금방 알게 될 것입니다. 글쎄요, 그다지 유연하지 않은 것 같죠?

레고레고에서 제시하는 접근 방법은 좀 다릅니다. 레고는 상대적으로 크고 두툼하며 블록의 특정 지점에만 끼울 수 있습니다. 레고를 사용하면 설계를 모두 뜯어내고 처음부터 다시 시작하지 않고서도 아주 쉽게 설계의 작은 부분만 변경할 수 있습니다. 레고 설계는 비드와 스레드로 제작된 패턴만큼 세련되고 복잡하지는 않습니다. 하지만 모두 무너뜨리고 처음부터 다시 시작하지 않고서도 설계의 일부를 변경할 수 있으므로, 개인적으로 디지털 전자 설계에서 두 번째 접근 방법을 선호합니다. FPGA.

어린 시절 또는 자녀와 함께 레고 조각으로 빌딩, 소방차, 우주선 등을 만드느라 많은 시간을 보낸 경험이 있을 것입니다. 마찬가지로, 테이블을 만들고 일부 블록은 논리 게이트, 일부는 레지스터, 나머지는 이들 모두를 연결하는데 사용되는 와이어라고 가정하면, 레고를 사용하여 디지털 시스템을 훌륭히 재현할 수 있습니다.

지금 누군가 테이블의 오른쪽 하단 모서리의 패턴을 변경하고 레고 색상을 변경하고 싶다고 말했다고 가정합시다. 레고 조각은 모두 서로 연결되는 조각이므로, 손쉽게 오른쪽 하단 모서리에서 해당 조각을 분리하고 다른 레고 그룹으로 교체할 수 있습니다. 테이블의 나머지 레고는 건드리지 않으며 일부만 변경하기 위해 전체 설계를 다시 실행할 필요가 없습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 16: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 10

FPGA와 ASIC 비교FPGA는 일반적으로 ASIC보다 더 유연하고 비용 효율적입니다. 다음 섹션에서 그 이유에 대해 설명합니다.

비용 및 유연성FPGA를 사용하여 ASIC에서 할 수 있는 모든 논리적 기능을 구현할 수 있지만, 두드러진 이점은 칩 제조 후 기능을 업데이트할 수 있다는 점으로, 다수의 애플리케이션에 적용될 수 있습니다. FPGA는 고객이 업체와 계약을 맺고 그들의 요구에 맞게 ASIC를 설계하고 제작하는 것이 아니라, 고객의 요구 사항에 따라 FPGA를 프로그래밍할 수 있기 때문에 ASIC보다 비용 효율적입니다.

설계 시 위험 감소 대비 속도비용에 관계없이 세계에서 가장 진보된 반도체 공정을 사용하면 언제든지 현존하는 가장 빠른 FPGA보다 더 빠르게 실행되는 ASIC를 설계할 수 있을 것입니다. 하지만 거의 대부분의 사람들이 가장 진보된 공정을 사용하지 않습니다. 이렇게 하는 것은 위험하고 매우 어려우며, 비용이 부담스러울 수 있습니다. 사실상 극소수의 ASSP 업체만이 새로운 공정이 나오는 즉시 올라 탈 수 있습니다. 그 밖의 모든 사람들은 1, 2 또는 3세대 공정을 사용합니다. 또한 실제로 현존하는 가장 빠른 FPGA로 할 수 있는 작업은 이전 ASIC 공정으로 바로 완료할 수 있습니다. FPGA는 설계 작업을 줄여주고 휠씬 덜 위험합니다.

예를 들어, 특정 전력 효율성과 성능 요구 사항을 갖춘 시스템을 설계하고 이전의 65nm(나노미터) ASIC를 사용할 계획인 경우, 현재의 20nm FPGA로 비슷한 결과를 달성할 수 있다는 사실을 알고 계십니까?

또한 FPGA를 사용하면 설계 시간을 단축하고, 설계 오류 위험을 줄이고, ASIC보다 총 소유 비용(TCO)을 낮출 수 있습니다. 대부분의 애플리케이션에서 FPGA의 전력 소비는 사용자 요구에 부합할 것입니다. 이처럼 낮은 TCO와 뛰어난 유연성 덕분에 FPGA는 종종 최선의 기술적 선택이 되고 있습니다.

나노미터(nm)는 칩의 트랜지스터 크기 측정 단위입니다. 트랜지스터는 수십 년에 걸쳐 작아지고 있습니다. 제 2장을 참조하십시오.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 17: FPGA for Dummies Altera Korean

1장: 모두를 위한 FPGA 11

레고를 비유하여 설명한 대로, 시스템에 FPGA를 선택하면 나머지 설계에 영향을 주지 않고 FPGA의 작은 부분을 수정할 수 있기 때문에, 설계자가 더 쉽게 구성할 수 있고 개발 일정에 영향을 주는 위험 요소가 줄어듭니다.

놀라울 정도로 사용하기 쉬운 FPGA

일부 설계자는 모던 FPGA로 시스템을 구축하는 것이 단지 약간의 유용성을 위해 수백만 개의 논리 게이트와 대규모 연결을 엉망으로 만들어야 하는 것으로 잘못된 인식을 갖고 있습니다. 이러한 인식이 사실이라면 FPGA 사용이 증가하지 않았을 것입니다. 대신에 극소수의 FPGA 사용자만 남아 있을 것입니다.

희소식은 FPGA 설계자가 클록 생성기, DRAM(Dynamic Random Access Memory) 컨트롤러, PCI Express(Peripheral Component Interconnect) 컨트롤러는 물론 전체 멀티코어 마이크로프로세서와 같은 공통적으로 필요한 구성 요소를 추가하는 어려운 작업들을 이미 대부분 마쳤기 때문에, 애플리케이션에 특정한 기능들을 커스터마이즈하는 데만 집중하면 된다는 것입니다.

하드 IP이 장의 앞부분에서 하드 IP는 DRAM 컨트롤러, PCI 컨트롤러, 클록 생성기 및 큰 메모리 블록과 같은 FPGA로 구축된 지적 재산이라고 언급했습니다. 실제로 오늘날의 FPGA에는 SoC(System on a Chip)가 된 하드 IP가 상당히 많이 있습니다.

대부분의 시스템 설계자가 FPGA의 하드 IP에 구축해야 하는 공통 기능뿐만 아니라, 레이더나 통신용 고속 직렬 트랜시버 및 신호 처리용 DSP(Digital Signal Processor) 곱셈 누산기와 같이 흔히 사용되지 않는 기능도 포함될 수 있습니다. 지금은 심지어 듀얼 코어 ARM(ARM은 마이크로프로세서 설계 브랜드) CPU 하위 시스템도 내장할 수 있습니다. 사실 오늘날의 하이엔드 FPGA는 기판의 절반에만 프로그래머블 논리가 있고 나머지 절반은 하드 IP로 구성됩니다. 현재 설계자는 일반적으로 필요한 IP가 이미 내장된 FPGA로 시작한 후, 프로그래머블 논리를 사용하여 FPGA를 그들의 특정 애플리케이션에 맞게 커스터마이즈합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 18: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 12

병렬 연산 및 명령 감소모던 설계자는 더 복잡한 연산을 간단하게 줄여주는 스마트한 툴을 만드는 데 익숙하고(명령 감소로 통칭), 또한 동시에 실행되는 일련의 명령으로 복잡한 연산을 수행할 수 있으며, 이를 병렬 연산이라고 합니다.

모두 근사해 보이지만 실제 의미는 무엇입니까? 마이크로프로세서는 단순히 해당 명령을 실행하는 방식으로 해당 작업만 수행할 수 있습니다. 프로그램이 곱하라고 말하면, 마이크로프로세서가 메모리에서 명령을 불러오고, 디코딩하고, 각각의 번호를 로드하고, 곱하고, 결과를 저장합니다. 이러한 각 단계는 시간과 에너지를 소비합니다. 하지만 실행하려는 작업이 단지 어떤 숫자에 2를 곱하는 것이라면 어떨까요? 곱셈 연산이 있고 계수 중 하나가 상수 값인 것을 알고 있는 경우, 처리 시간과 전력을 절약하기 위해 이 복잡한 연산을 더 간단히 줄일 수 있습니다. FPGA와 달리 마이크로컨트롤러는 가능한 경우 곱셈을 덧셈으로 줄이는 스마트 기능을 가지고 있지 않으므로, 곱셈 연산을 실행해야 하며, 그 결과 실행 속도가 느려지고 전력 사용량이 늘어납니다.

벡터 수학 계산 등을 수행할 때 FPGA는 진정으로 빛을 발합니다. 벡터 수학은 물리 수업에 국한되지 않습니다. 큰 숫자 집합의 각 숫자에 대해 동일한 연산을 실행해야 할 때마다 프로그래머들은 이를 사용합니다. 여기에서 FPGA의 큰 장점은 마이크로프로세서가 각 숫자(또는 기껏해야 한 번에 몇 개의 숫자)를 개별적으로 처리해야 하지만, 다수의 연산과 심지어 서로 다른 다수의 연산을 동시에(병행하여) 실행하도록 FPGA를 프로그래밍할 수 있다는 것입니다. 128 요소 행렬이 있는 경우 128개의 산술 “파이프라인”을 구축할 수 있으므로, 이러한 모든 연산을 동시에 실행하면 성능과 전력 사용량에서 큰 이득을 얻을 수 있습니다.

종종 ASIC나 ASSP가 정답은 아닙니다!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 19: FPGA for Dummies Altera Korean

2장

FPGA에는 무엇이 있습니까?

이 장에서 다루는 내용▶ 프로그래머블 패브릭 및 I/O 살펴보기▶ 상향 스케일링 살펴보기▶ 하드 IP 및 통합 CPU 내장▶ 새로운 설계 플로우의 장애물

이 장을 읽으면 FPGA가 무엇인지 확실히 알 수 있게 될 것입니다. 하지만 FPGA를 배우고 나서 다소 시간이 지났다면,

최근 수년 동안 얼마나 발전하여 프로그래머블 논리 게이트 배열 이상으로 진화했는지 놀라실 것입니다. 지금은 구입 즉시 많은 공통 기능들을 실행할 수 있도록 내장 하드웨어를 포함하고 있습니다. 이 장에서는 FPGA 안에 무엇이 있는지 살펴보고, 상향 스케일링의 미래에 대해 논하고, 설계 플로우의 작동 원리를 파헤칩니다.

기본 개념 - 프로그래머블 패브릭 및 I/O

FPGA(Field Programmable Gate Array)라는 이름에서 제시하듯이, FPGA의 핵심은 다수의 논리 게이트와I/O(입출력) 회로들을 포함한 단순한 집적 회로입니다. I/O 회로들은 소스에서 데이터를 가져와서 다른 시스템이나 하위 시스템을 통해 다른 쪽 단말로 데이터를 내보냅니다.

제 1장에서 논리 게이트, 와이어 및 레지스터와 같은 전자 시스템의 빌딩 블록에 대해 설명했습니다. 전자 시스템의 핵심에는 표면

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 20: FPGA for Dummies Altera Korean

14 FPGA For Dummies, 알테라 특별판

에 와이어와 트랜지스터가 에칭된 평면 사각형 실리콘이 있습니다. 이러한 실리콘 비트를 집적 회로(IC)라고 합니다.

트랜지스터는 대개 실리콘으로 만들어진 반도체 소자입니다. 최근에는 질화 갈륨(GaN) 및 갈륨 비소(GaAS)와 같은 새로운 재료로도 만들어지고 있습니다. 트랜지스터는 전자 신호를 전환 및/또는 증폭하는 데 사용되며, 회로에 연결을 형성하는 커넥터(또는 단자)가 3개 이상 있습니다. 트랜지스터는 2개의 단자에 걸쳐 전기 전위에너지(전압)를 적용한 다음 세 번째 단자에서 다른 전위를 적용하는 방식으로 전기 신호를 전환합니다. 따라서 처음 2개의 단자에 걸쳐 트랜지스터의 한 쪽 끝에서 다른쪽으로 전류가 흐르게 됩니다. 이 전위를 제거하면 회로를 통해 전류가 흐르지 않습니다. 또한 트랜지스터는 출력 전원을 입력시 공급된 것보다 더 크게 하는 전압 또는 전류를 적용하는 방식으로 입력 전원을 증폭할 수 있습니다.

트랜지스터는 배관에 사용되는 밸브와 유사합니다. 밸브에 힘을 가하면 물이 파이프를 통해 흐릅니다(여기에서는 와이어). 밸브에서 힘을 빼면 밸브가 닫히고 파이프를 통해 흐르던 물이 멈춥니다. 트랜지스터의 경우도 마찬가지입니다. 전기 전위(힘)을 트랜지스터에 적용하면 트랜지스터를 통해 전기가 흐르고 회로를 연결하는 와이어를 통해 다른 쪽 단말로 배출됩니다. 이 전기 전위를 제거하면 전기 플로우이 중단됩니다.

트랜지스터의 역사역사 학자들은 1947년에 트랜지스터 개발자 명단에 존 바딘(John Bardeen), 월터 브래튼(Walter Brattain) 및 윌리엄 쇼클리(William Shockley)를 올렸습니다. 트랜지스터를 이처럼 놀라운 발명품으로 만든 것은 트랜지스터가 고체 전자 공학과 집적 회로의 시대를 열었다는 사실입니다. 트랜지스터는 교체된 진공 튜브보다 훨씬 작고 전력 소모가 훨씬 적습니다. 소형 장치에 사용할 수 있을 정도로 크기가 작아지면서, 궁극적으로 단골 프랑스-베트남

퓨전 레스토랑으로 차를 모는 동안 갖고 있는 휴대폰으로 YouTube에서 최신 고양이 동영상을 볼 수 있게 되었습니다. 자신이 정말로 범생이라고 느낀다면, 다음 파티에서 트랜지스터는 트랜스퍼와 레지스터의 합성어로 존 피어스(John R. Pierce)에 의해 처음으로 사용되었다고 친구들에게 설명해줌으로써 그들을 기쁘게 하고 깜짝 놀라게 만들 수 있습니다. 이 토막 상식이 퀴즈쇼에서 엄청난 상금이나 상품을 안겨줄지도 모르죠!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 21: FPGA for Dummies Altera Korean

2장: FPGA에는 무엇이 있습니까? 15

부울 대수는 실제로 참이나거짓 또는 숫자로 1이나 0으로 표현되는 입력값의 숫자 연산입니다. 논리 게이트는 0 또는 1의 입력값에서 다양한 부울 대수 연산을 실행하는 데 사용되는 소자입니다. 트랜지스터는 전기 전위를 적용하거나 제거하는 방식으로 전기 신호를 전환하므로, AND, OR 또는 NOT과 같은 부울 대수 연산 중 하나를 실행할 수 있는 논리 게이트를 만드는 방식으로 트랜지스터 그룹을 배열할 수 있습니다(부울 대수 연산에 대한 설명은 제 1장 참조).

FPGA의 핵심은 단순히 사용자가 재구성할 수 있는 방식으로 집적 회로에 에칭된 이러한 논리 게이트와 와이어의 배열입니다. 또는 원하는 경우 제 1 장에서FPGA를 테이블에 배열된 레고 조각에 비유하는 내용을 살펴보십시오.

실제로 가장 간단한 형태의 FPGA는 해당 소유자(또는 FPGA의 경우 해당 프로그래머)가 원하는 방식으로 배열할 수 있는 사각 테이블에 놓인 다채로운 사각형의 큰 배열입니다.

무어의 법칙무어의 법칙은 1965년 4월 19일 발행된 Electronics Magazine의 “집적 회로에 더 많은 소자 주입(Cramming More Components onto Integrated Circuits)”이라는 기사에서 유래했습니다. 이 기사에서 무어는 회로 복잡도는 2년마다 두 배로 늘어나지만 웨이퍼(집적 회로가 구축되는 평평한 실리콘 디스크)의 크기는 그대로 유지될 것이라고 정확히 예측했습니다. 1970년대 말까지 무어의 법칙 중 가장 유명한 공식은 가장 복잡한 칩의 트랜지스터 개수에 대한 제한이 되었습니다. 놀랍게도 무어의 예측은 처음 발표한 이후 거의 50년 동안 계속 적중했습니다!

간단히 말하자면, 무어의 법칙은 집적 회로에 구현하는 소자의 크기를 18-24개월마다 30%까지 줄일 수 있으므로 트랜지스터 개수가 두 배가 된다는 것입니다. 무어의 법칙은 일을 더 복잡하고 어렵게 만듭니다. 예를 들어, 이러한 모든 와이어와 트랜지스터를 더 작은 실리콘 표면에 추가하는 것은 공정 후 실리콘의 에칭된 웨이퍼에서 원래 회로 설계의 배치 무결성을 유지하기 매우 어렵게 만듭니다. 투사된 이미지는 설계된 것보다 더 넓거나 좁은 선과 같은 기이한 모습이나 웨이퍼의 둥근 모서리와 같은 왜곡된 형태로 나타납니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 22: FPGA for Dummies Altera Korean

16 FPGA For Dummies, 알테라 특별판

이전에 설계자는 컴퓨터와의 간단한 인터페이스 및 기초적인 논리 기능을 만드는 등의 단순한 용도로만 FPGA를 찾았습니다. 필드 프로그래머블 인터페이스용 장치 이상의 용도로는 그다지 사용되지 않았습니다.

상향 스케일링설계자는 작은 실리콘 웨이퍼에 수백만 개의 와이어와 트랜지스터를 추가할 수 있도록 회로 에칭 시 발생하는 문제를 없애기 위해 이러한 개념을 도입했습니다.

수백만 또는 심지어 수십억 개의 트랜지스터를 추가하도록 칩 설계를 스케일링할 때 발생하는 또 다른 문제는, 트랜지스터가 너무 작아서 핀치 오프(전기 퍼텐셜 절단)하기가 매우 어렵게 된다는 점입니다. 웨이퍼는 계속해서 30%씩 더 작아지는데 트랜지스터의 숫자는 두 배가 되기 때문에, 칩 설계가 더 복잡해지고 트랜지스터는 더 많은 전력을 유출하게 됩니다. 즉, 칩이 연산을 수행할 때가 아니라 동작을 멈추고 있을 때에도 전력을 소모합니다. 또한 트랜지스터가 점점 더 약해져서 단지 칩의 실행 속도가 더 느려지는 것을 방지하기 위해 더 많은 작업을 수행해야 합니다.

스케일링의 종착지에 접근할 수 있을까요? 설계자는 이미 칩의 작은 영역에 많은 전력을 투입해서 칩이 자체 와이어를 녹일 수 있는 지경에 이르렀습니다! 설계자는 평면 배열부터 핀펫(FinFET)에 이르기까지 트랜지스터를 설계하는 방법을 근본적으로 변경해야 하는 시점에 다다르고 있습니다. 핀펫은 트랜지스터가 점유하는 표면 영역을 줄이도록 설계된 실리콘 웨이퍼에 구축된 비플래너(non-planar) 더블 게이트 FET(Field-Effect Transistor)입니다. 핀펫이라는 이름은 트랜지스터의 전도 채널을 감싸는 얇은 실리콘인“핀(fin)”에서 유래되었습니다.

칩 설계자는 어떤 미래를 바라볼까요? 근래까지만 해도 한 칩에 약 20개의 트랜지스터가 있었습니다. 향후 몇 년 이내에 수십억 개의 트랜지스터를 포함하는 칩이 제작될 것입니다. 이러한 칩이 설계되기 전에 설계자는 기존의 강점 위에 다양한 종류의 와이어와 수 많은 혁신적인 기능들을 접목시킨 트랜지스터를 만들기 시작해야 할 것입니다. 칩 설계는 미개척지 탐험의 선봉에서 스스로 진단하고, 보정하고 치료할 수 있게 될 것입니다. 칩 설계자가 무어의 법칙을 계속 미래로 확장할 수 있는 희망찬 시절이 도래할 것입니다!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 23: FPGA for Dummies Altera Korean

2장: FPGA에는 무엇이 있습니까? 17

무어의 법칙 적용은 집적 회로에서 확실한 승자가 되었습니다. 오늘날의 집적 회로는 수백만 또는 심지어 수십억 개의 트랜지스터를 포함하고 있으며, 고속 데이터 네트워킹, 고급 3D 그래픽 계산 또는 인터넷을 통한 고화질 동영상 스트리밍 및 재생과 같은 매우 복잡한 작업을 수행할 수 있습니다. 무어의 법칙은 집적 회로에만 적용되지 않고 FPGA에도 혁신을 일으켰습니다.

하드 IP 및 통합 CPU오늘날 FPGA에서 구현하는 설계는 동일한 크기의 하드웨어에서 ASIC에 동일한 설계를 구현했을 때와 동일한 에너지 효율성과 속도를 제공할 수 있습니다. FPGA 공급업체는 표준 인터페이스에서 전체 마이크로컴퓨터에 이르기까지, 자주 필요한 기능을 구현하기 위해 미리 정의된 큰 하드웨어의 블록을 FPGA에 내장했기 때문에 이는 부분적으로 사실입니다.

FPGA가 필드 프로그래머블이라는 사실은 설계에서 변경 사항에 맞춰 동일한 하드웨어를 재프로그밍할 수 있기 때문에 ASIC보다 뛰어난 이점을 제공합니다. 설계에 ASIC를 사용할 경우, 설계를 변경하려면 기존 하드웨어를 폐기하고 설계 변경 사항을 반영하도록 새 하드웨어를 제작해야 합니다. 점점 더 많은 설계자들이 설계에서 ASIC 대신 FPGA를 선택하고 있습니다. 설계에서 FPGA 사용을 생각하는 경우, 내장된 하드웨어를 충분히 활용하고 FPGA의 설계 플로우에 대해 더 자세히 알아보십시오.

FPGA의 새로운 설계 플로우FPGA 설계는 종종 다른 사람들이 복사하도록 만들어진 시스템의 기술 청사진을 나타내는 레퍼런스 디자인(reference design)에서 시작합니다. 레퍼런스 디자인는 시스템의 필수 요소를 포함합니다. 레퍼런스 디자인는 일반적으로 애플리케이션 엔지니어가 기술 지원의 일환으로 제공하지만, 고객의 유형이 변했습니다. 점차적으로 레퍼런스 디자인는 영업 도구가 아니라 제품 그 자체로 인식되고 있습니다!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 24: FPGA for Dummies Altera Korean

18 FPGA For Dummies, 알테라 특별판

기능 블록 다이어그램 만들기그렇다면 시스템 설계 플로우은 어떤 모습일까요? 그림 2-1은 고급 시스템 설계 플로우의 간단한 블록 다이어그램을 보여줍니다.

Altera Corporation 제공

그림 2-1: 시스템 설계 플로우.

시스템 설계 플로우은 기대했던 형태로 나타납니다. 우선 요구 사항을 정의한 다음, 정의한 시스템의 구조를 만듭니다. 여기에서 설계를 구현하는 데 필요한 구성 요소를 결정합니다. 이어서 계획한 구조를 사용하여 시스템을 구현합니다. 마지막으로 시스템이 모든 요구 사항을 충족하는지 확인합니다.

그림 2-1은 시스템 설계 플로우(flow)을 간략히 보여줍니다. 구조 만들기 및 시스템 구현 단계는 작업이 실제로 진행되는 단계입니다. 여기에서는 시스템의 구조가 어떻게 보이는지 판별하고, 시스템 설계를 구현하는데 필요한 하드웨어와 소프트웨어 애플리케이션을 작성합니다. 요구 사항 정의부터소프트웨어 애플리케이션 플로우라는 별도의 플로우 검증까지 분류할 수 있습니다. 그림 2-2에서는 그림 2-1의 시스템 설계 플로우에 소프트웨어 애플리케이션 플로우 단계가 추가됩니다.

Altera Corporation 제공

그림 2-2: 소프트웨어 애플리케이션 플로우에 포함된 시스템 설계 플로우.

요구 사항 정의와 시스템 통합 및 확인 간의 더 밝은 색상의 블록은 설계의 애플리케이션 플로우을 구성합니다. 이 단계에서 애플리케이션 소프트웨어를 작성하고 확인한 다음, 해당 애플리케이션을 하드웨어에 통합합니다. 애플리케이션이 하드웨어와 통합된 이

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 25: FPGA for Dummies Altera Korean

2장: FPGA에는 무엇이 있습니까? 19

후, 시스템을 통합하고 시스템이 설계 요구 사항을 충족하는지 확인합니다.

애플리케이션 플로우은 시스템을 구현하는 데 필요한 애플리케이션 개발의 모든 것이라고 할 수 있습니다. 설계자는 종종 시스템이 구축될 애플리케이션 유형에 따라(예를 들어, 자동차, 통신 등) 해당 시스템이 다른 플랫폼에서 어떻게 실행될지 고려해야 합니다. 종종 다른 애플리케이션 도메인에서 이러한 시스템용으로 개발된 애플리케이션이 공통 기능을 실행하고 서로 협업할 수 있도록 소프트웨어 및 하드웨어 표준을 제정합니다.

예를 들어, 안드로이드 기반 휴대폰을 생각해 봅시다. 안드로이드 운영 체제는 안드로이드용으로 개발된 모든 애플리케이션에서 사용할 수 있는 공통 기능을 포함하고 있으며, 애플리케이션 간의 카메라 액세스 및 데이터 공유 등을 위한 플랫폼 표준을 사용합니다. 설계자는 종종 애플리케이션에 일반적으로 미들웨어라고 불리는 항목도 포함합니다. 미들웨어는 제품의 핵심 기능을 구현하진 않지만, 대신에 업계 표준 또는 프로토콜을 구현하는 계층을 제공하는 소프트웨어 계층입니다. 설계자는 특정 표준 또는 개발 플랫폼(예를 들어, 안드로이드 또는 애플 iOS)에 특정된 논리로부터 애플리케이션 논리를 격리하기 위해 미들웨어를 만듭니다. 미들웨어는 종종 다른 많은 애플리케이션에서 재사용될 수 있습니다. 미들웨어를 애플리케이션에 추가하는 또 다른 중요한 요소는 향후 표준과 플랫폼을 쉽게 해당 애플리케이션으로 통합할 수 있게 만든다는 점입니다. 그림 2-3은 미들웨어 개발이 시스템 설계 플로우에서 어떻게 적용되는지 보여줍니다.

Altera Corporation 제공

그림 2-3: 시스템 설계 플로우에서 미들웨어.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 26: FPGA for Dummies Altera Korean

20 FPGA For Dummies, 알테라 특별판

기존 IP로 기능 블록 교체블록 다이어그램을 살펴보면 사용자 애플리케이션을 작성하여 시스템에 통합하면 작업량이 줄어드는 것처럼 보입니다. 하지만 FPGA 제조업체는 시간이 지나면서 대부분의 시스템이 많은 동일한 유형의 기능을 필요로 한다는 사실을 알게 되었습니다. 네트워크 데이터 I/O, 그래픽 처리 및 마이크로프로세서와 같은 기능은 공통적으로 필요하므로, 각각의 시스템 설계자가 이러한 구성 요소를 설계하고 구축하는 것은 합리적이지 않습니다. 이러한 유형의 기능을 즉시 사용할 수 있도록 하는 것이 훨씬 합리적입니다. 최근까지 FPGA 제조업체는 이러한 공통 기능 또는 지적 재산(IP)을 그들의 제품에 포함해 왔습니다. 이 IP는 하드웨어 형태로 칩에 내장되거나, 소프트웨어로 사용자에게 제공되거나, 사용자가 프로그래머블 논리를 넣을 수 있는 하드웨어 설계(FPGA의 경우에만 해당)가 될 수 있습니다. 이제 블록 다이어그램의 블록 부품들을 이미 만들어진 기존 IP로 교체할 수 있습니다. 그림 2-4는 기존 IP가 설계 다이어그램에서 어느 위치에 적용되는지 보여줍니다.

Altera Corporation 제공

그림 2-4: 기존 IP로 기능 블록 교체

실선 사각형은 하드웨어와 프로그래머블 논리 IP의 사용 효과를 보여줍니다. 하드웨어 구현 및 하드웨어 확인 단계의 많은 부분들이 이미 시중에 나와 있습니다. 그리고 그림 2-4에서 점선 사각형은 기존 IP가 설계 다이어그램에서 어느 위치에 적용되는지 보여줍니다. 여기에서 애플리케이션과 미들웨어 작성 과정의 일부를 이미 구현된 기능으로 대체합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 27: FPGA for Dummies Altera Korean

2장: FPGA에는 무엇이 있습니까? 21

누락된 블록 코딩 기존 IP로는 일부 공통 기능을 구현하는 데까지가 한계입니다(예를 들어, 내장 네비게이션 시스템에서 GPS 데이터 액세스). FPGA의 필드 프로그래밍 작업의 나머지 부분은 설계자에 달려 있습니다. 결국 최종 목표는 자신의 애플리케이션에 정확히 접목하는 것입니다. 맞습니까?

새로운 FPGA 프로그래밍은 생각보다 훨씬 더 쉽습니다. FPGA를 프로그래밍하는 단계에는 실제로 직접 설계하고자 하는 모든 블록 식별, 하드웨어 기술 언어(HDL) 선택, 텍스트 편집기에서 코드 작성, 설계 동기화(나중에 더 자세히 다룸), 설계 배치 및 라우팅, FPGA로 설계 로드 단계가 포함됩니다. 설계를 FPGA로 로드한 후에 기능상의 오류를 수정하기 위해 디버깅 과정이 필요할 수 있습니다.

소프트웨어 및 하드웨어 개발에 쓰이는 기술 용어에서 버그라는 단어를 접하게 될 것입니다. 버그는 컴퓨터 소프트웨어에서 잘못되거나 예상치 못한 결과를 도출하는 불가사의한 결함입니다. 디버깅이라는 용어는 전체 설계가 필요한 기능에 맞게 실행될 때까지 결함을 제거하는 과정을 말합니다.

설계가 만족스럽게 작동하면 다음 단계는 프로그램을 문서화하고 최종적으로 이를 고객에게 출시하는 것입니다.

Verilog 는 FPGA 설계 작성에 주로 사용되는 HDL입니다. Verilog는 널리 사용되는 C라고 불리는 범용 프로그래밍 언어와 매우 유사한 문법을 갖고 있습니다. 하지만 Verilog, VHDL 및 기타 하드웨어 기술 언어는 컴퓨터에서 실행되는 프로그램을 정의하는 것이 아니라, 설계자가 FPGA에서 만들고자 하는 하드웨어(게이트, 레지스터 및 와이어가 상호 연결된 네트워크)를 기술합니다. 간단

버그에서 발견된 실제 버그(벌레)어원을 파고 들면 소프트웨어에서 “버그”라는 단어를 처음 사용한 사람이 컴퓨터 개척자인 그레이스 호퍼(Grace Hopper)라는 사실이 흥미롭습니다. 1947년, 그

녀는 전기 기계식 컴퓨터의 계전기에 갇힌 나방을 발견하고 프로그램 실행 결과에서 나온 결함을 버그로 언급했습니다!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 28: FPGA for Dummies Altera Korean

22 FPGA For Dummies, 알테라 특별판

한 텍스트 편집기를 사용하여 적합한 문법으로 Verilog 프로그램을 작성합니다.

HDL 설계를 작성 후 다음 단계는 HDL 설계를 컴파일하는 것입니다. FPGA 프로그래밍에서 통합 툴은 HDL 설계를 입력으로 가져와서 HDL로 기술된 기능을 구현하도록 게이트, 레지스터 및 와이어의 네트워크로 변환합니다. 그런 다음, 추가 프로세스는 FPGA에서 사용할 특정 게이트, 레지스터 및 와이어를 선택하고, 가동 시 FPGA를 구성하게 될 프로그래밍 파일을 만듭니다.

따라서 HDL 코드가 선택한 FPGA 소자에서 사용할 수 있는 물리적 하드웨어 요소로 직접 매핑됩니다. 마이크로프로세서 프로그래밍에서 프로그램 논리는 프로세서가 실행해야 하는 프로세서 명령 목록으로 매핑됩니다. 따라서 상당히 다르지만, 논리를 바로 실행할 수 있도록 실리콘 게이트로 변환할 수 있는 멋진 기능입니다.

이 프로세스에서 설계 툴이 하드 IP(FPGA에 이미 내장된 사전 정의된 하드웨어 블록)의 설계로 링크될 수도 있습니다. 새로운 툴 플로우에서는 하드 또는 소프트 IP 블록을 사용할 여부와 이들을 어떻게 연결할지만 지정하면 됩니다. 아직 IP로 제공되지 않는 블록만 HDL 코드를 작성하면 됩니다.

시스템 설계 확인코드를 컴파일한 후 FPGA로 구축하기 전에 테스트합니다. 예전에는 설계자가 훨씬 간단한 프로그래머블 논리 칩에 대해서도 단지 제대로 작동하는지 알아보기 위해 설계를 테스트했습니다. 하지만 새로운 FPGA의 복잡성으로 인해 초기 디버그 툴로 사용하기에는 적합해 보이지 않습니다.

FPGA 설계의 디버깅은 일반적으로 시뮬레이션 환경에서 수행됩니다. 시뮬레이터는 말 그대로 설계의 동작을 시뮬레이션하는 소프트웨어 애플리케이션입니다. 하지만 시뮬레이션은 설계를 FPGA로 구현하기 전에 개별 레지스터가 어떻게 작동하는지 확인할 수 있는 소프트웨어를 사용하여 수행됩니다.

코드 디버깅 및 확인은 일반적으로 HDL 코드가 예상대로 작동하는 것으로 확인될 때까지 반복됩니다. 대부분의 개발자는 FPGA가 실제로 구현되었을 때 제대로 작동할지 확인하기 위해 테스트벤치라는 툴을 사용합니다. 테스트벤치는 사용자의 FPGA를 포함할 시스템 모델을 구성하는 (직접 설계한) 소프트웨어 시뮬레이션과 실

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 29: FPGA for Dummies Altera Korean

2장: FPGA에는 무엇이 있습니까? 23

제 하드웨어의 혼합물이 될 수 있습니다. 대부분의 FPGA는 수만 또는 수십만 개의 게이트를 포함하므로 모두 테스트할 수는 없습니다. 대신 테스트벤치는 설계의 핵심 영역을 포함한 가장 의미있는 게이트에 집중합니다. 시뮬레이션 환경은 설계가 원하는 방식으로 작동할 수 있도록 특정 영역을 격리하고 해당 영역에서 디버깅 지원을 추가할 수 있습니다.

모든 좋은 소프트웨어 애플리케이션은 고객이나 최종 사용자에게 애플리케이션이 어떻게 정의되는지 정확히 알려주고 통제와 경고 등을 나타내기 위해 광범위한 문서를 필요로 합니다. 문서 요구 사항은 모든 마이크로컨트롤러 기반 프로그래밍과 마찬가지로 FPGA에서도 동일합니다. 물론 내용은 상당히 다릅니다.

시스템을 FPGA 하드웨어로 매핑최종적으로, 시스템의 게이트를 구현하기 위해 합성된 비트를 FPGA로 로드해야 합니다.

다른 시스템과 마찬가지로 하드웨어가 제대로 작동하면 설계에 버그 수정과 개선된 기능을 포함하도록 개량할 수 있습니다. HDL 코드 편집 기능을 통해 동일한 환경에서 설계, 디버그 및 확인이 가능하고, FPGA를 사용하여 제품이 시장에 출시되는 시간을 앞당길 수 있습니다.

시스템에서 설계해보기설계가 하드웨어로 프로그래밍된 후에 모두 예상대로 작동하는지 확인합니다. FPGA에서 작동의 실제 의미는 무엇입니까? 이 단계는 종종 클로저라 불립니다. 그리고 모든 하드웨어 장치와 마찬가지로 일정한 성능 기준을 기대합니다. 많은 애플리케이션에서 전력 소모는 중요한 설계 기준입니다. 예를 들어, 스마트폰을 생각해 보십시오. 스마트폰은 적절한 배터리 수명을 유지할 수 있도록 엄격한 전력 요구 사항이 적용됩니다. 스마트폰이 전력을 먹어치우는 하마이기를 바라지는 않을 것입니다. 조금만 사용해도 배터리 수명이 다할 것이기 때문입니다. 속도는 또 다른 중요한 기준입니다. 각각의 네트(게이트 간의 와이어 연결)가 타이밍 제한을 충족하는지 테스트합니다. 마지막으로 FPGA에서 모든 클록과 파워 핀이 연결되었는지 확인합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 30: FPGA for Dummies Altera Korean

24 FPGA For Dummies, 알테라 특별판

FPGA 설계 툴 환경에서 설계에 착수하고, 포함할 IP 블록을 선택하고, 설계를 FPGA에 실제로 존재하는 하드웨어 요소로 변환할 수 있습니다. 설계는 여전히 소프트웨어 안에 있어서 테스트하기 쉽습니다. 그런 다음, 설계가 예상대로 작동하는지, 필요한 속도로 작동하는지 확인하고, 얼마나 많은 전력이 소모되는지도 측정할 수 있습니다.

지금 다음과 같은 마법이 펼쳐집니다. 테스트한 설계를 프로토타입 보드의 대상 FPGA로 로드하고, 시스템을 켜고, 모두 예상대로 작동하는지 확인할 수 있습니다. 이제 자신의 요구 사항에 정확히 맞게 커스터마이즈된 하드웨어를 갖게 되었습니다. 최초의 ASIC 샘플 칩을 받으려면 아마 몇 달이 걸리겠죠!

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 31: FPGA for Dummies Altera Korean

3장

시스템으로 바라본 FPGA이 장에서 다루는 내용▶ 기능적 빌딩 블록으로 바라본 FPGA 이해▶ SoC를 통해 시스템을 FPGA로 흡수

이 장에서는 FPGA가 실생활에서 어떻게 사용되는지 보여줍니다. FPGA는 실제로 시스템의 기능적 빌딩 블록이며,

FPGA가 더 커짐에 따라 전체 디지털 시스템을 FPGA로 흡수하여 SoC(System on a Chip)로 만들 수 있습니다.

이 장에서는 전자 시스템의 개념을 살펴봅니다. 그런 다음 첨단 자동차에서 SoC의 혼란스러운 복잡성을 파헤칩니다.

시스템 설계에서 FPGA이 섹션에서는 시스템 설계 프로세스를 더 깊이 살펴보고 FPGA가 얼마나 중요한 역할을 하는지 알아봅니다. (2장에서 일부 기본적인 내용을 언급했습니다.)

그림 3-1은 시스템 설계의 전통적인 모델을 보여줍니다. 각 블록 사이에 보이는 다이아몬드 모양은 프로세스에서 결정점을 나타냅니다.

Altera Corporation 제공

그림 3-1: 결정점을 포함한 시스템 설계.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 32: FPGA for Dummies Altera Korean

26 FPGA For Dummies, 알테라 특별판

시스템 설계에서 결정점은 다음과 같은 몇 가지 질문을 해야 하는 지점입니다.

✓ 시스템이 무엇을 해야 합니까? 이 질문은 요구 사항 정의 단계 중에 나타나며 기본적인 질문입니다. 이 질문에 대한 답변은 주로 제품 관리자가 고객과 협의하는 과정에서 제시하며 요구 사항 수집 단계로 이어집니다.

✓ 기존 디자인을 변경해서 사용할 수 있습니까? 종종 기존 시스템 디자인을 가지고 있는 경우 약간의 변경으로 시스템의 요구 사항을 충족할 수 있습니다.

✓ 얼마나 많은 시스템을 소프트웨어에서 구현할 수 있습니까? 이는 설계 및 구현 단계에서 중요한 질문입니다. 소프트웨어에서 구현할 수 있는 시스템의 양에 따라 어뗜 유형의 하드웨어를 사용할 수 있을지가 결정됩니다. 소프트웨어 프로그래밍에 FPGA 및 마이크로컨트롤러를 사용할 수 있습니다.

✓ 얼마나 많은 하드웨어를 기성품으로 구매할 수 있습니까? 시스템 설계의 기능 블록 중 많은 부분이 이미 시중에서 판매되는 하드웨어 장치(기성품)에서 구현되었습니다. 이러한 경우, 해당 하드웨어를 구매하거나 IP로 라이선스하는 것이 소프트웨어로 설계를 구현하거나 맞춤형 하드웨어를 설계하는 것보다 더 경제적일 수 있습니다.

✓ 아직도 작동합니까? 이는 통합 단계에서 기본적인 질문이며, 시스템이 구축되기 전까지“예”라는 답변이 나와야 합니다. 답변이“아니요”인 경우, 정답을 얻을 때까지 설계 및 구현을 계속 반복해야 합니다.

그림 3-2에서 요구 사항 정의 시 설계자는 성능, 전력 소모 및 크기와 같은 설계 제약 조건을 고려해야 함을 알 수 있습니다. 어떤 기능을 볼 수 있거나 없게 할지 혹은 잠글지를 포함하여 시스템의 기능도 중요합니다. 마지막으로 설계자가 설계 테스트를 수행합니다. 이 프로세스는 시스템의 실제 크기 및 범위와 무엇을 구현할지를 나타내는 초기 시스템 평가로 이어집니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 33: FPGA for Dummies Altera Korean

3장: 시스템으로 바라본 FPGA 27

Altera Corporation 제공

그림 3-2: 시스템 요구 사항 정의.

FPGA의 설계 프로세스는 반복적인 프로세스입니다. 시스템에 대한 아이디어로 시작한 다음 트랜잭션의 정의로 아이디어를 세분화합니다. 트랜잭션에는 입력, 처리 및 출력이 포함될 수 있습니다. 트랜잭션은 고객이 출납원에게 돈을 건내고, 출납원이 돈을 받은 다음 고객의 계좌로 돈을 입금하는 은행 트랜잭션과 같다고 생각할 수 있습니다. 기본적으로 트랜잭션은 시스템의 두 구성 요소 간에 정보가 공유되는 모든 곳을 말합니다.

트랜잭션을 정의하고 이를 구현한 다음, 시작 시 설정한 기능과 제약 조건이 작동하고 충족하는지 확인합니다. 이는 하드웨어 및 소프트웨어에서 어떤 기능이 실행되고, 기존 IP로 어떤 기능을 실행할 수 있고, 어떤 기능이 새로 작성되어야 하는지 결정하는 데 필요한 또 다른 반복적인 프로세스입니다.

FPGA를 장착한 자동차 전자 시스템

이 섹션에서는 실생활에서 시스템의 활용 사례를 살펴봅니다. 실제로 당신은 오늘 아침에 이 시스템을 가동했을 수도 있습니다. SoC(대부분 FPGA로 구현 가능)가 어떻게 모던 자동차에 적용되는지 살펴보겠습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 34: FPGA for Dummies Altera Korean

28 FPGA For Dummies, 알테라 특별판

구동 장치자동차의 구동 장치를 구성하는 요소와 규제, 안전, 비용 및 기능 측면에서 이들이 모두 전자적으로 어떤 방식으로 구현되는지 고려합니다.

✓ 엔진: 엔진에서 전자공학은 동력 수요, 배기, 평활도, 시작 사이클 및 전략에 따라 연료, 점화 및 밸브를 제어합니다.

✓ 변속기: 모던 변속기는 속도, 동력 수요 및 분당 회전수(RPM)로 측정된 엔진 회전에 따라 기어비, 변속 시퀀스 및 신호를 제어하는 전자 시스템을 포함합니다.

✓ 브레이크: 안전을 위해 전자 시스템은 - 바닥의 페달 뿐만 아니라 – 제동력을 제어합니다.

✓ 조향: 첨단 자동차는 다양한 입력에 따라 조향의 비율, 피드백 및 각도를 제어하는 정교한 파워 조향 기능을 갖고 있습니다.

✓ 타이어: 최근 자동차의 개선된 기능에는 타이어 압력을 모니터링하여 운전자가 필요한 경우 - 연비와 타이어 수명을 모두 개선하는 - 타이어 공기 주입 시기를 알려주는 전자 센서가 포함됩니다.

인포테인먼트인포테인먼트는 자동차에서 정보 및 엔터테인먼트 시스템을 나타내는 데 사용되는 멋진 용어입니다. 많은 자동차가 다음과 같은 정교한 전자 인포테인먼트 기능을 갖추고 있습니다.

✓ 디스플레이 및 제어: 오늘날의 자동차는 속도계 및 기타 판독기를 전자적으로 제어합니다.

✓ 엔터테인먼트: 모던 자동차는 디지털 AM/FM 라디오, 위성 라디오, CD 및 전체 음악 라이브러리를 저장할 수 있는 디지털 오디오 플레이어와 같은 고급 기능을 갖추고 있습니다. 때로는 장시간 도로 주행 중에 아이들을 기쁘게 해줄 수 있는 디지털 동영상 시스템도 있습니다!

✓ 안락: 이제 운전자와 승객이 각자 조명 및 멀티존 온도 제어 시스템에 액세스할 수 있으므로, 같은 차에서 서로 영향을 주지 않고 원하는대로 온도를 조절할 수 있습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 35: FPGA for Dummies Altera Korean

3장: 시스템으로 바라본 FPGA 29

✓ 액세스 제어: 오늘날 자동차는 파워 잠금 장치, 도어, 창문 및 보안 시스템을 갖추고 있습니다. 또한 운행 중에 아이들이 도어나 창문을 열지 못하도록 창문 및 도어 잠금 장치 제어와 같은 일반적인 안전 기능도 있습니다.

✓ 패시브 세이프티: 안전 시스템은 몇 명의 탑승객이 차 안에 있는지 인식하고, 사전 충돌 감지 시스템을 통해 적절히 대처합니다.

운전자 지원운전자 지원은 최근에 자동차 설계에 적용되고 있는 가장 매력적인 몇몇 기술을 포함합니다. 자동차를 휠씬 더 안전하게 만들어 줍니다! 운전자 지원 시스템은 다음을 포함합니다.

✓ 라이트, 후진, 차선 이탈 및 충돌 방지: 종종 자동차가 차선 밖으로 이탈하거나 다른 차량이나 물체와 막 충돌하려고 할때 운전자에게 경고하는 첨단 라이트 시스템, 표시등 및 헤드업 디스플레이를 갖추고 있습니다.

✓ 카메라, 레이저 및 레이더를 포함한 센서: 이러한 센서는 운전자가 후진하거나 차선을 변경할 때 사각지대를 보는 데 사용되며 사고 가능성을 현저히 줄여줍니다.

FPGA의 중요성오늘날 대부분의 자동차 시스템은 동작 감지 시점에 작동하는 저비용 마이크로컨트롤러를 사용합니다. 자동차 설계의 추세는 더 자율적인 시스템 통합으로 향하고 있습니다. 시스템이 더 복잡해짐에 따라 프로세싱 및 메모리 요구 사항이 급격히 늘어나고 있습니다. 칼만 필터로 센서 융합을 고려하십시오.

센서 융합은 서로 다른 소스에서 나오는 센서 데이터의 조합이므로, 최종 정보는 streoscopic vision (두 대의 카메라가 약간씩 다른 시각에서 촬영한 2차원 이미지를 조합하는 방식으로 깊이 정보 계산) 시스템과 같이 이러한 소스로부터 개별적으로 획득하는 방식보다 낫습니다. 칼만 필터는 시간 경과에 따라 관측된 노이즈(불규칙 변동)를 포함하는 일련의 측정 데이터를 사용하는 알고리즘으로, 단일 측정 데이터만 사용하는 방식보다 더 정밀한 결과를 산출합니다. 칼만 필터는 가이던스, 네비게이션 및 차량 제어에 주로 사용됩니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 36: FPGA for Dummies Altera Korean

30 FPGA For Dummies, 알테라 특별판

자동차 시스템이 통합됨에 따라 마이크로컨트롤러는 Soc 구현으로 흡수되고 있습니다. 이러한 시스템이 더 스마트하고 더 자율적이 됨에 따라 Soc는 멀티코어 프로세서/DSP 클러스터로 진화하고 있습니다. 모델 수의 폭발적 증가, 신차 출시 연도 중 모델 변경, 버스 아키텍처의 진화 및 더욱 개선된 보안에 대한 지속적인 수요를 통제하기 위해 SoC FPGA로 이동하는 추세이며, 이는 이러한 설계 과제와 빈번한 업데이트를 해결하기 위한 유일한 실현 가능한 해답입니다.

자동차는 시스템이 갈수록 전자공학에 얼마나 더 의존하게 되는지 보여주는 한 예일 뿐이며, 전자공학은 더 복잡해지고 더 빠르게 변하며 신차 출시 연도 중에도 모델이 바뀔 수 있으므로 SoC에 대한 수요는 계속 증가하고 있습니다. 이와 동일한 패턴은 비행기나 기차에서 전력망, 심지어 가전 제품에 이르기까지 복잡한 기능을 가진 광범위한 제품에 걸쳐 나타납니다. 심지어 토스터에도 적용됩니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 37: FPGA for Dummies Altera Korean

4장

미래: 이종 컴퓨팅 및 OpenCL

이 장에서 다루는 내용▶ 이종 컴퓨팅 살펴보기▶ OpenCL 탐색

산 업 동향은 FPGA가 이종 컴퓨팅 시장에서 중요한 역할을 하는 방향으로 흐르고 있습니다. OpenCL(Open

Computing Language)은 이종 환경에서 FPGA를 프로그래밍하는 데 사용되는 산업 표준 개발 플랫폼 입니다.

이 장에서는 왜 이종 컴퓨팅이 필요한지와 여기에서 실행되는 소프트웨어를 디자인하기 위한 새로운 언어의 출현에 대해 알아봅니다.

이종 컴퓨팅데이터 센터에서 주요 추세 중 하나는 멀티코어 CPU에서 이종 컴퓨팅으로 컴퓨팅 아키텍처의 변화입니다. 이종 컴퓨팅은 두 가지 이상의 프로세서 유형을 사용하여 특정 처리 기능을 수행하는 시스템을 의미합니다. 이종 컴퓨팅 시스템의 한 예로 CPU와 그래픽 처리 장치(GPU)를 사용하여 컴퓨터에서 3D 그래픽을 렌더링하는 그래픽 렌더링 시스템이 있습니다. GPU는 대량의 데이터세트에서 3D 장면을 렌더링하고 수학 중심의 계산을 수행하는 데 특화되어 있습니다. CPU는 백그라운드에서 운영 체제와 데이터 네트워크 작업을 수행하는 데 사용됩니다. 이종 컴퓨팅은 점차 시스템 통합의 표준이 되고 있으며 각각에 사용된 다른 프로세서 아키텍처와 매끄럽게 연동되어야 합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 38: FPGA for Dummies Altera Korean

32 FPGA For Dummies, 알테라 특별판

병렬 컴퓨팅은 큰 문제를 더 작은 문제로 세분화한 다음 동시에 (병렬로) 해결할 수 있다는 원칙에 따라 동시에 많은 계산을 수행하는 컴퓨터의 능력입니다. 병렬 컴퓨팅은 비트 레벨, 명령 레벨, 데이터 및 작업 기반의 다양한 형태로 나타납니다.병렬 컴퓨팅은 더 이상 IBM의 체스 챔피언인 빅 블루(Big Blue)와 같은 고성능 컴퓨팅의 영역이 아닙니다. 전력 소모는 내장 전자 부품 설계 요소에서 더 많은 비중을 차지하고, 병렬 컴퓨팅은 컴퓨터 아키텍처에서 지배적 패러다임이 되고 있으며 주로 멀티코어 프로세서의 형태로 나타납니다.

데이터 병렬화는 데이터를 여러 프로세서로 분산시켜 병렬로 실행할 수 있다는 아이디어에서 출발합니다. 멀티코어 프로세서는 대개 한 프로그램의 여러 인스턴스를 각각의 프로세서에게 하청을 맡겨 이러한 명령을 동시에 실행하도록 하는 방식으로 이러한 기능을 수행합니다. 작업 병렬화는 스레드라는 컴퓨터 코드 블록들을 다른 프로세서들에게 병렬로 실행하도록 하청을 맡기는 프로세서를 통해 수행되어야 합니다.

왜 FPGA에서 OpenCL을 사용합니까?

이종 컴퓨팅에 대한 수요는 새로운 하드웨어를 이용하기 위한 새로운 프로그래밍 언어로 이어지고 있습니다. 한 예는 애플에서 최초로 개발된 OpenCL입니다. OpenCL은 CPU, GPU, DSP, FPGA 및 기타 유형의 프로세서로 구성된 이종 플랫폼에서 실행되는 프로그램 작성을 위한 프레임워크입니다. OpenCL은 커널(하드웨어 장치에서 실행되는 기능)을 개발하기 위한 언어 뿐만 아니라 다양한 플랫폼을 정의하고 제어하는 애플리케이션 프로그래밍 인터페이스(API)를 포함합니다. OpenCL은 작업 기반 및 데이터 기반 병렬화를 사용한 병렬 컴퓨팅을 허용합니다.

지난 10여년 동안 프로세서 하드웨어 주파수는 프로세서에서 더 높은 주파수를 구현하지 못하게 하는 소위 전원벽(power wall)을 공략해 왔습니다. 인텔과 같은 CPU 제조업체가 클록 속도를 기반으로 하는 프로세서 성능을 광고하는 것을 최근 마지막으로 본 적이 언제입니까? 대신에 CPU 제조업체들은 더 많은 프로세싱 코어를 CPU에 추가하고, 여러 명령을 동시에 실행할 수 있도록 명령

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 39: FPGA for Dummies Altera Korean

4장: 미래: 이종 컴퓨팅 및 OpenCL 33

집합을 개선하고, 이를 위해 더 빠른 클록 주파수가 필요없이 프로그램 실행 속도를 높이는 데 집중했습니다. 또한 소프트웨어 업체들은 스레드라는 컴퓨터 코드 조각을 진정한 병렬 방식으로 실행할 수 있는 소프트웨어를 개발하는 데 전념했습니다. 스레드는 별도의 코어에서 실행되지 않고 운영 체제가 시간을 조각내서 병렬로 실행되는 것처럼 보이게 하던 이전의 의사 병렬화(pseudo-parallelism) 대신 별도의 프로세서 코어에서 실행됩니다.

FPGA는 태생적으로 병렬이므로 OpenCL의 병렬 컴퓨팅 능력과 완벽한 궁합을 이룹니다. FPGA는 호스트 상호작용을 사용하거나 사용하지 않는 이전 작업으로부터 서로 다른 데이터를 사용하여 각 작업과의 푸시-풀(push-pull) 구성으로 작업을 스폰(spawn)할 수 있는 파이프라인 병렬화를 제공하는 방식으로 기존 데이터 또는 작업 병렬화에 대한 대안을 제시합니다. 익숙한 C 프로그래밍 언어는 물론 OpenCL에서 제공하는 추가적인 기능을 사용하여 코드를 개발할 수 있습니다. FPGA 설계자의 하위레벨 HDL 코딩 사례를 배울 필요 없이 이러한 커널을 FPGA로 보낼 수 있습니다. 일반적으로 소프트웨어 개발자와 시스템 설계자가 OpenCL을 사용하여 FPGA용 코드를 개발할 경우 여러가지 이점이 있습니다.

✓ 단순성 및 개발의 용이성: 대부분의 소프트웨어 개발자는 C 프로그래밍 언어에 익숙하지만, 하위레벨 HDL 언어에는 익숙하지 않습니다. OpenCL은 상위레벨 프로그래밍을 통해 더 많은 소프트웨어 개발자들에게 시스템을 개방할 수 있도록 합니다.

✓ 코드 프로파일링: OpenCL을 사용하여 코드를 프로파일링하고 FPGA에서 하드웨어를 커널로 가속화할 수 있는 성능에 민감한 부분을 판별할 수 있습니다.

✓ 성능: 와트 단위 성능은 시스템 설계의 궁극적인 목표입니다. FPGA를 사용하여 에너지 효율적인 솔루션에서 높은 성능의 균형을 유지할 수 있습니다.

✓ 효율성: FPGA는 세분화된 병렬 아키텍처를 지니고 있으며, OpenCL을 사용하여 대체 하드웨어의 1/5의 노력만 들이면 로직을 구현할 수 있습니다.

✓ 이종 시스템: OpenCL로 FPGA, CPU, GPU 및 DSP를 대상으로 진정한 이종 시스템 설계를 제공하는 커널을 개발할 수 있습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 40: FPGA for Dummies Altera Korean

34 FPGA For Dummies, 알테라 특별판

✓ 코드 재사용: 소프트웨어 개발의 성배는 코드 재사용을 실현하는 데 있습니다. 코드 재사용은 종종 소프트웨어 개발자와 시스템 설계자에게 어려운 목표입니다. OpenCL 커널을 통해 한 프로젝트에서 다음 프로젝트로 코드의 수명을 연장하고, 다른 FPGA 페밀리들과 호환할 수 있는 코드를 개발할 수 있습니다.

오늘날 OpenCL은 기술 컨소시엄 크로노스 그룹(Khronos Group)에서 개발하고 관리합니다.

대부분의 FPGA 제조업체는 FPGA에서 OpenCL 개발을 위한 소프트웨어 개발 키트(SDK)를 제공합니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 41: FPGA for Dummies Altera Korean

5장

FPGA의 다섯 가지 응용 분야

이 장에서 다루는 내용▶ 최근 FPGA의 몇 가지 실제 응용 분야 둘러보기

F PGA는 오랜 역사를 갖고 있으며 FPGA로 복잡한 시스템을 구현하는 것은 많은 논리 게이트 프로그래밍을 수행해야 함

을 의미했습니다. 오늘날의 FPGA는 네트워크 인터페이스, 메모리 블록 및 심지어 ARM 코어와 같은 기능이 내장되어 있습니다. 알테라에서는 이러한 강력한 칩이 수행하는 역할을 인식하여 내장 ARM 코어가 있는 것을 SOC FPGA라고 합니다. 필드 프로그래머블 부분은 현재 칩 영역의 절반에도 미치지 못합니다. 이 장에서는 FPGA가 여러 분야의 산업과 기술에서 어떻게 사용되고 있는지 살펴봅니다.

단일 장치 모터 제어모터 및 모터 제어는 모든 산업 설계에서 흔히 나타납니다. 모든 공장이나 산업 단지에 가면 모터로 구동된다는 한 가지 공통점을 가진 광범위한 다양한 기계들을 볼 수 있을 것입니다. 대부분의 모터 제어 시스템은 마이크로컨트롤러 기술로 설계됩니다. 하지만 마이크로컨트롤러는 예를 들어, 직접 토크 제어(DTC) 또는 센서리스 벡터 제어(SFOC)와 같은 정교한 모터 제어 알고리즘의 성능 요구에 미치지 못할 수 있습니다. DSP는 이러한 문제를 해결하기 위해 이전부터 사용되어 왔지만, 고성능으로 가게 되면 대개 비용 효율적인 면에서 FPGA를 따라올 수 없습니다. 단일 SoC FPGA로 유연하고 확장 가능한 고성능 모터 제어 시스템을 구축할 수 있습니다(그림 5-1 참조).

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 42: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 36

Altera Corporation 제공.

그림 5-1: 모터 제어.

한 가지 예는 SoC FPGA를 사용하여 2개의 독립적으로 제어되는 DC 모터와 간단한 광학 피드백 시스템이 있는 모터 제어 모듈로 연결하는 것입니다. SoC FPGA는 2개의 모터가 독립적으로 움직일 수 있도록 피드백 및 제어 신호를 관리하는 내장 프로세서를 포함합니다. 프로세서는 피드백 시스템으로부터 데이터를 판독하고 모터의 움직임을 동기화할 뿐만 아니라 회전 속도를 제어하는 알고리즘을 실행합니다. SoC FPGA를 사용하여 다른 모터 제어에서 작동하도록 쉽게 커스터마이즈할 수 있는 고유한 IP를 구축할 수 있습니다. 마이크로컨트롤러 대신 모터 제어의 SoC FPGA를 사용할 경우 여러 이점이 있습니다.

✓ 시스템 통합: 더 적은 부품은 산업 네트워킹 , 안전, 파워 스테이지 인터페이스 및 DSP 제어 알고리즘을 단일 장치로 통합하여 더 적은 재료 비용, 더 낮은 전력 요구 사항 및 더 적은 신뢰성 문제로 이어집니다.

✓ 확장 가능한 성능: 전체 제품 라인에 걸쳐 확장 가능한 단일 플랫폼을 사용할 수 있습니다. SoC FPGA는 효율성과 기계 수명을 늘릴 수 있는 보다 빠르고 향상된 제어 루프를 통해 더 높은 성능을 달성할 수 있도록 합니다.

✓ 기능 안전: 자동화가 잠재적으로 위험한 장비를 실행하는 역할을 더 많이 담당함에 따라, 재해가 발생하지 않도록 보장하기 위해 기계식 전자 제어 장치를 요구하고 있습니다. SoC FPGA 및 적합한 설계 흐름을 통해 이러한 정부 및 산업 안전 규정을 준수하는 시간과 노력을 줄일 수 있습니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 43: FPGA for Dummies Altera Korean

5장: FPGA의 다섯 가지 응용 분야 37

TV 방송TV 방송사는 직렬 디지털 인터페이스(SDI) 표준을 사용하여 75옴 동축 케이블로 비압축 디지털 동영상을 전송합니다(케이블/위성 수신기 또는 안테나를 TV에 부착하는 것과 동일). 동영상 화질이 개선될 때마다 표준은 해당 성능을 따라잡아야 했습니다. 가장 최신 표준은 3 Gbps(3G)-SDI라고 불리며, 스튜디오 주변에서 4K ultraHD 신호를 전달할 수 있습니다. 이러한 모든 변경 사항으로 인해 이곳은 FPGA가 진정으로 빛을 발할 수 있는 또 다른 영역입니다! FPGA 솔루션에는 동일한 트랜시버에서 세 가지 SDI 속도(SD SDI, HD SDI 및 3G-SDI)로 모두 작동할 수 있는 핵심 트랜시버가 들어 있습니다.

하지만 다른 많은 사항들이 스튜디오에서도 변경되었습니다. 새로운 디지털 기술은 동영상 스트림을 편집하고, 사진 품질을 개선하거나 보정하고, 케이블 또는 위성 링크를 통해 송신할 이미지를 압축하는 데 도움을 줍니다. 최신 압축 표준인 H.265는 HEVC(High-Efficiency Video CoDec)라고도 하며, 영화나 TV 프로그램을 인코딩하는데 필요한 비트 수를 대폭 줄여줍니다. 하지만 방대한 양의 계산이 필요합니다. 대부분의 장비 업체는 급격한 변화의 압력에 대응하면서 SoC의 성능을 갖추기 위한 - 또 이러한 조합이군요 - 최선의 솔루션은 FPGA라고 판단하고 있습니다. 그림 5-2를 참조하십시오.

Altera Corporation 제공

그림 5-2: 방송.

무선 데이터: 3G 및 GPP LTE 인프라

3G 무선 기술의 도입은 사람들의 일상과 업무 방식에 지대한 변화를 가져왔습니다. 휴대폰을 갖고 다니면서 어디에서나 전화를 걸 수 있을 뿐만 아니라 웹을 검색하고 트위터 업데이트를할 수도 있

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 44: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 38

습니다! 가장 최신 기술 마이그레이션은 3G 표준에서 고속 패킷 액세스(HSPA) 및 3세대 파트너쉽 프로젝트(3GPP) 롱텀 에볼루션(LTE) 표준을 포함한3.5G 네트워크로 마이그레이션입니다.

3GPP LTE 표준을 기반으로 하는 셀룰러 무선 네트워크는 3G 시스템의 기존 고속 패킷 액세스 기술을 능가하는 진정한 모바일 광대역 환경을 제공할 것으로 예상됩니다. LTE 기지국 및 이동 통신 사업자는 네트워크를 확장하고 업그레이드하면서도 비용을 줄여야 하므로, 이들의 핵심 요구 사항은 확장 가능한 폼 팩터, 낮은 전력 소비, 저비용 및 프로그래밍 구현 기능입니다. 제조업체도 성공적인 제품을 소개하고 경쟁 우위를 얻을 수 있는 핵심 요소는 생산성과 차별화 시간(time-to-differentiate) 증대라고 여기고 있습니다.

지금 대다수 FPGA는 LTE 네트워크용 내장 저지연 지적 재산(IP) 뿐만 아니라, 제조업체가 FPGA의 성능, 전원, 가격 및 생산성 이점을 활용하여 LTE 인프라의 너트와 볼트를 프로그래밍하는 기술이 아니라 제품 차별화에 집중할 수 있도록 하는 생산성 향상 툴을 갖추고 있습니다. 그림 5-3을 참조하십시오.

Altera Corporation 제공

그림 5-3: LTE.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 45: FPGA for Dummies Altera Korean

5장: FPGA의 다섯 가지 응용 분야 39

자동차 운전자 지원 카메라자동차 산업에서 급속히 성장하는 큰 분야 중 하나는 기술 중심 기능입니다. 중저가 자동차조차 네비게이션 시스템, 동영상 엔터테인먼트 시스템 및 카메라와 같은 소품을 장착해야 합니다.

운전자 보조 및 후방 카메라는 가장 중요한 안전 혁신의 일부이며 전보다 자동차를 더 안전하게 만드는 데 도움이 됩니다. 후진 시 내 차 뒤에 아무 것도 없다는 것을 아는 데서 오는 정신적인 평온은 돈으로 따질 수 없습니다.

전방 카메라 시스템은 운전자가 깜박 졸아서 다른 차선으로 진입하는 등의 경우에, 자동차가 교정 동작을 수행하도록 하는 고속 동영상 처리, 복합 센서 융합 및 실시간 데이터 분석으로 이루어져 있습니다. 전방 카메라는 레이더나 레이저 센서와 같은 다양한 센서들을 통합하여 이러한 작업을 수행합니다. 각 센서 유형마다 데이터를 제공하는 방법에서 차이가 있으며, 이는 다중 아키텍처의 설계 과제입니다.

기존의 DSP 프로세서 또는 마이크로컨트롤러는 실시간 동영상 처리 및 분석을 동시에 수행할 수 있는 능력이 없습니다. 또한 카메라가 장면의 밝은 영역과 어두운 영역을 똑같이 잘 보기 위해 필요한 HDR(High Dynamic Range)는 정확한 비디오 분석이 필수 요소입니다. HDR 프로세싱은 기존의 비 HDR 카메라에 비해 3배의 동영상 신호 처리 성능이 필요하지만, 가장 비싼 DSP를 제외하고 모두 성능 요구 사항에 미치지 못합니다. DSP나 마이크로컨트롤러 대신 저가의 단일 SoC FPGA에 전체 카메라 시스템을 통합할 수 있습니다. FPGA 로직을 사용하여 하드웨어 병렬 처리 엔진을 개발하고 SoC FPGA의 하드 프로세서 시스템에서 실행되는 소프트웨어 알고리즘과 통합하는 방식으로 시스템 성능을 최적화할 수 있습니다. 그림 5-4는 자동차 비전 시스템의 일부로 SoC FPGA의 다이어그램을 보여줍니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 46: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 40

Altera Corporation 제공

그림 5-4: 자동차 비전 시스템의 FPGA.

고성능 컴퓨팅고성능 컴퓨팅(HPC) 시장은 오늘날 가장 빠르게 성장하는 컴퓨팅 분야 중 하나입니다. 이는 FPGA의 로직과 메모리 자원을 활용하여 애플리케이션 특정 코프로세서를 개발할 수 있는 금융, 의료 영상, 생명 과학, 군사 및 기타 많은 산업에서 매우 중요합니다. 예를 들어, 모든 거래, 예측 및 가격 계산과 관련된 상상조차 할 수 없는 방대한 양의 데이터가 이동하는 금융 시장을 생각해 보십시오. 백분위 이하 단위로 처리되는 이러한 트랜잭션에서 고속의 정확한 부동 소수점 연산은 절대적인 필수 기능입니다.

HPC에서 부동 소수점은 일련의 숫자나 비트가 실수를 나타내는 숫자 표현입니다. 애플리케이션은 정수 계산보다 더 정확한 결과를 산출하기 위해 부동 소수점 데이터 형식을 요구합니다. 1장에서 언급한 바와 같이, 부동 소수점 연산은 더 많은 프로세서 명령이 필요하며 따라서 더 많은 전력이 소모됩니다. 일반적인 부동 소수점 애플리케이션에는 다음이 포함됩니다.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 47: FPGA for Dummies Altera Korean

5장: FPGA의 다섯 가지 응용 분야 41

✓ 고속 푸리에 변환(FFT)

✓ 레이더

✓ 생명 과학

✓ 유한 임펄스 응답(FIR)

✓ 금융 옵션 거래

✓ 행렬 수학(3D 그래픽 및 이미지 처리에서 널리 사용됨)

✓ 분자 역학

✓ 지진 및 의료 영상

코프로세서는 기본 또는 중앙 프로세서(CPU)의 기능을 보완하기 위해 사용되는 컴퓨터 프로세서입니다. 코프로세서는 주로 부동 소수점 연산, 신호 처리, 문자열 처리, 암호화 또는 주변 장치와의 I/O 인터페이스를 수행하는 데 사용됩니다. 코프로세서는 CPU가 계산 중심의 연산에서 벗어나 컴퓨터의 핵심 기능을 수행할 수 있도록 합니다.

모든 HPC 시장에서 생산성, 성능 및 전력 이점을 제공하기 위해 코프로세서를 필요로 하며, 일부 경우에는 FPGA 코프로세서가 100배의 속도로 알고리즘을 가속화합니다.

좋은 소식은 알테라 FPGA에는 DSP 기능 뿐만 아니라 부동 소수점 하드웨어도 내장되어 있으므로, 프로그래머가 FPGA 가속 서버에서 프로그램을 실행하기 전에 부동 소수점 형식에서 정수 형식으로 변환할 필요가 없다는 것입니다. 이러한 기능은 다음과 같은 범주에서 큰 장점이 됩니다.

✓ 어플라이언스: 데이터베이스 및 금융 시장 가속화.

✓ 기능: 금융 시장용 랜덤 숫자 생성기, 군사 및 신호 처리 애플리케이션용 백만분위 FFT.

✓ 알고리즘: SRC CARTE, 임펄스 및 AutoESL 시스템 생성 알고리즘.

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 48: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 42

사례 연구: 몬테카를로 블랙숄즈 방식

금융 시장에서 가장 중요한 벤치마킹 중 하나는 몬테카를로 블랙숄즈 방식을 통한 옵션 가격의 계산입니다. 금융 용어에서 옵션은 구매자에게 주어진 날짜나 그 이전에 지정된 가격으로 자산을 사거나 팔 수 있는 권리(채무가 아님)를 주는 계약입니다. 몬테카를로 블랙숄즈 기법은 수백만의 다른 경로에서 기본 주가의 무작위 시뮬레이션을 수행하고 예상되는 수익을 평균하는 방식입니다. 첨부된 그림은 이 방법을 그래픽으로 보여줍니다.

대부분의 컴퓨터 시뮬레이션에서 설계자는 몇 가지 유형의 난수 발생기를 사용하여 실제 시스템의 무작위성을 모델링하도록 데이터 입력을 시뮬레이션으로 시뮬레이트합니다. 몬테카를로 블랙숄즈 방식에서 모델 제작자는 일반적으로 메르센 트위스터로 알려진 난수 발생기를 사용합니다. 메르센 트위스터 난수 발생기는 매우 빠른 고품질 의사 난수 발생기로, 시뮬레이션에 이상적입

니다. 이러한 난수 시퀀스는 정규분포 숫자 시퀀스를 생성하기 위해 역정규 누적분포 함수(난수의 분포를 지정하는 확률 함수)에 공급됩니다. 이러한 난수는 기하학적 브라운 운동(주가 예측에 주로 사용되는 알고리즘)을 이용하여 주가의 움직임을 시뮬레이션하는 데 사용됩니다. 각 시뮬레이션 경로의 끝에서 수익에 대해 예상되는 값을 산출하기 위해 콜 옵션 수익을 기록하고 평균합니다. 전체 알고리즘은 FPGA에서 CPU 및 GPU로 이식할 수 있는 300줄 정도

의 OpenCL 코드로 구현할 수 있습니다. FPGA 솔루션은 첨부된 그림에 나오는 것처럼 전력, 성능 및 효율성에서 CPU와 GPU 모두를 능가합니다.

그림에서 FPGA는 전력 소비, 초당 시뮬레이션 수 및 초당 전력 효율 시뮬레이션 속도의 세 가지 기준에서 CPU와 GPU를 비교합니다. FPGA는 내재적으로 병렬입니다. 즉, 복잡한 계산을 병렬로 수행할 수 있는 계산으로 쪼개서 코

Altera Corporation 제공

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 49: FPGA for Dummies Altera Korean

5장: FPGA의 다섯 가지 응용 분야 43

딩할 수 있음을 의미합니다. FPGA는 CPU와 GPU보다 더 많은 연산을 병렬로 수행할 수 있으며, 이는

전자 시스템 설계에서 필수 요소인 훨씬 빠른 실행과 전력 효율성 향상으로 이어집니다.

Altera Corporation 제공

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 50: FPGA for Dummies Altera Korean

FPGA For Dummies, 알테라 특별판 44

본 자료는 ⓒ 2014 John Wiley & Sons, Inc.의 소유이며, 그 어떠한 보급, 배포 또는 인증되지 않은 사용은 엄격히 금지됩니다.

Page 51: FPGA for Dummies Altera Korean