最近在学习SystemC,这是一门系统级建模语言。其在C++的基础上扩展,使C++具有并发特性(硬件工作都是并发的),简单的说SystemC就是C++的一个类库。
SystemC源码是开源的,只要任何支持C++的编译器,都可以对其编译。下面简单介绍一下其安装过程:
linux下源码安装的过程大都是这样:1、./configure ;2、make ;3、 make install;SystemC也不例外。将下载的源码解压到文件夹如:/home/user/DirA;user代表你的用户名,DirA表示你创建的某个目录;
1 cd /home/user/DirA 2 3 ./configure -prefix=INSTALL_DIR //用-prefix=指定要安装到的目录路径,此路径必须已经存在; 4 5 make 6 7 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代码如下并添加到工程:
1 // sc_helloworld.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "systemc.h" 5 SC_MODULE(hello) 6 { 7 sc_in<bool> clock; 8 void run() 9 { 10 cout << "@"<<sc_simulation_time<<" hello world" <<endl; 11 } 12 13 SC_CTOR(hello) 14 { 15 SC_METHOD(run); 16 sensitive<<clock.pos(); 17 } 18 }; 19 20 int sc_main(int argc, char* argv[]) 21 { 22 sc_clock clk("clock",20,SC_NS); 23 hello h("hello"); 24 h.clock(clk); 25 sc_start(200,SC_NS); 26 system("pause"); 27 return 0; 28 }
得到结果如下: