2022年11月22日火曜日

WSL : SystemC のインストール

目的:

SystemCの環境をインストールする。

導入契機:

verilator 導入にあたり、シミュレーションには SystemC を使用した方が良いとの記事を見かけた為、インストールしておくこととした。
いづれは、SystemC も使用できるようにしたいと思う。

インストール手順:

  1. Accelleraホームページから"CoreSystemCLanguageandExamples(tar.gz)"をダウンロード ( ダウンロードページ )
     ( systemc-2.3.3.tar.gz をダウンロード した )
  2. ダウンロードしたファイルを適当なディレクトに格納する。
  3. ファイルを解凍する
    tar xvf systemc-2.3.3.tar.gz
  4. 展開された systemc-2.3.3 ディレクトリに移動する
    cd systemc-2.3.3
  5. objdirを作成する
    mkdir objdir
  6. objdirに移動する
    cd objdir
  7. インストール先のディレクトリを作成する。
    ここでは、"/usr/local/systemc/2.3.3" とする。
    sudo mkdir /usr/local/systemc
    sudo mkdir /usr/local/systemc/2.3.3
  8. g++のバージョンを確認
    g++ --version
    (もし、g++が無いようならビルド環境のインストールが必要)
  9. 環境変数CXXにg++を設定する。
    export CXX=g++
  10. インストール先を指定して configure を実行する。
    ../configure --prefix=/usr/local/systemc/2.3.3
  11. make実行
    make
  12. インストール実行
    sudo makeinstall
  13. 念のため、チェック実行
    make check
  14. 環境変数 SYSTEMC_HOME, LD_LIBRARY_PATH にインストール先, ライブラリ所在を設定する。
    ~/.bashrc に次の2行を追加し、source する。
    export SYSTEMC_HOME=/usr/local/systemc/2.3.3
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SYSTEMC_HOME/lib-linux64
    source ~/.bashrc


テスト:

  1. 次の内容のサンプルプログラムを作成する。
    (ファイル名:hello.cpp)
    #include <systemc.h>

    int sc_main(int argc, char *argv[]){
        printf("Hello world\n");
        return 0;
    }
  2. コンパイル/リンクを実行する
    g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -o hello hello.cpp -lsystemc -lm
    → オブジェクト "hello" が生成される。
    尚、各オプションは、以下の通り。
    -I:#includeファイルの検索パスを追加する。
    -c:コンパイルのみ。リンクはしない。
    -L:ライブラリ検索パスを追加する。
    -o:出力ファイルの名前を指定する。
    -L:リンク時に指定したライブラリを検索する。
  3. 以下のようにhelloを実行し、"Hello world" が表示されれば、OK
    ./hello
    (結果)
            SystemC 2.3.3-Accellera --- Nov 20 2022 08:46:27
            Copyright (c) 1996-2018 by all Contributors,
            ALL RIGHTS RESERVED
    Hello world


0 件のコメント:

コメントを投稿