diff --git a/README.md b/README.md index baf2580..b1ec673 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ # 1.初衷 -本开源项目的初衷是本人想入门riscv,熟悉riscv的指令内容和汇编语法。 +本开源项目的初衷是本人想入门RISC-V,熟悉RISC-V的指令内容和汇编语法。 -本人对riscv很感兴趣,很看好riscv的发展前景,觉得riscv就是cpu界中的linux。由于riscv是这两年才开始迅速发展的,因此关于riscv的学习参考资料目前还很少,特别是适合入门的资料,因此学习起来进度很缓慢,于是萌生了自己从零开始写riscv处理器核的想法。 +本人对RISC-V很感兴趣,很看好RISC-V的发展前景,觉得RISC-V就是cpu界中的linux。由于RISC-V是这两年才开始迅速发展的,因此关于RISC-V的学习参考资料目前还很少,特别是适合入门的资料,因此学习起来进度很缓慢,于是萌生了自己从零开始写riscv处理器核的想法。 -本人是一名fpga小白,为了快速入门、深入掌握riscv,我开始了学习fpga和verilog的"艰难"历程。我工作的内容是和嵌入式软件相关的,平时根本不会接触到fpga,也不会用到riscv,因此只能用业余时间来学习riscv,在经过断断续续学习fpga和verilog一个多月后,总算有点成果了,也即本项目。 +本人是一名FPGA小白,为了快速入门、深入掌握RISC-V,我开始了学习FPGA和verilog的"艰难"历程。我工作的内容是和嵌入式软件相关的,平时根本不会接触到FPGA,也不会用到RISC-V,因此只能用业余时间来学习RISC-V,在经过断断续续学习FPGA和verilog一个多月后,总算有点成果了,也即本项目。 -网上有不少关于riscv的开源项目,但是大多都写得很"高深",对于我这种小白来说学习起来是非常吃力的,不太适合入门。本项目目前的代码量非常少,是很简单易懂的,对于想入门riscv的同学来说是一个很好的参考,希望能吸引更多的同学能够参与到riscv的学习中来,促进riscv的发展,如果能起到抛砖引玉的作用的话那就更好了,也许说是砖的话或者有点夸大了,但哪怕是起到一颗沙子的作用,也就足矣了。 +网上有不少关于RISC-V的开源项目,但是大多都写得很"高深",对于我这种小白来说学习起来是非常吃力的,不太适合入门。本项目目前的代码量非常少,是很简单易懂的,对于想入门RISC-V的同学来说是一个很好的参考,希望能吸引更多的同学能够参与到RISC-V的学习中来,促进RISC-V的发展,如果能起到抛砖引玉的作用的话那就更好了,也许说是砖的话或者有点夸大了,但哪怕是起到一颗沙子的作用,也就足矣了。 # 2.介绍 -本项目实现的是一个微RISC-V处理器核(tinyriscv),用verilog语言编写,只求以最简单、最通俗易懂的方式实现riscv指令的功能,因此没有特意去对代码做任何的优化,因此你会看到里面写的代码有很多冗余的地方。tinyriscv处理器核有以下特点: +本项目实现的是一个微RISC-V处理器核(tinyriscv),用verilog语言编写,只求以最简单、最通俗易懂的方式实现RISC-V指令的功能,因此没有特意去对代码做任何的优化,因此你会看到里面写的代码有很多冗余的地方。tinyriscv处理器核有以下特点: 1. 实现了RV32I指令集,通过riscv的RV32I指令兼容性测试,支持以下指令:add addi and andi auipc beq bge bgeu blt bltu bne fence\_i jal jalr lb lbu lh lhu lw lui or ori sb sh sw sll slli slt slti sltiu sltu sra srai srl srli sub xor xori; -2. 支持RV32M的乘法(单周期)指令:mul mulh mulhu mulhsu; +2. 支持RV32M指令集:mul mulh mulhu mulhsu div divu rem remu; 3. 采用三级流水线,即取指,译码、访存、执行,回写; 4. 可以运行简单的c语言程序; @@ -63,10 +63,11 @@ tinyriscv的整体框架如下: # 4.未来计划 -1. 支持除法指令; 2. 在真实的FPGA平台(xilinx artix-7)上跑起来; 3. …… # 5.更新记录 -2020-01-02:支持RV32M的乘法指令。 \ No newline at end of file +2020-01-02:支持RV32M的乘法指令。 + +2020-01-13:支持RV32M的除法指令。 \ No newline at end of file