目录
0 RISC-V SoC注解系列文章目录
另外,在最后一个章节中会上传额外添加详细注释的工程代码,完全开源,如有需要可自行下载。
1 前言(手绘RISC-V SoC内核RTL视图):
过去几年RISC-V飞速发展,这股从美国兴起的RISC-V大流愈演愈烈。由于目前中国IC行业受到国外不同程度的排挤,在国内大力发展RISC-V这个完全开源的精简指令集架构,显得尤为重要。而目前国内很多芯片的龙头企业都已经进军RISC-V架构的芯片领域,如紫光展锐、华为海思、阿里平头哥等。从市场角度来说,RISC-V还是有很多事情要做的,其生态建设,高端场景应用都需要进一步发展。所以推动RISC-V的教学和发展就愈发重要。
如果想要拿RISC-V架构的SoC来参加FPGA开发或者数字IC设计相关的比赛,或者就是单纯想要学习RISC-V,那如何在短期内(一周左右)掌握RISC-V的基本框架呢?
对于有一定计算机架构基础的同学来说,最直接快速的方法就是:在开源社区下载与RISC-V有关的开源工程代码,在实践中学习。笔者在学习初期就选择了一个基础、结构简单但是完整的RISC-V SoC开源工程进行学习。在这个开源项目中作者也对整个工程进行了较为详细的注解,但对于verilog语法和计算机体系结构基础薄弱的同学来说,看起来还是略感吃力。
因此,笔者在学习这个riscv soc工程的过程中,又对其进行了进一步注解,并将一些学习成果和心得记录下来,作为连载笔记记录在此,希望可以帮助小白同学从零基础入门学习RISC-V架构的SoC。另外,在最后一个章节中会上传额外添加详细注释的工程代码,也完全开源,如有需要可自行下载。另外,我们根据源代码,绘制了详细的内核框架图,包括信号传递方向,就在下边:
(此处致谢马博士、小汪、小段)
~
因水平有限,在此过程中如有错误,请各位小伙伴私信或留言指正。
2. 开源工程tinyriscv使用教程:
这个开源SoC工程的使用方法在B站上面有详细讲解,讲解视频的链接如下:
3. 开源工程tinyriscv下载地址:
tinyriscv: 一个从零开始写的极简、非常易懂的RISC-V处理器核。 (gitee.com)https://gitee.com/liangkangnan/tinyriscv
4. 开源工程tinyriscv简介
上述tinyriscv是一个采用三级流水线设计,顺序、单发射、单核的32位RISC-V SoC处理器,包括RISC-V处理器内核和对应的外设接口,工程中的代码都是采用verilog HDL语言编写,核心设计思想是简单、易懂。
另外,工程的作者也对整个工程进行了较为详细的注释,链接如下:
从零开始写RISC-V处理器 | liangkangnan的博客 (gitee.io)https://liangkangnan.gitee.io/2020/04/29/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99RISC-V%E5%A4%84%E7%90%86%E5%99%A8/上述链接中也有对RISC-V的简单介绍,摘出如下:
RISC-V是什么
RISC,即精简指令集处理器,是相对于X86这种CISC(复杂指令集处理器)来说的。RISC-V中的V是罗马数字,也即阿拉伯数字中的5,就是指第5代RISC。
RISC-V是一种指令集架构,和ARM、MIPS这些是属于同一类东西。RISC-V诞生于2010年,最大的特点是开源,任何人都可以设计RISC-V架构的处理器并且不会有任何版权问题。
既生ARM,何生RISC-V
ARM是一种很优秀的处理器,这一点是无可否认的,在RISC处理器中是处于绝对老大的地位。但是ARM是闭源的,要设计基于ARM的处理器是要交版权费的,或者说要购买ARM的授权,而且这授权费用是昂贵的。
RISC-V的诞生并不是偶然的,而是必然的,为什么?且由我从以下两大领域进行说明。
先看开源软件领域(或者说是操作系统领域),Windows是闭源的,Linux是开源的,Linux有多成功、对开源软件有多重要的意义,这个不用多说了吧。再看手机操作系统领域,iOS是闭源的,Android是开源的,Android有多成功,这个也不用多说了吧。对于RISC处理器领域,由于有了ARM的闭源,必然就会有另外一种开源的RISC处理器。RISC-V之于CPU的意义,就好比Linux之于开源软件的意义。
或者你会说现在也有好多开源的处理器架构啊,比如MIPS等等,为什么偏偏是RISC-V?这个在这里我就不细说了,我只想说一句:大部分人能看到的机遇不会是一个好的机遇,你懂的。
可以说未来十年乃至更长时间内不会有比RISC-V更优秀的开源处理器架构出现。错过RISC-V,你注定要错过一个时代。