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 |