본문 바로가기

FPGA 공부

FPGA 구성 기본 요소

FPGA의 기본 요소

FPGA는 다음과 같은 주요 요소들로 구성됩니다:

  • CLB (Configurable Logic Block)
  • IOB (Input/Output Block)
  • Programmable Interconnect
  • Dedicated Block
    • 예: Block RAM, DSP, PLL, Serial Transceiver
    • CLB, IOB, Programmable Interconnect만으로 기능을 구현할 수 있지만, CLB와 IOB의 큰 Delay특정 Operation에서의 많은 Block 사용을 고려하여 Dedicated Block이 추가됩니다.

CLB (Configurable Logic Block)

구성 요소

  • LUT (Look-Up Table)
    • 모든 조합 논리(combinational logic)를 설명할 수 있습니다.
    • 입력과 출력을 정의하는 테이블로 작성됩니다.
    • Logic이 아닌 입력값 조합에 대해 원하는 출력 값을 포함하는 작은 메모리입니다.
    • Distributed ROM / RAM으로 사용할 수 있습니다 (Dedicated Block이 없어도 가능).
  • Sequential Element (Flip-Flop)
  • Multiplexer
  • Carry Logic
    • Arithmetic 연산 시 발생하는 Carry를 지원합니다.
    • Carry Logic이 없을 경우, 추가적인 LUT를 사용해야 할 것입니다.

IOB (Input/Output Block)

구분

  • HP (High Performance)
    • 최대 1.8V의 고속 메모리 및 칩 간 인터페이스의 성능 요구사항을 충족하도록 설계되었습니다.
  • HR (High Range)
    • 최대 3.3V의 다양한 I/O 표준을 지원하도록 설계되었습니다.
  • HD (High Density)
    • 저속 인터페이스를 지원하도록 설계되었습니다.

General Interconnect (Routing)

  • Interconnect
    • CLB/IOB 등의 BLOCK을 연결하는 역할을 합니다.
  • CLOCK
    • 매우 중요한 Routing으로, 민감하고 중요한 신호이기 때문에 별도의 Routing Path가 존재합니다.

DSP Block

  • 복잡한 계산 로직을 처리하는 역할을 하며, CPU의 ALU와 유사합니다.
  • 3가지 Logic 구성 - ADD/SUB, 곱셈기, 누산기(Accumulator)
P = B X (A+D) + C
P += B X (A+D) // 이렇게 누산도 가능함

Distributed RAM

  • 6-input LUT에 있는 64개의 LUT를 사용하면 64비트 저장이 가능합니다.
  • 슬라이스에는 8개의 6-input LUT가 있으므로 512비트 저장이 가능합니다.

BRAM (Block RAM)

  • On-chip 메모리로, FPGA의 fabric 상에 위치한 dual-port RAM입니다.
  • Dual-port RAM이므로, 한 cycle에 2개의 주소로부터 값을 읽거나 쓰기가 가능합니다.

'FPGA 공부' 카테고리의 다른 글

# FPGA IP와 Verilog 활용 수업 요약  (0) 2024.09.09
FPGA TestBench 및 기초 지식  (3) 2024.09.08
Verilog file 단독 simultaion 해보기  (5) 2024.09.06
Xilinx FPGA - PS, PL 영역  (0) 2024.08.27
Xilinx FPGA시작 - Hello World!  (0) 2024.08.27