【仿真】Noxim的安装与运行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Noxim 是由卡塔尼亚大学(意大利)基于SystemC开发的片上网络模拟器。是一种开放、可配置、可扩展、周期精确的 NoC 模拟器,可以进行传统有线 NoC 和新兴 WiNoC 架构的性能和功率数据的分析,也可以根据有关功耗(动态和泄漏)的细粒度统计数据进行性能的分析。

本文主要介绍下Noxim在ubuntu上的环境搭建与简单运行。


一、环境准备

  1. 下载源码

在github上download Noxim源码:Noxim
可以使用如下命令下载:

git clone https://github.com/davidepatti/noxim.git
  1. 系统:本文是基于Ubuntu22.04 进行安装的
  2. 在VSCode中打开下载的源码,可以看到项目中有个INSTALL.txt,可以按照里面的安装步骤进行环境配置。
    在这里插入图片描述

二、安装步骤

1. C++ Compiler

由于SystemC是基于C++的一种开发语言,所以环境必须装有C++ 编译器。如果ubuntu中没有安装C++编译器,可以按照下面的命令进行安装:

sudo apt-get install build-essential

2. 安装YAML

  • 安装工具
sudo apt-get install libyaml-cpp-dev libboost-dev
  • 下载yaml的源码:yaml-cpp
  • 下载的是一个zip包,需要执行以下命令
unzip yaml-cpp-master.zip
mv yaml-cpp-master yaml-cpp
cd yaml-cpp
mkdir lib
cd lib
cmake ..
make
sudo make install

3. 安装SystemC

  • 官网下载SystemC源码:SystemC-2.3.1
    (我这里下载的是2.3.1,目前最新的是2.3.3)
  • 下载的是一个tar包,解压缩后,同样可以看到一个INSTALL.txt文件,可以按照文档中描述的步骤进行安装,具体需要执行以下命令:
tar -xzf systemc-2.3.1.tgz
mkdir objdir
cd objdir
export CXX=g++
../configure
make
make install
cd ..
rm -rf objdir

执行完上面的make install,可以看到中断会闪现一个如下界面,表示安装成功。install成功安装

  • 可以进入目录 objdir/example 中,执行下make,然后执行make check,经过几分钟,终端如果显示test pass,即可证明安装成功。
    在这里插入图片描述
    至此,所有配置都安装完毕。

三、Noxim编译与运行

  1. 进入Noxim项目的bin目录
  2. 修改Makefile文件中的SYSTEMC 和 YAML选项
SYSTEMC := (自己的安装路径)/systemc-2.3.1/
YAML    := /opt/local/
  1. 设置环境变量
 1. sudo vim /etc/profile
 2. 在文件尾部增加:export LD_LIBRARY_PATH=(自己的安装路径)/systemc-2.3.1/lib-linux64
 3. source /etc/profile
  1. 在bin目录下,执行命令:make
  2. 此时,已经编译完毕。
  3. 执行以下命令,可以使用 config_examples/ 目录下的yaml文件进行测试:
./noxim -config ../config_examples/256_4h.yaml

执行完上述命令,终端会显示,表示安装成功。
在这里插入图片描述

四、可能会遇到问题

  1. error:

/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

原因
/usr/lib/wsl/lib/ 目录下的文件都是只读的系统文件,不是软连接,而这里使用的软连接,所以会提示“不是一个软连接符号”
解决

cd /usr/lib/wsl
sudo mkdir lib2
sudo ln -s lib/* lib2
sudo ldconfig

然后将文件/etc/ld.so.conf.d/ld.wsl.conf中的 /usr/lib/wsl/lib 改为 /usr/lib/wsl/lib2
可以用命令sudo ldconfig进行测试是否修改成功。
如果想永久修改,执行以下命令:

sudo vim /etc/wsl.conf
[automount]
ldconfig = false
  1. 在编译SystemC时,可以能会遇到以下问题:

/src/systemc.h:118:16: error: ‘std::gets’ has not been declared

原因
std::gets已在C++11中删除, 如果使用C++11进行编译,那么就需要禁用这一行
解决
/src/systemc.h:118 修改为

#if defined(__cplusplus) && (__cplusplus < 201103L)
using std::gets;
#endif
  1. 在Noxim中执行make时,可能会出现如下问题:
    在这里插入图片描述
    原因
    系统环境找不到libsystemc-2.3.1.so 这个文件,需要将库的路径加到环境变量中
    解决
 1. sudo vim /etc/profile
 2. 在文件尾部增加:export LD_LIBRARY_PATH=(自己的安装路径)/systemc-2.3.1/lib-linux64
 3. source /etc/profile

参考

  1. 在ubuntu上安装noxim
  2. 安装SystemC
  3. systemC下载链接
  4. libcuda.so 无法链接问题
  5. std::gets no declare
  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值