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 |