SCR1 RISC-V IP 概述:主要特性、配置、性能评估与开发工具
1. 引言
RISC-V 支持开源 IP 设计,并为学术和商业应用提供了获取现代处理器技术的途径。一个例子是由 Syntacore 开发的 32 位、开源、经过硅验证的 SCR1 内核。该内核自 2017 年推出以来,已用于众多项目,包括商业汽车、物联网和智能传感器应用,以及学术研发。
本文旨在全面概述 SCR1 内核,审视其架构和微架构特性,帮助开发者和研究人员就其项目中的使用做出明智决策。文章还描述了该内核的可用配置、定制选项、开发工具,将 SCR1 与类似的 ARM IP 内核进行了比较,并提供了详细的 PPA 评估。
2. 概述
SCR1 是一款紧凑型、32 位、高能效的微控制器级内核。其面积起步仅为 10Kgates,适用于广泛领域,从通用深度嵌入式应用到工业控制和监控系统。得益于其开源特性,该内核也可用于教育和学术目的。
该内核基于哈佛架构,具有独立的指令和数据总线,支持 RV32I/EMC 指令集,包含可配置的 2-4 级顺序流水线、支持多达 16 个中断的 IPIC 单元、高达 64KB 的 TCM 以及行业标准的 AXI4/AHB-Lite 和 JTAG/cJTAG* 接口。SCR1 与 RISC-V International 定义的已批准规范完全兼容。
*可根据要求提供
SCR1 内核使用 SystemVerilog 开发,并在开源 SHL 许可下分发,允许无限制的商业使用。该内核附带预配置、经过测试并定期更新的软件、详细文档、示例、项目以及适用于主流 FPGA 的镜像,可让您开箱即用。Syntacore 提供基于商业模式的专门专业技术支持,确保您的项目快速无缝集成。
技术规格
以下是 SCR1 内核的详细技术规格。
表 1. SCR1 内核关键技术参数。
| 内核 | |
|---|---|
| ISA | RV32I/E[MC]*,整数乘除 ,压缩指令 [C] -- 可选 |
| 执行特权级别 | 机器模式 |
| 流水线 | 顺序执行,2 -- 4 级(整数) |
| 硬件乘法器/除法器 | 根据要求进行速度优化/面积优化(根据频率和性能要求选择迭代或流水线配置) |
| 存储子系统 | |
| 紧耦合内存 (TCM) | I/D 共享,可配置:大小 -- 最高 64KB |
| 中断子系统 | |
| 中断类型 | 支持直接/向量中断 |
| IPIC | 低中断延迟,多达 16 条中断线,支持固定中断优先级级别(基于中断 ID),支持机器模式定时器中断,支持机器模式软件中断 |
| 低功耗管理 | |
| 支持时钟门控,支持电源门控(粗粒度电源域控制,提供内核级 UPF 用于低功耗感知仿真和实现),WFI(等待中断)机制以进入休眠模式 | |
| 调试子系统 | |
| 接口 | JTAG/cJTAG 兼容接口 |
| 断点 | 多达 4 个硬件断点,支持无限软件断点 |
| 接口 | |
| AXI | AXI4 AMBA 标准接口 |
| AHB | AHB-Lite AMBA 标准接口 |
| 定时器和计数器 | |
| 性能监控 | 2 个性能计数器 |
| 嵌入式 64 位 RTC 定时器 | 支持机器模式定时器中断 |
*可选扩展在括号中给出。扩展的字母编码含义:I:基本整数,E:精简基本整数,M:整数乘除,C:压缩指令。
图 1. SCR1 集群框图。
可用配置
SCR1 提供三种标准配置—Min、Base 和 Max—提供灵活的功能集,可根据您特定应用的需求进行调整。
- 最小(Min)配置支持 RV32EC ISA,包括两级流水线和 TCM。此配置具有 16 个通用寄存器,适用于深度嵌入式应用,例如对面积最小化至关重要的物联网传感器。
- 基础(Base)配置支持 RV32IC ISA,包括 32 个通用寄存器、三级流水线、TCM、IPIC 中断控制器、通过 MTVEC 寄存器支持的向量中断模式、带 JTAG/cJTAG 接口和 2 个硬件断点的调试子系统,在面积效率和性能之间提供了最佳平衡。这使其适用于通用嵌入式应用,如工业控制系统。
- 最大(Max)配置支持 RV32IMC 指令集,包括 32 个通用寄存器、四级流水线、硬件乘除单元、带 JTAG/cJTAG 接口(多达 4 个硬件断点)的扩展调试功能、IPIC 中断控制器和通过 MTVEC 寄存器支持的向量中断模式,使其成为需要最大处理能力的高性能嵌入式系统(如控制系统和汽车电子)的理想选择。
表 2. SCR1 内核配置的关键特性和规格。
| 特性/配置 | Min | Base | Max |
|---|---|---|---|
| 内核 | |||
| 面积,kGates | 10 | 28 | 36 |
| ISA | RV32EC | RV32IC | RV32IMC |
| 流水线级数 | 2 | 3 | 4 |
| 硬件乘法器/除法器 | — | — | + |
| 通用寄存器数量 (GPRs) | 16 | 32 | 32 |
| 存储子系统 | |||
| 紧耦合内存 (TCM),最高 64KB | + | + | + |
| 中断子系统 | |||
| IPIC | — | + | + |
| 中断线 | 1 | 16 | 16 |
| 向量中断支持 | — | + | + |
| 调试子系统 | |||
| JTAG/cJTAG 兼容接口 | — | + | + |
| 硬件触发器 | — | 2 | 4 |
性能
下表包含了三种 SCR1 内核配置(最小、基础和最大)在广泛采用的 90LP 和 28HPC 工艺技术下的基本 PPA(性能、功耗和面积)指标。
表 3. SCR1 内核性能特性。
| 参数/SCR1 配置 | Min | Base | Max |
|---|---|---|---|
| Dhrystone, per/MHz Obest (LTO)* | 2,85 | 3,14 | 2,86 |
| Coremark, per/MHz Obest** | 1,17 | 1,11 | 2,64 |
| Frequency, MHz (90LP) | 170+ | 270+ | 310+ |
| Frequency, MHz (28HPC) | 750+ | 1100+ | 1200+ |
Dhrystone 2.1,Coremark 1.0 从 TCM 运行;SC-DT 2025.09,LLVM-20-sc*使用 LTO 优化;**使用基础规则优化
90LP,9 轨,LVT,典型条件,1.2V,25°C;
28HPC+,12 轨,LVT,典型条件 0.9V,25°C
性能比较:SCR1 与 ARM
下表 4 评估了 SCR1 与 ARM Cortex-M0 和 M3 内核在 28HPC 和 90LP 工艺技术下的性能和运行频率。
表 4. SCR1 与 ARM Cortex-M0、Cortex-M3 内核的关键性能特性。
| 参数/内核 | SCR1 Max config | Cortex-M0 | Cortex-M3 |
|---|---|---|---|
| Dhrystone, per/MHz, Obest (LTO) | 2,86 | 1,91 | 3,49 |
| Coremark, per/MHz, Obest | 2,64/3,05 | 2,33 | 3,45 |
| Frequency, MHz (90 nm)* | 310+ | 268 | — |
| Frequency, MHz (28 nm)** | 1200+ | — | 891 |
*SCR1 – 90LP, 9 轨, LVT, 典型条件, 1.2V, 25°C; Cortex-M0 — 90LP, Arm SC7 RVT SS 1.08V, 125°C;
**SCR1 – 28HPC+, 12 轨, LVT, 典型条件 0.9V, 25°C; Cortex-M3 — 28HPM, 12 track, LVT, typical 0.9V, 85°C
SCR1 在性能上超越了 ARM Cortex-M0,接近 Cortex-M3 的水平。通过为 Max 配置启用 SCR1_NO_DEC_STAGE 定义,可以进一步优化,将处理器流水线减少一级,使其 Coremark 分数达到约 3.05 per MHz。此外,它在面积效率和功耗方面也有所改进。
面积与能效
下表 5 提供了 90 nm 工艺技术的特性。
表 5. SCR1 与 ARM Cortex-M0、Cortex-M3 内核的面积与能效。
| 参数 | SCR1* | ARM** | |||
|---|---|---|---|---|---|
| Min, from | Base, from | Max, from | Cortex-M0, min | Cortex-M3, min | |
| 面积, mm2 | 0,0027 | 0,07 | 0,091 | 0,03 | 0,09 |
| 功耗, uW/MHz | 5,82 | 10,18 | 9,96 | 12,5 | 31 |
*面积 – 90LP, 9 轨, LVT, 典型条件 1.2V, 25°C @50MHz, 仅核心逻辑;
功耗 – 90LP, 9 轨, LVT, 最差条件1.08V, 125°C @50MHz;
**Cortex-M0 -- 最小配置,90LP,7 轨,典型条件 1.2V,25°C,125°C;
***Cortex-M3 -- 最小配置,90LP,7 轨,RVT,典型条件 1.2V,25°С
3. 配置选项
在标准配置之上,还有许多架构和微架构特性可以微调,以更好地满足特定应用的需求。此外,Syntacore 提供全面的服务和支持,包括架构和微架构调整、ISA 配置和编译器优化,确保根据特定项目需求实现最佳实施方案。
以下是可用于使 SCR1 适应不同应用需求的关键配置选项(整体设计包含 40 多个可配置选项)。
表 6. SCR1 配置选项。
| 特性 | 描述 |
|---|---|
| Core | |
| ISA | RV32(I/IM/IMC/E/EM/EMC) |
| 流水线级数 | 2/3/4(基于频率要求) |
| 硬件乘法器/除法器 | 根据要求进行速度优化/面积优化(根据频率和性能要求选择迭代或流水线配置) |
| 通用寄存器数量 (GPRs) | 16/32 |
| 存储子系统 | |
| 紧耦合内存 (TCM),最高 64KB | 4KB to 64KB |
| 中断支持 | |
| IPIC | 多达 16 条中断线,基于 ID 支持固定中断优先级(最多 16 级), 直接/向量中断模式 |
| 低功耗管理 | |
| 支持时钟门控,支持电源门控(粗粒度电源域控制,提供内核级 UPF 用于低功耗感知仿真和实现), WFI(等待中断)机制以进入休眠模式 | |
| 调试子系统 | |
| 调试单元 | 带 JTAG/cJTAG 接口的调试子系统, 支持硬件触发器 |
| 硬件触发器数量 | 多达 4 个 |
| 接口 | |
| 32 位 AXI4 或 AHB-Lite 外部接口 | |
| 定时器和计数器 | |
| 性能监控 | 2 个性能计数器(周期计数器,退休指令计数器) |
| 嵌入式 64 位 RTC 定时器 | 支持机器模式定时器中断 |
4. 完整的开发平台
除了 SCR1 内核和硬件配套资料外,Syntacore 还提供一整套预配置且经过测试的工具,可显著提高生产力并简化开发流程。
专业软件开发套件
Syntacore Development Toolkit (SC-DT) 是面向开发者的综合解决方案,包括基于 GCC/LLVM 的工具链、支持 Visual Studio Code 和 Eclipse 的集成开发环境、GDB 和 openOCD 调试器、QEMU 仿真环境、引导加载程序、系统软件、示例应用程序、基准测试和详细文档。
此外,Syntacore 还为来自领先供应商(SEGGER、Lauterbach、Ashling、Digilent、Olimex)的第三方调试硬件和软件提供广泛支持。
表 7. SC-DT 组件及支持的第三方工具。
| SC-DT | ||
|---|---|---|
| 特性 | 描述 | |
| IDE | Visual Studio Code插件 | |
| Eclipse | ||
| 工具链 | 带有 binutils 和 Newlib 库的 GCC | |
| clang/LLVM编译器 | ||
| 调试器 | GNU GDB | |
| OpenOCD | ||
| 模拟器 | QEMU | |
| 软件示例 | 示例应用程序和基准测试 | |
| HAL和 BSP | ||
| 操作系统 OS | FreeRTOS/(RTEMS/Zephyr)* | |
| 引导加载程序(Bootloader)和固件(Firmware) | 一级引导加载程序 | |
| 文档 | 用户指南,工具指南(IDE, CLI) | |
| 第三方工具 | ||
| SEGGER | 调试探头 | J-Link Ultra+ |
| IDE | Embedded Studio | |
| Lauterbach | 调试探头 | PowerDebug |
| PowerTrace | ||
| 调试器 | Trace32 | |
| Ashling | 调试探头 | Opella-XD |
| IDE | RiscFree™ | |
| Digilent | 调试探头 | JTAG-HS2 |
| Olimex | 调试探头 | ARM-USB-TINY-H |
| ARM-USB-OCD-H | ||
*需单独下载
FPGA SDK
FPGA SDK 是一个开箱即用的项目,包含 IP 核、外设模块、标准接口、内存,并支持在特定板卡上添加自定义外设进行测试。
SDK 包括预构建镜像、引导加载程序、操作系统(Zephyr)、测试、HAL 和 BSP,以及 Eclipse 或 Visual Studio 开发环境。
为最流行的 FPGA 板卡*提供了开箱即用的项目:*
- Digilent Arty (Xilinx)
- Digilent Nexys4DDR (Xilinx)
- Altera Arria-V (Intel)
- Terasic DE10-Lite (Intel)
*可根据要求考虑其他制造商的板卡。
所有这些板卡的 SDK 都可在 GitHub 仓库获取,随时可以安装和配置,并由 Syntacore 持续维护。
文档
SCR1 软件包包含全面的文档:
- 用户手册,包含详细技术规格、配置指南和操作说明
- 外部架构规范 (EAS) 手册,深入描述 SCR1 架构和微架构,包括组件、ISA 和接口
- FPGA SDK 指南,提供针对特定板卡的 FPGA 设置、镜像加载和应用程序开发的分步说明
5. 总结
本文描述了开源 SCR1 内核的主要架构和微架构特性,展示了其 PPA 特性,与类似 ARM 内核进行了比较,描述了开发工具,并概述了支持的 FPGA 板卡。
SCR1 完全符合已批准的 RISC-V 规范,并在开源 SHL 许可下分发,允许在商业和学术应用中无限制使用。
SCR1 提供三种默认的开箱即用配置—Min、Base 和 Max—并提供灵活的进一步微调选项。SCR1 可以在我们专业团队的帮助下根据您的特定需求进行定制,使其适用于广泛领域—从通用嵌入式、物联网 (IoT) 到控制和监控系统。
与类似的 ARM Cortex-M0 和 Cortex-M3 IP 内核相比,SCR1 提供了有竞争力的 PPA 结果。该内核附带完全预配置的工具、FPGA SDK 和详细文档,以便快速入门,并提供基于 SLA 的专业支持。