Processor Architect.... egoist
프로세서, SoC, ASIC 설계에 대한 재미난 이야기들. 그리고, 쉼표...
BLOG main image
Notice
babyworm은?
CATEGORY
전체 (307)
SoC 설계 관련 (126)
마이크로 프로세서 이야기 (24)
유용한 설계도구 (7)
검증이야기 (15)
관련 새소식 (38)
초보자 코너 (17)
북마크 (2)
코덱 (0)
개인적인 (137)
책이야기 (19)
만화/애니메이션 (3)
영화/드라마이야기 (4)
음악이야기 (13)
Boards
질문 게시판
ASIC plannet
Recent Entries
열심히 살아야겠다.
잡담 몇 가지..
애증의 관계? 아래아 한글... (1)
창조를 위해서 필수적으로... (2)
VP8 and WebM (2)
새로 blog들을 모아봤어요..
일단 끝.. 이라고 할 수도... (2)
Cygwin1.7에서 Eclipse CD...
AMBA 4.0 공개 (1)
그러게 진작에 잘하지 (3)
Recent Comments
저도 한컴사의 워드는 1.5때...
06/21 - likesam
당연하지~!
06/12 - babyworm
저도 얼마전에 한국에 있는...
06/07 - 홍용재
Homesick을 겪을때는 지났잖...
05/25 - babyworm
읽어보려다가 초반부터 비명...
05/24 - 홍용재
한RSS에 추가 add to Bloglines
add to google


Add to Technorati Favorites



TAGS
마이크로 프로세서 synopsys verification SystemVerilog verilog HDL 개인적인 EISC PLI ARM AMD GPU Mentor Cadence assertion 프로세서 FPGA 검증 Intel VMM LaTex
Recent Trackbacks
WebM 조금 이르지 않을까?
내 맘대로 보는 세상
tkhwang의 생각
tkhwang's me2DAY
똑똑한 32비트 마이콤? Cantus
Dr.Lee's Blog..
죠커의 생각
jokka's me2DAY
불필요하게 어려운 말을 쓰는...
한날은 생각한다
Calendar
«   2010/07   »
일 월 화 수 목 금 토
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archive
2010/07
2010/06
2010/05
2010/04
2010/03
2010/02
2010/01
2009/12
2009/11
2009/10
2009/09
2009/08
Link Site
Dreamer GUNDAM의 블로그
EDA board
Luuvish's agit
Planet KTUG
[B]babyworm의 개인적인 블로그
[B]PAPA JOHN'S
[JW]iDea Holic
[JW]JS™
[JW]Jung-Hyeon's weB@LOG
[JW]Kino's blog
[JW]애니와 만화의 세계!
[JW]첫사랑 첼로
[JW]최신컴터 놀이~
[W] eetimes
[W] KERIS 학술 정보 서비스
[W] Microprocessor Report
[W] verification guild
[W]ASIC&FPGA cafe
[W]filedic
[W]WWW CA Page
[W]아람92
332369 Visitors up to today!
Today 17 hit, Yesterday 177 hit

English Ver. (by Google)
Creative Commons License
이 블로그의 모든 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
'verification'에 해당되는 글 14건
SystemVerilog for Verification (2) | 2009/08/05
Mentor의 Verification Academy (2) | 2009/08/04
Project Veripage etc... (4) | 2009/03/09
Low Power VMM 공개 | 2009/02/26
집중이 안되는 여름 (2) | 2007/06/19
PLI와 Simulator의 연결(I) | 2007/06/11
Perl을 이용해서 검증할때 유용한 팁 | 2007/06/04
Level of abstraction (6) | 2007/03/27
일단 정리되었습니다. (2) | 2007/03/19
Designer, Verification Engineer를 위한 책들.. (2) | 2006/12/28
포스팅이 적어진 이유 (4) | 2006/12/10
검증의 대세는 system verilog? (2) | 2006/11/28
PSL을 포함한 새로운 VHDL 표준.. Verilog를 넘을수 있을까? (2) | 2006/11/16
verification 시작.. (4) | 2006/11/11
SystemVerilog for Verification
[babyworm, 2009/08/05 11:25, 책이야기]
이 책은 얼마전에 새로 사서 요즘에 읽기 시작한 책인데요, 여기에도 있네요. 온라인 상에서 찾을 수 있을 줄은 생각도 못했습니다. :) 대단한 scribd.com..

SystemVerilog의 경우 설계용 언어라기 보다는, 또한, 모델링용 언어라기 보다는(C/C++에 기반을 둔 SystemC가 있기 때문에), 검증용 확장이라 생각하고 있는데, SystemVerilog for Design에 이어서 검증에 초점을 두고 쓰여진 책이지요.

저도 앞 부분을 읽고 있는 중이라 아직 뭐라 말씀드리기는 너무도 이른 시점이고... 관심 있으신 분은 살펴보시면 한번 보셨으면 합니다.

지난번에 한번 말씀드렸습니다만, systemverilog에 대하여 좀 정리해서 나중에 한꺼번에 올릴려고 계획중에 있는데요.. SVA 책이나 이책을 보면서 내용을 좀 더 추가하고 있는 중입니다. 항상 글을 쓰고 즉흥적으로 올려야지, 나중에 보면 참 부끄러운 것이 많아서 자주 들춰보게 되고, 점점 더 못올리게 된다는 단점이 있군요.
문제는 이러다가 충동적으로 그냥 글을(교정도 안하고) 올리는 경우가 생기는 것도 문제구요. 쩝.

쓰고보니, 이 글도 책이야기라기 보다는 잡담이군요 :)

p.s.
지난번에 산 책중에 step-by-step functional verification with systemverilog and ovm이란 책이 있는데, 와.. 내용은 분명 좋은데, 페이지마다 글자가 너무 많아서 참 진도가 안나가는 책이더군요 :)  바꿔 말하면 사셔도 크게 후회하지 않을 분량의 책입니다. ^^;

babyworm
2009/08/05 11:25 2009/08/05 11:25
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
verification

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/307
홍용재 | 2009/08/08 05:18 | PERMALINK | EDIT/DEL | REPLY
verification 쉽지않은 문제라는 것을 요즈음 절실하게 느끼고 있습니다. gate level simulation을 진행 중인데 x 와의 전쟁을 치루는 중입니다. ^^ 더구나 rtl에서 사용하던 e 환경이 동작을 안해서 동료 한명이 죽을 고생을 하고 있구요. 다음 프로잭트부터 사용할 검증환경을 다시 설계활 계획을 세우고 있군요. 좀더 reusable 하게...저야 배우는 것 많아서 좋습니다만...^^;
babyworm | 2009/08/12 17:41 | PERMALINK | EDIT/DEL
오죽하면 waveform viewer들에 trace unknown이란 기능이 있을까 ^^;
RTL에서 돌던것이 gate 수준에서 안도는 건 verification 모델이 클럭 rising 에서만 값을 sample하지 않는 경우가 많을텐데.. 뭐, 잘 알아서 하겠지 :) 아주 좋은일하고 있으니 나중에 경험을 공유좀 해봐~
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Mentor의 Verification Academy
[babyworm, 2009/08/04 09:22, SoC 설계 관련/관련 새소식]
OVM과 AVM을 밀고 있는 mentor에서 verification academy를 열었습니다. [여기]

현재는 아래의 세개 모듈로 구성되어 있으며, Flash 기반으로 구성되어 있어서 왠만한 웹브라우저에서는 모두 접근 가능하다는 장점이 있습니다. 단, 현재는 회사 메일로만 가입을 받고 있다고 적혀 있는데, 학생들도 가능할지는 모르겠습니다.

Evolving Capabilities Module (전반적인 overview)

Assertion-Based Verification Module (ABV에 대한 설명)

  • Welcome & Overview | Preview Session 1 | Launch Session
  • Introduction to Assertion Based Verification | Preview Session 2 | Launch Session
  • Maturing Your Organizations ABV Capabilities | Preview Session 3 | Launch Session
  • Assertion Languages and Libraries | Preview Session 4 | Launch Session
  • Introduction to SystemVerilog Assertions (SVA) | Preview Session 5 | Launch Session
  • Introduction to Open Verification Library (OVL) | Preview Session 6 | Launch Session
  • Assertion Patterns | Preview Session 7 | Launch Session
  • Cookbook Examples | Preview Session 8 | Launch Session
  • Planning For Formal ABV Success | Preview Session 9 | Launch Session
  • Questa Simulation ABV Demo | Preview Session 10 | Launch Session
  • 0-In Formal ABV Demo | Preview Session 11 | Launch Session

(CDC) Clock-Domain Crossing Verification Module (CDC 부분의 검증 방법)

  • Overview and Welcome | Preview Session 1 | Launch Session
  • Introduction to CDC | Preview Session 2 | Launch Session
  • Understanding Metastability | Preview Session 3 | Launch Session
  • Metastability Verification Flow | Preview Session 4 | Launch Session
  • Modeling Metastability | Preview Session 5 | Launch Session
  • Integrating CDC Into A Flow | Preview Session 6 | Launch Session
  • 0-In CDC Demo | Preview Session 7 | Launch Session
상당히 넓은 내용을 알려주고 있는데요.. mentor에서하는 강좌이다보니 Questa나 0-in 과 같은 툴을 사용한다는 점이 특징적이겠습니다.

홈페이지에서 등록 신청하시면 하루 정도 이내에 registration 관련 메일을 보내줍니다.
메일을 받은 후에 login 계정을 activation 시키면 되는 거죠. 검증 특히 ABV에 관심 있으신 분들께는 좋은 강좌일 것같습니다.





babyworm
2009/08/04 09:22 2009/08/04 09:22
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
ABV, assertion, Mentor, verification

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/306
drdonny | 2009/08/04 11:00 | PERMALINK | EDIT/DEL | REPLY
좋은 정보 감사합니다. ^^
참... 저도 지난주에 경기도민(용인 수지) 됐습니다. ㅋ
babyworm | 2009/08/05 10:56 | PERMALINK | EDIT/DEL
축~! 경기도민!
저희집에서 가까운 곳으로 오셨군요 :)
혹시 뭔가 변화가?
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Project Veripage etc...
[babyworm, 2009/03/09 14:14, SoC 설계 관련/관련 새소식]

1.
Veripage 라는 곳에서 느닷 없이 뉴스레터를 보내왔는데(그동안 왔을 텐데, 스팸 처리 되었을 가능성이 더 높지만..), 거기에 아래와 같은 문제가 있습니다.

다음에서 Z의 값은 어떻게 될까요?

bit c, e, o, r, t;
bit [2:0] v, w;
bit [5:0] x, y;
bit [6:0] z;

v = {<<{c,e,r}};
w = {<<{r,o,c}};
x = {>>{v,w}};
y = {<<3{x}};
z = {>>{y,t}};


SystemVerilog를 써 보신 분들은 보신 적이 있으실 streaming concatenation 연산입니다.
간단히 설명드리면, 병합 연산을 수행하되 << 는 병합 순서에 있어서 right-to-left로, >>는 left-to-right로 병합하라는 연산이지요.
<<N{}은 N단위로 블록을 잡으라는 의미이구요.
그다지 쓸일은 없습니다만, 가끔 복잡한 assign문을 적어야 할 때 편합니다.
저는 합성해야 할 코드는 호환성 문제를 고려해서 verilog95-가끔 2001 문법도 씁니다만-를 사용하고, 이런 귀찮은 assign은 vi의 매크로를 사용합니다만, 검증만 목적으로 하는 모델링에는 편하겠죠.

여하튼, 그래서 답이 어떻게 될까요? ㅎㅎ


2.
Veripage를 오랫만에 가보니 검증 관련 책 추천이 새롭게 많이 되어 있더군요. http://www.project-veripage.com/books.php 참고해보세요.

3.
구독하고 있는 blog중에 art.oriented 님의 블로그에 올라온 글입니다. (지난번에 alt.oriented 라고 잘못 적는  우를 범했습니다. 다시 한번 죄송합니다. newgroup인줄 알았는지 ^^;)

typedef struct tagWHATTHE {
  int    data1;
  int    data2;
  char   data[1];
} WHATTHE;

여기서 char data[1]의 의미는 무엇일까요?
정답은 위의 글을 참조하시고..

저도 simulator를 만들때 위와 비슷한 동작이 필요한 경우가 종종(이라고 쓰고 '많이'라고 읽는) 있는데, 유용한 테크닉이군요.

참고로 EISC 상에서 disassemble 해보니 다음과 같이 접근합니다.  (변수명은 tt, typedef는 test로 했고, malloc은 걍 100 했습니다.) 어떻게 나올지 짐작하는데 대충 도움이 될 것 같아서 올립니다.

test* tt = (test*)malloc(sizeof(test)+100);
c0000046:       70 a8           ldi     0x70    %R8
c0000048:       4d df           jal     c00000e4 <_malloc>
c000004a:       98 e4           lea     ( %R8     ) %R9

c000004c <.LM3>:
  tt->data1 = sizeof(test) + 100;
c000004c:       70 a8           ldi     0x70    %R8
c000004e:       09 18           st      %R8     , ( %R9  + 0x0 )

c0000050 <.LM4>:
  tt->data2 = 1;
c0000050:       01 a8           ldi     0x1     %R8
c0000052:       19 18           st      %R8     , ( %R9  + 0x4 )

c0000054 <.LM5>:
  for (i = 0; i < 100; i++) {
c0000054:       00 a0           ldi     0x0     %R0
c0000056:       89 e4           lea     ( %R9     ) %R8
c0000058:       c8 c8           addq    0x8,    %R8

c000005a <.L5>:
    tt->data[i] = i;
c000005a:       08 30           stb     %R0     , ( %R8  + 0x0 )


ldi은 load immediate, jal 은 call과 동일하고, st는 store, lea는 레지스터간의 move, addq는 add immediate입니다.  (stb는 store byte이구요)
본문에 나왔듯이 캐시 효율로 봐도 이넘이 더 좋을 듯..


쓰고나서 덧글) 테터에서 코드 하일라이트 기능이 엉켰는지 짜증 지대로.. ㅠㅠ;

babyworm
2009/03/09 14:14 2009/03/09 14:14
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
SystemVerilog, verification, veripage

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/275
형수 | 2009/03/10 14:27 | PERMALINK | EDIT/DEL | REPLY
안녕하세요. 매일 여기를 들락날락하면서 좋은 글 감사히 읽고 있습니다.(덕분에 Verification에 빠져버렸습니다.ㅎㅎ)
오늘 별안간 문제를 내시길래 처음으로 글을 남기고 도망갑니다. ^^;;;
1. correct
2. 저같은 초보는 SystemVerilog for Verification이 더 나은거 같아요.
3. 어셈코드만 볼때마다 흥미(?)가 쑥쑥.. ^^ 코어설계할 때가 기억나서요..
babyworm | 2009/03/11 09:01 | PERMALINK | EDIT/DEL
엇. 제가 아는 형수님이시려나.. :)
금방 맞추시는군요.. ^^;
요즘에 이것 저것 치고 들어오는 일이 많아서 저는 언제나 verification에 빠질 수 있을지 모르겠군요. 어셈블리는 그냥 저넘이 보기에는 분명 포인터 상수처럼 작용할텐데..라는 생각때문에 함 봤어요 ^^;
홍용재 | 2009/03/11 06:22 | PERMALINK | EDIT/DEL | REPLY
글이 몇개 밀렸다 싶었는데 퀴즈도 있었군요. ^^ 위에 형수님 답글 쓰신 것 보고 자기가 풀고 자기 답이 correct하다는 얘기인줄 알았습니다. ^^;
3번은 포인터 개념을 처음 잡아가던 시기에 data size를 잘못 계산해서 위험한(?) 버그를 만들 수도 있다고, 그냥 포인터를 쓰라는 얘기를 들었던 것 같은데 하드웨어로 내려오면 얘기가 달라지는군요.
babyworm | 2009/03/11 09:06 | PERMALINK | EDIT/DEL
무시 무시한 버그를 만들 수 있다는 그 이야기는 아직도 유용한 이야기야요 ^^;
배열을 통해서 데이터 영역을 깰 수 있는 무시무시한 문법이니까요. :)
그거야 뭐 포인터를 써도 마찬가지가 아닐까 싶지만.. ㅋㅋ
이때는 assertion을 앞에 적어주는 센스가 있어야 겠지요. 안 그러면 버그 만들고 한참 고생할 수 있으니 말이지요.
참고적으로, 속도를 빠르게 하기 위한 테크닉은 대부분 잘못 사용하면 무시무시한 결과를 초래할 수 있어요. 그런 관점에서 좀 느리더라도 strict type checking을 해주는 것이 좋으냐, 아님 빠른 것이 좋은지를 선택해야 겠지요.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Low Power VMM 공개
[babyworm, 2009/02/26 15:55, SoC 설계 관련/관련 새소식]

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

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/metho ··· b_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 자료를 참고하고 있고, 내용에서 빠지는 부분을 채우고, 제 생각에 별로 필요 없는 부분 – 그런게 있나요.. ^^; -은 제외하고 작성하고 있습니다.

  ---

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

babyworm
2009/02/26 15:55 2009/02/26 15:55
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
e, LPVMM, OPP, OVM, SystemC, verification, VMM, 저전력 설계

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/273
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
집중이 안되는 여름
[babyworm, 2007/06/19 21:22, SoC 설계 관련/검증이야기]

연일 30도를 넘나드는 더위가 계속되고 있습니다.

이럴때 항상 문제가 되는 것이 집중력이 떨어진다는 건데요.. 저도 마찬가지 입니다.
(실은 개인적으로 좋은 일이 생겨서 그럴지도 모르겠습니다만 ^^;)

오늘만해도 gcc-MinGW에서 mti vpi 연결시키는 거 때문에 잠깐 modelsim userguide를 보다가, 딴짓을 하기 시작해서 대략한 5시간동안 딴짓을 했습니다.

뭐 딴짓이라고 해도 모레쯤이나 하려던 processor market forecasting자료 정리였는데, 어짜다보니 하고 있더군요. 이건 뭐, 원래 하려던 일은 까맣게 잊고 나중에 하려던 일을 한참하다가 "아.. 내가 오늘 하려던 일은 이게 아닌데.. " 뭐 이런 시나리오라고나 할까요.

VPI 이야기가 나와서 그러는데요.. (또또.. 옆길로 빠집니다요) 회사 툴이 System Verilog-verification feature를 지원해주지 않아서, C/PLI나 만들어야 겠다는 이야기를 했었죠? 요즘 teal library를 분석하고 있는 중인데, 이거야 원.. 보면서 몇 번을 감탄한 것인지 모르겠습니다.

사실 뭐 PLI 연결하는 것이야 별 차이있겠습니까? 뭐 thread를 사용하는 것도 그렇다치구요.. 근데, PLI 연결 부분을 teal_synch.cpp라는 몰아두고, 이걸 class로 덮어씌우고 연산자 오버로딩을 해버리니 예술적인 경지에 이르르더군요. 사용하는 사람 입장에서는 이 부분이 verilog랑 붙기 때문에 어쩌구 저쩌구 생각할 필요가 거의 없도록 만들어졌더군요.

아쉽게도 저는 유연성 보다는 빠른 동작을 즐기기 때문에 teal을 그대로 이용하지는 않겠지만, (처음에는) 재미삼아 분석해 본 라이브러리인데 아주 많은 걸 배웠습니다. 천재성이 담긴 코드에요.. 저에겐 '이 정도쯤은 해야 verification engineer가 되는 건가.. 에효..' 라는 상념에 빠지게 하더군요..

C++에 익숙하시고, PLI를 공부중인 분들은 상당히 도움을 받으실 수 있을 것 같습니다. 혹시라도 관심있으신분은 http://www.trusster.com/ 에서 다운 받아보실 수 있습니다. 이거 관련된 책도 있는데, 아직은 저도 본 상태가 아니라 뭐라 말씀드리기는 어렵습니다. (TRUSS도 아직 사용해보지 못했습니만, Teal만으로도 괜찮습니다 ^^;)

아.. 그러고보니 관련 기사도 있었군요.. EETimes Korea의 기사입니다.

---
위의 부분까지는 MS Writer에서 썼는데, 평소처럼 publish하려니 좀 허전하네요.. ^^;

혹시라도 PC환경에서 cygwin/modelsim하에서 사용하시는 분들을 위하여 몇 가지만

1) Makefile.Windows를 만듭니다. 이 파일은 Makefile.linux를 복사하시는 것이 편합니다.
2) 아래와 같이 고칩니다. (필요에 따라 더 고치셔도 됩니다.)

ARCH_LIB_OPT = -L/cygdrive/c/Modeltech_6.0/win32 -lmtipli
ARCH_SHARED_SUFFIX = dll
SYS_ARCH_CC = g++
              

3) Makefile을 수정합니다.

SIMULATOR_HOME = /cygdrive/c/Modeltech_6.0
ARCH    = Windows
SIM     = mti_2_0


대략적인 힌트만 드렸습니다만, 이 정도면 필요한 부분을 추가적으로 수정하셔서 verification_top()함수를 작성하신 다음에 linking하시는데 문제 없을듯 합니다.

babyworm
2007/06/19 21:22 2007/06/19 21:22
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
PLI, Teal, TRUSS, verification, VPI, 여름

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/179
gnil | 2007/06/25 20:24 | PERMALINK | EDIT/DEL | REPLY
최근 이 글을 비롯하여 몇몇 PLI 관련 글들에 자극받아
회사 웍으로 시도해 보았는데요...

Hello World 하나 보는데 4시간 걸렸어요 ㅋㅋ;;
Solaris 8+GCC 3.X 환경인데요... Makefile 그대로 이용하면 잘 안되더라구요...

gcc -c -fPIC -I[include directory] vpi_user.c -o vpi_user.o
...
ld -G -o libvpi.so vpi_user.o ...
verilog +loadvpi=.../libvpi.so:hello_register hello_test.v

전 blog 없어서 여기다 기록 남깁니다~ 실례 ㅋ
babyworm | 2007/06/25 20:53 | PERMALINK | EDIT/DEL
verilog XL과 같은 cadence Tool에서는 PLI wizard라는 강력한 툴이 지원됩니다.
그걸 쓰시면 적절한 Makefile이 순식간에 뿅~하고 튀어나오지요 :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
PLI와 Simulator의 연결(I)
[babyworm, 2007/06/11 23:45, SoC 설계 관련/검증이야기]

Automated Functional Verification 방법에는 여러 가지가 있지만, testvector 발생 유닛(보통 Directed Random방식을 사용하지요?)과 golden model을 이용한 checker model을 만들어서 DUV(Design Under Verification)의 결과와 비교하는 것이 가장 편한 방법 중에 하나임은 부정할 수 없습니다. (여담입니다만, 국내에서는 많은 경우 golden model없이 설계하는 경우가 많아서 검증을 위하여 작성한 golden model이 실제로 RTL보다도 정확성이 떨어지는 경우가 있다는 것이 문제가 종종 발생합니다. 여기서는 golden모델의 확보에 대한 이야기는 나중으로 미루죠.)보통 golden model은 C model을 이용하게 되는데, C 모델을 Verilog와 동시에 simulation하는 것은 그리 녹녹한 일이 아닙니다.

저는 프로세서를 대부분 다루기 때문에 C모델이라 함이 대부분 ISS simulator가 됩니다. 이후에 Simulator와 C모델은 그냥 섞어 쓸 가능성이 높은데, 보시는 분께서 편하신 대로 생각하시면 되겠습니다.

우선 Simulator를 만들 때 그 목적을 정확히 할 필요가 있습니다. 초기에 Simulator의 목적은 executable spec.의 의미가 가장 중요한 의미였을 것입니다. 그래서, 대부분 function level의 정확성을 가지지요. 프로세서의 경우 보통 이야기하는 ISS(Instruction Set Simulator)정도의 수준일 것입니다.

이때 고려하는 사항은 동작의 정확성, 빠른 동작 속도, 유연한 변경 가능성(design space exploration을 해야 하니까요)과 같은 것을 고려하게 됩니다.

그런데, 아시다시피 Verilog와 Simulation을 한다던지, Verilog Model대신 사용하려고 할 경우에는 ISS level뿐만 아니라, BFM 수준, 간혹은 Pin-level accuracy를 필요하게 됩니다. 통신이나 영상쪽의 모델은 뭐 Functional model이나 BFM이나 큰 어려움이 없습니다. Latency가 거의 정의되어 있기 때문이지요.

프로세서의 경우 약간 복잡해지는데, hazard의 발생, instruction issue rate의 변화, exception의 발생을 고려해야 하는데, 이 경우 bus function이 발생하는 Instruction Fetch와 Data Access stage의 동작을 모사하기 위해서는 대부분의 pipeline을 표현해내야 합니다. 예전에 pipeline 수준의 accuracy를 가지는 simulator를 만들고, pin-level interface를 붙여서 나름대로 쓸만한 PLI model을 만든 적이 있지요. 단지 문제는 pipeline수준의 accuracy를 가지다 보니, 너무 너무 느려져 버린거지요.

쉽게 쉽게 만들려면 functional model로 simulator를 만들고, Verilog Model(DUV)상에 하나의 명령이 retire되는 순간에 register들의 값을 비교하는 방법도 가능합니다. 하지만, 해당 model이 불필요한 hazard 발생은 없는지, Instruction Fetching에 불필요한 사항이 추가되지는 않았는지 확인 할 수는 없습니다. (당연하죠.. reference model이 functional model이니 timing spec.을 만족시켰는지는 알수 없는것이지요)

흠.. 많이 옆으로 샜는데요..

C Model과 Verilog와 붙이는 방법이 Verilog-PLI (Programming Language Interface)를 이용하는 겁니다. Simulator는 clock단위로 동작하므로, 느낌상 아래와 같이 동작시키면 될 것 같습니다. 이런 경우에 verilog에서 C function을 호출할 때 가장 많이 사용되는 건 calltf()를 이용하는 방법입니다.


always @(posedge clk or negedge rst_x) begin

  $run_sim_calltf(xxxx);

end

즉, run_sim()을 calltf()의 callback function으로 등록하는 겁니다. 그리고, 매 클럭 calltf()를 불러주는 것이지요.

근데, simualtor의 이전 상태를 계속적으로 보존해야 하는 경우에는 매 클럭 새롭게 호출되는 calltf()를 이용할 때 문제가 있을 수 있습니다. (사실 그리 어려운 일은 아닙니다만, 예를 들기 위하여 ^^ ) 그래서, 내용을 보존하고 싶을 때는 misctf()를 사용하는 것도 괜찮습니다. misctf()는 원래 verilog simulation의 이런 저런 정리 작업을 하는데 사용하는 목적으로 만드는 건데요. 아래와 같이도 사용할 수 있습니다.


initial begin

  $run_sim_misctf(data, reason, paramvc);

end

뭐 이런 느낌입니다. misctf()의 경우 시뮬레이터의 초기 시에 simulator에 연결된 이후에 simulator의 종료 시까지 계속 머무르면서 파라미터의 값이 변경 될 때 마다 제어권을 가집니다. 이 파라미터의 변화시마다 클럭이 변화되었는지 확인하고, 클럭이 변화하였을 때 값을 호출하면 되겠습니다.


아래는 한 4년 전에 만든 PLI 모델중의 misctf부분인데요.. 실제 구현은 없으니 공개해도 별 문제 없을 것입니다. ^^; 대략 이런 느낌으로 만드시면 됩니다. :)
다음 번에는 좀 더 재미난 PLI 함수를 다루어보죠.. (아.. VPI는 초반에 좀 다루지 않네요. ^^; Blog의 예제를 위해서라도 예전에 acc_와 tf_를 이용해서 만든 PLI 모델을 업그레이드해야겠군요. )


int misctf_proc(int data, int reason,int paramvc) {
 
 static int  reset_called = FALSE;
 int   POInt;
 
 
 
 switch (reason) {
  case reason_paramvc : { // 파라미터의 값 변화로 인한 호출의 경우
   if (tf_getp(PIN_RST_X) == 0) { // reset state
    // 아래의 형태는 초기 조건에서의 리셋 호출을 위하여 사용된다.
    if (reset_called == FALSE || paramvc == PIN_RST_X) {
     io_printf("$AE32KB_RUN : CORE RESET CONDITION\n");
     // 실제적인 reset을 수행한다.
     
     reset_called = TRUE;
     
     POInt = 0;
     
     if (tf_getp(PIN_OSIEN) == 1) {
      POInt = POInt | OSIEN;
      if (tf_getp(PIN_OSIROM) == 1) {
       POInt = POInt | OSIROM;
      }
     }
     ResetCore(POInt);
    }
   }
   else if ( paramvc == PIN_CLK ) {  
    if (is_posedge(PIN_CLK,paramvc) == TRUE) {
     // 변경된 모든 입력 값을 받아서 반영한다. 
     apply_input();
     io_printf("%s : CLOCK POSEDGE\n", tf_strgettime());
     
     EndClock();
     // end_clock함수
     
     StartClock();
     // start clock 함수
     
     // 변경된 데이터를 기반으로 핀과 레지스터를 변경시킨다.
    }
   }
   break;
  }
//  case
  default :
  break;
 }
 
 // apply outputs
 apply_output();
    return 0;
}


이제 EISC processor도 어느 정도 정비를 마치고, 빠른 미래에  좀 더 공격적인 마케팅을 시작할 예정입니다. ^^; 많이 기대를 해 주세요.. 특히 학생분들께 좋은 기회가 많이 돌아가도록 노력 중입니다.
babyworm
2007/06/11 23:45 2007/06/11 23:45
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, PLI, Simulator, verification, verilog HDL

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/177
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Perl을 이용해서 검증할때 유용한 팁
[babyworm, 2007/06/04 23:46, SoC 설계 관련/검증이야기]

뭐랄까요.. 요즘 이런 저런 일로 바쁘다보니, 사람이 좀 얇팍하게 글을 쓰게되네요. :)
(퇴고 없이 그냥 온라인에서 쓰는 글이라 앞뒤가 없을지도 모르겠습니다.)

오늘은 여러분들께서 perl을 이용해서 Verilog HDL을 위한 testbench를 작성할 때 간단히 명령어 해석기를 만들어 사용하는 방법을 알려드리죠.

이 방법은 제가 JTAG을 위한 protocol을 만들다가 생각해낸 방법인데요.. 아주 유용하게 쓰고 있습니다.
얼마전 AXI FileReader와 같은 간단한 명령어 해석기가 필요할 때도 쉽게 적용할 수 있구요.

예를들어, JTAG을 위한 몇몇 명령을 만들고, 이 명령을 이용해서 HDL model을 위한 신호 입력으로 변환시키는 과정을 생각해 봅시다.

1. 필요한 함수를 정합니다.
대충 다음과 같은 함수를 쓸 수 있겠지요?

rtnval = get_id();
do_intest(serin);
do_extest(serin);


2.
해당 함수를 perl에서 subroutine으로 만들어갑니다.
뭐, subroutine을 만드는 방법은 쉽죠?

3.
이 부분이 제일 중요한데요..

xxx.pl <filename.input>

이런식으로 처리하려면, 중간에 다음과 같은 루틴을 넣어줍니다.

do "$ARGV[0]";

위의 한 행은 해당 파일($ARGV[0])에 지정된 "perl" 명령어들을 읽어와서 해석하는 부분입니다.
즉, 여러분께서 "filename.input" 이라는 입력 파일에 앞에서 작성한 subroutine을 "명령어 사용하듯" 적어두면, 이것이 perl script에서 읽혀서, "명령어를 해석하듯" 동작하게 됩니다.
이렇게 함으로써, 파싱하는 부분을 생략하고도, 그럴듯하게 명령어 해석기처럼 하나의 perl 스크립트를 만드는 것이 가능합니다.


이제 이러한 perl script에서 어떻게 HDL 테스트 벡터를 만들어내는지 생각해 봅시다.
간단히 생각할 수 있는 것은 두 가지 인데요.
첫번째는 ROM file형태로 만들어버리고, verification을 위한 testbench에서는 $readememh()를 써서 읽은 다음에 한 클럭에 하나의 신호 그룹을 뿌리는 방법이구요..
두번째는 각 subroutine에 printf FOUT 과 같은 file output을 사용해서, 간단한 verilog testvector를 만들어내고, 이를 verification을 위한 testbench에서 `include "xxx" 명령을 이용해서 읽어들이는 방법입니다.

둘 다 간단하죠?

한 마디로, perl을 이용하면 C로는 어렵게 해야 할 일이 아주 아주 편해지는 일이 많습니다. 그래서 verification engineer들에게 perl과 같은 scripting 언어가 사랑받는 것이겠죠.

babyworm
2007/06/04 23:46 2007/06/04 23:46
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
perl, verification, verilog HDL

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/175
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Level of abstraction
[babyworm, 2007/03/27 20:56, SoC 설계 관련/검증이야기]

"추상화 수준", "추상화 단계"라 불리는 용어이지요. 아마도 C++를 다루실 때 많이 접하셨을 것이라 생각합니다. ^^; 추상화 수준이라는 것은 말 그대로 추상화의 정도입니다. 추상화의 반대가 구체화라는 것은 아실 것이고, 추상화는 생각에, 구체화는 사물에 가깝다는 것도 아실 것이라 생각합니다.

모든 작품(?)이 다들 그렇지만, 머리 속의 관념이(ASIC에서는 알고리즘) 표현 도구를 통하여 구체화되는 과정을 거쳐서 하나의 작품이 됩니다. 이때 머리속의 관념은 추상화 단계에서 점차 구체화되는데요.. 칩쟁이들이 잘 하는 말로 algorithm level, architecture level, register transfer level, gate level, physical implement level 뭐 이 정도 표현할 수 있겠습니다.

ASIC에 있어서 보통 RTL이라고 하는 register transfer level에서부터 physical impelmentation level(즉, GDSII라는 완성된 그림이 나오는 단계)까지는 EDA툴이라 부르는 CAD툴에 거의 전적으로 의존하게 됩니다. (아날로그 하시는 분들이 빼고요.. 그 분들은 직접 그림을 그리시는 artist잖아요~ ^^;)

즉, 설계라는 분야란 기계적으로 말하자면 algorithm을 RTL로 변환하는 과정을 의미합니다. "기계적"이란 용어를 사용한 건 말이 그렇다는 것을 알려드리고 싶어서입니다. ^^;
실무에서 보면, algorithm을 전공하신 분과 computer architecture/ASIC을 전공하신 분이 실무에서 어느 정도 일하다가 동일한 작업을 수행하기 위하여 RTL을 만들때 보면 전혀 다른 RTL을 만들어낼때가 있는데, 가장 큰 이유는 어느 추상화 수준에 초점을 맞추었느냐에 차이가 있고, 두 번째는 ASIC 전공자들은 알고리즘 자체를 볼때 하드웨어 구현을 고려하여 하드웨어에 최적화된 알고리즘을 생각하는 반면, 많은 알고리즘 전공자 분들께서는 software적인 최적화 알고리즘을 많이 생각해 내십니다. (에고.. 그냥 이야기하다가 너무 벗어났네요..여하튼.. 저는 각 전공분야에서 보는 관점이 다르다..라는 이야길 하고 싶었는데.. 쩝. ^^;)

검증에서는 약간 더 많은 추상화 단계를 지닙니다. 사실 검증이라기 보다는 modeling이라는 표현이 맞겠습니다. 이건 model의 정확성과 수행 시간간의 상관관계 때문에 아주 정확하지 않아도 되는 부분은 추상적으로 표현해서 속도를 빠르게 할 수 있기 때문이지요.

예를 들어, gate 수준으로 구현된 netlist simulation보다 RTL simulation이 훨씬 빠른 것이 당연하고, RTL simulation보다 대략적인 functional model을 이용하는 것이 더 빠르니까요.

이 functional model은 약간 더 세분하면

  • Transaction level model; 사실 각 모듈 간의 동작만을 정의하는 것이지요. 내부 동작 자체를 구현할 수도 안할 수도 있는데, 일반적으로 '추상화 수준이 높다'고 이야기 할때는 내부 동작은 구현하지 않고 모듈의 transaction만을 나타낼 때입니다.
  • Untimed functional model; transaction level도 untimed와 timed로 나뉘는데 시간에 대한 정보 포함 여부에 따라 나눕니다. 그냥 읽고/쓰고.. 이런식으로 하면 untimed이고, 가장 추상화 수준이 높다고 봅니다.
  • Timed functional model; timed는 transaction의 time정보가 있으므로, 약간은 더 구체화 된 수준입니다.

대략 이런식으로 나눕니다. 물론, 이것 이외에도 behavior level을 나누는 형태로

  • bus functional model(BFM) - bus functional model은 사실 transaction level model과 별 차이 없다고 생각되는데 많은 경우 pin accuracy가 있느냐를 가지고 나눕니다. 말 그대로 모듈의 출력/버스 수준에서의 동작만을 기술한 것입니다. 알고리즘이 들어간 블럭의 경우 이런거 만들기 쉽습니다. 
  • bus cycle accurate model - timed functional model과 유사하죠.
  • cycle accurate model - 시스템 클럭 수준에서의 동작을 맞추어 주는 수준입니다.

둘 사이에 많은 유사점이 있는데, 큰 사항은 transaction을 추상화 할 것이냐 차이겠습니다.

사실 pipelined processor와 같은 control 위주의 모델에서는 transaction model이 크게 편하지 않습니다. 어짜피 명령어 fetching 이후에 몇번째 사이클에서 data bus에 어떤 종류의 transaction이 발생할지를 알아내기 위해서는 어느 정도 구체화를 해야하니까요. 하지만, 통신 모델이라던지 연산 모델에서는 이게 상당히 쉽습니다. latency정도만 알면 연산하고 latency이후에 결과를 내놓는 형태로 구현되니까요. 그래서 알고리즘, 통신 쪽에서 transaction model이 각광받고 있고, ASIC에서 이쪽 분야가 차지하는 비중을 생각할때 이 모델들이 중요시 되는 것이겠지요. ^^;

추가적으로 검증에서는 어떤 수를 써서라도 추상화 레벨을 높여주는 것이 필요합니다. 왜냐하면, 더 정확한 검증이란 더 많은 검증 벡터를 기존 벡터가 cover하지 못한 부분에 generation해 주어야 하고, 많은 검증 벡터를 주어진 시간안에 수행하여 coverage를 높이기 위해서는 모델이 더 빨라져야 하며, 이를 가장 보장해주는 방법이 추상화 수준을 높이는 것이기 때문입니다.  ^^;


p.s. system verilog의 verification feature(class나 dynamic array, queue같은..)가 지원되는 "저가" simualtor 좋은 거 없나요? ㅎㅎ

babyworm
2007/03/27 20:56 2007/03/27 20:56
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
abstraction, SystemVerilog, verification, 추상화 수준

Trackback0 : Comment6
Trackback Address :: http://babyworm.net/tatter/trackback/151
longkey | 2007/03/28 09:28 | PERMALINK | EDIT/DEL | REPLY
밑에 저가의 Simulator 문의를 하셔서 답변 드립니다.
Aldec의 Riviera라는 툴이 있습니다.
NC-sim의 약 10분의 1가격이라고 하고, 속도는 1.5~2배 정도 느리지만 Accuracy는 아주 우수하다고 합니다.
개인이 구매는 불가능하고, 회사나 학교에서 구매를 하 실수 있습니다.
더 궁금하신점 있으시면, sang@ktdesign.co.kr로 연락 주십시요.
babyworm | 2007/03/28 18:13 | PERMALINK | EDIT/DEL
감사합니다.
Aldec의 툴이 NC-sim에 비해서는 많이 저렴하군요. :)
아.. 고민입니다. ^^; 회사에서는 NCsim만 사용해서, 설득이 쉽지는 않을듯 합니다. (아쉬운 점은 verification feature를 구입하지 않아서 system verilog의 design 이외의 기능이 안된다는 것이.. ㅠㅠ;)
longkey | 2007/04/04 09:09 | PERMALINK | EDIT/DEL | REPLY
답변이 좀 늦었습니다. 메일만 기다려가지고...여기에 답글을 남기시리라는 생각을 어제 밤에야 했거든요..
물론 NCsim만을 사용하고 계시고, 성능이 좋다는 것도 잘 알고 있습니다.
현재 ALDEC은 삼성에서 Evaluation 중인데, NCsim보다는 느리지만 Model-sim 과는 속도 차이가 거의 없다고 알고 있습니다. Performance는 NCsim과 비교해서 별 차이가 없다고 나왔구요...
삼성에서 Evaluation을 하는 것은 시뮬레이터는 구매를 해야하는데, NCsim은 너무 고가라 라이센스를 많이 구매하지 못하니, Aldec의 툴로 시뮬레이션을 돌리고 NCsim으로 Sign-off 하는 식으로 하려고 이번에 들어간 것으로 알고있습니다. 저도 아직 이쪽 계통에서 근무한지 얼마 되지 않아서 잘은 모르지만, 시뮬레이터 라이센스는 항상 모자르다고 엔지니어 분들이나 세일즈 하는 분들이 말씀하시더라구요..
만약에 관심 있으시다면 sang@ktdesign.co.kr로 메일 주십시요...제가 아직 가지는 못하겠지만, 윗분들에게 말씀드려서 툴 소개와 기회가 되면 Evaluation이라도 한번 해보셔도 좋으실것 같아서요..
그럼 오늘 하루도 수고하십시요...
babyworm | 2007/04/04 23:34 | PERMALINK | EDIT/DEL
헛. 메일을 기다리셨다니 죄송합니다. evaluation을 하려고 결정되었을때 메일을 드리려고 했지요 :)
회사가 별로 크지 않다보니 CAD tool을 evaluation해주는 팀이 따로 있지는 않아서, Tool evaluation 기간도 대충 스케쥴을 맞추어야 하거든요. 그리고, 도입했을때의 장/단점도 따져봐야 하구요. 저렴한 가격에 SystemVerilog의 verification feature가 된다니 확실히 끌리기는 하는군요. 아주 빨리는 좀 어려울 것 같고, 나중에 기회되면 연락드리도록 하겠습니다. :)
p.s.
예전에 Debussy는 evaluation한 적이 있는데, 아주 인상적이었습니다. simvision이 나오지 않았다면, 그때 뭔가 바뀌었을지도 모르겠네요.
longkey | 2007/04/09 10:47 | PERMALINK | EDIT/DEL | REPLY
나중에 기회 되시면 꼭한번 연락 주십시요.. 전에 노바스의 Debussy는 예전 모델이고 현제 Verdi라는 제품이 있습니다. 혹시 들어보셨는지 모르겠네요... Simvision과는 제가 엔지니어도 아니고 이쪽에 경력이 많은것도 아니여서 정확히 말씀을 드리지는 못하지만 기회되시면 Verdi라는 것도 소개할 기회를 주시면 감사하겠습니다.
Verdi는 현재 삼성에서 Standardzation이 된 상태이기도 합니다. 구매를 안하시더라도, 한번 써보시고 괜찮다고 생각되시면 다른곳도 소개시켜주시면 좋으니깐요..^^ 그럼 이번 한주도 수고하십시요..
babyworm | 2007/04/10 00:23 | PERMALINK | EDIT/DEL
네 ^^; longkey님도 좋은 한주 되세요~
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
일단 정리되었습니다.
[babyworm, 2007/03/19 23:41, 개인적인]

Tapeout 직전에 발생한 여러가지 문제들이 좋은 방향으로 해결되었습니다.
칩쟁이들한테 칩이란 항상 엔지니어의 피와 땀을 요구한다더니만, 별거 아닌 칩이라고 피와 땀까지는 아니더라도 잠과 자유시간을 요구하더군요.

결과적으로 책임감을 가지고 매단계에서 좀더 꼼꼼하게 챙기지 못한 저에게 일차적인 책임이 있다는 것이 사실이겠지요. 같이 일하는 친구들이 처음하는 일이라 이런 저런 사항을 놓칠 수 있다는 걸 충분히 인지했어야 했는데, 저의 나태함으로 Tapeout 직전에서야 비로서 이것 저것 챙겨보고, 그로 인하여 문제를 인지하는 시점이 늦어버렸다는 것이 비극의 시작이었던 것입니다.

그런거 잘 챙겨보라고 회사에서 직급을 높이는 것일텐데, 아직 역할 모델에 적응하지 못한 탓이겠지요.

이번에 정말 많은것을 배웠습니다.
설계에 있어서도 그렇고, 여러가지 관련 사항으로도 그렇고..
처절하게 배운점은 나태해지는 순간 문제가 생긴다는 점입니다.

거의 한 달동안 자유 시간없이 열심히 따라와준 팀원들에게 감사합니다.

이제 불 끄는 역할이 끝났으니, 다시 검증쪽으로 집중하겠습니다. ^^;
글도 좀 더 많아지리라 생각합니다.

babyworm
2007/03/19 23:41 2007/03/19 23:41
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
verification

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/149
양현철 | 2007/03/21 09:39 | PERMALINK | EDIT/DEL | REPLY
잘 해결 되셨다니 다행입니다. ^^ 아직은 회사가 아니라 학교라는 생각에 느슨해질때가 많은데 역시 칩쟁이들의 운명은...
babyworm | 2007/03/22 08:57 | PERMALINK | EDIT/DEL
감사합니다. ^^; '프로젝트'라는 용어의 정의상 운명적이기도 하지요.. :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Designer, Verification Engineer를 위한 책들..
[babyworm, 2006/12/28 00:12, 책이야기]
사실 원래 제목은 Springer의 DVCon06, DAC06, ICCAD06의 best selling book이라 지어야 정상이겠죠.
이 글은 Deepchip의 글을 바탕으로 적습니다.

DVCon이라는 것이 Design verification engineer들에게 최대의 축제라는 것은 아실테고.. 거기서 많이 팔린 책은 다음과 같습니다.

DVCon Best Seller 10 보기


  1. Writing Testbenches Using System Verilog
     by Janick Bergeron, Feb 2006, ISBN: 0-387-29221-7

  2. Verification Methodology Manual for System Verilog
     by Bergeron et al, Oct 2005, ISBN: 0-387-25538-9

  3. SystemC: From the Ground Up
     by Black and Donovan, Jan 2006, ISBN: 0-387-29240-3

  4. System Verilog for Design
     by Stu Sutherland, Sep 2004, ISBN: 1-4020-7530-8

  5. A Practical Guide for System Verilog Assertions
     by Vijayaraghavan and Ramanathan, Sep 2005, ISBN: 0-387-26049-8

  6. Constraint-Based Verification
     by Yuan, Pixley and Aziz, Jan 2006, ISBN: 0-387-25947-3

  7. Verilog: Frequently Asked Questions
     by Chonnad and Balachander, Nov 2004, ISBN :1-4020-8018-2

  8. Functional Verification Coverage Measurement and Analysis
     by Andy Piziali, Nov 2004, ISBN: 1-4020-8025-5

  9. CPU Design: Answers to Frequently Asked Questions
     by Thimmannagari et al, Sep 2005, ISBN: 1-4020-7530-8

  10. Verification Plans
     by Peet James, 2003, ISBN: 1-4020-7619-3


대세가 System Verilog입니다. 게다가 1,2위가 모두 verification guild를 이끌고 있는 Janick Bergeron의 책이네요.. 얼마전에 주문해 놨는데.. 언제 올지는 모르겠네요..

4번에 나온 System Verilog for design(1판)은 저도 가지고 있고, 한번 훓어 본 책인데.. 음.. 설계 위주이고, 설계 관점에서 system verilog가 나아진점.. 합성을 위한 선택사항들이 잘 나와 있습니다. 언어 자체에는 충실하죠.

10번의 Verification Plans는 읽은지 좀 된 책인데.. 전 아주 좋은 책인지는 잘 모르겠습니다만.. 실무적으로 고민하게 될때 좋은 Guide이기는 합니다. 근데, 책값에 비해서 너무 얇고.. 질도 좀 떨어지고..^^;

전반적으로 System Verilog를 이용한 Assertion/Constraint-Based Verification이 대세다.. 라고 볼 수 있겠습니다.
DAC은 CAD툴 만드는 분들의 축제이니 만큼, 언어 자체에 대한 내용을 기대해 볼만 하죠..

DAC06 Best Seller 10 보기

  1. System Verilog: Guide to Learning the Testbench Language Features
     by Chris Spear, May 2006, ISBN: 0-387-27036-1

  2. System Verilog for Design, Second Edition
     by Sutherland, Davidmann and Flake, Jun 2006, ISBN: 0-387-33399-1

  3. Statistical Analysis and Optimization for VLSI: Timing and Power
     by Srivastava, Sylvester and Blaauw, Jun 2005, ISBN: 0-387-25738-1

  4. Writing Testbenches Using System Verilog
     by Janick Bergeron, Feb 2006, ISBN: 0-387-29221-7

  5. Verification Methodology Manual for System Verilog
     by Janick Bergeron et al, Jan 2006, ISBN: 0-387-25538-9

  6. Timing
     by Sachin Sapatnekar, Apr 2004, ISBN: 1-4020-7671-1

  7. A Practical Introduction to PSL
     by Cindy Eisner and Dana Fisman, Jul 2006, ISBN: 0-387-35313-5

  8. Analog Design Essentials
     by Willy Sansen, May 2006, ISBN: 0-387-25746-2

  9. SystemC: From the Ground Up
     by David Black and Jack Donovan, Jan 2005, ISBN: 0-387-29240-3

  10. Transaction-Level Modeling with SystemC
     by Frank Ghenassia, Jan 2005, ISBN: 0-387-26232-6

여기서도 역시 System Verilog가 대세입니다.
큰 물결을 이루었다는 걸 다시 한번 느낄 수 있네요.

SystemC도 나름 저력을 보여주고 있습니다. 3번에 나온 책은 사실 저도 좀 사서 보고 싶네요..

ICCAD도 DAC와 좀 비슷한 성질인데, Design쪽 논문이 생각보다 좀 있는 conference입니다. 여기서 팔린 것을 보면..


ICCAD06 Best Seller 10 보기

1. Statistical Analysis and Optimization for VLSI: Timing and Power
     by Srivastava, Sylvester and Blaauw, Jun 2005, ISBN: 0-387-25738-1

  2. Timing
     by Sachin Sapatnekar, Apr 2004, ISBN: 1-4020-7671-1

  3. Algorithms for VLSI Physical Design Automation
     by N.A. Sherwani, Nov 1998, ISBN 0-7923-8393-1

  4. Reconfigurable Computing
     by M. Gokhale, Dec 2005, ISBN 0-387-26105-2

  5. Logic Synthesis and Verification Algorithms
     by Hachtel and Somenzi, Feb 2006, ISBN 0-387-31004-5

  6. Design Automation Methods and Tools for Microfluidics-Based Biochips
     by Chakrabarty and Zeng, Sep 2006, ISBN 1-4020-5122-0

  7. Substrate Noise
     by Edoardo Charbon et al, Apr 2001, ISBN 0-7923-7325-1

  8. Computation Engineering: Applied Automata and Theory
     by Ganesh Gopalakrishnan, Jun 2006, ISBN 0-387-24418-2

  9. Transistor Level Modeling for Analog/RF IC Design
     by Grabinski, Nauwelaers, and Schreurs, Mar 2006, ISBN 1-4020-4555-7

  10. Leakage in Nanometer CMOS Technologies
     by Narendra and Chandrakasan, Jun 2005, ISBN 0-387-25737-3

Design부분에 대한 내용이 주를 이루고 있습니다. 음.. 1번 책이 가장 궁금하고.. 3번책은 저도 가지고 있는 책인데.. 예전에 CAD algorithm할때 사서 열심히 봤던 책이군요.. 아.. 머리아퍼..ㅠㅠ;
4,5번 책도 사고 싶은데..

에이고.. 이건 뭐 책값이 워낙 비싸서요..
후배들에게 부탁해서 도서관이 책 신청을 하던지 해야지요..

좋은 책 많이 읽으시고, 좋은 책 있으신 분 공유~ ^^;
babyworm
2006/12/28 00:12 2006/12/28 00:12
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
DAC, DVCON, ICCAD, SystemVerilog, verification

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/125
gnil | 2006/12/30 14:05 | PERMALINK | EDIT/DEL | REPLY
요새 memory density 증가로 인해 test cost가 날로 중요해지고 있습니다.
그러던 와중에 내년엔 관련 업무를 맡게 되어서요... DFT, BIST 등에 관심을 두고 있어요...
혹시 그런 분야의 좋은 책이 있으면 추천 좀 ^^;
제가 교보문고 뒤적하다가 발견한 책은 VLSI Test Principles and Architectures라는 책인데요...
SynTest Tech., Inc.라는 회사의 CEO가 편저했다고 하고... 뭐... 그 외엔 잘 모르겠어요;;

최근에 본 괜찮은 VHDL 책은 RTL Hardware Design Using VHDL이 있긴 한데요...
(이유: coding style이 sunburst-design의 것과 비슷한 느낌을 받아서)
그래도~ 요샌 아무도 VHDL을 보려고 하지 않는다는 거 -_-
babyworm | 2007/01/02 13:12 | PERMALINK | EDIT/DEL
DFT, BIST는 교양수준으로만 알고.. 따로 담당자가 있는지라..
이제 담당자가 되셨으니 순식간에 더 잘하시겠지요~ ㅋㅋ
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
포스팅이 적어진 이유
[babyworm, 2006/12/10 19:10, 개인적인]

이번달 들어서면서 포스팅이 갑자기 적어졌습니다.

직접적인 이유는 검증 일을 시작하면서, 배경 지식을 쌓아두기 위해서 보는 책과 기사들이 너무 늘어나서 머리속에서 정리가 되기 전에 이 부분에 대하여 포스팅 할 엄두가 안나구요..게다가, 검증 작업을 flow에 맞추어 한번 제대로 해 보려고 시작했는데, 일이 끝나기 전에 어설픈 것을 올리기도 뭐해서 그냥 그냥 시간만 흐르고 있습니다.

주말에 MPR이나 EEtimes news라도 보면 posting할 것인데, 요즘에 주말에도 검증쪽만 파고 있어서요..
게다가, 초기에는 HVL에 대해서도 고민이 많았는데, C와 systemverilog를 이용하는 것으로 방향을 잡았고.. system verilog에 대해서는 저 자신에게 많은 공부가 필요하다고 생각하고 있어서 열심히 파고 있는 중입니다. verification에서는 design과는 달리, language가 가진 모든 힘을 끌어내야지 좋은 검증 환경이 될테니까요.

제대로 해 보려고, Verification Plan을 짜고, DITL document를 쓰고, Breakout document를 작성하면서 checker model, coverage model 같은 것을 구상하고 있는데..

예전에 해 봤던 pseudo random verification이란 것이 얼마나 단순하게 생각해서 한 것인지 자신을 질책하게 됩니다. 그때 조금만 더 앞으로 나갔었다면 지금은 좀 더 좋은 verification infrastructure상에서 일을 하고 있을텐데 말입니다.
개인적으로 이번 프로젝트를 통해서 얻으려고 하는 것 중에 제대로된 검증 환경이 포함되어 있고, 이를 사내에 퍼트리기.. 라는 계획이 있으니까.. 좀더 general하게 만들려고 하는데.. 생각보다 이것이 쉽지 않네요..

처음 한 걸음 부터 너무 크게 내딛을려 하는 것이 아닌가.. 하는 생각도 없잖아 있지만, 이 프로젝트에만 적용될 수 있는 검증 인프라가 되더라도 generalize에 대한 고민을 하면서 작성하면 나중에 확장이 좀더 쉬워지지 않을까 생각됩니다.

머리속이 정리되거나, 약간 더 시간이 된다면 포스팅이 더 많아지겠지요..^^;

babyworm
2006/12/10 19:10 2006/12/10 19:10
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Coverage, SystemVerilog, verification

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/116
gnil | 2006/12/11 10:01 | PERMALINK | EDIT/DEL | REPLY
블로그에 글 하나 쓰기도 얼마나 힘든데요 ( 힘들다기 보다는 귀찮음;; )...
포스팅이 적다니요 ^^;;

혹시 블로그 관리가 번거롭다면 테터툴즈와 다음이 함께 한다는 tistory.com 도 괜찮아 보입니다...
예를 들면 외부 도메인과의 연결도 허용된다고 들었구요...
아마 최근 들어서 - 12/6? - 오픈베타 서비스하고 있을꺼예요 ^^
babyworm | 2006/12/11 21:58 | PERMALINK | EDIT/DEL
힘이 되는 말씀 감사합니다.
티스토리 계정은 진작부터 있었습니다만, 제가 좀 특이한 plugin들을 사용하는 관계로(wiki link라던지, latex compiler같은..) 옮기지 못하고 개인적인 blog로 사용하고 있습니다.
나중에 트래픽을 감당할 수 없으면 그때나 이사 가려고요.. 지금보다 더 비싼 계정을 유지할 $$도 없고. :)
gnil | 2006/12/12 11:29 | PERMALINK | EDIT/DEL | REPLY
아... 역시 그렇군요 ㅎㅎㅎ ^^;;

글 쓰는 것도 문제지만 트래픽, 스팸 코멘트/트랙백 등을 관리하는 것도 만만치 않을 것 같아요...
babyworm | 2006/12/12 11:48 | PERMALINK | EDIT/DEL
네..^^;
스팸은 제 블로그가 아직 그리 유명하지 않아서 스팸 필터로 거의 다 막히는 편이구요.. 트래픽은 로봇 방문 시간 조절하고, 다음 봇을 차단하고 나서는 대부분 50%이하로 안정화되었습니다.
나중에 정말 방문자가 많아져서 감당하기 어려울때는 tistory로 도망가야겠지요..^^;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
검증의 대세는 system verilog?
[babyworm, 2006/11/28 23:29, SoC 설계 관련/검증이야기]

검증 작업을 시작했다는 포스팅을 얼마전에 했었습니다.
뭐, 일단 검증 시나리오 짜고, function coverage 전략 세우고.. 이런것 부터 시작했습니다만..

verilog로 약간 검증 마인드로 이런 저런 것을 작성하다보니, synthesizable subset의 틀이 얼마나 옭죄고 있었나라는 생각이 심각히 들더군요..

verilog 표준에서 정의된 동작에 대해서 어느정도는 알고 있다고 자부하고 있었는데, 좀더 깊이 알게 되는 기회가 되고 있는 것 같습니다. 얼마전 gil님께서 class와 비슷한 verilog를 말씀하신 이유도 납득이 가구요..

사용자 삽입 이미지

하지만, verilog는 추상화 레벨을 높이기에 약간 무리가 있기는 하더군요.. 물론, 어짜피 regression vector쪽에는 PLI위주로 가게될 것으로 구상해두었지만, 일반적인 경우에는 PLI사용을 꺼리시는 분들도 있는 관계로 왠만하면 verilog만으로도 어느정도 coverage를 보일 수 있도록 구상하고 있는데... 약간 까다로운 점이 있습니다.

그래서, 대안 처럼 생각하고 있는 부분이 SystemVerilog인데, 아직 제가 본격적으로 공부해본것이 아니라 스펙 수준에서 표준 문서만 한번 훓어본 정도에서 멈추어 있던 상태라 약간 깨름직 했었습니다.
그런데, verification guild에서도 그렇고, comp.lang.verilog도 그렇고 system verilog에 대한 내용과 비중이 점점 높아가는 것을 알 수 있겠더군요.

사실 verification guild의 guild master가 vmm-sv의 저자이기도 하니까 그렇겠지요..
하지만, writing testbench 책이 HVL이 아닌 system verilog만을 이용해서 다시 작성할 수 있을 정도로 system verilog의 verification기능이 강력하다는 것은 아무래도 끌리는군요.
(옆에 보이는 책이 writing testbenches using systemverilog책이 바로 예전에 제가 다시 읽고 있다는 writing testbenches의 새 버젼이지요. 요즘에 가장 사고 싶은 책입니다. 하지만, 가격이... 가격이.. orz)

Verification Methodolgy Manual for SystemVerilog와 같은 책이 나온것도 사실 system verilog가 대세가 되는 것 아냐? 라는 생각을 가지게 하는 이유이기도 하지만 말입니다. (또한권의 가장 사고 싶은 책입니다. 역시 가격이.. 에휴... )
사용자 삽입 이미지
이 책의 홈페이지에는 system verilog를 이용한 verification에 대한 개략적인 정보는 얻을 수 있습니다.

사실 초기에 저는 cadence의 SCV를 필두로한 systemC에 대항하기 위해서 synopsys가 선택한 카드가 system verilog일 것이라는 곱지 않은 시선을 가지고 있었습니다.
하지만, 요즘에 와서는 system verilog를 native로 지원하는 simulator들이 속속 등장하고 verilog표준에 system verilog가 포함될 것으로 예정되어 있는 상태이니.. 정말 systemverilog가 HVL을 대체할 정도로 강력하다면, 대세가 될 확률이 높아지겠지요.

여하튼, 지금 가지고 있는 system verilog for design(stherland저)책이라도 한번 봐둘 필요는 있을 것 같습니다. ^^;
사실 예전에 이 책 봤을때는 systemverilog에 대해서 약간 실망을 했었는데, 검증의 측면에서는 어떨지 한번 공부해 봐야겠습니다.

이 부분은 역시 작업 마치면 한번 정리하죠..나~~~중에

babyworm
2006/11/28 23:29 2006/11/28 23:29
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
SystemVerilog, testbench, verification, 검증

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/112
gnil | 2006/12/01 09:23 | PERMALINK | EDIT/DEL | REPLY
회사(구체적으론, 설계자동화팀) 입장에선 PSL 보다는 system verilog이나 0-in을 좀 더 밀고 싶은 것이...
뭐랄까... 대세, EDA vendor들의 지원, 가능하면 주석이 없더라도 코드만으로 쉽게 해석이 가능한 언어 등등의 특징을 들어서 말이죠...

저야 뭐... SPICE simulation만 돌리니 이런 경향에 자꾸 멀어지는 것 같아요 ㅠ.ㅠ
다만 SPICE simulation 돌릴 때두 full-chip 같은 level에선 assertion 같은 거 있으면 좋겠는데 싶습니다 ㅋㅋ;;

그나저나 빨간책이 녹색으로 변하니 눈에 확 들어 오네요~ ㅋㅋㅋ
( 책이 얼릉 좀 사달라구 그러는 듯 ^^; )
babyworm | 2006/12/02 13:31 | PERMALINK | EDIT/DEL
EDA의 지원이 가장 절실하겠지요.
systemC보다 system verilog를 지원하는 것이 EDA쪽에서 유리하다는 측면, e/vera와 같이 tool dependent한 것보다 systemC/systemVerilog를 지원하는 것이 각각 더 유리할 것이라는 기대.. 이런것들이 이후 언어를 결정하겠습니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
PSL을 포함한 새로운 VHDL 표준.. Verilog를 넘을수 있을까?
[babyworm, 2006/11/16 20:38, SoC 설계 관련/관련 새소식]
EEtimes를 보니 VHDL 2006 표준이 Accellera에서 승인되어서 IEEE standard 승인을 기다리게 되었다고 합니다.

VHDL은 제 블로그에서도 몇번 다루었듯이, 초반의 열광적인 지지와는 반대로 설계 언어로서는 Verilog에 비하여 점유율을 높이지 못하고 있었지요. (Gartner Dataquest의 EDA 분석책임자인 Gary Smith 씨에 의하면 오늘날 하이엔드 디자인에서 VHDL 사용이 줄고있다고 합니다. [데이터 출처: EETimes])

Verilog의 경우 system verilog에서 assertion과 같은 검증 기능과 더불어 몇몇 검증에 관련된 좋은 기능들이 추가 되었으며, verilog 2005 표준에서 system verilog(IEEE-1800)와 기존의 verilog 표준(IEEE-1364 2001)을 합쳐서 IEEE-1364 2005로 개정한 것이지요.

지금 verification guild와 같은 곳을 가보면 verification의 많은 부분이 system verilog 위주로 진행되는 분위기가 감지됩니다. (comp.lang.verilog에서도 그렇구요..)

이러한 verilog의 강공에 대적하기 위해서, VHDL은 assertion language의 표준인 PSL(예전에 sugar로 불리웠던)을 VHDL 표준에 과감히 포함시켜 버렸습니다. !

또 다른 주목할 만한 부분은 IP 보호 기능입니다. 사실 이 기능의 경우 verilog에서는 cadence verilog-XL 시절 부터 있었던 기능이지만, tool dependent하기 때문에 약간 문제이기는 했습니다.(verilog simulation에 있어서 verilog-XL이나, NC-verilog와 같은 툴이 거의 표준처럼 사용되고 있는 상황이니 큰 문제는 없겠습니다만..(ESNUG참조))

과연 점점 사용자 계층이 엷어져가는 VHDL이 이번 표준으로 얼마나 사용자를 되 찾아올지 의문입니다.
왜냐하면, Verilog에서는 기본적으로 강력한 구조적 설계 기능에 검증 기능을 더하는 방향으로 확장되고 있는 반면, VHDL은 기본적으로 behavioral design/verification에 (verilog에 비해)적합한 형태였기 때문이지요.
즉, 설계 부분의 편의성에 있어서는 그리 향상된 것이 없어보인다는 것이 좀 아쉽네요..
babyworm
2006/11/16 20:38 2006/11/16 20:38
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Accellera, SystemVerilog, verification, verilog HDL, VHDL

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/104
gnil | 2006/11/17 09:04 | PERMALINK | EDIT/DEL | REPLY
학창시절 VHDL 다뤄본 적이 있다고 나선 입사동기 형은
현재 맡고 있는 업무가 VHDL-to-Verilog code converting 작업;;
게다가 VHDL은 Verilog보다 EDA 툴 선택의 폭이 좁아서 설계자동화팀에서도 싫어해요~
babyworm | 2006/11/17 21:19 | PERMALINK | EDIT/DEL
그분 개인적으로는 좀 지겨운 일이시겠네요.. :)
예전에 썼던 기억으로는 VHDL쪽도 참 괜찮은데, 설계할때 사람을 귀찮게 하는 측면이 많고 괜찮은 툴이 별로 없다는(지금은 거의 해결되었지만)것이 문제지요.
요즘 검증쪽 보고 있는데 확실히 검증쪽은 VHDL이 좋은거 같네요..
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
verification 시작..
[babyworm, 2006/11/11 23:37, SoC 설계 관련/검증이야기]

예전에 99년에 학교에서 첫 버젼의 EISC를 만들때는 검증에 별 생각이 없었습니다.
뭐, 프로그램 몇개 돌리면 되겠지.. 이런 느낌이랄까요..

생각해보면, 학교에서 만드는 것은 "학술적으로" 의미가 있는 부분에 대해서는 뭔가 이런 저런 시도를 해 보는데, 실제 중요한 동작 자체는 "벤치 마크 프로그램이 돌아가는" 정도로 그치고 말았었습니다. 그러다보니, 다양한 상황에 대한 검증이나 인터럽트 쪽은 아무래도 부족했었습니다.

학생 시절과 비교하였을때 회사에 와서 가장 많이 발전한 부분이라 생각하는 것은 "설계의 질"입니다. 특히, 검증의 질이 많이 향상되어가고 있고, 이를 바탕으로 설계의 질이 향상하는 것이겠지요.
회사에서 "검증의 중요성"을 심각하게 느끼게 되었고 몇년동안 이런 저런 검증 기법들을 적용하기도 했는데, 아무래도 실무에서 의미있는 결과가 나오기에는 미흡한 상태였습니다.
게다가 국내에서는 검증을 업으로 삼으시는 분은 상당히 적으신듯해서 여러 분들과 만나서 의견을 나눠봐도 "검증의 중요성"은 인식하지만, 검증을 업으로 삼는 분(소위 verification engineer)은 아직 만나보지 못했습니다. 음.. S사나 L사 같은데는 있을지도 모르겠습니다만.. 외부로 노출이 안되는 것인지.. 논문도 그렇고.. 설계하시는 분이 검증도 같이 하는 경우가 더 많죠.. (혹시 검증을 업으로 하시는 분계실까요?)

여하튼.. 이번 프로젝트에서는 제가 수행하는 설계 분량을 최대한 줄이고, specification과 verification쪽으로 집중하려고 하고 있습니다. 하지만, 프로젝트라는 것이 항상 그렇듯(^^) 잡은 일정보다 스펙 작성이 오래걸렸고..이런 저런 일을 하다보니, 이번달에 들어서야 이 프로젝트에서 제 관심의 대상이었던 verification쪽에 집중해서 verification plan을 짜고 있습니다. (사내 정보 보안 관계로 ^^; 일반론 이상을 이야기를 할 수는 없습니다만..)

이런 과정에서 Verilog PLI이니 assertion이니, SCV와 같은 것을 다룰 수 있는 기회가 많아지겠지요..^^;

babyworm
2006/11/11 23:37 2006/11/11 23:37
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
assertion, PLI, SCV, verification

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/98
gnil | 2006/11/13 09:30 | PERMALINK | EDIT/DEL | REPLY
제가 접한 Silicon Image 사의 verification engineer 분은
Verilog를 자유자재로 사용한다는 느낌을 받았습니다...
(PSL도 잘 쓰시는 것 같구요...)
예를 들어 testbench에 대한 code를 보면 module이 class와 같이 작성했더라구요...
task는 member function처럼 쓴다든가.. 등등

그래서 그런지 전체적인 code가 체계적인 느낌을 받았어요...
babyworm | 2006/11/14 19:26 | PERMALINK | EDIT/DEL
사실.. 그런 경럭이 좀 오래된 verification enginner가 짠 코드를 좀 봤음 좋겠어요..
이런 저런 생각은 많은데 어찌 구현할지 쉽지 않고 점점 복잡하게 생각이 되네요.. 제 기본적인 생각중의 하나가 "복잡하면 아직 잘 모르는 것이거나 틀린거다!"라서, 뭔가 좀더 해봐야 알것 같네요.. :)
좋은 말씀 감사합니다.
파파존스 | 2006/11/14 22:07 | PERMALINK | EDIT/DEL | REPLY
삐~~~ 김 박사님, 사내 보안에 걸리셨습니다. ㅋㅋ
회사에서 봅시다~~
잘 자요~
babyworm | 2006/11/14 22:10 | PERMALINK | EDIT/DEL
꽥~! 이박사님도 주무세요.. ^^;
벌써 집이시라니.. 부럽.. 아직도 회사인데..ㅠㅠ;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
*1
Location : Tag : GuestBook : Admin
babyworm’s Blog is powered by Tattertools.com / Designed by Hisday / Modified by Daisy