インストールメモ
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行目あたり
./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