魏定国 发表于 2023-3-1 17:46:30

RISC-V处理器IP验证流程

本帖最后由 魏定国 于 2023-3-1 18:51 编辑

一、简介

RISC-V是一种具有多种扩展功能的通用免许可开放指令集架构 。它是一个开源指令集,分为一个小的基本整型 ISA,可用作定制加速器和可选标准扩展的基础,以支持通用软件开发。RISC-V 支持应用程序、操作系统内核和硬件实现的 32 位和 64 位地址空间变体。因此,它适用于所有计算系统,从嵌入式微控制器到云服务器。

在这个开放的计算时代,RISC-V 社区成员雄心勃勃地使用 RISC-V 开放 ISA 创建各种 RISC 处理器。然而,使用 RISC-V ISA 的风险更高,因为经过验证的处理器验证流程仍然是成熟的处理器无晶圆厂 IP 公司和 IDM 的专有信息,属于未公开的秘密。那么,如何才能让RISC-V验证流程开放,为RISC-V社区赋能呢?

本文将引述来自印度的科技公司Maven Silicon 的文章,展开论述。并带您了解 Maven Silicon 的 RISC-V 验证流程。

2. 验证策略

2.1 块级验证:使用形式验证生成RISC-V IP基本块库

使用形式验证验证所有 RISC-V IP 基本构建模块,如 ALU、解码器、程序计数器、寄存器、指令和数据存储器。对 RISC-V IP 构建块进行 RTL 编码的设计工程师 可以将断言 嵌入到 RTL 模块中。验证工程师 将使用形式验证 EDA 工具验证 RISC-V RTL IP 模块。DE 可以综合经过验证的 RTL 模块并修复所有与综合相关的问题。

最后,VE可以进一步验证这些可综合的RTL模块并创建RISC-V IP模块库。

2.2 IP级的验证:使用预先验证的RISC-V IP块库来验证RISC-V IP,该IP是使用约束随机覆盖率驱动的验证建立的。

DE可以使用预先验证的RISC-V IP基本块库实现任何一种多级流水线RISC-V处理器。VE将在UVM中创建验证环境,并使用CRCDV验证RISC-V多级流水线处理器。

VE 还将创建必要的参考模型、用于协议验证的接口断言和功能覆盖模型。最后,VE 将sign off基于覆盖率闭包 [代码 + 功能覆盖率] 的 IP 级回归测试。

如果RISC-V处理器IP实现了一个支持标准Unix-like操作系统的通用处理器,那么经过验证的RISC-V处理器IP可以通过使用FPGA原型验证启动操作系统来进一步验证。

3. Maven Silicon的RISC-V处理器IP验证流程

如图 1 所示,Maven Silicon 的 RISC-V 验证流程实现了上述验证策略。


4.使用UVM进行RISC-V IP验证
IP 级 VE 可以使用UVM(Universal Verification Methodology) 创建验证环境,如图 2 所示。
由于我们的Maven Silicon的RISC-V IP RTL设计使用AHB接口,因此我们将指令和数据存储器建模为AHB从属UVM代理UVM Agent。RISC-V 处理器参考模型建模为 AHB 主 UVM 代理,通过背靠背连接 RISC-V AHB 代理来验证包含所有测试平台组件记分牌、具有覆盖模型的用户、复位、中断和 RAL UVM 代理的完整 UVM 环境,特别是验证数据流和覆盖范围生成。一旦验证环境变得稳定,其中一个参考模型就被RTL取代。UVM RAL被广泛用于对RISC-V IP寄存器和存储器进行采样,以便在记分牌中进行数据比较。
由于我们Maven Silicon的RISC-V IP RTL设计使用AHB接口,我们将指令和数据存储器建模为AHB从UVM Agent。RISC-V处理器参考模型被建模为AHB主UVM Agent,通过背靠背连接RISC-V AHB Agent来验证完整的UVM环境,包括所有的测试平台组件UVM scoreboard、带有覆盖模型的用户、复位、中断和RAL UVM Agent特别是验证数据流和覆盖生成。一旦验证环境变得稳定,其中一个参考模型就被RTL所取代。UVM RAL被广泛用于对RISC-V IP寄存器和存储器进行采样,以便在UVM Scoreboard进行数据比较。
要了解此验证环境的工作原理,请观看此演示视频:
图 2:Maven Silicon 的 RISC-V IP UVM 验证环境
还可以考虑将 Google 的用于刺激生成的指令流生成器和开源指令集模拟器 (如 Spike)作为参考模型集成到他们的 UVM 环境中,并有效地进行详尽验证。
5. 结论
高效、高质量的 RISC-V IP 验证只能通过形式验证、使用 UVM 的 CRCDV 和使用 FPGA 原型设计的操作系统启动等 各种验证方法的有效组合, 以及重用性 (如重用预验证的 RISC-V 块库和可扩展性)来实现IP 级 UVM 测试平台。由于 RISC-V 是一个开
页: [1]
查看完整版本: RISC-V处理器IP验证流程