Tag Archives: SystemC

Low Power VMM 공개

가끔 올리는 짧은 소식 몇 가지.

1.

Synopsys에서 Low Power Verification Methodology Manual을 공개하였습니다
Solvnet ID가 있으시다면 누구라도 여기(http://www.vmmcentral.org/vmmlp)에서 다운 받으실 수 있습니다.

저는 다운만 받고 아직 훓어보지도 못해서 no comment입니다. ^^;

 

2.

Mentor가 OVM을 기반으로 VMM code를 지원하겠다고 발표했습니다. (실질적으로는 VMM의 function을 OVM 함수를 이용하여 구현한 것이겠습니다)
VMM을 기반으로 작업했던 사람을 OVM으로 끌고 오겠다는 셈이겠지요. (http://www.mentor.com/products/fv/methodologies/_3b715c/cb_rf.cfm 에서 Verification Cookbook을 다운받으실 수 있습니다.)

아래 posting에 댓글 달아주신 홍용재님의 글처럼, OVM은 e, SystemC로 지원할 계획을 가지고 있습니다. 대부분의 interface 함수를 공유하게 될 것이니, 기존의 작업은 그대로 둘 수 있고, e, SystemC를 HVL로 이용하여 모델링 하시던 분들을 역시 적극적으로 끌어들이겠다는 전략으로 해석됩니다.

 

3.

드디어 simulation 가능한 툴이 생겨서 OVM을 좀 보고 있습니다. SystemVerilog의 Class를 참 잘 이용한 것 같습니다. 제가 평소에 하는 프로그래밍이라는 것이 대부분 모델링이라 보통 프로그래밍을 할 때 속도 문제로 OOP는 잘 사용하지 않는데(특히 virtual function의 경우 상당히 느려집니다), 걍 편하게 살자는 마음과 Verification에 한정하니 머리가 편해지는군요. OOP라는 것이 처음에 class design(실제적으로는 상속의 남발 ^^;) 잘못하면 낭패를 보는 경우가 많은데, 대부분의 코드가 공유될 때 편하긴 편하지요.

 

4.

ABV를 여쭈어 보시는 분들이 많은데 SystemVerilog에서 출발해야 할 부분이라고 생각되어서, 취미 삼아 Verilog사용자를 위한 SystemVerilog Guide를 지난달부터 작성하고 있는데, 회사 일과 크게 관련이 없는지라 주말에 집에서 하는 작업으로 한정하고 생각하다 보니 진도가 아주 느립니다. 어느 정도 정리되면 올리겠습니다. (대부분 doulos.com의 Tutorial 자료를 참고하고 있고, 내용에서 빠지는 부분을 채우고, 제 생각에 별로 필요 없는 부분 – 그런게 있나요.. ^^; -은 제외하고 작성하고 있습니다.

  —

쓰고 보니 요즘 문서작업으로 바쁜데.. 그 와중에 또 글을 쓰는 건 뭐지… 라는 생각이 드는 군요. (시험 전달에 이상하게 몰아두었던 만화나 드라마나 심지어 논문이 재미있어지는 것과 비슷한 현상일지도..)

Mentor의 Summit Design 인수!

우와~! 오늘 mentor graphics가 summit design을 인수했습니다.

[wp]Mentor Graphics[/wp]는 뭐 다 아시다시피 EDA업계의 number3 이죠..^^; (누가 넘버 쓰리래~! 넘버 투지.. 라고 멘토 다니는 제 친구는 이야기할지 모르겠지만, 작년 매출상에서 넘버 쓰리 맞습니다…여하튼)
Mentor의 (실질적인) 대표적인 툴로는 calibre, FPGA advantage, Modelsim등이 있는데, 아마도 modelsim이 front-end 설계자들 사이에서는 가장 유명할테구요.. 실질적으로 돈이 되는 분야는 calibre라고 들었습니다.

여하튼… 다시 돌아와서..
Mentor의 요즘 행보를 보면 system level design & verification에 아주 집중하고 있는 모습을 보여주고 있습니다.
여러가지 [wp]systemC[/wp]와 [wp]SystemVerilog[/wp]기반의 platform들을 연이어 출시하고 있구요..(지난 posting에서 잠시 소개해 드렸던 AVM도 있습니다만..) 투자도 열심인 듯 하더군요.

그러더니만… 역시 system level design & verification 부분에서 걸출한(그러나 국내에는 참 안알려진) summit design을 인수 했습니다.
summit design은 2000년도에 이미 시스템 디자인을 위한 virtual CPU라는 툴과 visual Elite라는 툴을 출시했으니, 시스템 설계/검증 부분에서는 아주 오래된 기업입니다.

저는 개인적으로 summit design과 여러가지 인연이 있는데요..

우선 제가 다니는 회사가 아주 예전에는 summit design korea라는 이름으로 출발했었고(네.. summit design 툴을 파는 회사였습니다), 제가 예전에 처음 HDL을 배울 시절(97년)에 Visual HDL for VHDL이라는 graphical HDL entry툴을 이용해서 설계/검증을 했었고, 약 2년간 제 주력 툴이었습니다. (사실 랩의 설계용 주력툴이었습니다. ^^;)
아직도 개인적으로 Visual HDL for verilog의 node lock키를 가지고 있고, HDL 결과를 그림으로 보여주는 툴 중에서는 가장 좋은 툴이라 생각하는데 변함이 없습니다. (FPGA advantage의 debussy보다 훨씬 좋습니다!)

단지.. HDL entry툴이라는 것이 text editor와의 싸움에서 비참하게 패배했다는 것이 문제겠지요..(entry가 아닌 분석 및 document용으로 아직도 가끔은 씁니다..)

Visual Elite for HDL.. 대부분의 툴이 visual HDL과 같군요.


딴 이야기로 흘렀군요..

맨토에서 summit design을 얼마에 인수했는지 알려지지는 않았습니다만, System Level design쪽에서 GUI 기반의 툴이 상당히 창궐하는 분위기에 적절하게 mentor에서 summit을 인수해서 이런 분위기가 더 힘을 받을 것이라 생각되는 군요.

맨토가 과연 시스템 수준 설게에서 어떤 결과를 낼지 궁금하군요..

TLM으로 설계가 이동할 것인가?

Transaction Level Modeling(이후 TLM)이라는 것이 한 2-3년전부터 SoC설계 분야에서 논문/책/툴을 쏟아내고 있습니다. 그만큼 이제 시장 상황이 익어간다는 것이겠지요.

하지만 설계라는 분야에서 RTL에서 TLM 수준으로 추상화 수준이 이동할 것이라고 믿었던 사람들도 이제는 거의 TLM 수준에서 설계가 이루어질 것이라 믿고 있지 않습니다. 그 이유는 무엇일까요?

예전에 schematic capture수준에서 HDL을 기반으로 하는 RTL수준으로 설계가 옮겨 갈수 있었던 가장 큰 이유는 logic synthesis 기술의 혁신적인 발전에 있습니다.
(저가 처음 digital logic 설계를 배우던 시절이 이 개념이 한창 바뀌던 시절이었던것 같습니다. 학부 3학년때는 schematic capture툴로 설계를 했는데, 학부 4학년때는 VHDL을 시작했거든요.. 개인적으로는 schematic capture툴로 설계를 시작한 것이 설계의 기본기를 많이 배울수 있었던 기회였기에 아주 행운이었다고 생각합니다. )
초기에 logic synthesis는 사실 (전문가가 한) schematic 설계보다는 못하지만, 그 생산성에 있어서 비교할 수 없이 훌륭했고, 어느정도 시간이 흐른 이후에는 설계의 질 또한 훌륭한 수준이 되면서 대부분의 설계가 RTL에서 이루어지게 되었습니다. (물론, 아직도 schematic capture를 이용하여 설계하시는 분들이 계십니다. 몇년전에 일본에서 온 할아버지 엔지니어였던 야노상.. HDL도 잘 모르고, STA도 몰라서 같이 일하는데 아주 괴롭고, 걱정스러웠습니다만.. 동작 잘하는 칩을 만드는 엔지니어였습니다. ^^; 일면 부럽기도 하고요..그 나이까지 엔지니어를 한다는 것이요..)

TLM 수준에서 설계가 이행되지 못하고 있는 큰 이유는 구현(implementation)을 위하여, 손으로 재설계를 해야 하기 때문입니다. 즉, TLM으로 만들고 난 이후에 이를 RTL로 이전시킬 만한 (괜찮은) CAD 툴이 아직 없다는 것이 문제입니다.

뭐, 여러가지 시도가 있기는 합니다만.. 99년에 제가 한창 CAD 알고리즘을 공부할때 behavioral synthesis라는 논문들을 보고.. 이거 돈 되겠다.. 라고 생각했었는데..^^; 사실 이 분야에서 제대로 된 CAD툴이 아직도 못나오고 있는 실정입니다. (비슷한 것으로 자연어 통역기.. 70년대부터 계속 연구되었지만.. 아직까지 못나오고 있습니다… 인공 지능 분야에서 나오지 못할것으로 예상되는 프로젝트 중의 하나로 나와있더군요..^^; 아직 연구는 많이 하지만요..)
여하튼.. TLM 수준에서 RTL로 가는 건 앞에 말한 예보다는 쉬운 것이니 향후 몇년 내에 나올것이라 예상됩니다만.. 아직은 아닌 것이지요..

그럼.. TLM 수준의 설계는 이대로 사망하는 건가요?

TLM은 검증을 싣고..

TLM이 새로운 개념이 아니라는 것은 [wp]verification[/wp] engineer쪽에서는 기본입니다.
왜냐.. 예전부터 검증계에서는 TLM이 좋은 방법이었거든요..
SystemC는 이제 설계 언어라기 보다 검증언어입니다. 물론, architectural simulation하려고 할때 timed model을 예전 C++만을 이용할때 보다 아주 편하게 해주기는 합니다만, 이것이 설계는 아니지 않습니까…

이런 모습을 반영하듯, 초기 systemC는 synopsys에서 synthesizable subset을 지정하고 했습니다만.. 설계 언어로는 대부분 아무도 사용하지 않습니다. (정말 불편하죠..)

이제 SystemC에 추가되고 있는 기능은 대부분 검증 관련입니다. HVL(Hardware verification language)로의 확장에 역점을 두는 것이지요..

SystemVerilog도 마찬가지 입니다. verilog 2001에서 확장되어 발표된 SystemVerilog는 System설계 언어라기 보다 현재로서는 Verilog+HVL이라 할 수 있습니다. (많이 약합니다만..)

TLM기반의 SystemC, systemVerilog의 확장 라이브러리들

[wp]SystemC[/wp]에서는 [wp]Cadence[/wp]의 TestBuilder(이제는 CVE), 그리고, 이를 기반으로 한 SCV가 있습니다.
또한, 최근 멘토에서 AVM(Advanced Verfication Method)라는 검증 methodology(실은 라이브러리)가 나왔습니다. (http://www.mentor.com/products/fv/_3b715c/cb_download.cfm). 아마도 Cadence가 donation한 SCV(SCV good to go. Sir! ^^;)에 대한 대항마로 생각되는 부분이 많은데요.. 둘다 무료이고, 공개된 library이니까 설계하는 저희들이야 고맙죠.
국내에서는 CoSOC이라는 서울대 사업단에서 SCV기반의 검증 라이브러리가 나왔는데..  저는 사실 교육을 받고 왔지만 아직도 목적성을 잘 모르겠더군요.. 아무래도 업체가 아니고, 학교 연구소에서 국책 과제로 수행하는 것이다보니 완성도가 아직은 부족한 것 같습니다. (흠..이름을 잊어서 홈페이지에 가봤는데 없는 걸 보니 그냥 접었나보군요)

두 라이브러리 모두 역점을 두고 있는 부분이 [wp]assertion[/wp], functional coverage, constrant random vector generation입니다. 사실 검증에 있어서 coverage directed constrant random testing이 대세니까요..

요즘에 검증쪽 일을 할라고 슬슬 작업중인데.. 음.. 삽질을 많이 할듯 해서 걱정입니다.