bambooflow Note

SystemC/インストール

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

インストールメモ



OSCIで、フリーのライブラリが用意されている。
ここからダウンロードできる。ただし、アーカイブをダウンロードするにはアカウントを作成する必要がある。

現在、バージョン2.2.0が出ている。ただし、2.1.v1から機能追加・変更・削除されているものがあるので、2.1.v1以前の記述から移行する場合は注意が必要。

SystemC-2.1.v1インストール(Linux)

systemc-2.1.v1.tgz

$ tar xzf systemc-2.1.v1.tgz
$ cd systemc-2.1.v1
$ mkdir objdir
$ cd objdir
# mkdir /usr/local/systemc-2.1
$ ../configure --prefix=/usr/local/systemc-2.1
$ make
# make install

SystemC-2.2インストール(Linux)

systemc-2.2.0.tgz

$ tar xzf systemc-2.2.0.tgz
$ cd systemc-2.2.0
$ mkdir objdir
$ cd objdir
# mkdir /usr/local/systemc-2.2
$ ../configure --prefix=/usr/local/systemc-2.2
$ make
# make install


Ubuntu9.10でコンパイルエラーが起こる場合


・・・
../../../../src/sysc/utils/sc_utils_ids.cpp:110: error: ‘getenv’ is not a member of ‘std’
../../../../src/sysc/utils/sc_utils_ids.cpp:111: error: ‘strcmp’ was not declared in this scope
・・・
make[3]: *** [sc_utils_ids.o] エラー 1
・・・

コンパイルで起こられるとき、以下のファイルにヘッダを追加するとよさそう。
./src/sysc/utils/sc_utils_ids.cpp 62行目あたり
#include <cstring>
#include <cstdlib>


SystemC-2.2インストール(Cygwin)

$ tar xzf systemc-2.2.0.tgz
$ cd systemc-2.2.0
ここで、systemc-2.2.0/src/sysc/kernel/sc_constants.hの57行目修正
57: const int SC_DEFAULT_STACK_SIZE   = 0x50000; // default 0x10000
これをしないと、ちょっとプログラムが大きくなると動かなくなる。
$ mkdir objdir
$ cd objdir
$ mkdir /usr/local/systemc-2.2
$ ../configure --prefix=/usr/local/systemc-2.2
$ make pthreads
$ make install
$ make pthreads_check

チェックでエラーがでなければ完了。

pthreadを使うので、コンパイルオプションは、以下のようになる。

CXXFLAGS = -DSC_USE_PTHREADS
INCS = -I/usr/local/systemc-2.2/include
LIBS = -L/usr/local/systemc-2.2/lib-cygwin -lsystemc -lpthread -lm

リンクの順番も大事みたい。$(OBJS)->$(LIBS)


  • pthreads_check時に次のエラーがでる
/usr/local/systemc-2.2/include/systemc.h:175: error: `std::wctomb' has not been declared
/usr/local/systemc-2.2/include/systemc.h:177: error: `std::wcstombs' has not been declared

/usr/local/systemc-2.2/include/systemc.hを以下のように修正すると良いらしい。
175: //    using std::wctomb;
176:        using std::mbstowcs;
177: //    using std::wcstombs;

  • 次のエラーが出るとき
assertion "m_stack_size > ( 2 * pagesize )" failed: file "../../../../src/sysc/kernel/sc_cor_qt.cpp", line 93
メイク時にpthreadsを指定し忘れているのが原因。
make pthreads


TLM-2.0インストール

$ tar xzf TLM-2.0.tar.gz
すると、TLM-2008-06-09ディレクトリができる。
$ cd TLM-2008-06-09
# mkdir /usr/local/tlm-2.0
# cp -rp include /usr/local/tlm-2.0

SystemCのバージョンは、一応2.1.1と2.2に対応しているっぽい。
以下のコンパイルオプションを追加することになる。
-I/usr/local/tlm-2.0/include/tlm

TLM-2.0テスト(linuxの場合)

$ cd TLM-2008-06-09/examples/tlm/build-unix
$ vi Makefile.config
以下のマクロを設定しなおす。
DEFAULT_SYSTEMC_HOME = /usr/local/systemc-2.2
DEFAULT_TLM_HOME     = ../../../..

DEFAULT_TLM_HOMEの方は、ヘッダファイルとtest_unitが必要になるので、相対パスでもともとあるディレクトリをさすことにした。
$ make

SCVインストール?(試してない)

$ tar xvf scv-1.0p2-sysc2.2.12jun06.tgz
$ cd scv-1.0p2-sysc2.2
configure ファイルを修正(INSTALLファイル参照)gcc4.1.1
5642 : #include <strstream.h> → #include <sstream>
5654 : ostrstream outString(buf,STRING_SIZE); → std::ostringstream outString;

$ mkdir objdir
$ cd objdir
$ ../configure --with-systemc=/usr/local/systemc-2.2/ --prefix=/usr/local/scv --disable-compiler-check
config.hを修正(gcc のバージョンが4.1.1)
44 : //#define _USE_HASH_MAP 

$ gmake
# gmake install


参考