X

FPGA (Field Programmable Gate Array)

I. 논리 소자 간 배선 연결, FPGA

가. FPGA의 개념

  • 논리소자 간 배선을 프로그래밍하여 다양한 로직 구성을 가능하게 하는 반도체 소자

나. FPGA의 특징

SRAM 방식 – 모든 로직 블록에 배선을 연결할 수 있어 다양한 구조의 회로 구성 가능
휘발성 배선 정보 – 배선 정보가 외부에 있는 플래시 메모리에 저장되어 있어 기동 시 SRAM에 다운로드

 

II. FPGA 구성도 및 구성요소

가. FPGA 구성도

  • 내부에 Logic Block이 있고 이를 연결하기 위해 배선이 존재

나. FPGA 구성요소

구성요소 설명
Logic Block – CLB 기반으로 4-input LUT(Lookup Table)와 D플립플롭으로 구성
I/O cell – Chip의 I/O 신호를 받아오고 다시 보낼 때 I/O cell 사용
Interconnect Resources – 프로그래밍이 가능하여 Logic Block 연결 시 지연 방지

다. 구현 방식

구현 방식 설명
프로그램 저장소 – 플래시 메모리를 외부에 두고 내부에는 휘발성 SRAM을 고밀도로 나열
프로그래밍 방법 – CLB 기반 구조적 연결
– 모듈을 조합하여 의도하는 기능 구현
프로그래밍 특징 – 휘발성: 전원이 제거되면 회로구성이 초기화
배선정보 디자인 – 기동 시 배선정보 다운로드 필요
– Schematic & HDL

 

III. 성능 명세 및 응용 분야/사례

가. 성능 명세

성능 명세 설명
성능 척도 – Maximum Clocking Frequency (Fmax)
성능 – 상대적 느리며 응답시간 예측 어려움
집적도 – 수백만 게이트로 구성
소자크기 – CPLD에 비다 소자 크기 큼

나. 응용 분야/사례

응용 분야 설명
응용 분야 – 디지털 신호 처리 프로세서 (DSP)
– 주문형 반도체(ASIC) 프로토타입
응용 사례 – 의료 영상 알고리즘 구현
– 하이브리드 TV 수신기 개발
  • FPGA는 Control Block이나 Random Logic, 플립플롭을 많이 사용하는 디자인 활용 필요

 

IV. FPGA 디지털 설계 과정

구분 절차 설명
전체과정
디지털 설계 논리식 – PALASM, ABEL 등 논리식 전용 표현 언어 사용
HDL – VHDL, Verilog, ABEL-HDL 등 사용
– 다양한 상용 Tools에서 HDL 지원
회로도 – FPGA/CPLD Vendor에서 제공하는 회로도 작성 tool 이용
파형 입력 – 타이밍도 이용, 회로동작을 신호의 ON/OFF로 표현 설계
State machine – FPGA/CPLD Vendor에서 제공하는 State machine editor 사용
프로그래밍 Define I/O – 신호 별 세부기능에 관한 기술문서 작성
Design Entry – HDL(VHDL/Verilog HDL) Design Files
– Schematic Diagram
Logic Synthesis – Library, Design Files 조합 netlist 작성
(netlist: 실제 H/W 구성위한 gate 명세)
시뮬레이션 Function Simulation – Test Vector, Test Brench 파일 등 이용하여 회로 기능 검사
Map, Place, Route – 중간 출력 파일, User constraints file
Timing Simulation – Test Vector에 관련 기술문서, Timing Simulation 분석 결과
다운로드 써넣기 데이터 만들기 – 범용 라이터기 사용 ‘써넣기’ 시 표준형인 JEDEC 포맷 데이터로 써넣음
– SRAM 구조는 전용 포맷으로 작성
– JEDEC 포맷의 써넣기 데이터 및 SRAM으로 다운로드 포맷은 각 Vendor 제공 tool에 포함
  • 디지털 설계 시 최종 배포 직전까지 Debug 가능하므로 생산성 향상

V. FPGA 디지털 설계원리

설계 원리 설명
동기화된 FPGA
설계 습관
– 좋은 설계 습관은 설계 목표 충족
– Propagation Delay 의존성과 불완전 타이밍 분석, 일시적 오류 해결
클록 시그널
베이스 설계
– 클록 시그널이 모든 이벤트를 트리거
– Rising Edge에 모든 Register 정보 갱신
Combinational
Login 구조회피
– Combinational Loop로 발생 인한 불안정성과 신뢰성 저하를 최소화
– 모든 백루프는 레지스터 포함 필요
Delay Chain
회피
– 2개 이상의 연속 노드가 딜레이를 유발하도록 사용되는 경우 Delay Chain 발생
Latch 회피 – Latch 타이밍이 모호한 편이므로 glitch(일시적 시스템 장애) 발생 가능
– Latch는 레지스터에 비해 낮은 성능
– FPGA는 매우 많은 량의 레지스터 보유
리셋 지원 – 디바이스에서 비동기식 리셋핀 활용, 전체 리셋 기능 지원
벤더 특성
반영
– 벤더 제공 특수 기능 확인 필요
– 해당 기능 적절히 활용이 중요

 

Categories: CA/운영체제
도리: