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:压缩指令。

SCR1 集群框图

图 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 的专业支持。