4.6 KiB
RISC-V 软核
简介
核(CORE)是一个数字系统的核心,负责整个系统的内存调度,中断管理,算术逻辑运算等,如同整个系统的大脑,是由物理电气实现逻辑功能的关键。尽管复杂,但不可忽略的是,核同其他数字器件一样,也是一个典型的逻辑器件,由逻辑门、触发器构成,因此可以由硬件描述语言(Hardware Description Language,HDL)来描述。既然核可以由HDL来描述,那么对于每一个特定功能和性能(即逻辑的时序和功能特定)的核而言,必有一组HDL描述等价于它,而具体的器件信号、封装等,只不过是这组HDL依赖具体工艺的一种物理实现。因此,我们应该认识到,所谓核,本质上是一种知识产权,是一种特定的可描述的逻辑结构,应用于FPGA设备中。当前的FPGA设计规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。我们将这种功能模块称作IP核(Intelligent Property) 。
IP核的提供方式通常分为软核、固核和硬核这3类。软核(Soft IP Core)在 EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型,通常是指以HDL代码(Verilog,VHDL…)为形式的可综合源代码;固核(Firm IP Core)在 EDA 设计领域指的是带有平面规划信息的网表;硬核 (Hard IP Core)在 EDA 设计领域指经过验证的设计版图。软核只具备功能仿真功能,需要经过综合以及布局布线才能使用,其优点是灵活性高、可移植性强,允许用户自配置。
软核是 IP 核应用最广泛的形式,使用 FPGA 的通用逻辑资源(LUT+FF)搭建而成的。其中,软核处于RTL层级,以可综合的HDL(Verilog,VHDL)源代码的方式存在。在前期调研过程中,本项目将开源的 riscv 软核 Rocket 烧录到 Nexys A7-100T 开发板上,并在其上运行裁剪过 Linux 操作系统。后期,XiUOS 也计划移植到 Nexys A7-100T 开发板上,软核仍采用开源的 Rocket。
一些常见软核
开源RISCV软核
-
Rocket,是 UC Berkeley 的 RISC-V 项目团队发起并设计的兼容 RISC-V 指令集的 CPU 核。它是一款64位、5级流水线、单发射顺序执行处理器,支持 MMU,支持分页虚拟内存,具有兼容 IEEE 754-2008 标准的 FPU,具有分支预测功能,具有 BTB(Branch Prediction Buff)、BHT(Branch History Table)、RAS(Return Address Stack),Rocket是采用 Chisel(Constructing Hardware in an Scala Embedded Language)编写硬件电路,可以通过编译得到对应的 Verilog 设计,还可以得到对应的 C++ 模拟器。
-
PULPino, 是一个开源的微型控制系统,基于一个32位RISC-V核心,由瑞士苏黎世联邦理工学院开发。核心IPC接近1,完全支持基整数指令集 (RV32I),压缩指令 (RV32C) 和部分支持乘法指令集扩展 (RV32M)。
-
Shakti,印度理工学院的一个项目,由 Verilog 编写,其使用了大量第三方 IP,根据需要分成了不同的类。该计划不仅构建开源,生产级处理器,还包括互连结构,验证工具,存储控制器,外围 IP 和 SOC 工具等相关组件。
-
蜂鸟,国内最早比较成熟的 RISC-V 实现,由胡振波(现在芯来创始人)开发,使用Verilog设计。其开源CPU为E200:使用2级流水线。
-
tinyriscv,国内开发者在GitHub上开源的一个微RISC-V处理器核,用verilog语言编写,以最简单、最通俗易懂的方式实现RISC-V指令的功能,没有对代码做任何的优化。
商业非开源软核
-
MicroBlaze,MicroBlaze 是功能齐全的、更少指令集的 FPGA 优化型 32 位 RISC 软处理器,可充分满足各种应用需求。MicroBlaze 是一款高度可配置的易用型处理器,可在 FPGA 以及全可编程 (AP) SoC 产品系列中使用。它免费配套提供 Vivado 设计与系统版以及 Vivado Webpack 版。
-
Nios II系列,是 Altera 推出的32位RISC嵌入式处理器。Nios II是应用于 Intel FPGA 的嵌入式软核处理器,它是 Qsys 嵌入式系统的核心部件,具有较强的性能和可定制特性。一片 FPGA 内部可以构建多个 Nios II 处理器,它们可以作为主 CPU,也可以是协处理器,在同一芯片内部协调有序地完成整个复杂系统的各项功能。Nios II 处理器内核是32位 RISC 架构处理器,包含了大多数现代32位处理器中常见的基本架构元素。