Tag Archives: xilinx

FPGA 합성 도구.. 삼파전?

[wp]FPGA[/wp]의 사용이 늘어나면서 이쪽 합성 분야에 눈독을 들이는 회사들이 늘어나고 있군요..

사실 FPGA 설계/합성 도구는 무료로 제공되는 경우가 많아서.. ([wp]xilinx[/wp] webpack이나 [wp]altera[/wp]의 quartus II web version과 같이 말입니다.)비교적 돈이 덜 됩니다만.. 무료로 제공되는 설계도구가 비교적 약한 편이라, 다른 툴을 많이 찾아다니게 되지요..

게다가 많은 FPGA 업체들이 simulation과 logic 합성 자체는 3rd party툴에 도움을 받고, P&R쪽만 in-house 툴을 사용하는 방향으로 나아가고 있는데.. 각 회사의 입장에서는 아주 합리적인 선택입니다.

Simulation에서는 가장 많이 번들링 되고 있는 것이 아무래도 [wp]Mentor[/wp]의 [wp]Modelsim[/wp]이지요. (사실 modeltech의 것이지만..)
국내에서 학생 유저들이 가장 많이 사용하는 시뮬레이터일텐데요.. 윈도우 환경에서 안정적인데다, verilog/VHDL/SystemC까지 가리지 않고 컴파일해서 single kernel로 시뮬레이션하는 능력을 지닌 좋은 시뮬레이터 입니다. 산업체에서는 아직 Golden simulator로 받아들여지는 NCsim에 밀리지만, 많은 엔지니어가 사용하고 있는 좋은 시뮬레이터입니다. (이 이야기는 주관적인 내용이 아니고 ESNUG 설문 결과인데 modelsim은 폭 넓은 사용자에 비해서 golden simulator라기 보다, secondary simulator느낌으로 사용되고 있습니다.)

FPGA 합성툴로는 우선 xilinx나 altera의 자체 툴이 있겠지요.

사실 저는 altrea툴을 max-plusII 시절에 많이 사용하고, quartus는 초기 버젼만 잠시 다루어봐서 평가하기 어렵습니다만.. 좋은 인상은 받기 어려웠습니다.
Xilinx의 XST도 역시 뭐 그리 잘 만들어진다 볼 순 없겠습니다. 물론, 예전에 비하면 아주 좋아졌습니다만 말입니다.

오늘 제목에 FPGA 합성도구 삼파전이라는 약간 “찌라시틱”한 제목은 사실 FPGA 제조사의 툴은 제외하고 3rd party의 FPGA합성도구 3가지를 보려고 합니다.

첫번째로 FPGA 합성 시장에서 가장 많이 사용되고 있는 synplicity의 synplify가 있습니다. 얼마전에 보니 국내 지사도 생겼더군요.. SCOPE라는 손쉬운 constraint editor도 있고, 그림도 이쁘게 보여주더군요..
가장 좋은 점은 합성 결과가 만족스럽다는 점입니다. 특히, DSP function을 지정하는 경우 이것을 각사의 macrocell로 변환을 아주 잘하는 편입니다.
최근에 synplicity가 synplify의 힘을 믿고 synplifyAISC을 발표해보았습니다만.. 합성시에 오류가 몇개 발견되고 있다네요…아직은 ASIC진입은 좀 이르지만, 시간이 지나면 어찌 될지 모르겠습니다.

약간 민감하긴한데.. 현재로서는 FPGA합성 부분에 있어서는 가장 좋은 방법이 아닐까 생각합니다.





[image source: synplify homepage]

두번째는 합성 시장의 절대 강자.. synopsys의 DC-FPGA입니다.
사실 synopsys는 예전에 FPGA-Express라는 툴을 갖추고 있었고 Xilinx에 번들로 제공했던 적도 있었습니다. 하지만, 명성에는 조금 못 미치는 툴이였는데, 이를 자사의 flagship tool인 Design Compiler에 접목하려는 노력을 하더니만(ASIC to FPGA migration guide가 있었지요..), 결국 DC-FPGA라는 이름으로 나왔지요.
DC에 익숙한 엔지니어가 워낙 많아서 이것도 비교적 많이 사용되고 있다고는 합니다만, 새로운 디바이스에 대한 지원이 좀 느린것이 단점이랄까요.. 요즘에는 약간 시들한 느낌입니다.
하지만, 워낙에 ASIC flow상에서 강하니까, script상에 별 변경없이 FPGA를 만들수 있다는 건 큰 장점이겠지요.




세번째는 이글을 쓰게된 직접적인 계기인 mentor의 precision이라는 합성도구 입니다.
사실 precision은 예전에 mentor의 FPGA advantage를 evaluation해보면서 처음 접해봤었는데.. Le사실 사라진줄 알았습니다. ^^;
그런데, EETimes의 기사를 보니 아직도 건재하고, 많은 기능이 추가된 것 같습니다. DesignWare의 지원이나 Clock Gating지원, DSP/Memory macrocell inference기능들을 지원한다는 것으로 보아 상당한 수준으로 올라왔군요..


Precision Physical
[image source: mentor homepage]

ASIC logic합성쪽은 DesignComiler가 압도적인 우위를 점하고 있는 가운데.. BuildGates, Synplify ASIC같은 것들이 도전하는 형국이고..

FPGA 합성쪽은 Synplify가 가장 우위를 점하고 있지만, DC-FPGA, Precision의 추격도 가속화되고 있는 느낌입니다.

뭐.. 사용자야 즐겁지요..^^;

Xilinx, Altera, Quicklogic.. FPGA 이야기.

가끔 컴퓨터 부품 리뷰에 보면 웃지못할 기사들이 버젓이 쓰여지는 일이 있습니다.
예를 들면 “이 캡쳐 보드에는 핵심칩으로 xilinx spartan 2가 사용되었고, 이 칩은 다른 무슨 보드에서 사용된 칩이다.” 이런 기사 말입니다.

이러한 기사는 어찌보면 FPGA/CPLD에 대한 이해부족으로 나온 기사라 생각됩니다.

[wp]Xilinx[/wp], [wp]Altera[/wp]라는 회사에서 나온 대부분의 칩은 [wp]FPGA[/wp]나 [wp]CPLD[/wp]이며, 이러한 칩들은 필요할때마다 구현하고자 하는 논리 회로를 올릴 수 있도록 구성된 칩입니다.

따라서,  이 회사의 칩은 구성하는 사람이 원하는 대로 바꿀수 있기 때문에 외부에서 보이는 칩의 이름이 xilinx spartan 2이건 altrea cyclon이건 아무런 의미가 없다는 것이지요.
예를 들어 동일한 xilinx spartan2라도 네트웍 시스템하는 사람은 “네트웍 관련 로직”을 넣어서 구현할테고, 그래픽 카드 만드는 사람은 “그래픽 처리 기능”을 넣어서 만들테고, MP3 플레이어라면 “MP3 decoder”를 넣어서 구현할테니 말입니다.

FPGA는 어떤 칩인가
이런 칩들은 reconfigurable logic들인데요.. (antifuse형태를 쓰는 quicklogic과 actel은 잠시 접어두고요..)
이는 초기에 칩을 만들때 범용성 있는 로직들을 무수히 넣어두고, 이 로직들간의 연결을 제어할 수 있도록 해둔 것입니다. 즉, 로직 간의 연결제어에 따라 “원하는” 동작을 할 수 있는 새로운 칩이 되는 것이지요.
대신, 필요 없는 로직도 많고(하드웨어에서 필요없는 로직이 많다는 말은 단가가 비싸진다는 말과 동일합니다), 로직간의 연결도 멀고 해서 ASIC에 비하면 엄청나게 느리고, 전력소모도 많다는 것이 정설입니다.

초기에 이러한 형태의 칩은 하드웨어 설계자들이 구현하고자 하는 동작을 상당히 빠르게 FPGA에 올려서 시스템상에서 테스트(prototyping)하는 목적으로 사용되었습니다.
하지만, 최근에는 공정기술이 좋아지면서, FPGA도 어느정도 속도가 나오고 있구요.. ASIC공정을 타기 위한 NRE가 워낙에 비싸지다보니.. 소량이면서 아주 빠른 동작이 필요없는 경우 시스템에서 FPGA를 직접 이용하는 경우도 많이 늘어났습니다. (FPGA 제작사들은 이런 마켓을 위해서 spartan이나 cyclon과 같은 저가 FPGA를 출시하고 있습니다. )

조금더 들어가서..
FPGA는 로직간의 연결을 제어하는 방식에 따라 여러가지 칩이 존재하는데, 가장 빈번히 사용되는 방식이 SRAM 방식과 antifuse방식입니다. SRAM방식은 로직간의 연결 제어 정보를 SRAM에 두고, 이 SRAM의 프로그램이 변경될때마다 다른 형태의 로직으로 재구성될 수 있도록 만든 형태입니다.
이에 반해서, antifuse방식은 프로그래밍시에 로직 간 붙어있는 fuse중에 불필요한 fuse를 끊어서, 로직간의 연결을 만드는 방식입니다. 따라서, Antifuse 형태는 SRAM 형식보다 (일반적으로) 저전력이며 빠르지만, 재구성될 수 없다는 단점이 있습니다.

다른 잡설들
요즘 공정이 미세해지면서 Fab의 NRE가 너무 비싸지고, 고려사항도 많아지고.. 하면서..
이러다 FPGA(실은 [wp]structed ASIC[/wp])가 대안이 되는 거 아니냐.. 하는 이야기도 있습니다.
이런 마켓을 노리고 Altera는 hardcopy라는 칩도 선보였구요..
하지만, 아직까지는 별로 좋은 반응은 아닌듯 합니다. 초기에는 “열광적인” 지지자들이 꽤 많이 나왔는데 말입니다.

국내에서는 한백전자나 휴인스와 같은 FPGA 보드 사업하는 회사가 잘 되고 있지요..
책또한 국내에서 HDL이나 설계는 대부분 FPGA를 이용한 설계 책들이 주류를 이루고 있지요..
게다가 xilinx FPGA 관련 책(아래)이 이쪽 분야의 책 치고는 아주 선전했습니다. 이쪽 분야 국내서중에 몇 안되는 유용한 책이었구요.. (저자인 김혁씨는 이제 Xilinx FAE로 들어가신것으로 알고 있으며, 이번에 새 버젼이 나왔습니다. 사실 새 버젼에 대해서는 약간 아쉬움이 있습니다만.. )

Real XILINX FPGA World 8.1  

김혁 지음

 

예전(99년이던가 기억이 가물)에 verilog HDL synthesis라는 Bhasker 책을 랩에서 번역 작업을 한적이 있었습니다. 모든 예제를 synopsys로 합성해서 합성 결과를 같이 보여주려고 했었지요.. 헌데..아마도 국내에서 이 편역본을 출간했으면 망하지 않았을까 생각도 합니다. ^^; 사실 학교에선 강의시간에 synopsys를 사용하는 분들도 없을테고.. 기껏해야 몇몇 대학원생들만 사서 보셨을텐데(엔지니어 분들에게는 너무 쉬운책이니..) 채산성이 안 맞죠..^^;

음.. 그러고보니.. 글의 제목이 FPGA 이야기 였네요.. -_-;