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 Mentor GPU FPGA 검증 Intel VMM LaTex EDA Synthesis Cadence
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
332373 Visitors up to today!
Today 21 hit, Yesterday 177 hit

English Ver. (by Google)
Creative Commons License
이 블로그의 모든 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
'SystemVerilog'에 해당되는 글 13건
Project Veripage etc... (4) | 2009/03/09
DVCon의 결과.. (5) | 2009/02/16
잘하는 짓들이다.. (2) | 2007/08/28
Synopsys Discovery Seminar | 2007/05/02
Level of abstraction (6) | 2007/03/27
demos on demand (2) | 2007/03/24
책이 도착했어요! (4) | 2007/01/10
Designer, Verification Engineer를 위한 책들.. (2) | 2006/12/28
포스팅이 적어진 이유 (4) | 2006/12/10
검증의 대세는 system verilog? (2) | 2006/11/28
PSL을 포함한 새로운 VHDL 표준.. Verilog를 넘을수 있을까? (2) | 2006/11/16
Mentor의 Summit Design 인수! | 2006/10/25
TLM으로 설계가 이동할 것인가? (4) | 2006/10/23
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
DVCon의 결과..
[babyworm, 2009/02/16 08:06, SoC 설계 관련/관련 새소식]
질문 게시판의 내용이지만, 답변은 여기에 ^^;

http://theasicguy.com/2009/01/27/dvcon- ··· -mean%2F 에 DVCon Survey 결과가 있었습니다. DVCon은 가끔 언급했지만, verification 부분에서 가장 큰 행사 중의 하나이지요. ESNUG에서도 곧 여러가지 설문 결과나 행사 기간동안 가장 많이 팔린 책들에 대한 언급이 있을 텐데요.. 올 한해 책 지름의 기반이 되겠지요.

여하튼, 설문의 결과는 예상대로.. 라고 말씀드릴 수 있습니다.

Design Language로는 Verilog HDL 이 대세
검증에 있어서는 SystemVerilog가 대세

요약하면 이렇게 되는 거죠..

사실 SystemVerilog가 다음 Verilog HDL에 통합될 예정이기 SystemVerilog가 Verilog HDL로 통합 되었기 때문에 전체적으로 VerilogHDL이 휩쓸고 있다고 볼 수 있습니다.

설계 언어로서 Verilog HDL이 각광 받는 건 사용하기 편해서이기도 하고, 많은 검증된 툴이 존재한다는 점 때문이기도 합니다.

SystemVerilog가 검증 언어로서 각광 받는 이유는 verilog로 부터 물려받은 design 부분의 feature이외에 검증을 위한 assertion, coverage, interface에 대한 지원이 이루어져 있기 때문입니다.

특히 high level modeling에 있어서는 C를 따라갈 수 없겠지만, assertion에 있어서는 완전히 PSL을 밀어내버린 거죠.

이렇게 verilog HDL family가 전체 설계/검증 flow를 장악한 이유는 자명합니다. 한가지로 통합하여 사용할 수 있는 언어가 있으면 다른 언어를 배우고자 하는 사람이 적어지는 건 당연하죠.. 게다가 기존에 알고 있던 문법에 몇 가지 불편했던 부분이 추가되고 , 새로운 개념은 완전히 새롭게 문법이 들어오는 형태로 개선되고 있으니 기존 사용자를 잘 흡수한 것이죠.

매년 나온 Survey Result를 생각하면 나중에 좀더 다양한 아이템에 대한 Survey 결과가 나올 것이라고 봅니다만, 설계나 검증에 종사하시고자 하시는 많은 분들께 verilog HDL을 권할 수 있겟습니다.

(추가)
근데, 더 흥미로운 설문은 (아직 샘플의 수가 너무 적어서 뭐라 말씀드리기 힘듭니다만..), 어떤 Verification methodology를 사용할 예정이냐.. (http://www.doodle.com/participation.htm ··· 3h8y9r62 )는 설문이네요.

제 개인적으로 VMM은 좀 툴에 대해서 까다로워서 원래 좀 그랬고, Teal/Truss는 PC에서 돌리기 힘들어서 확산은 힘들것 같았고..(게다가 PLI/DPI 기반이라는 건 컴파일 할때 험난한 여정을 의미하죠..뭐 system verilog SystemC1도 마찬가지지요.. 이런 C/C++ 기반의 방법들은 gcc 버전에 민감하게 만들어지면 고생길이 열립니다..특히 C++과의 연결은.. )..
여하튼 생각보다 OVM이 지지를 많이 받고 있군요.. 시뮬레이션에 많이 사용되는 cadence와 mentor의 연합이니 그럴 수 있겠다는 생각이 (반면에 약간 툴 버젼을 가리는 것은 아깝습니다. - 물론 지원되는 system verilog 문법 때문에 어쩔 수 없겠습니다만..)


p.s.
2월 들어 첫 딸 돌잔치 준비를 열심히 하느라 집에서 블로그에 들어올 시간이 없었습니다. ^^;
돌 사진 찍은 거 보정하는 것과 성장 동영상 만드는 것을 미뤄두고 있다가 2월 내내 꼬박 퇴근 후 시간을 투자해야 했으니까요.
이제 좀 여유로워졌으니 다시 글이 올라갈 것이라고 생각 해 봅니다. (천성이 양치기 소년이라.. 믿을 수 있을지는..)
  1. 어짜다 SystemVerilog라고 쓴건지 모르겠네요 ^^; [Back]
babyworm
2009/02/16 08:06 2009/02/16 08:06
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
DVCON, SystemVerilog, verilog HDL

Trackback0 : Comment5
Trackback Address :: http://babyworm.net/tatter/trackback/271
홍용재 | 2009/02/17 06:43 | PERMALINK | EDIT/DEL | REPLY
감사합니다. 사실 블로그에 글을 써주셨으면 좋겠다고 속으로 생각하고 있었는데, 정말로 올려주셨네요. ^^
system verilog는 석사과정 중에 아주 잠깐 공부를 했었는데, 아무래도 회사에서는 다룰 일이 없을 듯하고, 따로 해봐야겠습니다. ^^;

참, 따님 돌 정말로 축하드립니다.
babyworm | 2009/02/18 13:21 | PERMALINK | EDIT/DEL
당연히 떡밥을 주면 물어야지.. 안그래도, 요즘엔 주제가 빈곤한데 말야 ㅋㅋ.. 일하는 내용 중 대부분은 나름 대외비라 일부 함구해야 하고, 그렇다고 맨날 개인사만 쓸수도 없는 것이고 :)
SystemVerilog는 뭐 설계쪽하면 가끔 다둘일이 있을 수도 있고, (unique같은 유용한 keyword 때문에..) 검증쪽 하게되면 무지하게 쓰지 않을까 싶네 :)
홍용재 | 2009/02/24 05:18 | PERMALINK | EDIT/DEL | REPLY
오늘 흥미로운 기사를 하나 봤습니다. Cadence가 OVM을 SystemC 와 e 로도 확장한다고 하네요.
http://www.design-reuse.com/news/20160/ ··· -ip.html
babyworm | 2009/02/24 09:44 | PERMALINK | EDIT/DEL
HVL이 어떤것이 되던 함수는 별 차이없지요. SystemC나 e를 HVL을 사용하던 사용자를 끌어안기 위해서겠지요. SystemC, e 모두 Cadence입장에서는 원래 지원하던 것이니 당연한 것이기도 하겠고 ^^;
홍용재 | 2009/02/24 15:56 | PERMALINK | EDIT/DEL | REPLY
아하...그렇군요. 전 library를 전부 새로 만드는 것인 줄 알았습니다. 하하하 ^^; 더구나 Cadence에서도 e를 포기하는 것 아닌가 생각했었거든요. ^^
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
잘하는 짓들이다..
[babyworm, 2007/08/28 11:38, SoC 설계 관련/마이크로 프로세서 이야기]

어떤 것을 하던지 방법론이라는 것이 중요합니다. 잘 짜여진 방법론은 이후의 모든 일에 영향을 주기 때문이지요.

SystemVerilog 기반의 검증은 현재 VMM, AVM 등 여러가지 방법론을 지니고 있습니다(사실 방법론이라기보다 verification library라는 표현이 맞을 지 모르겠습니다만..). 그런데, 문제는 이러한 verification library들이 tool dependent할 요소가 거의 없음에도 불구하고, 실제적으로는 tool dependent하게 만들어졌다는데 있습니다.

예를 들어, VMM을 사용하시려면 synopsys 툴을 구매해야 합니다. 다른 툴에서 VMM을 사용하시려면, 역시 synopsys에서 해당 라이브러리를 결코 적지 않은 돈을 주고 구매해야 합니다. 당연한 이야기일지도 모르겠지만, verification methodology라는 부분을 사용자 편의보다 각 사의 market share를 늘리는 방편으로 사용하고 있는 것이겠지요.

표준화된 sugar가 있는 Assertion 분야에서 OVL이 아직도 힘을 얻고 있는 이유는 tool이 해당 부분을 따로 지원할 필요없이 간단히 `include 구문으로  assertion이 가능하다는데 있지 않을까요. (상대적으로 sugar는 tool에서 지원하지 않으면 쓸 수 없지요)

이번에 Cadence와 Mentor가 OVM(Open Verification Methodology)를 만들기 위한 기구를 설립했는데, 문제는 synopsys가 참여하지 않았다는 것이지이요. (혹은 cadence와 mentor가 상대적으로 systemverilog기반의 검증에서 선두를 달리고 있는 Synopsys를 견재하려고 한 짓일 확률도 높습니다만.. 여하튼)

결과적으로 OVM은 또 다시 반쪽이 될 확률이 높아졌습니다. 그나마 다행인것은 OVM의 implementation은 open source의 형태를 취할 것이라는 점입니다만.. 향후에 어떻게 흘러갈 것인지는 알 수 없겠지요.

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

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/189
gnil | 2007/08/30 01:02 | PERMALINK | EDIT/DEL | REPLY
그럼 전에 소개하셨던 teal과 truss를 익히는게 개인적으론 더 좋을까요?
툴 회사의 지원이 없는 건 회사 입장에선 관리가 안된다고 생각하는 듯...
babyworm | 2007/08/30 09:15 | PERMALINK | EDIT/DEL
Teal & Truss는 C++ 과 PLI 기반의 라이브러리이기 때문에 정말 유연하지요. 단, 어떠한 툴 회사에서 "공식적"으로 지원하지는 않을 듯 합니다. 그래도, 모든 Verilog 기반의 툴이 지원하는 PLI 기반이므로 배워서 해가 될 가능성은 전혀 없습니다.
툴 회사의 지원 측면에서는 OVM이 기대를 걸어볼만 합니다. 국내의 경우 Simulator로 많은 분들이 VCS보다 NCsim을 사용할 테니까요.
여담입니다마나, 저희 회사는 아직도 SystemVerilog의 verification feature를 지원하는 툴이 도입이 안되었다는 문제로 OVM을 접하려면 시간이 걸릴 듯.. ㅠㅠ
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Synopsys Discovery Seminar
[babyworm, 2007/05/02 23:21, 분류없음]
5월 11일에 Discovery seminar가 COEX에서 있습니다.
개인적으로는 요즘 최대의 관심 분야가 저전력과 functional verification인데, VMM에 대해서 집중적으로 다룰 예정이라 아주 구미를 자극하고 있습니다.  대략 90%는 참석할 예정입니다. (10%는 회사의 사고에 대비해서..^^;)

참석하고 나서, 대충 요약해서 올리도록 하지요.


등록은:  http://www.synopsys.com/news/events/sem ··· sem.html




≫ Primary Multi Track Agenda

Track A1 Abstract
Introduction to SystemVerilog testbench with the VMM Methodology
- Making the move from directed tests to constrained-random verification
- SystemVerilog testbench basics
- Strategies for adopting SystemVerilog testbench and the Verification Methodology Manual (VMM)

Debug and Analysis with DVE
- An overview of DVE (Discovery Visualization Environment)
- Using DVE for assertion, testbench and SystemC debug
- Using DVE with analog simulatioins

Track A2 Abstract
Formal Verification with Megellan
- Making the move from directed tests to constrained-random verification
- SystemVerilog testbench basics
- Strategies for adopting SystemVerilog testbench and the Verification Methodology Manual (VMM)

Verification of Low Power Designs
- An overview of DVE (Discovery Visualization Environment)
- Using DVE for assertion, testbench and SystemC debug
- Using DVE with analog simulatioins

Track B1 Abstract
Introduction to VMM Applications
- Register modeling and verification
- Block-to-system reuse and memory allocation techniques
- Data stream scoreboarding

Using Verification IP in a VMM Environment
- Using transaction-level SystemC models in a SystemVerilog environment
- Transaction-level Interface techniques in VCS
- Debugging mixed-abstraction, mixed-language environments in DVE

Track B2 Abstract
SystemC and SystemVerilog Design Verification with VCS
- Using transaction-level SystemC models in a SystemVerilog environment
- Transaction-level Interface techniques in VCS
- Debugging mixed-abstraction, mixed-language environments in DVE

Accelerating Verification using the VMM Hardware Abstraction Layer with ZeBu
- Introduction to hardware-assisted acceleration with the EVE ZeBu platform
- Using the VMM HAL to reuse a common testbench for simulation and acceleration
- Implementing acceleration-friendly checkers, monitors and data generators

Track C1 Abstract
Verifying Performance and Reliability of Nanometer Designs with HSIMplus
- Solutions for post-layout analysis with millions of extracted RC parasitics
- Verifying performance and reliability for IR drop effects and electromigration

Mixed-Signal Verification (MSV) challenges and solutions
- Bottom-up, mixed-signal Verification w/ Verilog, VHDL, & SPICE
- Mixed-language / Mixed-level simulation top down design and verification
- Transistor-level sign-off: why is this important?

Track C2 Abstract
Advanced high-accuracy circuit simulation with HSPICE
- Performing faster simulations
- Ensuring silicon accuracy with advanced models
- Improving productivity with behavioral modeling
- Employing high-speed signal integrity analysis capabilities
- Simulating process variability effects
- Accurately predicting PLL and VCO performance

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

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/167
[로그인][오픈아이디란?]
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
demos on demand
[babyworm, 2007/03/24 02:47, 분류없음]
ESNUG과 어떤 관계가 있는지는 잘 모르겠지만, Cooly의 인터뷰나 EDA툴에 대한 각 회사의 소개나 세미나의 동영상 자료가 착실히 올라오는 곳이 바로 http://www.demosondemand.com/ 입니다.
뭐, 대부분은 EDA show같은데서 하는 자사 제품에 대한 세미나 자료이지만, 재미있는 인터뷰라던지 이런저런 영상도 있습니다.

그리고 중요한 것은 몇몇 상당히 좋은 강좌가 있다는 점 입니다. 여기에 system verilog 강좌라던지 AXI 강좌등은 상당히 볼만하더군요. 특히 저에게 system verilog 강좌 시리즈는 아주 유익했습니다. 완전 초보수준은 아니지만, 처음 system verilog에 대한 감을 잡기는 아주 좋을 것입니다.
(여담입니다만, 세미나 시간이 제법 깁니다. 피로가 쌓인 상태에서 보다가는 바로 수면 모드로 들어가더군요..^^; 회사에서 야근할때 보다가 몇번 수면 모드로 들어갔던 기억이.. )

가입시에는 반드시 일반 e-mail이 아닌 회사/학교의 이메일을 적어야만 합니다. 일반적인 e-mail서비스는 가입 불가 판정이 됩니다. ^^;
그리고, 몇몇 자료는 경쟁 관계의 회사 자료라고 접근 불가가 될수도 있습니다. 저는 ARM사의 자료를 볼수 없도록 되어 있지요.. 쩝..
babyworm
2007/03/24 02:47 2007/03/24 02:47
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EDA, ESNUG, SystemVerilog

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/150
gnil | 2007/03/26 10:27 | PERMALINK | EDIT/DEL | REPLY
이 글 보구 얼릉 가입했습니다 ^^

음... 이곳에 오면 저도 블로그 하나 있으면... 하는 생각이 드는데요...
막상 만들고 나면 글을 쓰지 않는 현실 -0-;;
글쓰기 참 힘든 것 같아요... 주인장님 화이팅~!
babyworm | 2007/03/26 13:15 | PERMALINK | EDIT/DEL
감사합니다. :)

나중에 팀블로깅이라도 ^^; 저의 경우 준비해서 쓰는 글도 있지만, 개인적인 블로그라는 이유로 그냥 끄적거릴때가 더 많죠.. gnil님은 쓰기 시작하시면 아주 잘 쓰실것 같은데요.. :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
책이 도착했어요!
[babyworm, 2007/01/10 22:37, 책이야기]

요즘에 프로젝트 마무리 관계로 약간 바빠서 이 책을 읽는건 좀 뒤로 미루어야 할 것 같습니다만..

아기다리 고기다리던 책이 왔습니다. ^^;

여기에서 기대하고 있다고 말씀드렸던,writing testbenches using systemverilog와 Verification Methodolgy Manual for SystemVerilog 입니다.

이 책은 한 2주일후 쯤에 아시는 분은 아실(^^;) 건대 아저씨께 맡겨두겠습니다.
필요하신 분은 2주쯤 후에 건대 아저씨께 문의하세요~

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

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/132
gnil | 2007/01/11 20:49 | PERMALINK | EDIT/DEL | REPLY
ㅎㅎ~
조만간 건대 놀러 가봐야 겠네요 ^^;
babyworm | 2007/01/14 03:55 | PERMALINK | EDIT/DEL
저도 가본지가 꽤 되어서 오랫만에 가게 될 것 같습니다. ^^;
사과맨 | 2008/01/20 20:11 | PERMALINK | EDIT/DEL | REPLY
저도 사볼까 하는데 후기는 언제쯤 올리실런지..^^
babyworm | 2008/01/22 21:18 | PERMALINK | EDIT/DEL
writing testbenches는 사실 2nd edition과 큰 차이가 있는 건 아니고, 사용 언어가 systemverilog 기반으로 움직인 것만 차이가 있는 느낌이구요.
VMM은 사실 책을 다 못봤습니다. 쩝.. 게으름 때문에
[로그인][오픈아이디란?]
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
Mentor의 Summit Design 인수!
[babyworm, 2006/10/25 20:42, SoC 설계 관련/관련 새소식]

사용자 삽입 이미지
우와~! 오늘 mentor graphics가 summit design을 인수했습니다.

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

여하튼... 다시 돌아와서..
Mentor의 요즘 행보를 보면 system level design & verification에 아주 집중하고 있는 모습을 보여주고 있습니다.
여러가지 systemC와 SystemVerilog기반의 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을 인수해서 이런 분위기가 더 힘을 받을 것이라 생각되는 군요.

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

babyworm
2006/10/25 20:42 2006/10/25 20:42
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Mentor Graphics, Summit Design, System Level Design, SystemC, SystemVerilog, 멘토

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

Secret
TLM으로 설계가 이동할 것인가?
[babyworm, 2006/10/23 11:04, SoC 설계 관련/검증이야기]
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이 새로운 개념이 아니라는 것은 verification 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의 확장 라이브러리들

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

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

요즘에 검증쪽 일을 할라고 슬슬 작업중인데.. 음.. 삽질을 많이 할듯 해서 걱정입니다.
babyworm
2006/10/23 11:04 2006/10/23 11:04
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
assertion, AVM, HVL, SCV, synopsys, SystemC, SystemVerilog, verilog HDL, 검증

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/76
gnil | 2006/10/23 13:23 | PERMALINK | EDIT/DEL | REPLY
메모리 공정은 cell cap. 위주라 peri tr. 성능이 잘 안 나오는 것 같아요...
그리고 기능도 복잡한 것은 아니니
메모리 설계는 schematic capture를 어느정도 계속 하지 않을까... 생각됩니당
Static CMOS logic & edge-triggered FF 조합은 overhead가 크다고 보고 있거든요...

그래도 나중엔 차근차근 RTL design flow를 따르는 것도 생길 것 같지만요... (reuse 압박 때문)
그럼 TLM은 너무 머나먼 얘기? ^^;
babyworm | 2006/10/29 21:36 | PERMALINK | EDIT/DEL
게이트의 서킷 수준까지 고려하셔야 하니. 당연하겠지요..^^;
파파존스 | 2006/10/24 01:36 | PERMALINK | EDIT/DEL | REPLY
TLM..
저 박사 논문 쓰면서도 일부 블록은 이 TLM으로 설계해서 검증했더랬죠..
그런데.. 생각만큼 툴이 빨리빨리 못받쳐주네요..
이젠 저에게서도 기억 저편으로 멀어져 갔구요...
Synthesis tool이 똑똑해지면서 RTL이 대접 받은 것 처럼
이 TLM도 EDA의 도움이 절실하죠.. ^^
67hoyah | 2007/02/28 14:57 | PERMALINK | EDIT/DEL | REPLY
퍼갑니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

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