linux下SystemC安装以及VS2010下SystemC的使用

本文介绍了如何在Linux环境下源码安装SystemC,并在Visual Studio 2010中使用该系统级建模语言进行开发。安装步骤包括配置、编译和安装。在VS2010中,需设置外部库路径、头文件目录,并提供相应库文件,然后通过示例代码验证SystemC的正确使用。
1、linux下SystemC安装

最近在学习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 }

得到结果如下:

### 在 Linux 环境下安装 SystemC 要在 Linux 环境中安装 SystemC,首先需要从 Accellera 的官方资源获取源代码包。通常情况下,下载的压缩包格式为 `.tar.gz`,解压后即可进行后续的配置和编译工作。 #### 下载与解压 前往 [Accellera 官网](https://www.accellera.org/) 获取最新的 SystemC 源码发布版本。下载完成后,使用如下命令对文件进行解压: ```bash tar -xzf systemc-2.3.1.tar.gz ``` 该命令将创建一个名为 `systemc-2.3.1` 的目录,进入该目录以继续安装流程: ```bash cd systemc-2.3.1 ``` #### 编译与安装 为了支持不同的操作系统平台(如 Linux),SystemC 提供了用于配置和构建的脚本。在开始编译之前,需创建一个用于存放构建文件的目录,并进入该目录执行配置脚本: ```bash mkdir build && cd build ../configure --prefix=/usr/local/systemc-2.3.1 --enable-debug ``` 上述命令中的 `--prefix` 参数指定了 SystemC 库的安装路径,而 `--enable-debug` 则启用了调试模式,便于开发过程中排查问题。 完成配置后,执行以下命令开始编译并安装库文件: ```bash make sudo make install ``` 此步骤会生成必要的静态库文件,并将其复制到先前指定的目标路径中。 #### 设置环境变量 为了确保编译器能够正确识别 SystemC 头文件和库文件的位置,需设置相应的环境变量。编辑用户的 `.bashrc` 或 `.zshrc` 文件,添加如下内容: ```bash export SYSTEMC_HOME=/usr/local/systemc-2.3.1 export LD_LIBRARY_PATH=$SYSTEMC_HOME/lib-linux:$LD_LIBRARY_PATH ``` 保存更改后,运行以下命令使新的环境变量生效: ```bash source ~/.bashrc ``` 特别需要注意的是,在某些系统中,动态链接库的路径可能需要手动更新,例如通过修改 `/etc/ld.so.conf.d/` 目录下的配置文件或直接调用 `ldconfig` 命令实现[^1]。 #### 验证安装 最后,可以通过编写一个简单的测试程序来验证 SystemC 是否成功安装。例如,创建一个包含 `sc_main` 函数的 C++ 文件,并尝试编译和运行它。如果一切正常,则应能顺利看到仿真输出结果。 ### 示例代码 下面是一个简单的 SystemC 模块示例,用于演示基本模块的定义与连接方式: ```cpp #include <systemc.h> SC_MODULE(Adder) { sc_in<int> a, b; sc_out<int> sum; void add() { sum.write(a.read() + b.read()); } SC_CTOR(Adder) { SC_METHOD(add); sensitive << a << b; } }; int sc_main(int argc, char* argv[]) { sc_signal<int> a, b, sum; Adder adder("adder"); adder.a(a); adder.b(b); adder.sum(sum); a = 5; b = 7; sc_start(10, SC_NS); // 运行10纳秒 return 0; } ``` 使用 g++ 编译时,需链接 SystemC 库: ```bash g++ -I/usr/local/systemc-2.3.1/include -L/usr/local/systemc-2.3.1/lib-linux -Wl,-rpath=/usr/local/systemc-2.3.1/lib-linux main.cpp -lsystemc -o main ``` 运行生成的可执行文件: ```bash ./main ``` 若未出现任何错误信息且程序输出预期结果,则表明 SystemC 已经被正确安装并配置好了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值