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