RISC-V学习

吃可爱长大的小学妹 提交于 2019-11-27 01:16:30

RISC-V指令集分类

RISC-V的指令集使用模块化的方式进行组织,每一个模块使用一个英文字母来表示。RISC-V最基本也是唯一强制要求实现的指令集部分是由I字母表示的基本整数指令子集,使用该整数指令子集,便能够实现完整的软件编译器。其他的指令子集部分均为可选的模块,具有代表性的模块包括M/A/F/D/C,如表1所示。
为了提高代码密度,RISC-V架构也提供可选的“压缩”指令子集,由英文字母C表示。压缩指令的指令编码长度为16比特,而普通的非压缩指令的长度为32比特。以上这些模块的一个特定组合“IMAFD”,也被称为“通用”组合,由英文字母G表示。因此RV32G表示RV32IMAFD,同理RV64G表示RV64IMAFD。
为了进一步减少面积,RISC-V架构还提供一种“嵌入式”架构,由英文字母E表示。该架构主要用于追求极低面积与功耗的深嵌入式场景。该架构仅需要支持16个通用整数寄存器,而非嵌入式的普通架构则需要支持32个通用整数寄存器。
通过以上的模块化指令集,能够选择不同的组合来满足不同的应用。譬如,追求小面积低功耗的嵌入式场景	可以选择使用RV32EC架构;而大型的64位架构则可以选择RV64G。
除了上述的模块,还有若干的模块包括L、B、P、V和T等。这些扩展目前大多数还在不断完善和定义中,尚未最终确定,因此本文在此不做详细论述。

在这里插入图片描述

RISC-V官网

RISC官网网址如下:
https://riscv.org/
官网包括:
1、ISA相关:
指令集下载,特权指令集下载,调试规范下载;
2、软件相关:
包括工具链,模拟器(simulator),调试器,BootLoader,IDE,OS,Security等。
3、内核及SOC相关:
罗列了目前已经实现的商用的或者开源的内核或者SOC芯片,同时将相关GPL或者BSD等版权也进行了罗列,带GITHUB网址链接的都是开源的,能够进行下载。比较风靡的两个是BOOM和SIFIVE。

rocket-chip搭建

https://github.com/chipsalliance/rocket-chip

其它尝试

Simulator搭建

从官网上找到两个在github上star数最多的两个模拟器,分别为jor1k(1.2k)和riscv-isa-sim(500)。
https://github.com/s-macke/jor1k/
https://github.com/riscv/riscv-isa-sim
下面先尝试使用riscv-isa-sim搭建模拟器,运行软件环境。

riscv-isa-sim编译

git clone https://github.com/riscv/riscv-isa-sim.git
sudo apt-get install device-tree-compiler
mkdir build
cd build
…/configure --prefix=$RISCV
make
sudo make install
运行命令为:
riscv64-unknown-elf-gcc -o hello hello.c
spike pk hello

C编译器搭建

git clone --recursive https://github.com/riscv/riscv-gnu-toolchain

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!