1.配置SystemC开发环境linux
目前SystemC的开发工具备不少,可是实质上SystemC只是C++增长的一个类库,所以任何一个符合ANSI标准的C++ 编译工具均可以对SystemC程序进行编译连接从而生成可执行文件,而咱们要作的则是如何把SystemC的头文件和库文件整合到你的C++开发环境中去。工具
不少书籍和文章中都介绍了在Windows+Visual C++环境下配置SystemC。考虑到我对VC一窍不通,并且已经在虚拟机上配置好了Linux和gcc的开发环境,所以我选择在Linux下配置SystemC的开发环境。开发工具
SystemC须要C++编译工具的支持,所以首先要在Linux环境中安装g++环境。使用“su”命令切换为root用户,而后使用“apt-get intall g++”就能够安装g++的最新版本到系统中来。网站
从OSCI网站上下载最新版本的SystemC源程序压缩包,如今的最新版本是2.2.0,也有之前旧版本的下载。看到网上有的文章说SystemC的较新版本与有些Linux系统不兼容的问题,我的感受应该不是SystemC的问题,而是配置方面的问题(不过没有作过实验啊,属于我的主观臆断,本身先汗一个……)。下载以前可能OSCI网站要求先注册一个用户,须要邮箱激活一下,不过过程仍是很简单的,就很少解释了。spa
把下载下来的SystemC源程序压缩包在用户主目录里使用tar命令解压缩:设计
tar xvf systemc-2.2.0.tgzorm
而后进入解压缩后生成的systemc-2.2.0文件夹,创建一个临时文件夹objdir(名字能够随便起,如tmp什么的也能够):开发
cd systemc-2.2.0get
mkdir objdir编译器
而后进入这个临时文件夹,运行SystemC的配置程序来生成安装文件:
cd objdir
设置环境变量 export CXX=g++
../configure -prefix=/home/user/systemc(等号先后没有空格)
prefix参数后面这个路径是你但愿安装SystemC的目标路径,你也能够改成其余路径的。可是注意不要使用VMware和Windows共享的虚拟分区,我一开始就是安装在虚拟分区里面了,结果老是报错,说属性错误。
修改文件,不然make出错
gedit ../src/sysc/utils/sc_utils_ids.cpp
添加头文件
#include <cstdlib>
#include <cstring>
make
make install
若是一切顺利,在/home/user/systemc下,SystemC的一切文件就都安装好了。从理论上说,你编译连接SystemC源程序的环境已然就绪了。
2.运行第一个SystemC程序
咱们的第一个SystemC程序来个最简单的Hello程序吧,源代码以下:
//hello.h
#ifndef _HELLO_H
#define _HELLO_H
#include "systemc.h"
SC_MODULE(hello)...{
SC_CTOR(hello)...{
cout<<"Hello, SystemC!"<<endl;
}
}
#endif
//main.cpp
#include "hello.h"
int sc_main(int i, char* a[])...{
hello h("hello");
return 0;
}
上面这段代码分别保存为hello.h和main.cpp。
使用以下g++命令进行编译连接以生成可执行文件:
g++ main.cpp -I/home/user/systemc/include -L/home/user/systemc/lib-linux -o hello -lsystemc
这个命令参数比较多,说明以下:
-I/home/user/systemc/include 告诉g++编译器去/home/user/systemc/include下去寻找所需的头文件即systemc.h
-L/home/user/systemc/lib-linux 告诉ld链接器去/home/user/systemc/lib-linux下去寻找所需的库文件声明
-o hello 标准的输出参数,生成的可执行文件名为hello
-lsystemc 告诉ld链接器最终的库文件是libsystemc.a
注意参数的顺序,貌似还不能搞错了,不然会报错的。
若是g++命令执行ok,没报任何错误,就能够看到有个hello的可执行文件被生成了。输入“./hello”应该能够看到“Hellov,SystemC!”的输出信息。那么恭喜你,能够开始SystemC的探索之旅了!
顺便说一句,若是你嫌每次输入这么长的g++命令很不爽的话,能够搞一个make文件模板,之后每次只须要替换一下模板中的文件关联定义,而后使用一个简单的“make”命令就能够搞定。
那天在纪哥的帮助下搞定了这个SystemC开发环境,不过没有搞定这个make模板,先在这里向小纪致谢了。等make模板搞定必定发到博客上来给你们分享!
本帖部份内容节选整理自《SystemC片上系统设计》一书,陈曦、徐宁仪编著,科学出版社,2003年。