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。
SystemC CookBook (0): Your First Project_第1张图片
这个选项,在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。
SystemC CookBook (0): Your First Project_第2张图片
3.在properties->Configuration Properties->C/C++->Command Line->Additional options里面添加选项:/vmg:
SystemC CookBook (0): Your First Project_第3张图片
4.添加需要link的库。在properties->Configuration Properties->Linker->Input->Additional Dependencies里面添加systemc.lib。
为了保证程序能够找到我们所需要的库,还需要做以下一些设置:
1.打开Tools->Options->Projects and Solutions->VC++ Directories:
SystemC CookBook (0): Your First Project_第4张图片
2.在图中鼠标指的位置,需要设置Library files:
SystemC CookBook (0): Your First Project_第5张图片
加入你的编译好的lib的位置
SystemC CookBook (0): Your First Project_第6张图片
3.然后是设置include files:
SystemC CookBook (0): Your First Project_第7张图片
找到你的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:
SystemC CookBook (0): Your First Project_第8张图片
2.设置lib:打开工程properties->Configuration Properties->Linker->Additional Library Directories:
SystemC CookBook (0): Your First Project_第9张图片
做了这么多,不要忘了设置环境变量SYSTEMC指向<systemc-2.2.0>\msvc71
好了,设置了这么多,build一把吧,运行结果可以看到:
SystemC CookBook (0): Your First Project_第10张图片
(三)总结
其实我们可以看到,SystemC完全是按照C++的做法来做的。需要添加适当的库。而且SystemC的例子里面都是按照Debug版来编译的。通过这次实践,我们对SystemC有了一个初步的了解,但是我们还是不知道怎样建立自己的model,怎样进行自己的仿真。这个以后会提到。
 

你可能感兴趣的:(SystemC CookBook (0): Your First Project)