guestbook
-
홍성규
-
-
권용섭
염치없지만 하나 여쭈어보고 싶은게 있어 이렇게 글을 적습니다...;;
2010.07.19 11:58 신고 [ EDIT/ DEL : REPLY ]
SystemC에서 제가 모듈 하나를 만들고 있는데 모듈내에 포트를 배열로 선언하여
8비트 정보가 전달하도록 하고자 합니다.
이래저래 포트를 sc_out_rv<8>로 선언을 해서 포트는 생성이 되었는데
그 포트에 제가 원하는 값을 쓸수가 없습니다.
배열 포트에 원해는 값을 쓰는 방법은 어떻게 하면 되나요?
AAA.write("100000000"
이런식으로 하니깐 컴파일 시에는 오류가 나지는 않으나 gtkwave를 통해서 보면은
x00000000이런식으로 나오게 됨니다...
ㅠㅠ 혹시 알고 계신다면 알려주시면 정말정말 감사합니다.ㅠㅠ-
GUNDAM
포트에 값을 직접 쓴다는 의미는 포트에 상수를 매핑한다는 의미입니다.
2010.07.19 20:02 신고 [ EDIT/ DEL ]
그런 직접적인 방법으로 포트에 값을 쓰지 마시고 포트에서 신호로 매핑한 다음 그 신호에 값을 써보시는 간접적인 방법으로 해보세요
...
cachecore.h
SC_MODULE(cachecore)
{
// System Interface
sc_in_clk clk;
sc_in<bool> RSTb;
....
// Cache Config Register
sc_in< sc_uint< 12 > > CFGREG_BASEADDR_0 ;
.....
}
....
cachecoretb.h
...
SC_MODULE(cacheTB)
{
....
// Cache Config Register
sc_signal< sc_uint< 12 > > CFGREG_BASEADDR_0 ;
....
}
////////////////////////////////////////////////////////////
SC_CTOR( cacheTB ) : CacheCore("CacheCore"
{
......
/* 요기서 신호로 매핑 */
CacheCore.CFGREG_BASEADDR_0(CFGREG_BASEADDR_0);
.....
}
....
void cacheTB::Initialized_InputSignals()
{
....
/* 값을 간접적으로 전달... */
CFGREG_BASEADDR_0.write(0x100);
...
}
과 같은 방식으로 시그널을 매핑하고 그 시그널에 값을 주면 됩니다.
-
-
권용섭
-
-
박찬오
-
박찬오
-
GUNDAM
시간대를 보니 글을 쓴지 얼마 안되는것 같네
2010.03.24 00:04 신고 [ EDIT/ DEL ]
나는 지금 막 퇴근해서 노트북을 켰는데 ㅋㅋ
CROSS COMPILER TOOL CHAIN상에서 Std Lib을 구성할 려고 하는것 같은데, 대부분의 라이브러리는 쉽게 사용하지만, Low level이라던가 Printf같은 함수들은 그냥 사용하기는 힘들지.
그래서 Cross Compiler tool chain에서는 NEWLIB이라는 라이브러리 세트를 사용해서 해결해. 이 라이브러리 내에 std c lib과 math lib을 가지고 있어서 필요한 함수들은 대개 사용할 수 있지.
http://sourceware.org/newlib/
math lib은 간혹가다가 느린 부분이 있는데 그때는 관련 함수를 최적화 시키는 알고리듬을 설명한 책을 찾아서 그대로 대치하면 빨라질거야.
-