본문 바로가기

IT Tech/Development

[지식인 발췌글] FPGA와CPLD구조의 차이와 특징

반응형



FPGA와CPLD구조의 차이와특징을 알고 싶습니다!!
책도 보고 찾는중인데 원하는답을 찾기 힘들어 글을 올립니다!!


[geddon74 님의 답변]

현재 관련 분야 설계,개발 업무를 하고 있습니다.
FPGA FAE(기술지원) 도 했었구요.
혹 도움이 필요하시다면..연락을...^^(소개를 보니 복학생이라고 되어 있어서요...)


일반적으로 말하는 major 업체인 Xilinx,Altra FPGA 와 비교를 하겠습니다.
일단은 위의 FPGA 는 SRAM 방식입니다.
즉, 파워를 온 시킬때 마다 다운로드를 항상 해 주어야 합니다.
이런 불편을 없애기 위해 위의 회사들은 PROM 을 사용합니다.PROM 에 다운로드 데이터를 저장시켜놓고
파워를 온 시킬때 자동으로 다운로드 되게 하는거죠.
CPLD 는 일반적으로 예전의 PAL (programmable array logic)방식입니다.
즉 SRAM 이아닌 이미 일부 and,or gate 가 박혀 있구요
물론 불록화 되서 여러개가 중앙 양쪽에 배치되어 있습니다.
사용자의 download 데이터에 따라 그 블록들 간에 최종 routing(배선) 이 되는 겁니다.

FPGA 는 sram 방식으로 routing 할수 있는 요소가 많습니다.
즉,구석구석 쉽게 라우팅을 할수 있는 장점이 있습니다.(특히 Xilinx )
자일링스 는 스위칭 매트릭스 구조라는걸 사용해서 라우팅할때 여기저기 배선할수 있는 요소가 많은
반면 앝테라는 자일링스 보다 라우팅 요소가 적지만 대신 스피드가 우수한 편입니다.
즉,sram 블록들 사이에 스위치 블록들이 존재해서 한 블록에서 바로 옆 블록으로 연결될 수도 있고
한 블록에서 여러개의 스위치 블록을 거쳐 아주 먼곳의 블록에 연결될수도 있습니다.
이런 부분에서는 전체 FPGA 로직 활용에 굉장히 효과적인 방법인 반면,
라우팅이 스위칭 구조니 여기저기,구석구석 많이 할수 있지만 대신 많은 스위치를 거치니
스피드가 느려지게 되죠.
CPLD 는 양쪽에 위에서 말한 PAL 방식의 블록들이 배열되어 있고 그 가운데에 일종의 매트릭스 형태의
라우팅이 되어 있습니다.최종적으로 사용자가 다운로드 하면 필요한 부분만 연결하게 되지요.

가장 큰 차이는 일반 FPGA 는 어디로 배선될지 모르지만(로직 활용도에서 우수)
cpld 는 가운데에서 양쪽 블록들로 배선되기 때문에 타이밍을 어느정도 예측할 수가 있습니다.
한 신호가 가운데 맨 밑 에서 출발해서 바로 양쪽 첫 블록들로 들어가던지 아님 쭉 올라가서
맨 마지막 블록들로 들어가던지 하겠죠.
조금의 차이는 있지만 그래봐야 큰 차이가 없기 때문에 어느정도 타이밍을 예견할 수 있다는게
가장 큰 차이점 입니다.
그러나 아무래도 FPGA에 비해 게이트 용량에는 한계가 있습니다.
sram 방식은 게이트가 아닌 다운로드 데이터 자체를 저장하는 방식이니까요.
그래서 cpld 는 대부분 소용량이 많습니다.
그리고 또 한가지 라우팅(배선) 이 한정이 되어 있습니다.
가운데에서 양쪽의 PAL 블록들로 배선을 하는데 당연히 이 배선들도 그 수에는 한계가 있으니까요.
어떤 한 부분으로 연결된 rounting 소스는 당연히 사용할수 없을테고,그럼 다른 배선을 사용하다보니
배선에 한계가 옵니다.이게 역시 전체 게이트 용량하고도 관계가 되지요.
점점 칩에서의 전체 용량이 커지다 보니 FPGA 가 등장하게 된것입니다.

도움이 되셨기를...



[출처]
http://ask.nate.com/qna/view.html?n=4002232






반응형