TinyRSIC-V环境搭建
Python环境
Python3.8安装
ubuntu22.04的默认python版本为3.1,版本比较老,因此需要安装高版本的python,首先可以查看Linux自带的Ubuntu版本:
1 | # Terminal输入: |
可以看到自带版本确实比较老,需要更新,但是直接安装显示没有源中没有Python3.8版本
因此此处需要手动安装的模式,可以在官网查看所需要的python版本,我们选择的版本为python3.8,选择tgz压缩文件版本。
步骤一:在python官网找到所需要的压缩版本文件,官网地址:
1 | # 按照需要下载 |
步骤二:下载安装包
1 | # Terminal 输入 |
输入完成后即进入漫长的下载过程,如果提示Response Error那么可以多尝试几次
步骤三:解压安装包
1 | tar -zxvf Python-3.8.0.tgz |
步骤四:切换到解压后的目录
1 | cd Python-3.8.0 |
步骤五:运行配置指令
1 | ./configure |
可能会提示系统没有添加C编译器,安装gcc-c++即可
1 | # 安装C编译器 |
步骤六:安装make
如果输入make,出现没有make指令需要下载make
1 | sudo apt-get install make |
步骤七:运行安装指令
1 | # Terminal 运行 |
如果步骤五是直接运行./config,那么安装后的可执行文件默认放在/usr/local/bin,python的库文件放在/usr/local/lib,配置文件默认放在/usr/local/include,其他的资源文件放在/usr/local/share。
如果步骤五选择了–prefix的指令,那么添加的文件均在–prefix所在目录下。
步骤八:添加环境变量
如果步骤五选择了–prefix那么需要重新添加环境变量:
1 | # 此处为我设置的环境变量,按照自己步骤五设置即可 |
添加完成后可以查看环境变量
1 | echo $PATH |
步骤九:进入安装目录
1 | # 目录是--prefix所设置的路径 |
进入路径后即可看到python3.8的程序
更新Python的指向
下载完成后需要将系统默认的Python版本指向新下载的Python3.8
步骤一: 查看默认python命令指向
1 | ls -l /usr/bin | grep python |
可以看到虽然我们安装了新的Python3.8但是系统默认还是指向Python3.1
步骤二:备份原本的python指向
1 | # 如果上一步显示没有python即可跳过此步骤 |
步骤三:建立新连接
1 | # 此处的连接指向自己的安装目录 |
步骤四: 验证
1 | # Terminal 输入 |
如果显示一下画面则表示指向成功:
iverilog安装
iverilog是一个轻量级的RTL仿真工具,如果电脑中有vcs、verdi即可不需要下载,对于不想折腾synopsys安装的同学可以使用该开源工具进行仿真、查看波形。
Git 源码
1 | # 如果系统中没有git需要提前下载git |
切换分支
本工程需要使用v11版本以上的分支,因此需要切换iverilog的分支
1 | # 切换分支 |
分支切换的时候可能会显示:
出现该问题的原因是因为文件的所有者为作者本身,和我们用户的用户名不一致,按照提示修改然后再输入切换分支命令即可:
1 | git config --global --add safe.directory /edatools/iverlog |
安装运行依赖
1 | sudo apt-get install autoconf gperf flex bison build-essential |
编译安装iverilog和vvp
1 | # 最好提前进入root用户,或者每个指令前添加sudo |
安装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(该文件名称) |
解压完成后即可看到编译所需要的库文件
下载TinyRISC-V工程
上述工作即搭建了TinyRISC-V运行所需要的环境,上述工作完成后即可下载TinyRISC-V源码。
1 | git clone https://gitee.com/liangkangnan/tinyriscv.git |
下载完成后,进入文件夹即可看到TinyRISC-V工程源码:
下载到源码后,我们需要将上一章节安装的GUN工具链复制到TinyRISC-V工程文件的tools目录下。
运行测试程序
在之上所有工作完成后,即可运行测试代码检测安装环境的正确性。打开TinyRISC-V工程目录下的sim文件简单运行一个测试脚本。
图上sim_new_nowave.py即为我们需要测试的脚本,运行:
1 | # Python后的第一个参数为我们需要测试的指令集,第二个参数为输出文件 |
如果出现PASS则表示环境测试成功。
下一步计划
本篇博客完成了TinyRISC-V环境的搭建,并运行测试程序通过指令测试。下一阶段将详细介绍TinyRISC-V整体框架,并研究指令是如何在CPU中运行。此外还要研究TinyRISC-V仿真文件是如何运行、GUN编译工具是如何把C语言转换成RISC-V识别的指令码等。道阻且长,加油~