RISC-V崛起时代,软件开发小白怎么入门

咱们好,我是马建仓。

核心技能“卡脖子”带来的痛点影响咱们的日常日子后,国内开端大力支撑自研“中国芯”。其间,一种开源指令集规范 RISC-V 成为了国内许多科技企业及组织押注的新挑选。

指令集有什么用呢?

简单说,指令集就像是言语的语法规矩,依照规矩,使用者可以自行组合编撰不同的文章,根据不同的指令集规范就可以规划不同的处理器芯片

当时 CPU 架构市场上首要的指令集规范是 X86 和 ARM。但是,由于政治与地域抵触,这他们常成为科技企业陷入技能“卡脖子”的掣肘。与此一起,RISC-V 由于其在指令集级别完全开源,无需授权都可以给予 RISC-V 开发处理器的开放性优势遭到了我国众多科技企业及组织的广泛重视与支撑。

这里有一组数据:当时,RISC-V 国际基金会具有 19 个高档会员,其间与我国相关的会员有 12 个。由此可见,国内多家企业组织及高校正在深度布局这个新兴范畴。期间也逐渐涌现优异的开源项目,如中科院包云岗团队的香山处理器等。此类高性能的处理器核已在 Gitee 开源,遭到广泛的喜爱。

项目地址: gitee.com/OpenXiangSh…。

可以说,RISC-V 的发展前景一片大好,但许多对此感兴趣的小白开发者却不知道怎么入门。并且 RISC-V 是从这两年才开端迅速发展,关于RISC-V的学习参考材料不算丰富,尤其是合适入门的材料,因而开发者常遇到学习进度缓慢的难题。

今日,咱们给咱们引荐一个开源项目。项目的作者是一个做嵌入式软件的开发者,他因对 RISC-V 感兴趣,开端自学从零开端写一个合适小白入门的RISC-V处理器—— tinyriscv

RISC-V崛起时代,软件开发小白怎么入门

目前,这个项目已经在 Gitee 上取得 1.6K 的 Star,咱们一起来了解一下。

tinyriscv是什么?

tinyriscv 是一个选用 Verilog 言语编写,希望打造成为一个单核 32 位的小型RISC-V处理器核(tinyriscv)。目前正在继续开发中。作者的规划方针是对标 ARM Cortex-M3 系列处理器。

项目地址: gitee.com/liangkangna… 开源许可证: Apache-2.0

项目架构

RISC-V崛起时代,软件开发小白怎么入门

特点:

  • 支撑 RV32IM 指令集,经过RISC-V指令兼容性测验
  • 选用取指,译码,履行的三级流水线
  • 可以运行 C 言语程序
  • 支撑JTAG,可以经过 0penOCD 读写内存(在线更新程序)
  • 支撑中断;总线;FreeRTOS;以及经过串口更新程序
  • 资源足够,容易移植到任何FPGA渠道

怎么使用?

本项目可以运行在Windows和Linux渠道

Windows渠道环境操作攻略

装置

1.装置iVerilog 东西

2.装置 GNU 东西链

3.装置 make 东西

4.装置Python3

下载

gitclonehttps://gitee.com/liangkangnan/tinyriscv.git

Linux渠道环境操作攻略

下载 iVerilog 源码

留意: 切换到v11分支(必须用V11或以上的版别)

依赖环境

udoapt-getinstallautoconfgperfflexbisonbuild-essential

编译、装置 iVerilog 和VVP

shautoconf.sh
./configure
make
makeinstall

创立Python软链接

sudoln-s/usr/bin/python3.8/usr/bin/python

其间/usr/bin/python3.8对应你实际装置的 Python 版别。

装置

  • 1.装置 GTKWave
sudoapt-getinstallgtkwave
  • 2.装置GNU东西链

下载后解压到tools目录下,需要确认tests/example/common.mk文件里的这几行内容要与所装置的东西链对应得上。

测验

旧指令测验程序

旧的指令兼容性测验源码。RISC-V 官方已经不更新了。

PS:若是想要学习旧指令测验,可前往作者库房地址检查教程。库房地址:gitee.com/liangkangna…

新指令测验程序

优势: 较旧指令而言,更为谨慎

新指令怎么操作?

以 ADD指令为例

  • 翻开 CMD 窗口,进入到sim/compliance_test目录,履行以下指令,运行成功将看到 PASS
python.\compliance_test.py....\tests\riscv-compliance\build_generated\rv32i\I-ADD-01.elf.bininst.data

C言语程序例程

  • 翻开 CMD 窗口,进入到tests\example\simple目录,履行以下指令编译:
make
  • 成功后进入sim,履行下列指令
python.\sim_new_nowave.py..\tests\example\simple\simple.bininst.data

怎么移植到FPGA?

准备

1.软件: xilinx vivado(以2018.1版别为例)开发环境。

2.FPGA: xilinx Artix-7 35T。

3.调试器: CMSIS-DAP或者DAPLink。

操作流程

1.创立工程

RISC-V崛起时代,软件开发小白怎么入门

2.增加与生成

  • 增加 RTL 源文件

RISC-V崛起时代,软件开发小白怎么入门

RISC-V崛起时代,软件开发小白怎么入门

  • 增加束缚文件

RISC-V崛起时代,软件开发小白怎么入门

RISC-V崛起时代,软件开发小白怎么入门

  • 生成Bitstream文件

RISC-V崛起时代,软件开发小白怎么入门

RISC-V崛起时代,软件开发小白怎么入门

3.固化软核到FPGA

4.下载程序至FPGA

  • 下载方法:经过JTAG方法下载/经过UART方法下载
  • Vivado仿真设置,完成后进行RTL仿真

详细的移植方法请检查本项目下的fpga目录中的README.md文件,请前往此处库房下载。


关于咱们

Gitee星球 是 Gitee 旗下的创新研究所。在这里,咱们收集整理了 Gitee 上高品质、有意思的开源项目,一起也发掘 Gitee 项目作者的一手开源故事,约请优异的开发者们叙述自己的开源阅历,举行风趣的开源活动。

喜爱就点个Star

假如你对本期项目引荐感兴趣,也欢迎各位转发、谈论、点个 star。

假如你对 RISC-V 开发的开源项目其他的见地,欢迎在后台留言与咱们一同讨论。

一起也欢迎给我引荐风趣的开源项目,假如成功收录 Gitee星球将有小礼品噢~

往期引荐

拯救Linux运维大作战,龙蜥社区开源的一站式运维办理渠道是怎么做的

开源算法渠道OpenMMLab来了,Gitee深度学习CV范畴再添一员猛将

我只会用PHP,还能进互联网大厂吗?