|
sEMU
|
sEMU (Simple Emulator) 是一个采用现代 C++ (C++17/20) 编写的高性能 RISC-V 模拟器基础设施。作为 ysyx 体系结构学习与验证的核心组件,它提供了精准的指令级模拟(ISS),不仅用于教学理解 CPU 的内部行为,同时作为 DiffTest(差分测试)的参考实现(Golden Model),用于验证硬件 RTL 的正确性。
本项目大量运用面向对象的抽象,剥离了底层的内存管理、指令提取、执行引擎与调试支持,使得整个模拟器的扩展、维护与阅读变得清晰明了。
支持 RV64/RV32 基础整数指令集扩展以及大部分常用的外设交互。核心执行循环经过优化,尽量减少热点路径的内存分配,保持对 RTL 验证的高速。在 class Core 中可以探索五级流水线架构的设计思路。
提供强大的差分测试(DiffTest)框架,支持与 Verilator 仿真的 NPC(New Processor Core)实时比对寄存器状态和内存变动,快速定位硬件设计漏洞。
内置 Simple Debugger (SDB),支持单步执行(si)、状态打印(info)、内存扫描(x) 以及运行跟踪,这极大方便了运行裸机程序或简易系统级软件时的调试。
模拟了总线和物理内存映射(MMIO),可以方便地挂载诸如串口(UART)、定时器(TIMER)等外部设备,提供一致的内存接口。