일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 쿠버네티스
- 클라우드
- quantum_computing
- stl
- 양자역학의공준
- dnn
- HA
- cloud
- C++
- FPGA
- flash_memory
- Semiconductor
- sycl
- kubernetes
- Qubit
- convolution
- DRAM
- deep_learning
- 딥러닝
- POD
- jhDNN
- GPU
- 반도체
- nvidia
- Compression
- SpMM
- 반도체기초
- jhVM
- CuDNN
- CUDA
- Today
- Total
Computing
FPGA Design Concepts - 2 : Building blocks 본문
이전 포스터에서 FPGA 프로그래밍의 전반적 개념에 대해서 정리하였다.
오늘은 FPGA architecture의 개별 building blocks에 대하여 정리하고자 한다. 다음 강의자료 [1], [2], [3]를 참고하였다.
Adaptive Logic Module (ALM)
Configurable Logic Block(CLB)라고도 하며, FPGA가 임의의를 회로를 빌드하는데 사용되는 가장 기본 block이다. ALM은 lookup table (LUT)와 LUT의 아웃풋을 저장하는 register로 구성된다. n-LUT는 n개의 input을 받는 임의의 모든 논리회로를 만들 수 있다.
Register는 FPGA의 가장 기본 저장장치로 clock signal에 동기화되어 input을 저장하고, 저장된 값을 output으로 출력한다. ALM에서 LUT의 output을 저장하는 역할을 한다.
Look-up Table (LUT, n-LUT)
n-LUT는 n개의 input이 주어지는 임의의 논리회로를 구현할 수 있다. 2^n개의 configuration bits(SRAM)과 2개의 input, 그리고 input에 따라 configuration bits를 선택하는 multiplexer로 구성된다. 어떤 논리회로든 n개의 input에 대한 진리표를 만들어 단순하게 표현할 수 있는데, 이와 같은 개념으로 진리표 자체를 SRAM에 저장하고 input에 따라 그 값을 출력하는 원리이다. 다음은 2-LUT로 다양한 논리회로를 만든 예시이다.
n-LUT로 구현된 n-input 논리회로는 동일한 propagation delay를 가진다.
Xilinx, Altera와 같은 상용 FPGA는 일반적으로 6-LUT들로 구성되며, 여러 LUT를 이용하여 더 많은 input이 들어오는 논리회로를 구현할 수 있다. 더 많은 입력 개수를 가지는 n-LUT를 만들지 않는 것은, n이 커질수록 configuration bits(SRAM)이 exponentially 증가(n-LUT은 2^n개의 SRAM이 필요)하기 때문이다. 또한 Multiplexer의 propagation delay도 증가한다. 다음 예시는 2bit ripple carry adder를 구현 예시이며, 3-LUT(output 2개) 2개로로 6-LUT를 구현한 예시이다.
Digital Signal Processing (DSP) Block
DSP block은 일반적으로 사용되는 fixed-point, floating point arithmetic operation 실행을 위해 FPGA에 추가된 block이다. 이러한 FP 연산에 대해서는 직접 ALM로 구현하는 것보다 특화된 회로를 추가하는 것이 더욱 효율적이기에 추가되었다고 한다.
Reference
[2] Hao Zheng, FPGA System Design FPGA Architectures, Dept of Comp Sci & Eng U of South Florida
[3] U. Farooq et al., Tree-Based Heterogeneous FPGA Architectures, DOI: 10.1007/978-1-4614-3594-5_2, © Springer Science+Business Media New York 2012
'가속기 Accelerator > FPGA' 카테고리의 다른 글
OpenCL on FPGA (1) 필요성과 Intel FPGA SDK for OpenCL (0) | 2022.05.30 |
---|---|
FPGA via SYCL - 1 : Tutorial 빌드 및 실행 in DevCloud (0) | 2022.05.02 |
FPGA Design Concepts - 1 : Overview (0) | 2022.03.23 |