电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>从零开始写RISC-V处理器

从零开始写RISC-V处理器

2022-03-17 | rar | 5.43 MB | 次下载 | 免费

资料介绍

1、初衷
本开源项目的初衷是本人想入门RISC-V,熟悉RISC-V的指令内容和汇编语法。

本人对RISC-V很感兴趣,很看好RISC-V的发展前景,觉得RISC-V就是CPU中的Linux。由于RISC-V是这两年才开始迅速发展的,因此关于RISC-V的学习参考资料目前还很少,特别是适合入门的资料,因此学习起来进度很缓慢,于是萌生了自己从零开始写RISC-V处理器核的想法。

本人是一名FPGA小白,为了快速入门、深入掌握RISC-V,我开始了学习FPGA和verilog的"艰难"历程。我工作的内容是和嵌入式软件相关的,平时根本不会接触到FPGA,也不会用到RISC-V,因此只能用业余时间来学习RISC-V。

网上有不少关于RISC-V的开源项目,但是大多都写得很"高深",对于我这种小白来说学习起来是非常吃力的,不太适合入门。本项目目前的代码量非常少,是很简单易懂的,对于想入门RISC-V的同学来说是一个很好的参考,希望能够吸引更多的同学参与到RISC-V的学习中来,促进RISC-V的发展,如果能起到抛砖引玉的作用的话那就更好了,也许说是砖的话就有点夸大了,但哪怕是起到一颗沙子的作用,也就足矣。

2、介绍
本项目实现的是一个单核32位的小型RISC-V处理器核(tinyriscv),采用verilog语言编写。设计目标是对标ARM Cortex-M3系列处理器。tinyriscv有以下特点:
  1. 支持RV32IM指令集,通过RISC-V指令兼容性测试;
  2. 采用三级流水线,即取指,译码,执行;
  3. 可以运行C语言程序;
  4. 支持JTAG,可以通过openocd读写内存(在线更新程序);
  5. 支持中断;
  6. 支持总线;
  7. 支持FreeRTOS
  8. 支持通过串口更新程序;
  9. 容易移植到任何FPGA平台(如果资源足够的话);
  10. 项目中的各目录说明:

rtl:该目录包含tinyriscv的所有verilog源码;

sim:该目录包含仿真批处理bat文件和脚本;

tests:该目录包含测试程序源码,其中example目录为C语言程序例程源码,isa目录为RV32指令测试源码;

tools:该目录包含编译汇编和C语言程序所需GNU工具链和将二进制文件转成仿真所需的mem格式文件的脚本,还有通过串口下载程序的脚本。

pic:存放图片;

tb:该目录包含仿真的testbench文件;

fpga:存放FPGA相关文件,比如约束文件;

tinyriscv的整体框架如下:


tinyriscv目前外挂了6个外设,每个外设的空间大小为256MB,地址空间分配如下图所示:



3、CoreMark测试
目前tinyriscv在Xilinx Artix-7 35T FPGA平台(时钟50MHz)上运行CoreMark跑分程序的结果如下图所示:


可知,tinyriscv的跑分成绩为2.4。

选了几款其他MCU的跑分结果如下图所示:


更多MCU的跑分结果,可以到coremark官网查询。

4、如何使用
本项目可以运行在Windows和Linux平台(macOS平台理论上也是可以的),编译仿真工具使用的是iverilog和vpp,波形查看工具使用的是gtkwave。

4.1Windows平台环境搭建

使用之前需要安装一下工具

1.安装iverilog工具
可以在上面进行下载,安装过程中记得同意把iverilog添加到环境变量中,当然也可以在安装完成后手动进行添加。安装完成后iverilog、vvp和gtkwave等工具也就安装好了。

2.安装GNU工具链
下载完成后将压缩包解压到本项目的tools目录下。注意目录的层次结构,解压后的工具路径应该如下所示:

3.安装make工具
下载完成后直接解压,然后将make所在的路径添加到环境变量里。

4.安装python3
python官网下载win版本的python,注意要下载python3版本的。安装完后将python添加到环境变量里。

5.下载tinyriscv代码
使用git clone命令下载,不要使用zip方式下载,否则有些文件会有格式问题。
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1ATmega8芯片中文手册
  2. 2.45 MB   |  3次下载  |  1 积分
  3. 2VGA 转 HDMI 输出的音视频采集卡LCC385数据手册
  4. 0.34 MB   |  2次下载  |  免费
  5. 3全套DDR、DDR2、DDR3、DDR3L、LPDDR3 和 DDR4 电源解决方案同步降压控制器数据表
  6. 2.5MB   |  1次下载  |  免费
  7. 4具有过压保护和阻断 FET控制功能的12V电子熔丝TPS25924x数据表
  8. 1.92MB   |  1次下载  |  免费
  9. 5带自动重试功能的IEEE 802.3af PoE供电设备控制器TPS2375数据表
  10. 920.76KB   |  1次下载  |  免费
  11. 6稳压5V、300mA高效电荷泵DC-DC转换器TPS6013x数据表
  12. 1.5MB   |  1次下载  |  免费
  13. 7照明-电源-POE-GEVB评估套件数据手册
  14. 4.40 MB  |  1次下载  |  免费
  15. 8集成 FET 的 2A 双通道同步降压开关TPS54295数据表
  16. 1.21MB   |  次下载  |  免费

本月

  1. 1DC-DC电路(Buck)的设计与仿真
  2. 0.60 MB   |  23次下载  |  2 积分
  3. 2UHD智能显示SoC VS680产品简介
  4. 0.46 MB   |  11次下载  |  免费
  5. 3ES9038PRO解码芯片的电路原理图介绍
  6. 0.25 MB   |  11次下载  |  5 积分
  7. 4东芝BiCD集成电路硅单片TB67S109AFNAG数据手册
  8. 1.93 MB   |  6次下载  |  免费
  9. 5采用 Impedance Track™ 技术的宽量程电量监测计BQ34Z100-G1数据表
  10. 2.7MB   |  6次下载  |  免费
  11. 616A 输出电流,高可靠、高效率 同步降压转换器PCD3201产品手册
  12. 0.47 MB   |  6次下载  |  免费
  13. 7电池管理系统(BMS)软硬件介绍
  14. 0.23 MB   |  5次下载  |  2 积分
  15. 8TDK电容器产品指南
  16. 11.88 MB   |  5次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935085次下载  |  免费
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420048次下载  |  免费
  5. 3Altium DXP2002下载入口
  6. 未知  |  233067次下载  |  免费
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191315次下载  |  免费
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183315次下载  |  免费
  11. 6labview8.5下载
  12. 未知  |  81567次下载  |  免费
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73786次下载  |  免费
  15. 8NI LabVIEW中实现3D视觉的工具和技术
  16. 未知  |  70088次下载  |  免费