ASIC SoC2009. 10. 27. 10:59
해마다 이맘때 쯤이면,
환절기 감기가 찾아오듯이 들리는 소리는, 좋은 사람 소개시켜 돌라는 청탁아닌 청탁입니다.

주변에서 이런 이야기가 자주 들리기 시작하면, 아.. 드디어 취업 시즌이 다가 왔구나. 하고 생각하게 됩니다.

그리고 올해도 어김없이 취업 시즌이 다가왔습니다.
여기저기 경기가 풀릴려나 하면서 사람을 찾기 시작합니다.  
이른바 Self Scout  모드로 탐침을 세우고 다니는 사람들이 눈에 띄기 시작합니다.

이제 우리 회사도 사람을 충원하기 위해서 공고를 내고 면접을 보고 해야 합니다.
올해도 0명 모집을 위해서 열심히 노력해야 합니다.

그런데 생각해보면 채용 기준은 아주 아주 간단합니다.  결코 엄격하거나 턱없이 높은 수준이 아닐것 같은.. 단순한 수준이랍니다.

F.S.S에 나오는  다이버와 기사의 힘을 함께 가진 바이어의 수준을 요구하는 것이 아니고 그냥
C언어 할 수 있고 Computer Architecture만 이해하면.. 입니다.
(게다가 게임이나 애니 좋아하면 금상 첨화.. 대화가 잘 통할 것 같다는 사심이 약간 들어간 기준입니다.)

말하자면 견습 기사 수준..
 
그런데 그런 "견습 기사" 분들 찾기가 쉽지 않은것 같습니다.

  우리만 그러면 아.. 우리 회사가 얼렁 키워서 강남으로 진출 해야지 하겠는데  그런 지리적인 요소만은 아닌듯 합니다.  우스개 소리로 가위바위보 해서 이긴사람이  상대방 회사에서 한명씩 데리고 오기로 하자는 말을 할 정도로 다른 회사들도 심각하니.. 말입니다.

이제 취업 시즌을 시작하면, 공고를 내고 채용까지 매주 3~4명 면접 보아야 하는 장기 레이스가 시작됩니다.
올해는 단기로 끝나면 좋겠는데.. 하는 즐거운 생각을 해봅니다.

아니면 회사끼리 흑기사 제도를 도입해 볼까.. 라는 공상도 해보기도 합니다만,
에후.. 현실은 그렇지가 못하니.. 실현 확률 0%...



Posted by GUNDAM_IM
ASIC SoC2009. 10. 21. 12:55

SystemC에서 Module을 생성할 때에 파라미터를 전달하는 방법이 가끔 필요합니다.

같은 모듈을 인스턴스로 생성시키지만, 특정 파라미터를 바꾸어서 동작을 틀리게 할 경우에 유용하게 사용할 수 있습니다.


이런 경우에 아래와 같이 구성하면 됩니다.


#if 0

SC_CTOR(AXI_TestMaster)  {

// main function

SC_CTHREAD(AXI_TM_entry,CLK.pos());

}//end of SC_CTOR

#else

SC_HAS_PROCESS(AXI_TestMaster);

AXI_TestMaster(sc_module_name nm, char * filename = "Default.tsq") : sc_module(nm) {

// main function

FileName = filename;

SC_CTHREAD(AXI_TM_entry,CLK.pos());

}

#endif


........
사용 예
      AXI_TestMaster AXI_TM0("TestMaster0.cfg");
      AXI_TestMaster AXI_TM1("TestMaster1.cfg");
      AXI_TestMaster AXI_TM2("TestMaster2.cfg");

각각의 모듈이 기본적인 동작은 같지만 운용 방법을 조금 씩 틀리게 할 경우 위와 같이 준비하여 두면 편리합니다.

이 방식에 대한 참고 사이트는 아래와 같습니다.

http://www.doulos.com/knowhow/systemc/faq/
 

'ASIC SoC' 카테고리의 다른 글

SystemC에서 배포가능 버전 만들기  (0) 2009.11.01
취업 씨즌이 시작되었군요  (0) 2009.10.27
SystemC에서 typdedef과 switch사이의 관계  (0) 2009.09.25
SystemC : Thread 2nd  (0) 2009.08.26
GTKWave 를 OSX에서 구동하기  (0) 2009.08.24
Posted by GUNDAM_IM
ASIC SoC2009. 9. 25. 09:26
SystemC언어로 설계하면 여러가지 편한점과 불편한 점이 있는데요
가장 불편한점은 누구 하나 속시원하게 해본적이 없다는 점입니다.

상위 수준 상위수준 하지만, 얼마 만큼의 상위수준까지가 합성이 되는지에 대해서 아직은 아는 사람이 없다는  부분이 또 걸리는 문제입니다. 결국 ERROR & TRY를 계속하면서 가는 수 밖에 없는 것 같습니다.


아직은 불편한 점도 많지만,
편한점은 몇가지 루틴만 이해하면 바로 설계에 들어갈 수 있다는 점이 장점입니다.

그런 점에서 보았을때 Typedef를 적절하게 이용하면 편리한 설계를 할 수 있습니다.
typedef + struct로 정의하는 것입니다. 이런 방식은 VHDL의 Record 타입과 비슷한 개념입니다.

몇가지 사항을 typedef로 정해서 진행하다 보면 쓸데 없는 오류에 봉착하는데요.. 아래에 그런 것에 대해서
한가지를 정리해 두었습니다.
진행하다가 더 나오면 그때 그때 정리하도록 하겠습니다.


SystemC에서 BUS는

sc_uint< bussize > busname;

으로 정의가 됩니다.

그런데 귀찮아서 이를 typedef로 정의하고 사용하면 에러가 발생합니다.

typedef sc_uint<32> tBUS_TYPE;

이라고 정의하고,

아래와 같이 함수에서 사용하면 에러가 발생합니다.

void classname::foo()
{
switch(BUS_TYPE)
{
....
.......
}
}


그래서

void classname::foo()
{

sc_uint<32> BUS_TYPE_int ;
BUS_TYPE_int = BUS_TYPE;

switch(BUS_TYPE_int)
{
case AHB :
....
case AXI  :
....
case WISHBONE :
....
}

}

위와 같이 로컬 변수로 받고 정의하면 에러가 없이 실행이 됩니다.
이것은 Signal로 선언되면 Signal Class로 다시 한번 상속되기 때문에,
container로 확장된 값과는 틀린 의미여서 switch로 사용할 수 없기 때문입니다.

좀더 직접적인 방법은 read() 메쏘드를 사용하는 것입니다.

switch(BUS_TYPE.read())
{
case AHB :
....
case AXI  :
....

이렇게 하면 후처리 작업이 필요 없이 정리할 수 있습니다.

'ASIC SoC' 카테고리의 다른 글

취업 씨즌이 시작되었군요  (0) 2009.10.27
SystemC : Module을 인스턴스 할 때에 파라미터 전달 하기.  (0) 2009.10.21
SystemC : Thread 2nd  (0) 2009.08.26
GTKWave 를 OSX에서 구동하기  (0) 2009.08.24
SystemC : Thread  (0) 2009.08.21
Posted by GUNDAM_IM
Hobby2009. 9. 23. 20:50
때떄로 GUI를 디자인할 일이 생기는 경우가 있습니다.
1년에 1~2회 정도는 GUI를 이것 저것 해야 하는 경우가 생기고 그것 때문에 신경을 써야 하더라구요

그때마다 M$사의 프로그램을 이용해서 해왔고
지금은 CURIO라는  MAC S/W를 이용해서 디자인을 합니다.
나름 산뜻하게 나오고, 사용법도 좋아서 애용하고 있습니다.
특히 이 프로그램은 자체적으로 PT로 바로 전환할 수 있는 점이 장점입니다.

이번에 우연히 발견한 프로그램은 좀더 원초적인 GUI Outliner 프로그램입니다.
백문이 불여 일견이라고 아래 사진을 보시면,

사용자 삽입 이미지
itunes를 손으로 그린것 으로 보이시게지만, 이것이 바로 이프로그램을 이용해서 GUI Outline을 잡은 것입니다.
Balsamiq사의 MockUp이라는 프로그램입니다.
$79에 파는 프로그램인데, 어쩌다 한번 정도 GUI 디자인하는 저보다는 자주 GUI를 디자인 하는 사람에게는 손으로 그린 이펙트가 좋기 떄문에 애용하면 좋을 것 같습니다.

사용자 삽입 이미지
 NAVI MAP을  GUI로 만든것입니다.

사용자 삽입 이미지
역시 iPHONE GUI를 도안한 화면입니다. ..

때때로 반듯반듯한 그림을 만들기 위해서
특히 칩의 Block Diagram을 3D를 이용해서 Block diagram으로 그리면 PT시에 이펙트가 정말 좋은데
이런 프로그램을 통해서 손으로 만든것 같은 블럭도 이펙트도 좋을 것 같습니다.

손으로 그린 GUI 효과는 애플 계열의 PT에서 많이 나오는데
볼때마다 편안하고 몰입감이 있다는 느낌을 줍니다.
이 프로그램은 그런 편안한 상태의 그림을 만들어 주기 떄문에 받아들이는 쪽에서 쉽게 받아들일 수 있는 좋은 효과를 얻을 수 있을 것 같습니다.

다양한 O/S를 지원하므로 O/S에는 큰 상관이 없이 사용할 수 있습니다.

'Hobby' 카테고리의 다른 글

[DQ9] 드디어 마지막 장으로....  (0) 2009.11.12
Dragon Quest IX 열랩하기  (0) 2009.11.05
건담 강림 3rd - 사진 정리  (0) 2009.09.02
건담 강림 2nd - 드디어 실물을 보러 갔습니다.  (0) 2009.08.31
이럴수가....  (0) 2009.07.17
Posted by GUNDAM_IM
Books2009. 9. 21. 10:52

재미있는 책 2 권 소개합니다.


오래간만의 책 소개입니다.

같은 출판사의 책이고, 접근법은 아주 동일한 방식으로 서로 다른 주제를 다루고 있습니다.


Embedded Recipes

사용자 삽입 이미지


RF 기초강의실

사용자 삽입 이미지


위의 책 2권입니다.


한권은 Embedded System에 대한 전반 적인 내용을 풀어서 기록한 책이고, 다른 한권은 RF 기초에 대한 내용을 풀어쓴 책입니다.

사실 저는 RF에 대해서는 완전히 초짜에 가까운 지식을 가지고 있어서 항상 궁굼해 하던 차에 우연히 발굴(?) 한 책입니다.


두 서적 모두 특징은 초보자를 위해서 쉽게 쉽게 접근하기 위해서 노력한 책입니다.

이런 스타일의 책은 저자 분의 능력에 따라서 아주 다른 평가를 얻을 수 있습니다.

대개 이런 류의 책은 저자가 지식이 풍부하다는 전제 하에서도, 최대한 쉽게 기록하는 것을 목표로 하고 있습니다.

하지만 약간 어설픈 설명으로 진행 할 경우 이도 저도 아닌 책이 되어버리는 경향이 있기 마련입니다.


for dummies 씨리즈의 경우가 그러한 예인데요,

잘 지은 책은 아주 좋지만, 잘못 지은 책은 자꾸 이상한 이야기의 나열이 되어버리는 경향이 있습니다.


1.  아시는 분은 아시겠지만..


제가 모든것에 취약한데 그중에서 특히 RF 완전 취약합니다.

RF 목안의 가시처럼.. 항상 걸리는 존재, 미지의 영역 입니다.


복잡한 수식은 정말 싫어.

그래도 남들과 기본적인 이야기는 하고 싶어

그래도 전문적인 그리고 본격적으로 개발할 내용까지는 필요 없어

라는 개념을 가진 저에게


“RF 기초 강의”는 그런면에서 아주 잘 정리된 책입니다.

사실 어느정도 전문가도 접근하기 힘든 부분을 최대한 복잡한 이야기를 배제하면서 기록하는데 중점을 두었습니다. 특히 개발에 대해서 많은 경험을 가지고, 경험론 위주로 쉽게 쉽게 쓸려고 노력한 책이어서

저처럼 R/L/C를 대학교때에 들어본 분들이 이제부터라도

RF에 관심을 가지신다면 권해드릴 수 있는 책입니다.


2. Embedded Recipes는


특히 이 책은 저자분이 블로그에 올리실 때 부터 유심히 보고 있다가 출간하자마자 속공으로 구입한 책입니다. 설명하는 방식은 RF 기초 강의와 같은 접근법을 취합니다.  전반적으로 쉽게 쉽게 풀어쓰는 것을 목적으로 하였습니다.

회로도에서 시작하여서 , ARM Processor, RT/OS등으로 연속 콤보로 들어가기 때문에

쉽게 따라가면서 읽을 수 있습니다.


하지만 약간의 단점이라면 단점일 수 있는 부분이, 너무 쉽게 풀어쓸려고 노력하였기 때문에,  불필요한 (원래 쉬운) 부분도 더 쉽게 풀어쓰는 수고를 하셨다는 점입니다.


그리고 한권의 책에서 많은 부분을 커버하였기 때문에,  

의외로 깊이 있는 부분에서는 조금 부족한 느낌입니다.


개인적으로는 (1,2,3 부 식으로 첵을 몇권으로 나누더라도 ) 범위를 조금 좁혀서 썼으면 훨씬 좋은 책이 될 수 있을거라 생각합니다.


하지만, 초보 입문자가 읽어보고, 간접 경험을 쌓기에  좋은 책입니다.

강의할 때 관련 부분을 물어보는 학생들이 있으면 소개시켜주기에 마땅한 책이 없었는데 이 책은 학생들에게 한번씩 읽어 보라고 권하기 시작했습니다.


Posted by GUNDAM_IM
Hobby2009. 9. 2. 21:45
감동의 물결을 끝내고,
일상으로 돌아와서, 사진을 정리하고 있습니다.


그중에서 괜찮은 사진 몇 장을 더 올리도록 하겠습니다.

사용자 삽입 이미지
뒤에서 찍은 사진입니다.
약간 구름을 넣어서, 공백을 살린듯한 느낌으로.. 찍었습니다.

사용자 삽입 이미지

건담 발바닥 모형입니다.
비교를 위해서 제 발이랑 같이 찍었습니다만,  슬리퍼 신고  일본 놀러간게 드러나는 군요.. ㅋㅋ

사용자 삽입 이미지

태양 빛을 조명삼아서 찍은 사진입니다.
꽤 광선이 강하게 나와서, 애니 장면중 하나 같죠..

사용자 삽입 이미지

비오는날 30분 줄서기 중에 건담 근처에 갔을때 찍은 사진입니다.
마치 막 일어선 느낌이 납니다.
정말 포즈 하나는 멋지게 잡은것 같습니다.

사용자 삽입 이미지
이건 좀더 가까이 갔을때에 찍은 사진..
건담 아이스케키 사진도 있는데 큰 의미가 없는것 같군요

사용자 삽입 이미지
스팀을 마구마구 뿜어내는 사진입니다.
사용자 삽입 이미지
박력있는 옆모습 입니다.

사용자 삽입 이미지
마지막 공개라서 더 사림들이 몰려있는것 같습니다.
비가 주륵주륵 내려도 모두 사진찍고, 있느라 정신 못차리고 있습니다.

아.. 좀전에 기사를 보니 이 건담도 철거되고 있다고 합니다.
그전에 보고 와서 다행이지만,
아쉽기도 하네요...

언젠가는 샤아전용 자쿠와 함께 전시될 날을 기다려 보겠습니다.
토미노 옹께서, 말씀하신 샤아의 기백 넘치는 자쿠의 모습이 되겠죠..


'Hobby' 카테고리의 다른 글

Dragon Quest IX 열랩하기  (0) 2009.11.05
MockUp-재미있는 GUI Outliner 프로그램  (0) 2009.09.23
건담 강림 2nd - 드디어 실물을 보러 갔습니다.  (0) 2009.08.31
이럴수가....  (0) 2009.07.17
[일드] 스타의 사랑  (0) 2009.05.10
Posted by GUNDAM_IM
Hobby2009. 8. 31. 11:47
주말에 드디어 계획했던 올빼미 여행을 다녀왔습니다.
목적은 단 한가지 현세에 강림한 건담을 보고자 하는 것이었습니다.

집사람에게도 회사원들에게도 말을 안하고, 가는 여행이라서.. 몰래 몰래 준비해서 갔습니다.
흐흐흐흐
~~

사용자 삽입 이미지
심바시에서, 오다이바에 들어가는 모노레일인 유레카모메를 타고 오다이바를 들어가는 중에 찍은 삿입니다. 저 멀리에 건담이 서 있는것이 보이죠. 오 두근두근.. 거리는 심장 소리가 들리는 듯..
이떄가 새벽 6시입니다. 유레카모메 맨 앞에 앉기 위해서 한대를 그냥 보내야 했습니다. 웬 사람이 그리도 많은지..
같은 비행기 타고 온 팀도 같이 가더군요..  서로 가볍게 눈인사.. 정도..

사용자 삽입 이미지
이제 유레카모메가 앞에 들어가면서, 맨 앞에 앉은 저는 직선으로 찎을 수 있었습니다.
맨 앞에 앉기 위해서 새벽 6시임에도 불구하고, 차를 1대를 보내고 그 다음차로 타야 했습니다. 새벽 6시부터 유레카모메에는 사람이 앉을 자리가 없을 정도로 북적거렸습니다.

사용자 삽입 이미지
좀더 다가갔을때, 광학 줌 10배 일렉트릭줌 20배짜리 카메라로 최대한 당겨찍은 썃입니다. 오~~
포스~~있는 건담..

사용자 삽입 이미지
내려서 걸어가면, 사람들이 꽤 많이 함께 가고 있었습니다
저 멀리 빔샤벨이 보이고, 다시 숲 사이로.. 건다리움 합금의 다리가 보입니다.

사용자 삽입 이미지


숲 사이로 나타난 건담의 뒷모습..
들어가면서 뒷모습부터 볼 수 있도록 구조가 정리되어 있습니다.
역시 건담을 아는 사람들이 설계한 것이라서, 압모습부터 보여주는 불상사(?) 원천적으로 막아둔 구조 배열입니다.
조금씩 조금씩 하나씩 하나씩 보여주는 구조로 배열해 두었습니다.
그래서 들어가면서 조금씩 볼 수 있어서 더 두근거림으로 가득했습니다.

사용자 삽입 이미지

완전하게 보이는 건담의 뒷모습이죠
통속적인 구도의 샷이긴 하지만, 아침해에 보이는 건담의 뒷모습은 찬란합니다. ~~

사용자 삽입 이미지
멀리서 찍은 샷..
새벽 6시 20분인데도 사람들이 바글 바글.. 하죠..

사용자 삽입 이미지
6시 20분에 찍은 건담 주변입니다.
건담이 일반에게 공개되는 마지막 달 마지막 주말이어서 사람들이 아주 많이 모일거라 예상했지만
새벽부터 모일줄이야

사용자 삽입 이미지
건담의 앞모습.. 정말 압권입니다. 1:1 사이즈라니..
그 위압감은 장난이 아닙니다. 오오~~

사용자 삽입 이미지
원래 디카에 제가 들어가는 것을 좋아하진 않지만, 인증샷 하나는 찍어두는 센스를 발휘~~

사용자 삽입 이미지
떄마침 날라가는 새떼들과 같이 더블샷으로..
이후에 비행기랑 같이 찍은 샷도 있지만, 구도가 잘 안나와서.. 이것으로.. 대치했습니다.

사용자 삽입 이미지

백팩의 디테일까지 제대로 살린 저 정밀한 재현.. 대단하죠
노즐의 분사에 의한 웨더링까지 잘 살렸습니다.
저런 세심한 디테일을..


사용자 삽입 이미지
이것은 일요일 저녁에 가서, 구동되는 건담을 찍은 샷입니다.
건담 카메라 아이에서 불이 들어오는것을 시작으로 3분간 데몬스트레이션을 합니다.

목이 까딱 까딱 , 눈이 깜빡 깜빡 , 가슴과 허리에서 스팀이 쏴..쏴~~. 하는 데몬스트레이션이지만,
정말 감동입니다.
"살아있길 잘했어, 건담 라이프를 하길 잘했어" 라는 생각이 절로 듭니다.

사용자 삽입 이미지
건담 헤드를 하늘로 치켜 들고 스팀을 뿜어내는 샷입니다.
자세히 보면 허리에서도 스팀이 뿜어져나옵니다.

사용자 삽입 이미지
이것은 일요일 저녁에 다시 오다이바로 갔습니다. 새벽 비행기를 타야하고, 그 걸 타기 위한 버스가 오다이바 온천에서 출발하기 때문에 들어갔지만,

무엇보다도 건담이 구동되는 샷을 찍기 위해서 간것입니다.  정밀한 일정 조정을 했었죠
전날 아침에는 막혀있던 건담 다리사이로 지나가는 통로가 열려있었고 사람들이 줄을 서서 지나가더군요..  비가 주륵 주륵 내리는 와중에 30분 정도를  줄서서 비를 맞으며 기다려서 찍은  최고 접근 샷입니다.

물론 당연히 건담의 재질은 건다리움이 아닌 강화 프라스틱으로 만든 형태입니다만, 다리 내부의 기어블럭까지 정밀하게 재현한 정말 디테일이 살아 있는 디오라마입니다.

     정말 정밀하게 디테일을 살린 건담은
     "거대한 프라모델 같아" 라는 패트래이버의 이즈미의 말이 딱 들어맞습니다.
     저렇게 까지 디테일을 신경 쓸 줄이야.. 라는 느낌으로 관절 내부까지 잘 디테일을 살렸습니다.
     2004년이던가 우리나라에서 건담 페스티발을 했었는데
     1:1 사이즈라고 해서 갔더니.. 1:1 사이즈의 플랙카드를 붙여놓은 건담을 보고 급 실망을 했었는데
     그 슬픈 기억을 말끔히 지워버릴 정도로 강렬한 이미지입니다.

느낀점

1)  건담이라는 것이 하나의 문화가 되어버린 것을 보면서 우리나라에서 이런 문화가 없다는 점이 너무 아쉽고

2)  우리나라 같으면 아마 후원사 로고가 건담 여기저기에 붙어 있을 텐데 그런것이 없었다는 점
     - 왼쪽 어깨의 행사 로고 빼고는.. 없었습니다.
     - 2002 월드컵때 보면, 자사 로고 넣기에 여념이 없었던 기업들이 많았죠
       문화를 문화로 보지 못하는 관점이 낳은 현상입니다.

3)  우리도 저렇게 할 수 있을까라는 의문이 듭니다.
     이정도로 경쟁력 있는 컨텐츠를 만들려면 얼마나 노력해야 할까요 ?
     30년 ? 40년 ?
     말로는 컨텐츠 양성을 외치지만,
     조금만 눈밖에 벗어나면 19금 딱지 붙이는 지구를 지키는 방위 조직인 영*위를 보면
     아쉽습니다.

끝으로

건담 라이프 인생에서 가장 중요한 것을 본 느낌.. 이랄까..


'Hobby' 카테고리의 다른 글

MockUp-재미있는 GUI Outliner 프로그램  (0) 2009.09.23
건담 강림 3rd - 사진 정리  (0) 2009.09.02
이럴수가....  (0) 2009.07.17
[일드] 스타의 사랑  (0) 2009.05.10
건담 만들기  (2) 2009.03.16
Posted by GUNDAM_IM
ASIC SoC2009. 8. 26. 05:57
SystemC에서는 3개의 Thread 모델링 방식을 제공하는데
어떤 것이 하드웨어적으로 맞는지에 대해서는 그 상황에 따라서 선택하는 것이 좋습니다.
하지만 합성을 목적으로 한다면, SystemC 합성 툴이 제시하는 문법에 따라서 정리하는 것이 나중에 번거롭게
두번 작업하지 않고 정리할 수 있습니다.

Forte에서 제공하는 자료에는 아래와 같은 형태를 권장하고 있습니다.
이해를 쉽게 하기 위한 그림이 아래와 같습니다.


사용자 삽입 이미지




위의 그림은 Verilog와 비교하여서 준비된 것입니다.
verilog와의 차이점은 verilog는 묵시적으로 내부에서 wait 구문이 존재하여서 always 블럭의 끝에 도달하면 wait 상태에 들어가는 것이 당연합니다. 하지만, CTHREAD에서는 wait()를 CTHREAD의 끝에서 명시해 두어야 합니다.
물론 그 중간에 넣어도 됩니다. 이런 경우 Multi Stage가 될 수 있습니다.

Posted by GUNDAM_IM
ASIC SoC2009. 8. 24. 04:41
앞에서 소개해 드렸던 Scansion은 아직 버그가 있어서 사용하는데 불편합니다.
간단한 버그인데도 수정이 안되는 것을 보면, 안정화 하기에는 시간이 많이 필요할 것 같습니다.
그래도 MAC GUI 스럽다는 장점때문에 사용을 하고 있읍니다.

일단 버그 없는 것을 쓴다면 당연히 GTKWave 이죠.
정확하게는 버그가 없다기 보다 버그가 없을 확률이 Scansion보다는 높다는 점이겠군요

맥에서 설치하는 방법은
2가지 방법을  중 하나를 선택해서 할 수 있습니다.

소스를 빌드하는 것과 mac ports를 사용하여 설치하는 것인데요
이래저래 손볼데가 많은 소스 빌드 보다는 mac port를 사용하면 쉽게 설치 됩니다.

1. 소스를 다운 받아서 빌드하는 것.

http://gtkwave.sourceforge.net/?ref=darwinports.com

에서 다운 받을 수 있습니다.

CVS를 통해서 다운 받으면 됩니다.
아래 내용을 그대로 진행합니다.

cvs -d:pserver:anonymous@gtkwave.cvs.sourceforge.net:/cvsroot/gtkwave login
[press enter]
cvs -z3 -d:pserver:anonymous@gtkwave.cvs.sourceforge.net:/cvsroot/gtkwave co -P gtkwave3


다운받아서 빌드하면 됩니다.

2.  mac port를 이용해서 다운 받는 것.

sudo port install gtkwave

위의 명령을 이용해서 설치하면 나름 열심히 빌드해서.. 진행합니다.

Password:
--->  Fetching expat
--->  Attempting to fetch expat-2.0.1.tar.gz from http://distfiles.macports.org/expat
--->  Verifying checksum(s) for expat
--->  Extracting expat
--->  Configuring expat
--->  Building expat
--->  Staging expat into destroot
--->  Installing expat @2.0.1_0
--->  Activating expat @2.0.1_0
--->  Cleaning expat
--->  Fetching gperf
--->  Attempting to fetch gperf-3.0.3.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/gperf
.........
--->  Staging gtk2 into destroot
--->  Installing gtk2 @2.14.5_0+x11
--->  Activating gtk2 @2.14.5_0+x11
--->  Cleaning gtk2
--->  Fetching gtkwave
--->  Attempting to fetch gtkwave-3.1.13.tar.gz from http://distfiles.macports.org/gtkwave
--->  Verifying checksum(s) for gtkwave
--->  Extracting gtkwave
--->  Configuring gtkwave
--->  Building gtkwave
--->  Staging gtkwave into destroot
--->  Installing gtkwave @3.1.13_0
--->  Activating gtkwave @3.1.13_0
--->  Cleaning gtkwave

설치가 끝나면 다음과 같이 실행합니다.

gtkwave -f wavefilename

다음은 실행한 결과 그림입니다.

사용자 삽입 이미지

UI가 MAC 스럽지 않기 때문에 맘에 안들지만, 그래도 버그는 없을 것으로 생각합니다.





'ASIC SoC' 카테고리의 다른 글

SystemC에서 typdedef과 switch사이의 관계  (0) 2009.09.25
SystemC : Thread 2nd  (0) 2009.08.26
SystemC : Thread  (0) 2009.08.21
Sound Engine Processor  (0) 2009.08.18
맥에서 SystemC 하기  (0) 2009.08.10
Posted by GUNDAM_IM
ASIC SoC2009. 8. 21. 12:22
SystemC는 하드웨어 기술 언어입니다.

여러가지 장점과 단점이 있지만, 그런 부분에 대한 내용은 다른 자료를 참고하시면 됩니다.
공부하면서 정리하는 자료들입니다.

하드웨어와 일반 컴퓨터 언어의 가장 큰 차이점은 병렬성입니다.
일반 컴퓨터 언어는 순차적으로 프로그램이 진행되지만, 하드웨어 기술 언어는 일정 블럭 단위 혹은 라인단위로 병렬성을 가지고 실행합니다.

엄밀하게는 순차적으로 움직이지만, 잘 계산하여서 마치 병렬로 움직이는 것처럼 보이게 됩니다.

SystemC는 하드웨어의 병렬성을 모델링 하기 위해서 process  모델로 운용을 합니다.
시뮬레이션 커널은 이 프로세스 모델을 크게 나누어 아래와 같이 3가지 형태로 구분됩니다.

1. SC_THREAD


SC_THREAD(process_name);

SystemC 커널에 process_name 이라는 프로세스 함수를 SC_THREAD 형식으로 등록을 시킵니다.
이것은 시뮬레이션 커널에게 ,  THREAD 형태로 등록되도록 하여 주면, 이후 시뮬레이션이 시작되면 적당한 방법으로 실행하게 됩니다.

다만 다른 프로세스 모델과 틀린점은  아래와 같습니다.
 - 시뮬레이터에서 단 한번만 호출됩니다.
   따라서 지속적으로 운용하고 싶다면, 무한 루프를 만들어서 운용해야 합니다.
 - 함수로서 주고 받는 파라미터가 없습니다.
    즉 전달하는 파라미터나 리턴되는 값이 없이 함수 자체로만 존재합니다.
    이는 시뮬레이션 커널이 해당 쓰레드를 위한 함수를 등록하고 호출하기 위한 매커니즘을 단순하게 하기 위해서 준비된 규칙입니다.

SC_MODULE(onemethod) {
   sc_in<bool> in;
   sc_out<bool> out;

   void toggler(); /* Process a method of the class */

   SC_CTOR(onemethod) {
        SC_THREAD(toggler) ; /* Create an instance of the process */
        sensitive << in ;        /* Sensitive 리스트 */
   }
};

void onemethod::toggler() {
bool last = false;
for(;;) {
last = in ; out = last ; wait();
last = in ; out = last ; wait();
}
}


 2.SC_CTHREAD


 
SC_CTHREAD(process_name,clockname);
 
 SC_THREAD를 조금 확장한 버전입니다. C가 의미하는 것은 Clock을 의미합니다.
 즉 THREAD 버전은 한번만 호출된다는 것을 특징으로 하지만
 SC_CTHREAD로 등록되는 프로세스는 Clock의 이벤트 마다 호출된다는 점을 특징으로 합니다.

SC_MODULE(onemethod) {
   sc_in_clk clock;
   sc_in<bool> trigger,  in;
   sc_out<bool> out;

   void toggler(); /* Process a method of the class */

   SC_CTOR(onemethod) {
        SC_CTHREAD(toggler,clock.pos()) ; /* 사용할 클럭 에지와 함께 선언됩니다.*/
   }
};

void onemethod::toggler() {
bool last = false;
for ( ;; ) {
wait_until (trigger.delayed == true ) ;
last = in ; out = last ;
wait();
last = in ; out = last ;
wait();
}
}

 3. SC_METHOD


  SC_METHOD(process_name);

 Sensitive list에 등록된 인자들이 변할때 마다 호출됩니다. 하지만, 매 호출될때 마다 내부 값들이 보존되지 않고 새로 할당됩니다.

앞서의 2개의 프로세서와의 가장 큰 차이점은 내부에서 wait()를 쓸 수 없다는 점입니다.

SC_MODULE(onemethod) {
sc_in <bool> in;
sc_out <bool> out ;
void inverter ();

SC_CTOR(onemethod) {
SC_METHOD(inverter);
sensitive << in ;
}
};

void onemethod:: inverter()
{
bool internal;
internal = in;
out       = internal;
}

'ASIC SoC' 카테고리의 다른 글

SystemC : Thread 2nd  (0) 2009.08.26
GTKWave 를 OSX에서 구동하기  (0) 2009.08.24
Sound Engine Processor  (0) 2009.08.18
맥에서 SystemC 하기  (0) 2009.08.10
[5] 가장 작은 32비트 프로세서 ZPU 입니다  (0) 2009.07.28
Posted by GUNDAM_IM