当前位置: 首页 > 软件库 > 其他开源 > 编程语言 >

tinyriscv

通俗易懂的微型 RISC-V 处理器核
授权协议 Apache-2.0
地区 国产
投 递 者 曾沛
软件类型 开源软件
开源组织
适用人群 未知
操作系统 Windows
所属分类 编程语言
 软件概览

tinyriscv实现的是一个微RISC-V处理器核,用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 div divu rem remu;
  3. 采用三级流水线,即取指,译码、访存、执行,回写;
  4. 可以运行简单的c语言程序。
  • 【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】         网上其实有很多的cpu代码,很多都值得好好学一学。对于软件开发的同学来说,也有必要知道每一条指令在cpu上是怎么运行的。现在正好有一个tinyriscv的工程,地址在这,https://github.com/liangkangnan/tinyriscv,非常值得一看。   1、

  • 目录 寄存器 读操作(组合逻辑)需求来自总线 写操作(时序逻辑)需求来自总线 gpio_data(输入输出数据的更新)时序逻辑 总结 寄存器 gpio_ctrl:控制寄存器,两位控制一个io口,2'b00高阻、2'b01输出、2'b10输入。 gpio_data:输入输出数据 读操作(组合逻辑)需求来自总线 GPIO_CTRL = 4'h0   :当addr_i低4位等于GPIO_CTRL 时,d

 相关资料
  • 上一篇 21、Kafka为什么那么快? Cache Filesystem Cache PageCache缓存 顺序写 由于现代的操作系统提供了预读和写技术,磁盘的顺序写大多数情况下比随机写内存还要快。 Zero-copy 零拷技术减少拷贝次数 Batching of Messages 批量量处理。合并小的请求,然后以流的方式进行交互,直顶网络上限。 Pull 拉模式 使用拉模式进行消息的获取消费,

  • 本文向大家介绍通俗易懂的C#之反射教程,包括了通俗易懂的C#之反射教程的使用技巧和注意事项,需要的朋友参考一下 前言 之所以要写这篇关于C#反射的随笔,起因有两个: 第一个是自己开发的网站需要用到 其次就是没看到这方面比较好的文章。 所以下定决心自己写一篇,废话不多说开始进入正题。 前期准备 在VS2012中新建一个控制台应用程序(我的命名是ReflectionStudy),这个项目是基于.net

  • RISC-V 指令集是基于精简指令集计算 RISC 原理建立的开放指令集架构,RISC-V 是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V 指令集完全开源,设计简单,易于移植 Unix 系统,采用模块化设计,拥有完整的工具链,同时有大量的开源实现和流片案例。 特性 完全开源。对指令集使用,RISC-V 基金会不收取高额的授权费。开源采用宽松的 BSD 协议,企业完全自由免费使用,同时

  • 本文向大家介绍最通俗易懂的javascript变量提升详解,包括了最通俗易懂的javascript变量提升详解的使用技巧和注意事项,需要的朋友参考一下 如下所示: 在我没有讲什么是变量提升,以及变量提升的规则之前, 或者你没有学习过变量提升,如果按照现有的javascript理解, 对于上述的例子,你可能会认为第3行代码的输出结果应该是undefined, 因为第二行是var a; 声明变量,但是

  • labeled-RISC-V —— 标签化RISC-V项目 该项目基于 RocketChip 增加了标签功能, 给硬件请求打上标签, 赋予硬件区分, 隔离和优先化三种新能力。 目录结构: .├── board # supported FPGA boards and files to build a Vivado project├── boot

  • RISC-V 与中断相关的寄存器和指令 [info] 回顾:RISC-V 中的机器态(Machine Mode,机器模式,M 模式) 是 RISC-V 中的最高权限模式,一些底层操作的指令只能由机器态进行使用。 是所有标准 RISC-V 处理器都必须实现的模式。 默认所有中断实际上是交给机器态处理的,但是为了实现更多功能,机器态会将某些中断交由内核态处理。这些异常也正是我们编写操作系统所需要实现的

  • 本文介绍了如何移植 RT-Thread Nano 到 RISC-V 架构,以 Eclipse GCC 环境为例,基于一个 GD32V103 MCU 的基础工程作为示例进行讲解。 移植 Nano 的主要步骤: 准备一个基础的 Eclipse 工程,并获取 RT-Thread Nano 源码压缩包。 在基础工程中添加 RT-Thread Nano 源码,添加相应头文件路径。 适配 Nano,主要从 中

  • 本文向大家介绍详解如何模拟实现node中的Events模块(通俗易懂版),包括了详解如何模拟实现node中的Events模块(通俗易懂版)的使用技巧和注意事项,需要的朋友参考一下 Nodejs 的大部分核心 API 都是基于异步事件驱动设计的,事件驱动核心是通过 node 中 Events 对象来实现事件的发送和监听回调绑定,我们常用的 stream 模块也是依赖于 Events 模块是来实现数据