티스토리 뷰

VHDL

FPGA or CPLD 선택 가이드

그냥이 2010. 7. 3. 22:34

FPGA or CPLD 선택 가이드




CPLD와 FPGA는 설계자가 설계한 Logic을 설계실에서 직접 Programming에 의해 H/W로 구현할 수 있다는 측면에서 유사성이 크다 하겠다.
그러나, Logic을 구현하기 위한 Device상의 Architecture는 크게 달라서 어떤 Design이냐에 따라 CPLD가 효과적이기도 하고 FPGA가 더 적합하기도 하다.
이 글에서는 CPLD와 FPGA의 Architecture상의 차이와 특징을 간단하게 알아보고, 몇 가지 Logic을 CPLD,FPGA로 각각 구현한 결과를 비교해 봄으로써 설계자로 하여금 어떤 Device를 선정하는 것이 Target Design에 적합할 것인지를 판단하는 근거를 제시하고자 한다.



FPGA 아키텍처

FPGA Chip의 내부에는 CLB(Xilinx FPGA의 Logic Unit)라는 Logic Unit가 균일하게 배치되어 있으며 CLB와 CLB사이에 Signal들의 연결을 위한 Routing Channel이 형성되어 있다.
XC400XL 디바이스의 경우 하나의 CLB에는 2개의 F/F과 2개의 4 Input LUT(Memory Look Up Table)이 존재하는데 4 Input LUT는 16bit RAM을 이용하여 Logic을 구성한 것으로 16개의 1bit Memory Cell에 1 또는 0의 값을 넣어 놓고 Address Input 4bit의 값에 따라 16가지 Pattern중 하나를 출력할 수 있어 4bit 입력의 Combinatorial Logic을 완벽하게 Cover할 수 있다.
이렇게 소규모의 Logic Unit들이 균일하게 배치되어 있고, Logic Unit들 간의 연결을 담당하는 Routing Channel로 구성된 구조는 Gate Array와 유사한 형태인 관계로 Field Programmable Gate Array라고 부르게 되었다.
Random Logic이나 F/F이 많이 사용되는 Design에 적합한 구조를 갖고 있으며 하나의 FPGA의 Logic Size가 작게는 수천 Gate부터 많게는 100만 Gate급의 대용량까지의 다양한 Size와 Memory를 탑재한 Chip들의 등장으로 ASIC에 버금갈 정도의 System을 1 Chip의 FPGA로 구현할 수 있게 되었다.
하나의 Design Block이 FPGA에 구현될 때 Logic Size는 몇 개의 CLB를 사용하였는가에 따라서 결정된다.
Logic Step이 늘어날수록 Logic Delay와 Routing Delay가 증가하게 된다.
FPGA의 Logic Density는 CLB수로 계산되는데 Xilinx의 경우 100-10000여개의 CLB에 20000여개의 F/F을 포함하는 다양한 용량과 다양한 Performance의 FPGA들을 공급하고 있다.



CPLD 아키텍처

FPGA가 CLB라는 비교적 소규모의 Logic Unit들로 구성되어있는데 비해 CPLD는 Macro Cell을 기본 Logic Unit로 하여 구성되어 있다. 각 CPLD Vendor마다 약간의 차이가 있지만 다수의 입력을 받아서 And시키고 그 결과를 OR시킨 후 직접 출력되거나 F/F을 거쳐 출력되는 구조이다.
하나의 Macro Cell을 구성하는 Logic의 규모가 FPGA의 Logic Unit에 비해 매우 큰 반면에 하나의 Macro Cell을 거치는데 소요되는 Logic Delay가 일정한 특징을 갖는다. 예를 들어 10ns Device이면 1 Macro Cell을 거치는 Delay는 Logic에 관계없이 10ns로 Timing에 대한 예측이 용이하다.
Macro Cell의 Logic 규모가 크다 보니 Architecture의 구조에 적합한 Design의 경우, 예를 들어 Bus Decoder에 대해서는 FPGA에 비해 속도나 Logic 활용도 측면에서 유리하지만, 하나의 Macro Cell의 출력이 하나 뿐이라는 것을 고려하면, 간단한 Gate회로나 F/F만을 사용한 경우에는 나머지 부분들이 Dummy Logic이 되어 Logic활용도와 Speed측면에서 FPGA에 비해 불리하다.
CPLD의 Logic Density는 Macro Cell의 수로 Counting된다. 32-512까지의 Macro Cell로 구성되는데 512개 까지의 F/F사용이 가능하다는 것이므로 F/F을 많이 사용하는 Design에는 적합하지 않다.



FPGA와 CPLD의 비교

<표 1>에 몇 가지 Design에 대해 CPLD와 FPGA로 구현한 결과를 제시하였다.
아래 결과에서 보듯이 Wide Input Decoder에 대해서는 CPLD의 결과가 탁월함을 알 수 있으며 그 외의 경우에는 대체적으로 FPGA의 결과가 우월함을 알 수 있다. 특히, Shift Register의 경우에는 Xilinx의 Select RAM(4 LUT)을 활용할 경우 CPLD의 6% 정도의 Gate만을 사용하여 구현이 가능하다.
이러한 결과를 종합해 볼 때 FPGA의 경우는 Control Logic이나 Random Logic, F/F을 많이 사용하는 Design등의 보편적인 Logic에 활용하는 것이 좋으며, 특히 RAM을 사용할 경우 매우 유용하다.
CPLD는 Wide Input Decoder가 가장 적합한 Application이며, Macro Cell을 통과하는 Delay가 일정하므로 Micro Processor Interface에의 활용 등, 나름대로의 Architecture에 맞는 특정한 Application에 활용하는 것이 적합하다.



<표 1> CPLD와 FPGA로 구현한 결과

Design Example

Device

Logic Unit

Delay

Used Gate

32bit Decoder

XC9536xl-10

1 Macro Cell

10ns

22

XC4005xl-09

15 CLB

22ns

383

8bit Counter

XC9536xl-10

8 Macro Cell

10ns

178

XC4005xl-09

5 CLB

9ns

128

8bit Adder

XC9536xl-10

11 Macro Cell

36ns

244

XC4005xl-09

5 CLB

16ns

128

8bit 2to1 Mux

XC9536xl-10

8 Macro Cell

10ns

178

XC4005xl-09

4 CLB

15ns

102

8bit 16진
Shift Register

XC95144xl-10

128 Macro Cell

2844

XC4005xl-09

64 CLB(F/F)

1633

7 CLB(RAM)

179


- XC9536XL-19
   : 36 Macro Cell CPLD, Speed Grade 10ns, 800 Usable Gate
- XC4005XL-09
   : 196 CLB, 0.9ns Cell Delay, 5000 Usable Gate

'VHDL' 카테고리의 다른 글

FPGA DSP ASIC SOC 각각의 차이점이 무엇인가요?  (1) 2010.07.03
MaxPlus 2 기본 사용 설명서  (0) 2010.07.03
VHDL 간단한 설명서  (0) 2010.07.03
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함