Tag Archives: Synthesis

방명록에 쓰여진 문의에 대한 답변..(설계의 결과를 보는 법..)

(말머리: e-mail로 답변을 달라고 하셨지만, 기본적으로 문제는 공유하는 것이 좋다고 생각해서 posting합니다. e-mail로도 알려 드리겠습니다. 아.. 이제보니 비공개 문의셨군요.. 제가 항상 로그인 상태라서 몰랐습니다. 성함은 제외하였습니다. )

Algorithm쪽, 혹은 System을 배우는 연구실에서 알고리즘의 하드웨어적인 측면의 우수성을 알려고 할때 hardware구현을 시도해 보는 일반적입니다. (혹은 실제 동작을 확인할때도 많이 사용되지요..)

이때, 그 전의 선배들이 hardware performance를 비교한 적이 있어서 기틀이 잡혀 있는 랩이라면 아무런 문제가 없겠지만, 그렇지 않은 랩에서는 엄청나게 고생하게 되어 있습니다.

그래서 비교적 설치/사용이 간편한 FPGA 기반으로 hardware를 비교하는 경우가 종종있습니다. 하지만, FPGA는 사실 예전 글에서 설명드렸지만, functional verification에 사용되는 것이지, FPGA에서의 크기/속도를 기반으로 실제 hardware가 어느정도 크기/속도로 짐작하기는 매우 어렵습니다.
ASIC은 P&R이 자유롭기 때문에 복잡한 로직을 잘 표현하지만, FPGA는 각 Cell 에서 표현 할 수 없는 형태의 복잡한 로직(많은 입력/많은 출력이 관여하는)이라면, 여러개의 cell을 사용할 수 밖에 없고 이 과정에서 속도/크기가 나빠지기 마련입니다.

따라서, FPGA에서 나오는 속도/크기는 그냥 FPGA에서 의미를 가지며, ASIC에서는 하드웨어 형태를 추정하기는 어렵습니다(물론, 어느정도 연관관계가 있으므로, 전혀 무의미하다 할 수는 없습니다.)

문의 하신  부분의 테이블은 Artisan에서 제작된 0.18um (어느 회사 공정인지는 모르겠습니다만..) standard cell library를 이용하여 합성하고 그 값을 비교한 값입니다. Artisan은 잘 알려진 Physical IP제작 회사이면서 라이브러리 제작회사죠.. 이번에 ARM에 합병되었습니다만.. ^^;
전 세계적으로 상당히 많은 회사에서 artisan라이브러리를 지원하고 있는데,
국내에서는 동부-아남에서 Artisan라이브러리를 쓰고 있죠.  (Hynix도 사용하던가요? hynix는 virage였나? 가물..)

Table III) comparison of synthesized results
| Li’s Architecture | Our Architecture
————————————————————————————————–Technology | 0.18um Artisan CMOS | 0.18us Artisan CMOS
Critical path | 10ns | 6ns
Working frequency | 100MHz |148.5Mhz
Gate count | 13.6k | 15K
Decoding speed | less than 1 code per cycle | 1code per cycle
Capacity | SDTV | HDTV
————————————————————————————————–

위의 테이블에서는 동일 공정에서 critical path delay 가 예전것이 10ns이고, 제안된 것이 6ns이므로, 더 좋을 것이다. 뭐 이런 이야기겠죠? ^^;

unix 컴퓨터에 synopsys 환경 구축은 기본이겠지요?
보고 따라할 수 있는 자료나 책이 있으면 링크 혹은 추천 부탁드리겠습니다.
또는 이러한 교육을 받을 수 있는 곳이 있다면 소개 부탁드립니다.

위의 결과가 synopsys에서 수행되었다는 보장은 없습니다만, synopsys일 가능성이 90%이상이겠구요(ASIC용 logic합성 시장에서 90%이상의 market share를 가지고 있으니까요..).

가장 좋은 방법은 IDEC이나 IT-SoC 교육을 한번 다녀오셔서, 전반적인 flow에 대해서 이해하시는 것이 좋을 것입니다. Synopsys Korea의 교육이 있습니다만, 워낙에 비싸구요.. (IDEC 교육과 동일합니다)

기본적으로 보고 따라하실 수 있는 자료도 IDEC에 교육 자료 부분에 보시면 design compiler부분에 있습니다.
설치에서 따라하실 수 있는 자료는 synopsys에서 같이 따라나온 install guide를 보시는 것이 가장 정확합니다.

툴 설치를 정상적으로 마치셨고, 기본적인 사용법을 익히셨다면 이제 합성이 가능합니다.
로직 합성을 할때 툴과는 별개로 target library라는 것이 필요한데, 이것은 어떤 공정(위의 테이블에서는  0.18um공정에 해당하는 artisan library였죠..)을 대상으로 합성할 것인지 결정하는 것입니다. (FPGA에서 device선택과 비슷하달까요?)
이건 IDEC에서 배포하는 MPW용 몇몇 라이브러리를 사용하시면 될 것 같습니다. 하지만, 이 MPW용 라이브러리는 MPW기간에만 사용할 수 있으므로, 연구용으로 계속 사용하시기는 어려울 것입니다.

따라서, IDEC에서 배포하는 MPW용이 아닌 IDEC 자체 제작 라이브러를 사용하시거나(상용 라이브러리에 비하여 약간 라이브러리의 질이 떨어집니다만…), 교수님께 부탁드려서 몇몇 회사(삼성, Hynix, 동부/아남)에 NDA(정보 비공개 각서)를 채결하시고, 이를 연구용으로 받는 방법도 있습니다. 이 경우 NDA 조건을 잘 지키셔서 좋은 정보를 제공해준 회사들과 문제가 발생하지 않도록 신뢰를 유지하시는 것도 중요합니다.

학생일때는 최대한 IDEC을 활용하는 것이 좋겠죠.. ^^;
답변이 되었을까요?

Precision이 Synplify Pro보다 좋은 성능을 낸다고 하네요.

Mentor의 FPGA 합성 툴인 Precision.

FPGA 합성 도구.. 삼파전?이라는 글에서 잠시 다룬적이 있는데, 사실 그 글을 사용할때는 예전 FPGA Advantage에 번들링 되어 있던 Precision을 생각하고 썼었는데요..

ESNUG의 글을 보니 Precision이 Synplify Pro보다 더 좋은 결과를 내준다는 보고가 최근에 들어왔네요.

게다가 가격은 Synplify Pro의 1/3 이라고하니 가격 경쟁력도 있습니다.

나중에 한번 evaluation을 해 볼까.. 하는 생각이 드네요..
회사에서 FPGA는 prototyping정도로 밖에 안쓰는 관계로 그리 심각히 필요치가 않다는 것이 문제지만요..

FPGA design을 많이 하시는 분들은 Precision을 고려해 보시는 것도 좋겠네요.
IDEC의 지원을 받으시는 학생 분들은 두 가지 좋은 툴을 골라 쓸 수 있으니 얼마나 행복하십니까. ^^;

IDEC의 사업을 통해서 tool에 익숙한 엔지니어들이 많이 배출되는 건 아주 긍정적입니다. 학생때 왜 좀더 열심히 툴을 쓰지 않았나 몰라요..^^;

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의 추격도 가속화되고 있는 느낌입니다.

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