SystemC CookBook (0): Your First Project
(零)引子
大抵三年以前,折腾过systemC的东西,太久没有折腾,工具又有所更新,于是重来一遍。以一个简单的例子,作为SystemC的入门。
环境:MS VC++ 2008 Express,SystemC v2.2。
目标:完成SystemC的example里面的PIPE例子。
(一)编译SystemC的lib
SystemC说到底还是C++,是在C++的基础上加上了很多东西,一个新的库,从而使得他能够支持很多硬件思想的操作:比如位,cycle-accurate,event等等。于是,我们首先需要编译这个库。
SystemC官网上可以下载到SystemC的源代码:systemc-2.2.0.tgz,在这个压缩包里面有我们需要的所有东西:

可以看到,SystemC提供了源文件,于是你可以在不同的操作系统上,编译出自己需要的库,在windows下面,采用MS VC进行编译。在这个压缩包解压缩之后的文件中,我们可以发现mscv71的文件夹,其实里面就包含了MS VS的工程文件。笔者用MS VC++ 2008 Express打开工程文件,SystemC.vcproj,MSVC会自动将低版本的工程备份,并生成高版本2008版的新工程文件。
我们不得不说,MS做得很傻瓜,只要打开的工程文件,build就是一个按钮的事情。完成之后,可以在<systemc-2.2.0>\msvc71\SystemC的Debug或者Release目录下发现编译的结果——最重要的就是SystemC.lib。
(二)PIPE
按照<systemc-2.2.0>目录下的INSTALL文件的guide,我们可以建立一个新的工程,开始我们的SystemC之旅。
在<systemc-2.2.0>/example/sysc目录下面有一些SystemC官方提供的例子,于是,我们以其中的PIPE为例子,做一个简单的实践。
用VC打开pipe.vcproj工程,工程需要做一些简单设置:
1. Disable 'Detect 64-bit Portability Issues',方法:在VC里面,打开工程的properties->Configuration Properties->C/C++->'Detect 64-bit Portability Issues,设置为No。

这个选项,在MSDN上的解释是:By default, the /Wp64 compiler option is off in the Visual C++ 32-bit compiler and on in the Visual C++ 64-bit compiler.
2.在工程里面,properties->Configuration Properties->C/C++->Language->Enable Run-Time Type Info,设置为Yes。

3.在properties->Configuration Properties->C/C++->Command Line->Additional options里面添加选项:/vmg:

4.添加需要link的库。在properties->Configuration Properties->Linker->Input->Additional Dependencies里面添加systemc.lib。
为了保证程序能够找到我们所需要的库,还需要做以下一些设置:
1.打开Tools->Options->Projects and Solutions->VC++ Directories:

2.在图中鼠标指的位置,需要设置Library files:

加入你的编译好的lib的位置

3.然后是设置include files:

找到你的src文件夹:

需要注意的是,这里你可以用环境变量$systemc来解决上面提到的文件的路径问题。这也是SystemC的example里面推荐的做法。
比如,我现在<systemc-2.2.0>的路径在D:un-setup/systemc-2.2.0,我就可以设置其为环境变量。从而很好的解决路径的问题。
这个时候前面提到的Libary files的路径就可以写成$(SYSTEMC)\SystemC\Release,Include files的路径就可以写成$(SYSTEMC)\..\src。
以上的设置是对所有的工程的properties的设置。接下来,我们需要对现在这个工程进行类似的设置:
1.设置Include files:打开工程properties->Configuration Properties->C/C++->Additional Include Directories:

2.设置lib:打开工程properties->Configuration Properties->Linker->Additional Library Directories:

做了这么多,不要忘了设置环境变量SYSTEMC指向<systemc-2.2.0>\msvc71
好了,设置了这么多,build一把吧,运行结果可以看到:

(三)总结
其实我们可以看到,SystemC完全是按照C++的做法来做的。需要添加适当的库。而且SystemC的例子里面都是按照Debug版来编译的。通过这次实践,我们对SystemC有了一个初步的了解,但是我们还是不知道怎样建立自己的model,怎样进行自己的仿真。这个以后会提到。
posted on 2011-12-15 12:47 vincenzo.lai 阅读(644) 评论(0) 收藏 举报