xuos-web/docs/doc/processor/riscv_sfcore.md

4.6 KiB
Raw Blame History

RISC-V 软核

简介

CORE是一个数字系统的核心负责整个系统的内存调度中断管理算术逻辑运算等如同整个系统的大脑是由物理电气实现逻辑功能的关键。尽管复杂但不可忽略的是核同其他数字器件一样也是一个典型的逻辑器件由逻辑门、触发器构成因此可以由硬件描述语言Hardware Description LanguageHDL来描述。既然核可以由HDL来描述那么对于每一个特定功能和性能即逻辑的时序和功能特定的核而言必有一组HDL描述等价于它而具体的器件信号、封装等只不过是这组HDL依赖具体工艺的一种物理实现。因此我们应该认识到所谓核本质上是一种知识产权是一种特定的可描述的逻辑结构应用于FPGA设备中。当前的FPGA设计规模巨大而且功能复杂因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是对于较为通用的部分可以重用现有的功能模块而把主要的时间和资源用在设计中的那些全新的、独特的部分。我们将这种功能模块称作IP核Intelligent Property

IP核的提供方式通常分为软核、固核和硬核这3类。软核(Soft IP Core)在 EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型通常是指以HDL代码VerilogVHDL…为形式的可综合源代码固核(Firm IP Core)在 EDA 设计领域指的是带有平面规划信息的网表;硬核 (Hard IP Core)在 EDA 设计领域指经过验证的设计版图。软核只具备功能仿真功能,需要经过综合以及布局布线才能使用,其优点是灵活性高、可移植性强,允许用户自配置。

软核是 IP 核应用最广泛的形式,使用 FPGA 的通用逻辑资源LUT+FF)搭建而成的。其中软核处于RTL层级以可综合的HDLVerilogVHDL源代码的方式存在。在前期调研过程中本项目将开源的 riscv 软核 Rocket 烧录到 Nexys A7-100T 开发板上,并在其上运行裁剪过 Linux 操作系统。后期XiUOS 也计划移植到 Nexys A7-100T 开发板上,软核仍采用开源的 Rocket。

一些常见软核

开源RISCV软核

  1. Rocket是 UC Berkeley 的 RISC-V 项目团队发起并设计的兼容 RISC-V 指令集的 CPU 核。它是一款64位、5级流水线、单发射顺序执行处理器支持 MMU支持分页虚拟内存具有兼容 IEEE 754-2008 标准的 FPU具有分支预测功能具有 BTBBranch Prediction Buff、BHTBranch History Table、RASReturn Address StackRocket是采用 ChiselConstructing Hardware in an Scala Embedded Language编写硬件电路可以通过编译得到对应的 Verilog 设计,还可以得到对应的 C++ 模拟器。

  2. PULPino 是一个开源的微型控制系统基于一个32位RISC-V核心由瑞士苏黎世联邦理工学院开发。核心IPC接近1完全支持基整数指令集 (RV32I),压缩指令 (RV32C) 和部分支持乘法指令集扩展 (RV32M)。

  3. Shakti印度理工学院的一个项目由 Verilog 编写,其使用了大量第三方 IP根据需要分成了不同的类。该计划不仅构建开源生产级处理器还包括互连结构验证工具存储控制器外围 IP 和 SOC 工具等相关组件。

  4. 蜂鸟,国内最早比较成熟的 RISC-V 实现由胡振波现在芯来创始人开发使用Verilog设计。其开源CPU为E200使用2级流水线。

  5. tinyriscv国内开发者在GitHub上开源的一个微RISC-V处理器核用verilog语言编写以最简单、最通俗易懂的方式实现RISC-V指令的功能没有对代码做任何的优化。

商业非开源软核

  1. MicroBlazeMicroBlaze 是功能齐全的、更少指令集的 FPGA 优化型 32 位 RISC 软处理器可充分满足各种应用需求。MicroBlaze 是一款高度可配置的易用型处理器,可在 FPGA 以及全可编程 (AP) SoC 产品系列中使用。它免费配套提供 Vivado 设计与系统版以及 Vivado Webpack 版。

  2. Nios II系列是 Altera 推出的32位RISC嵌入式处理器。Nios II是应用于 Intel FPGA 的嵌入式软核处理器,它是 Qsys 嵌入式系统的核心部件,具有较强的性能和可定制特性。一片 FPGA 内部可以构建多个 Nios II 处理器,它们可以作为主 CPU也可以是协处理器在同一芯片内部协调有序地完成整个复杂系统的各项功能。Nios II 处理器内核是32位 RISC 架构处理器包含了大多数现代32位处理器中常见的基本架构元素。