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이구요)
본문에 나왔듯이 캐시 효율로 봐도 이넘이 더 좋을 듯..
쓰고나서 덧글) 테터에서 코드 하일라이트 기능이 엉켰는지 짜증 지대로.. ㅠㅠ;
|
'SystemVerilog'에 해당되는 글 13건
[babyworm, 2009/03/09 14:14, SoC 설계 관련/관련 새소식]
[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가 대세 요약하면 이렇게 되는 거죠.. 사실 설계 언어로서 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 기반이라는 건 컴파일 할때 험난한 여정을 의미하죠..뭐 여하튼 생각보다 OVM이 지지를 많이 받고 있군요.. 시뮬레이션에 많이 사용되는 cadence와 mentor의 연합이니 그럴 수 있겠다는 생각이 (반면에 약간 툴 버젼을 가리는 것은 아깝습니다. - 물론 지원되는 system verilog 문법 때문에 어쩔 수 없겠습니다만..) p.s. 2월 들어 첫 딸 돌잔치 준비를 열심히 하느라 집에서 블로그에 들어올 시간이 없었습니다. ^^; 돌 사진 찍은 거 보정하는 것과 성장 동영상 만드는 것을 미뤄두고 있다가 2월 내내 꼬박 퇴근 후 시간을 투자해야 했으니까요. 이제 좀 여유로워졌으니 다시 글이 올라갈 것이라고 생각 해 봅니다. (천성이 양치기 소년이라.. 믿을 수 있을지는..)
[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/05/02 23:21, 분류없음]
5월 11일에 Discovery seminar가 COEX에서 있습니다.
개인적으로는 요즘 최대의 관심 분야가 저전력과 functional verification인데, VMM에 대해서 집중적으로 다룰 예정이라 아주 구미를 자극하고 있습니다. 대략 90%는 참석할 예정입니다. (10%는 회사의 사고에 대비해서..^^;) 참석하고 나서, 대충 요약해서 올리도록 하지요.
Track A1 Abstract Debug and Analysis with DVE Track A2 Abstract Verification of Low Power Designs Track B1 Abstract Using Verification IP in a VMM Environment Track B2 Abstract Accelerating Verification using the VMM Hardware Abstraction Layer with ZeBu Track C1 Abstract Mixed-Signal Verification (MSV) challenges and solutions Track C2 Abstract
[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로 변환하는 과정을 의미합니다. "기계적"이란 용어를 사용한 건 말이 그렇다는 것을 알려드리고 싶어서입니다. ^^; 검증에서는 약간 더 많은 추상화 단계를 지닙니다. 사실 검증이라기 보다는 modeling이라는 표현이 맞겠습니다. 이건 model의 정확성과 수행 시간간의 상관관계 때문에 아주 정확하지 않아도 되는 부분은 추상적으로 표현해서 속도를 빠르게 할 수 있기 때문이지요. 예를 들어, gate 수준으로 구현된 netlist simulation보다 RTL simulation이 훨씬 빠른 것이 당연하고, RTL simulation보다 대략적인 functional model을 이용하는 것이 더 빠르니까요. 이 functional model은 약간 더 세분하면
대략 이런식으로 나눕니다. 물론, 이것 이외에도 behavior level을 나누는 형태로
둘 사이에 많은 유사점이 있는데, 큰 사항은 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/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/01/10 22:37, 책이야기]
요즘에 프로젝트 마무리 관계로 약간 바빠서 이 책을 읽는건 좀 뒤로 미루어야 할 것 같습니다만..
[babyworm, 2006/12/28 00:12, 책이야기]
사실 원래 제목은 Springer의 DVCon06, DAC06, ICCAD06의 best selling book이라 지어야 정상이겠죠.
이 글은 Deepchip의 글을 바탕으로 적습니다. DVCon이라는 것이 Design verification engineer들에게 최대의 축제라는 것은 아실테고.. 거기서 많이 팔린 책은 다음과 같습니다. DVCon Best Seller 10 보기 대세가 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 보기 여기서도 역시 System Verilog가 대세입니다. 큰 물결을 이루었다는 걸 다시 한번 느낄 수 있네요. SystemC도 나름 저력을 보여주고 있습니다. 3번에 나온 책은 사실 저도 좀 사서 보고 싶네요.. ICCAD도 DAC와 좀 비슷한 성질인데, Design쪽 논문이 생각보다 좀 있는 conference입니다. 여기서 팔린 것을 보면.. ICCAD06 Best Seller 10 보기 Design부분에 대한 내용이 주를 이루고 있습니다. 음.. 1번 책이 가장 궁금하고.. 3번책은 저도 가지고 있는 책인데.. 예전에 CAD algorithm할때 사서 열심히 봤던 책이군요.. 아.. 머리아퍼..ㅠㅠ; 4,5번 책도 사고 싶은데.. 에이고.. 이건 뭐 책값이 워낙 비싸서요.. 후배들에게 부탁해서 도서관이 책 신청을 하던지 해야지요.. 좋은 책 많이 읽으시고, 좋은 책 있으신 분 공유~ ^^;
[babyworm, 2006/12/10 19:10, 개인적인]
이번달 들어서면서 포스팅이 갑자기 적어졌습니다. 직접적인 이유는 검증 일을 시작하면서, 배경 지식을 쌓아두기 위해서 보는 책과 기사들이 너무 늘어나서 머리속에서 정리가 되기 전에 이 부분에 대하여 포스팅 할 엄두가 안나구요..게다가, 검증 작업을 flow에 맞추어 한번 제대로 해 보려고 시작했는데, 일이 끝나기 전에 어설픈 것을 올리기도 뭐해서 그냥 그냥 시간만 흐르고 있습니다. 주말에 MPR이나 EEtimes news라도 보면 posting할 것인데, 요즘에 주말에도 검증쪽만 파고 있어서요.. 제대로 해 보려고, Verification Plan을 짜고, DITL document를 쓰고, Breakout document를 작성하면서 checker model, coverage model 같은 것을 구상하고 있는데.. 예전에 해 봤던 pseudo random verification이란 것이 얼마나 단순하게 생각해서 한 것인지 자신을 질책하게 됩니다. 그때 조금만 더 앞으로 나갔었다면 지금은 좀 더 좋은 verification infrastructure상에서 일을 하고 있을텐데 말입니다. 처음 한 걸음 부터 너무 크게 내딛을려 하는 것이 아닌가.. 하는 생각도 없잖아 있지만, 이 프로젝트에만 적용될 수 있는 검증 인프라가 되더라도 generalize에 대한 고민을 하면서 작성하면 나중에 확장이 좀더 쉬워지지 않을까 생각됩니다. 머리속이 정리되거나, 약간 더 시간이 된다면 포스팅이 더 많아지겠지요..^^;
[babyworm, 2006/11/28 23:29, SoC 설계 관련/검증이야기]
검증 작업을 시작했다는 포스팅을 얼마전에 했었습니다. 하지만, 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/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/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용으로 아직도 가끔은 씁니다..) 딴 이야기로 흘렀군요.. 맨토에서 summit design을 얼마에 인수했는지 알려지지는 않았습니다만, System Level design쪽에서 GUI 기반의 툴이 상당히 창궐하는 분위기에 적절하게 mentor에서 summit을 인수해서 이런 분위기가 더 힘을 받을 것이라 생각되는 군요. 맨토가 과연 시스템 수준 설게에서 어떤 결과를 낼지 궁금하군요..
[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이 대세니까요.. 요즘에 검증쪽 일을 할라고 슬슬 작업중인데.. 음.. 삽질을 많이 할듯 해서 걱정입니다.
|
||||||||||||||||||||||||||||












