FPGA   Field Programmable Gate Array  

(2023-12-14)

1. FPGA (Field Programmable Gate Array)

  ㅇ 하드웨어 설계 유연성을 증대시키는, 프로그램이 가능한, 게이트 어레이 기반의 ASIC
     - 1천개 이하의 게이트로 이루어진 소규모 PLD에 비해, 
     - 게이트 어레이에 가깝게, 10만개 이상의 게이트로 이루어진, 
     - 반 주문형 또는 사용자 주문형 ASIC주문형 반도체 (ASIC) 참조


2. FPGA의 용도

  ㅇ 과거에는, 고가의 오래걸리는 ASIC 제조 전에, 설계회로의 기능 검증 등에 이용 
  ㅇ 요즈음은, 프로세서와 FPGA를 단일 에 수용하면서, 
     - 일반 연산프로세서로 수행, 
     - 특정 연산 만을 FPGA로 구현하는 등


3. FPGA의 특징

  ㅇ 저 집적도, 낮은 동작 속도 이지만, 재구성 및 프로그래밍 가능
     - 서로 연결하여 보다큰 논리 함수를 만들 수 있도록,
     - 상대적으로 작고 독립적인 프로그램 가능 논리 모듈(블록)들로 구성됨
     - 이때, 각각의 논리 모듈(블록)은, 
        . 4~5개의 입력 변수들을 다룰 수 있음

  ㅇ 현장 프로그램 가능 (유연성 있는 일반화된 배선 구조)
     - 동일 논리 블록 어레이프로그램 가능한 내부 연결선에 의해,
     - 후에 설계자가 이들을 통해서 프로그램 및 재구성이 가능하여,
     - 원하는 논리 기능을 수행 가능

  ㅇ 원하는 논리 기능을 만들기 위해, 룩업테이블 (LUT,Look-Up Table) 방식 사용
     - 함수의 출력 결과를 미리 SRAM 메모리에 저장함으로써 원하는 논리 함수를 생성 
     - 즉, 게이트들을 직접 구현 사용하기 보다, 미리 준비해 둔 LUT 테이블을 사용
        . 룩업테이블 : 조합 논리 함수를 생성하는 프로그램 가능 논리 블록의 일부분
           .. 입력 값들에 대한 출력값을 미리 준비해 둔 구조

  ㅇ 특히, 프로토타입(Prototype) 및 제품 개발 등에서, 하드웨어 설계 유연성 증대
     - HDL(VHDL,Verilog) 등에 의한 설계를 하고,
     - 그 설계 결과물을, FPGA 디바이스에 다운로드하여, 
     - 동작 구현 및 검증


4. FPGA의 구성

  ㅇ (일반적인 구조)
     - 기본 논리 셀(블록)이 다수 배열되어있고,
     - 각 논리 셀(블록) 사이의 가로,세로 줄에, 
     - 프로그램이 가능한 상호 연결선이 존재하는 구조임

  ㅇ (입출력)  프로그램 가능 입출력 블록 (Programmable Input/Output Block)
     - FPGA  외곽에 위치하여, 내부 논리와 외부  선과의 프로그램 가능 연결을 담당
     - 멀티플렉서,플립플롭 등이 있음

  ㅇ (논리)  프로그램 가능 논리 블록 (Programmable or Configuable Logic Block, CLB)
     - 멀티플렉서, 룩업테이블, AND-OR 게이트 또는 NAND-NAND 어레이 등에 의해 만들어짐
     - 로직 셀들이 모여있는 블록(CLB)들의 연결 구성을 통해 로직이 설정되어짐

  ㅇ (배선)  프로그램 가능 배선 자원 (Programmable Routing Resource)
     - 특정 연결을 끊거나 잇는 것

  ㅇ (전원)  대부분 공급 전원이, 1.8, 3.3, 5 V 임


5. FPGA의 설계 과정들설계 명세(사양) 작성
     - 요구사항 분석
     - 회로 기능의 분할 및 정의
     - 외부와의 인터페이스 
     - 기타  면적,소모 전력,테스트 등

  ㅇ 설계 입력 및 기술
     - 회로HDL로 기술하면, 
     - 게이트 또는 동작적인 관점의 설계 결과물로써 합성됨

  ㅇ 기능 시뮬레이션
     - HDL설계회로 기능에 대한 시뮬레이션 및 검증
     - 특히, 선택된 소자에 대한 전달지연,부하특성 등을 설계에 반영하고, 동작 모델링의 정확성 확인

  ㅇ 논리 또는 회로 합성
     - HDL로 기술된 논리 회로를, 각 EDA 제조라이브러리 내 실제 논리 소자로 변경,연결하는 과정
     - 게이트들과 네트들의 정보넷리스트가 만들어짐

  ㅇ 구현 (배치,배선 포함, PAR : Place And Route)
     - 사용 부품들을 배치하고 서로 연결하는 것

  ㅇ 타이밍 시뮬레이션
     - 설계 합선된 회로를 FPGA 보드에 다운로드될 요소들로 변경하여,
     - 이들 간의 전달지연, 배선지연, 팬아웃 등에 대해,
     - 기능, 동작, 타이밍(지연시간,셋업시간,홀드 시간)을 검증 

  ㅇ 보드에 다운로드

  ㅇ 보드 동작 검증


6. FPGA의 개발 환경 例)

  ㅇ 하드웨어
     - Intel(2015년 Altera 인수)社, Xilinx(자이링스)社 등의 FPGA 보드

  ㅇ 소프트웨어 
     - Intel(Altera)社의 Quartus Prime 등
     - Xilinx社의 ISE,Vivado 등 
     - Mentor Gaphics社의 ModelSim 시뮬레이터 등

프로그램 가능 IC
   1. ASIC   2. PLD   3. FPGA   4. 게이트 어레이  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"