Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
하드웨어

/

반도체

FPGA의 기초

본 강의에서는 FPGA의 기본 개념과 동작 원리를 이해하고, FPGA가 갖는 장점 및 ASIC과의 차이점을 살펴봅니다. 이어 FPGA 설계 프로세스와 FPGA 세부 설계 분야에 대해, 설명합니다. FPGA 개발 툴의 종류와 역할을 알아보고, AMD FPGA 개발 툴인 Vivado 설치를 진행합니다. 간단한 예제 디자인 실습을 통해, FPGA 설계 과정을 경험합니다.

(4.8) 수강평 6개

수강생 128명

  • EasyFPGA
fpga기초
fpga이해
fpga디자인플로우
Verilog HDLFPGAsystem-verilog
Thumbnail

이런 걸 배울 수 있어요

  • FPGA의 정의 및 작동 원리 이해

  • FPGA와 ASIC의 비교를 통한 FPGA 활용 가치 파악

  • FPGA 설계 절차(HDL 코딩 → 합성 → 배치·배선 → 비트스트림 생성) 숙지

  • FPGA 세부 설계 분야(인터페이스, 알고리즘 및 병렬 처리)에 요구되는 기술 파악

  • FPGA 개발 툴에 대한 이해

  • AMD FPGA 개발 툴인 Vivado 및 Vitis 설치 방법 파악

  • 예제 디자인을 활용한 Vivado 개발 플로우

FPGA 이미지

강의 소개

이 강의는 FPGA(Field-Programmable Gate Array)의 구조와 설계 흐름에 대한 기본 개념을 익히고, 실전적인 관점에서 설계를 구성하는 인터페이스 설계와 알고리즘 설계의 두 축을 중심으로 상세히 다룹니다. 초보자부터 실무자까지, FPGA 설계를 체계적으로 배우고자 하는 분들을 위한 입문 강의입니다.

또한 FPGA 설계는 본질적으로 ASIC 설계의 프로트엔드(front-end) 과정과 유사합니다. 따라서, ASIC 설계로 진입하기 위한 좋은 준비과정이 됩니다. 실제로 ASIC 프로젝트 초기에 FPGA로 프로토타이핑을 먼저 수행하는 경우도 흔하고, ASIC과 FPGA 양쪽에 능숙한 엔지니어가 많은 이유도 이 공통 기반 때문입니다.

학습 목표

  • FPGA가 무엇이며 왜 사용되는지를 이해한다.

  • FPGA 설계 흐름을 단계별로 학습한다.

  • 인터페이스 설계(클럭, I/O, 메모리, 고속 통신 등)의 핵심 요소를 파악한다.

  • 알고리즘 및 병렬처리 구조(DSP, LUT, 파이프라이닝, FSM 등)를 설계하는 개념에 대해 파악한다.

  • 시스템을 통합적으로 구성하는 방법과 주의할 점을 이해한다.

  • FPGA 개발 툴을 이해하고, AMD FPGA 개발 툴 설치 방법을 파악한다.

  • FPGA 내부 구성 요소인, CLB와 메모리 블럭, DSP 등의 사용 방법을 학습한다.

FPGA란?

FPGA (Field Programmable Gate Array)는 "현장에서 프로그래밍 가능한 게이트 배열"이라는 뜻으로, 사용자가 하드웨어 회로 구조를 자유롭게 구성할 수 있는 반도체 칩입니다.

  • 재구성 가능성: 원하는 동작에 맞게 하드웨어 회로를 재프로그래밍 가능

  • 활용 분야: 통신, 신호 처리, 인공지능, 로봇 제어, 고속 인터페이스 등

  • 구성 요소: Logic Block, LUT, Flip-Flop, Clock Network, Block RAM, DSP Slice 등

FPGA 설계 흐름 (Design Flow)

  1. 요구사항 정의

    • 무엇을 구현할지 기능, 성능, 입출력 조건 명확히 정의

  2. RTL 설계

    • Verilog HDL, system-verilog 또는 VHDL 등의 하드웨어 기술 언어로 설계

  3. 기능 시뮬레이션 (Functional Simulation)

    • 설계 논리가 요구사항에 맞는지 시뮬레이션으로 확인

  4. 합성 (Synthesis)

    • RTL 코드를 실제 게이트 수준 회로로 변환

  5. 배치 및 배선 (Place & Route)

    • FPGA의 실제 자원(LUT, FF, DSP 등)에 설계 배치

  6. 비트스트림 생성 (Bitstream Generation)

    • FPGA가 인식할 수 있는 구성 데이터 생성

  7. 프로그래밍 및 디버깅


    • FPGA에 다운로드하고 동작 확인, 필요 시 수정

FPGA 설계 세부 분야

  1. 인터페이스 설계

    • 입출력 I/O 및 버퍼, 클럭 구조, Gigabit Transceiver, Memory Interface에 대한 이해가 필요.


  2. 알고리즘 및 병렬 처리 설계

    • DSP 활용, Custom Logic 설계, FSM 설계

    • Pipelining 및 병렬 처리 설계가 핵심.

FPGA 설계 툴

  1. 주요 디바이스 제조사의 설계 툴

    1. AMD FPGA: Vivado, Vitis

    2. Intel FPGA: Quartus

  2. 주요 기능

    1. HDL 코드 작성/ 시뮬레이션/ 합성

    2. 디자인 Constraints 설정 (XDC, SDC 등)

    3. Timing Analysis 및 Bitstream 생성

    4. On-chip Debugging

  3. Vivado + Vitis Workflow

    1. Vivado: 하드웨어 설계

    2. Vitis: 소프트웨어 설계


Vivado 설치

  1. Vivado와 Vitis는 AMD FPGA 개발에 요구되는 기본적인 툴.

  2. AMD Site에서 계정 생성 및 원하는 버전 다운로드 필요.

    1. Standard 버전은 무료로 사용 가능하지만, 일부 디바이스 지원이 제한됨.

    2. 로직 사이즈가 큰 디바이스 일수록 PC에 용량이 큰 메모리가 요구됨.

  3. 설치

    1. 100GB 이상의 하드 디스크 공간이 필요.

    2. 1~2시간 이상 소요.

LED Blinking (예제)

  1. system-verilog를 이용하고, clock division과 RTL을 이용해, 1초 간격으로 toggle되는 LED를 설계.

  2. 테스트 벤치를 생성하고, 시뮬레이션 진행.

  3. XDC 파일에 제약조건을 지정.

  4. Synthesis 및 Implementation 진행.

  5. ILA에 디버깅 신호 추가.

  6. FPGA 프로그램 및 테스트.

FPGA 내부 구성 요소

  1. CLB (Configurable Logic Blocks)

  2. Memory

  3. DSP

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • FPGA 설계에 관심 있는 분

  • FPGA가 무엇인지 궁금하신 분

  • 반도체 설계의 꿈을 가지신 분

안녕하세요
입니다.

160

수강생

6

수강평

2

답변

4.8

강의 평점

3

강의

  • FPGA는 전통적인 반도체 설계 과정과 달리, 쉽고 빠르게 설계를 구현할 수 있는 장점을 가진 디바이스입니다. 디자인 소스만 있으면, FPGA의 논리 요소를 활용하여, 즉시 배치 및 연결이 가능합니다. 또한, 하드웨어적인 성격이 강하기 때문에 코드 역시 복잡하지 않고 직관적으로 작성할 수 있습니다.

  • 중요한 것은 FPGA의 설계 개념과 Flow를 이해하며, 나아가서는 설계 목적과 대상에 대해 이해를 하는 것입니다. 이를 바탕으로 디자인 소스의 구조를 최적화하고, 알맞은 제약조건을 입력해 안정적인 FPGA를 설계하는 것이 핵심입니다.

  • 강의에서는 코딩보다는 FPGA 설계 개념과 구조, 설계 방식 및 Flow를 중심으로 구성되며, Step-by-Step 실습 위주의 내용을 담을 것 입니다. 직접 구현하고 실습하며 노하우를 쌓아가는 것이 FPGA 엔지니어의 핵심이며, 앞으로 AI로 대체될 코딩 보다 더 큰 가치가 될 것입니다.

     

  • 10+ 경력의 FPGA 및 하드웨어 설계 전문가로, 고속 데이터 처리 및 통신 시스템 설계, 영상 처리 등에 특화되어 있으며, 다양한 FPGA 프로젝트에 참여.

  • 아래 Youtube나 Blog에서 추가적인 정보를 얻으실 수 있습니다.

     

 

 

커리큘럼

전체

16개 ∙ (1시간 39분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

6개

4.8

6개의 수강평

  • dmax님의 프로필 이미지
    dmax

    수강평 100

    평균 평점 5.0

    5

    100% 수강 후 작성

    새로운 학습이었습니다. 고맙습니다

    • 김아람님의 프로필 이미지
      김아람

      수강평 1

      평균 평점 5.0

      5

      38% 수강 후 작성

      • 서윤님의 프로필 이미지
        서윤

        수강평 2

        평균 평점 4.5

        4

        63% 수강 후 작성

        • 김현군님의 프로필 이미지
          김현군

          수강평 2

          평균 평점 5.0

          5

          40% 수강 후 작성

          • asdfjklu22님의 프로필 이미지
            asdfjklu22

            수강평 2

            평균 평점 5.0

            5

            100% 수강 후 작성

            무료

            EasyFPGA님의 다른 강의

            지식공유자님의 다른 강의를 만나보세요!

            비슷한 강의

            같은 분야의 다른 강의를 만나보세요!