1、蒋子健,郑恪然,包云岗,石侃面向RISC-V指令集扩展的软硬件协同敏捷验证方法 芯片验证极其重要:验证过程占据了整个芯片开发周期高达70%的时间芯片开发的瓶颈验证 Synopsys 芯片验证极其重要:验证过程占据了整个芯片开发周期高达70%的时间 芯片验证非常困难:现有的验证方法难以覆盖全部功能验证目标 随机约束测试,通用验证方法学UVM,形式化验证,FPGA原型验证,仿真加速器芯片开发的瓶颈验证 Synopsys RISC-V指令集扩展需求日益增加:RISC-V指令集架构(ISA)的重要特点之一是支持自定义扩展 如何验证包含RISC-V核以及扩展加速器的系统?从unit-level veri
2、fication到system-level verification验证RISC-V指令集扩展验证包含RISC-V核与HLS扩展加速器的系统传统软件仿真方法低仿真性能单元级仿真FPGA原型验证(使用ILA调试)难以测试加速器ILA探针带来较大面积开销离线检查我们的方法RISC-V核连接加速器系统级测试运行时检查机制FPGA加速较低的面积开销 面向RISC-V指令集扩展的新验证方法 首个面向 RISC-V 处理器核及 HLS 扩展加速器的系统级验证框架 基于ENCORE验证框架 自动化集成待测设计和测试程序的工具流 解析 HLS 扩展加速器,以较低的面积开销集成待测设计到系统中 工具流将软件仿真
3、 Testbench 自动转换成调用扩展指令的 HW/SW co-simulation 测试程序 运行时:自动进行系统级检查,软件自动收集覆盖率信息 多种覆盖率收集机制,确认各种功能验证目标完整覆盖 运行时对硬件端待测设计以及软件参考模型实时检查 一旦遇到潜在错误,硬件快照机制进行波形调试在 AMD UltraScale+FPGA 上使用真实的 Benchmark 相比软件仿真达到4423 到 16626x 的性能提升,并引入较小的面积开销主要贡献 Frontend集成待测设计到系统中,转换测试用例为软硬件协同测试程序 FPGA architecture验证运行时架构,包括检查器,硬件待测设计
4、,以及软件参考模型 Host CPU Software backend硬件快照机制,用于保存FPGA状态以及波形重建总体架构 Frontend集成待测设计到系统中,转换测试用例为软硬件协同测试程序 FPGA architecture验证运行时架构,包括检查器,硬件待测设计,以及软件参考模型 Host CPU Software backend硬件快照机制,用于保存FPGA状态以及波形重建总体架构前端架构自动生成硬件Wrapper架构用于对扩展指令执行的调度硬件包括译码器、缓存池以及状态机通过RoCC协议RISC-V Core与HLS加速器连接RISC-V Core与HLS加速器共享Dcache前
5、端架构CPU与加速器间通信定义load、store、execute三类通信指令重写测试用例在CPU Benchmark中插入扩展指令,调用加速器功能待测设计与参考模型同步运行重写后的测试用例 Frontend集成待测设计到系统中,转换测试用例为软硬件协同测试程序 FPGA architecture验证运行时架构,包括检查器,硬件待测设计,以及软件参考模型 Host CPU Software backend硬件快照机制,用于保存FPGA状态以及波形重建总体架构硬件架构:基于ENCORE硬件架构:基于ENCOREReconfigFabricHardened Processors硬件架构:基于ENC
6、OREWorkloadReconfigFabricHardened ProcessorsCompare&CheckMonitor&DriversRTL DesignRef ModelDDRC/RTL co-simulation programAddr Space for Ref ModelAddr Space for RTLReconfigFabricHardened ProcessorsCompare&CheckISA EmulatorHLSRefMonitor&Drivers硬件架构:基于ENCORE自动化检查&错误定位软硬件对比RISC-V处理器核