DVCON 2016 간략 리뷰

DVCON2016(https://dvcon.org/) 에 다녀왔습니다.

DAC15때 Draft만 적고 publish를 못한 전력이 있어서, 되도록 빨리 쓰고 올릴려고 했습니다만, 쉽지 않았습니다.

DVCON은 처음 다녀왔는데요. 일단 주제가 Verification이라는 부분으로 한정되어 있어서 내용에 대한 집중이 좋았다는 측면에서 DAC보다 괜찮았습니다. (물론, DAC의 경우 설계, 검증, 공정, 소프트웨어를 포괄하는 더 다채로운 행사와 폭넓은 내용을 포괄하고 있습니다만, 실제로 수많은 섹션이 동시에 열리면서 제가 직접 볼 수 있는 건 아주 제한적이라는 점이 안타까웠거든요.)

DVCON2016의 내용은 요약하자면..

일단 UVM을 빼놓고 이야기하기 어렵습니다. 실제 발표된 대부분의 내용이 UVM을 기반으로 설명할 정도로 UVM이 검증 분야에서는 널리퍼졌다는 점과 UVM1.2가 IEEE1800.2으로 들어간다는 점.

두번째로 HLS를 위해서 SystemC synthesizable subset이 정의되고 있다는 점과 생각했던 것보다 HLS의 기반이 커지고 있다는 것.

세번째로 Portable stimulus에 대한 정의가 진행되고 있다는 점. 이건 stimulus를 하나 만들어서 만들때 system firmware, emulation, top level simulation(&  subblock level simulation)등의 검증에 적용시킬 수 있었으면 좋겠다는 의도가 있습니다.  접근 방법은 별도의 언어를 정의하는 것과 이전에 만들어진 걸 conversion하는 툴을 만드는 방식이 동시에 진행되면서 어떤것이 좋을지 테스트하고 있는 중입니다.

논문 발표의 경우 여러 부분으로 분리되어 진행되었는데, 많은 부분이 UVM의 활용과 개발에 할애되었고, 저도 관심분야라 이쪽 위주로 들어갔습니다. UVM에서 디자인 패턴을 활용하자는 이야기는 그전에도 나왔는데(사실 UVM 자체에서 몇몇 디자인패턴 – 대표적으로 factory pattern – 이 이용되었죠), 이를 조금 더 폭넓게 사용할 수 있도록 제안 + 라이브러리가 발표되었습니다 (best paper도 이쪽에서 나왔죠). UVM의 경우 다양한 회사에서 적용 예와 자신들의 필요에 따라 새로운 class를 만들고 개선해서 github에 올리고 공유하는 활동이 이어졌습니다.

이외에 다양한 tutorial과 on-site meeting들이 있었습니다만, 자세히 적기는 그렇고.. 인상적인 것만 이야기하자면..

Software 부분에서는 일반적이라 할 수 있는 TDD와 Design Pattern이 하드웨어 검증 부분에서도 급격하게 도입되고 있다는 점이 볼만합니다. 이쪽 사람들이 하드웨어 + 소프트웨어의 background를 가졌기 때문일 것 같습니다.  여튼, TDD를 위해서 unit testing environment (심지어 assertion에대한 unit test framework까지도..) 에 대한 이야기들이 많이 언급되었습니다.

Emulation + formal verification이 simulation을 대체할 수 있을것인가에 대한 패널토론이 있었는데, simulation에 대한 보조적인 방식에 머무를 것이라는 것이 ‘모든’ 패널들의 의견이었습니다. 다만 위의 기법이 점차 중요해진다는 점도 동의하기는 했지만, ‘여전히 보조적인 수단’이라는 점은 명확히 하더군요. automatic formal verification app의 성장세도 눈여겨 볼만합니다. 

음.. DAC나 DVCON이나 가보면 참 부러운 것이 나이 많으신 어르신 분들과 젋은 친구들이 섞여서 기술적인 이슈에 대해서 비교적 자유롭게 토론한다는 점입니다. 이게 이쪽 업계가 오래 지속된 곳의 특징일 것이고, 우리도 한 20년쯤 지나면 이랬으면 좋겠네요.

 

wxPython

예전에 simulator를 만들때 cross platform에서 GUI를 만드는 것이 참 어려웠던 기억이 있습니다.

그나마 좀 쓸만한 것이 TK 기반의 gui들인데, 그나마 perl-tk를 이용하는 것이  가장 무난했던 것 같습니다. (그 전에는 TCL/TK를 썼지만, linux에 perl은 windows를 제외한 대부분의 platform에 porting되어 있으니까요.. 단, perl-tk는 가끔 없는 것도 있다는 것이 함정)

Python을 잘쓰지는 못하지만, 역시 TK inter가 있으니까요. 문제는 다들 느끼시듯이 TK가 그다지 이쁘지 않다는 것..

회사 분이 소개시켜주셔서 wxPython에 관심을 가지게 되었는데.. platform의 native GUI API library를 사용한다니, TK보다야..

여하튼, 찾아보니 아래와 같은 PDF 문서가 검색되네요.. 아쉽게도 번역서는 없고.. 좀 봐야겠습니다. Python은 예전에 마눌님께서 bioinformatics에 관심이 있다고 하셔서 잠시  봤던 것이 전부인데(마눌님은 안하시고, 저만 교양삼아 봤다는..).. 그래도 뭐 언어가 다 언어죠..

시간이 될 때 틈틈히 봐야겠습니다.

http://eduunix.ccut.edu.cn/index2/pdf/Manning.Publications.wxPython.in.Action.Mar.2006.pdf

HM 모델에서 doxygen으로 문서 만들기

이거 사실 어려운 거 아닌데, 생각보다 모르시는 분들이 많으시네요..

HM model에 보면 doc directory에 doxygen을 통해서 문서를 생성할 수 있도록 설정이 되어 있고,  graphviz를 이용해서 아주 훌륭한 class 상속관계도를 볼 수도 있습니다.

저는 Linux에서라면야 대부분 깔려있겠지만, 혹시라도 안깔려 있다면 sudo apt-get이나 sudo yum install 통해서 doxygen package와 graphviz package를 설치하십시요.

이후에는 doc 디렉토리에서 doxygen이라고 입력하시면 html 디렉토리가 생기고, 거기에 있는 index.html을 web browser로 보시면 됩니다. (보시면 HM 3.4라고 적혀있을텐데, 살포시 무시하십시오. 그건 그냥 doxygen configuration에 그렇게 적혀 있으니 그런 겁니다.)

windows의 경우 저는 cygwin 신봉자(?)라서..

cygwin의 setup program을 통해서 마찬가지로 doxygen을 설치하시고..

graphviz의 cygwin port를 여기에 나온 설명대로 설치합시다. 요약하면, cygwin terminal에서 아래 명령을 통해서 setup을 실행시키고(당연히 cygwin setup입니다!!)

cygstart -- /path/to/setup.exe -K http://cygwinports.org/ports.gpg

설치할때 여러 미러 중에서  ftp://ftp.cygwinports.org/pub/cygwinports 를 선택해서 사용하는 것입니다. 위의 미러를 선택하면 graphviz package가 보이므로, 이를 설치하면 됩니다.

쉽죠?

p.s.

살짝 관계없는 이야기인데.. 예전에 doxygen 가지고 verilogHDL 문서를 만들면 어떨까해서, 이런 저런 scripting을 했던 경험이 있는데 별로 만족스럽지는 못했었습니다.

그런데, 이번에 doxygen보는 김에 생각나서 보니, systemverilog에서 doxygen을 사용하는 것이 가능하더군요. (물론, 스크립트를 통해서기는 하지만..)

음.. 써봐야지.. 🙂