Python环境

Python3.8安装

ubuntu22.04的默认python版本为3.1,版本比较老,因此需要安装高版本的python,首先可以查看Linux自带的Ubuntu版本:

1
2
# Terminal输入:
ls -l /usr/bin | grep python

Ubuntu自带Python

可以看到自带版本确实比较老,需要更新,但是直接安装显示没有源中没有Python3.8版本
直接安装

因此此处需要手动安装的模式,可以在官网查看所需要的python版本,我们选择的版本为python3.8,选择tgz压缩文件版本。
步骤一:在python官网找到所需要的压缩版本文件,官网地址:

1
2
# 按照需要下载
https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

步骤二:下载安装包

1
2
# Terminal 输入
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

输入完成后即进入漫长的下载过程,如果提示Response Error那么可以多尝试几次

安装Python3.8

步骤三:解压安装包

1
tar -zxvf Python-3.8.0.tgz

步骤四:切换到解压后的目录

1
cd Python-3.8.0

步骤五:运行配置指令

1
2
3
./configure
# 或者--preifx后添加的是自己的安装目录,根据自己选择安装位置
./configure --prefix=/edatools/python3.8

可能会提示系统没有添加C编译器,安装gcc-c++即可

1
2
3
4
# 安装C编译器
sudo apt-get install gcc
# 顺便安装C++编译器
sudo apt-get install g++

步骤六:安装make

如果输入make,出现没有make指令需要下载make

1
sudo apt-get install make

步骤七:运行安装指令

1
2
# Terminal 运行
sudo make install

如果步骤五是直接运行./config,那么安装后的可执行文件默认放在/usr/local/bin,python的库文件放在/usr/local/lib,配置文件默认放在/usr/local/include,其他的资源文件放在/usr/local/share。

如果步骤五选择了–prefix的指令,那么添加的文件均在–prefix所在目录下。

步骤八:添加环境变量

如果步骤五选择了–prefix那么需要重新添加环境变量:

1
2
# 此处为我设置的环境变量,按照自己步骤五设置即可
PATH=$PATH:$HOME/bin:/edatools/python3.8/bin

添加完成后可以查看环境变量

1
echo $PATH

步骤九:进入安装目录

1
2
# 目录是--prefix所设置的路径
cd /edatools/python/lib

进入路径后即可看到python3.8的程序
Python3.8路径

更新Python的指向

下载完成后需要将系统默认的Python版本指向新下载的Python3.8

步骤一: 查看默认python命令指向

1
ls -l /usr/bin | grep python

可以看到虽然我们安装了新的Python3.8但是系统默认还是指向Python3.1
Python指向

步骤二:备份原本的python指向

1
2
3
# 如果上一步显示没有python即可跳过此步骤
# 或者只显示python3没有显示python也可跳过
mv /usr/bin/python /usr/bin/python.bak

步骤三:建立新连接

1
2
# 此处的连接指向自己的安装目录
ln -s /edatools/python3.8/bin/python3.8 /usr/bin/python

步骤四: 验证

1
2
# Terminal 输入
python

如果显示一下画面则表示指向成功:

正确连接

iverilog安装

iverilog是一个轻量级的RTL仿真工具,如果电脑中有vcs、verdi即可不需要下载,对于不想折腾synopsys安装的同学可以使用该开源工具进行仿真、查看波形。

Git 源码

1
2
3
4
# 如果系统中没有git需要提前下载git
sudo apt-get install git
# 下载iverilog源码
git clone https://github.com/steveicarus/iverilog.git

切换分支

本工程需要使用v11版本以上的分支,因此需要切换iverilog的分支

1
2
# 切换分支
git checkout v11-branch

分支切换的时候可能会显示:

切换分支

出现该问题的原因是因为文件的所有者为作者本身,和我们用户的用户名不一致,按照提示修改然后再输入切换分支命令即可:

1
git config --global --add safe.directory /edatools/iverlog

安装运行依赖

1
sudo apt-get install autoconf gperf flex bison build-essential

编译安装iverilog和vvp

1
2
3
4
5
# 最好提前进入root用户,或者每个指令前添加sudo
sh autoconf.sh
./configure
make
make install

安装Gtkwave

1
sudo apt-get install gtkwave

安装GUN工具链

可以从百度网盘下载(链接:https://pan.baidu.com/s/10uLZYf_cgtH94kZI_N6JhQ 提取码:uk0w)或者自行下载其他版本的。在自己电脑安装完成后如果vmtools生效可以直接拖到虚拟机,如果不可以则可以通过MobaXterm开启ssh访问后远程上传即可。上传完成后解压文件。

1
sudo tar zxvf risc64(该文件名称)

解压完成后即可看到编译所需要的库文件
GUN库

下载TinyRISC-V工程

上述工作即搭建了TinyRISC-V运行所需要的环境,上述工作完成后即可下载TinyRISC-V源码。

1
git clone https://gitee.com/liangkangnan/tinyriscv.git

下载完成后,进入文件夹即可看到TinyRISC-V工程源码:

TinyRISC-V工程

下载到源码后,我们需要将上一章节安装的GUN工具链复制到TinyRISC-V工程文件的tools目录下。

运行测试程序

在之上所有工作完成后,即可运行测试代码检测安装环境的正确性。打开TinyRISC-V工程目录下的sim文件简单运行一个测试脚本。

sim目录

图上sim_new_nowave.py即为我们需要测试的脚本,运行:

1
2
# Python后的第一个参数为我们需要测试的指令集,第二个参数为输出文件
python sim_new_nowave.py ../tests/isa/generated/rv32ui-p-add.bin inst.data

如果出现PASS则表示环境测试成功。

PASS

下一步计划

本篇博客完成了TinyRISC-V环境的搭建,并运行测试程序通过指令测试。下一阶段将详细介绍TinyRISC-V整体框架,并研究指令是如何在CPU中运行。此外还要研究TinyRISC-V仿真文件是如何运行、GUN编译工具是如何把C语言转换成RISC-V识别的指令码等。道阻且长,加油~