systemC的环境搭建

时间:2023-03-10 07:44:02
systemC的环境搭建

window下systemc的环境搭建

安装视频

一、编译SystemC库

1.下载SystemC library source code (systemc-2.3.1版本)

2.解压到工作目录

3.打开...\systemc-2.3.0\msvc80\SystemC目录下的SystemC.sln

4.直接"生成(Build英文)"-->“生成解决方案(Build Solution)”,如果编译成功的话(忽略那些Warning)。在...\systemc-2.3.0\msvc80\SystemC\debug目录下就生成了SystemC.lib

二、新建win32控制台应用程序,测试代码如下:

 // All systemc modules should include systemc.h header file
#include "systemc.h"
// Hello_world is module name
SC_MODULE (hello_world) {
SC_CTOR (hello_world) {
// Nothing in constructor
}
void say_hello() {
//Print "Hello World" to the console.
cout << "Hello World.\n";
}
}; // sc_main in top level function like in C++ main
int sc_main(int argc, char* argv[]) {
hello_world hello("HELLO");
// Print the hello world
hello.say_hello();
return();
}

配置步骤

右击工程名->选择Properties

调试->环境(SC_SIGNAL_WRITE_CHECK=DISABLE

VC++目录->包含目录(...\systemc-2.3.0\src)

VC++目录->库目录(...\systemc-2.3.2\msvc10\SystemC\Debug)

C/C++ ->语言->启用运行时类型信息->是

C/C++->代码生成->运行库->多线程调试 (/MTd)

C/C++->命令行->其它选项(/vmg)

Linker ->常规->附加目录库 (..systemc-2.3.1/msvc10/SystemC/Debug)

链接器->输入->附加依赖项(SystemC.lib)

C/C++->所有选项->警告等级 ->等级1(/W1)

生成编译。

Linux下载配置SystemC环境:

1.下载systemc源码包。systemc-2.3.1.tar.gz
2.解压缩。

 tar -zxvf systemc-2.3..tar.gz

3.进入systemc-2.3.1文件夹。

cd systemc-2.3.

4.新建一临时文件夹tmp,并进入其中。

 mkdir tmp
cd tmp

5.运行如下命令。

 ../configure
make

 此处会出现错误,错误指示文件../src/sysc/datatypes/bit/sc_bit_proxies.h文件中的mutable是多余的,需要删除!

 还有一处错误,在文件../src/sysc/utils/sc_utils_ids.cpp文件中加入如下头文件:
 #include <cstring>
   #include <cstdlib>
   再次make就能成功,然后再

 make install

 回到上一级目录中

 cd ..

在此目录中生成了两个新的文件夹,include 与 lib-linux64
 大功告成!
6.删除刚才新建的tmp文件夹。

 rm -rf tmp
[cp@Server203 systemc]$ export LD_LIBRARY_PATH=/home/cp/Simulator/systemc/lib-linux64  (这一步非常重要

7.运行一个systemc程序test.cpp进行测试。

 g++ test.cpp -I/home/cp/Simulator/systemc/include -L/home/cp/Simulator/systemc/lib-linux64 -o test -lsystemc
./test

Makefile

 LIBDIR=-L/home/cp/Simulator/systemc/lib-linux64
INCDIR=-I/home/cp/Simulator/systemc/include
LIB=-lsystemc
all:
g++ -o test test.cpp $(LIBDIR) $(INCDIR) $(LIB)
clean:
rm -rf *.o