目录
- Linux 安装 Nirgam
- 声明
- 安装
- 错误修正
- ⭐修正后需要重新编译
- 参考资料
Linux 安装 Nirgam
声明
- ⭐make失败调整重试前一定先
make clean
一下!!! - 特别感谢一篇博客园的博客(参考文献1),帮我解决了很多问题,没想到这个模拟器的官方文件错误居然这么多
- 本文安装NIRGAM是基于 SYSTEMC 3.0.1 版本!!
安装
- 首先下载安装包和用户手册,官网的那个点击下载没反应不知道为啥,然后我是去github上随便找了一个下载的
- 解压安装包。
- 修改解压目录下的
Makefile.defs
文件,将变量SYSTEMC
的值修改为SYSTEMC的安装位置,将第25行和28行修改为(-o
前加-fPIC
关键字,以25行为例)
$(CC) $(CFLAGS) $(INCDIR) -fPIC -o $@ -c $<
第31行和34行-W1修改为-Wl(已31行为例)
$(CC) -shared -Wl,-soname,$@ -o $@ $<
- 修改解压目录下的Makefile文件,将变量
TARGET_ARCH
的值修改为linux64
将原来的CFLAGS
替换为$(DEBUG) $(OTHER) $(LDFLAG) -std=c++17 -fPIC
# architecture
TARGET_ARCH = linux64
# CFLAGS 包含 -std=c++17 以使用 C++ 17 标准
CFLAGS = $(DEBUG) $(OTHER) $(LDFLAG) -std=c++17 -fPIC
#CFLAGS = $(DEBUG) $(OTHER) $(LDFLAG)
#CFLAGS = $(DEBUG) $(LDFLAG)
- 编译时需要配置环境变量,每次运行nirgam之前都要配置环境变量
或者写入~/.bashrc
文件
export SYSTEMC_HOME=/home/opt/systemc
export LD_LIBRARY_PATH=$SYSTEMC_HOME/lib-linux64
# NIRGAM,关闭对信号写操作
export SC_SIGNAL_WRITE_CHECK=DISABLE
- 执行make生成Nirgam可执行文件,执行make的时候会有一些好像是报错的东西,但是好像对后面的执行没啥影响
- 每次执行./Nirgam时一定记得先设置环境变量,否则会有error
错误修正
根据论文“基于NIRGAM的片上网络性能仿真_王荣阳”,模拟器源代码有需要修改的问题
application\src\Bursty.cpp
和application\src\CBR.cpp
中这行需要将+1
改为-1
// compute number of flits in packet (function of pkt size and flit size)
num_flits = (int)((ceil)((double)(pkt_size - HEAD_PAYLOAD)/(DATA_PAYLOAD)) - 1);
application\src\Bursty.cpp
和application\src\CBR.cpp
中这行需要将cell去掉
// compute inter-packet interval
pkt_interval = (int)((100.0/load) * num_flits * cycles_per_flit);
⭐修正后需要重新编译
参考资料
[1] Nirgam v2.1在ubuntu 14.04 64bit下的安装
[2] 王荣阳,王科. 基于NIRGAM的片上网络性能仿真[J]. 航空电子技术,2014(1):30-34. DOI:10.3969/j.issn.1006-141X.2014.01.07.
[3] Linux 环境变量配置的 6 种方法
[4] Linux中export命令介绍,三种方法设置环境变量