1、linux下SystemC安装
最近在学习SystemC,这是一门系统级建模语言。其在C++的基础上扩展,使C++具有并发特性(硬件工作都是并发的),简单的说SystemC就是C++的一个类库。
SystemC源码是开源的,只要任何支持C++的编译器,都可以对其编译。下面简单介绍一下其安装过程:
linux下源码安装的过程大都是这样:1、./configure ;2、make ;3、 make install;SystemC也不例外。将下载的源码解压到文件夹如:/home/user/DirA;user代表你的用户名,DirA表示你创建的某个目录;
cd /home/user/DirA
./configure -prefix=INSTALL_DIR //用-prefix=指定要安装到的目录路径,此路径必须已经存在;
make
make install
基本就可以了,我是在虚拟机下的小红帽,我的安装遇到一些小的错误,主要是example没有安装进去,docs也没有,但类库都已经安装好了;
执行 make check 检查安装是否成功,make check 成功就没问题了,我的是成功状态。
最后的安装目录如下:
2、VC6++/VS2010 SystemC使用
前面说过,SystemC实际上是一个C++类库,因此,VC或者VS下使用SystemC就是外部库的使用。
库编译:下载解压后的systemc-version下有msvc60等目录,下面有工程文件,直接可以打开编译即可得到SystemC的库。
新建工程;
库添加:
1)项目右键-属性-配置属性-连接器-常规:添加附件库目录
2)项目右键-属性-配置属性-连接器-输入:添加库
3)项目右键-属性-配置属性-C/C++-常规:添加头文件所在目录
编写sc_hello.cpp代码如下并添加到工程:
// sc_helloworld.cpp : 定义控制台应用程序的入口点。
//
#include "systemc.h"
SC_MODULE(hello)
{
sc_in<bool> clock;
void run()
{
cout << "@"<<sc_simulation_time<<" hello world" <<endl;
}
SC_CTOR(hello)
{
SC_METHOD(run);
sensitive<<clock.pos();
}
};
int sc_main(int argc, char* argv[])
{
sc_clock clk("clock",20,SC_NS);
hello h("hello");
h.clock(clk);
sc_start(200,SC_NS);
system("pause");
return 0;
}
得到结果如下: