为RISC-V启用工业级开放验证

文章:Kevin McDermott

下面是一个带有工业级验证和支持验证开源CV32E40P核心的开放方法的开源IP。

设计一个片上系统(SOC)所花费的时间,金钱和努力意味着当工程团队希望第一次获得它时并不奇怪。这种长期的理想不仅仅是自己的;它需要大量的测试,测量和验证。当然,这需要资金和努力,但随着大多数人都会同意,在早期设计阶段上花了一点,可以节省多大的花费。

这当然是RISC-V处理器知识产权(IP)核的情况。以前,SoC设计验证(DV)是基于已知的主流供应商提供的良好处理器IP的基本假设。但是现在,由于RISC-V标准的开放性,任何人都可以设计自定义处理器。这反过来又将验证任务从少数专业供应商转移到所有SoC开发人员。RISC-V验证是这个过程中非常重要的一部分,它实际上正在成为一个独立的细分市场。

RISC-V.是一个开放标准ISA(指令集架构),支持模块化和灵活的框架,可用于优化处理器实现。基于RISC-V的IP核心可以作为商业产品交付或内部开发,有些可作为开源项目提供。虽然芯片或SOC设计的开源硬件IP是一个有吸引力的选择,但质量问题仍然是广泛采用和接受的障碍,特别万博投注网址是对于处理器核心等复杂IP。

OpenHW集团有一个创始目的,通过基于既定和可信标准,通过工业级核查提供开源IP。初始项目已产生;一个可以支持验证的开放方法开源CV32E40P核心.为了支持这一愿景,openenhw完全验证环境和流程是公开可用的,以帮助建立对IP质量的信心,并作为一个平台,因为核心将被未来的采纳者修改或扩展。

这些资源都是免费提供的,包括测试工作台、文档、测试用例控制脚本、已完成里程碑的清单,以及所有代码和功能覆盖结果。希望这些资源可以“开箱即用”或作为模板供其他DV小组使用。

也许更重要的是,该项目展示了一些只有有经验的处理器DV团队才知道的技术和验证方法。通过在GitHub上免费提供项目的所有资源和结果,采用者可以在修改或扩展开源处理器IP时继续使用测试流程。此外,其他设计团队可以将此作为改进验证过程的指南,并实现难以实现的“正确的首次”目标。

没有计划,你就计划着失败

OpenHW组建立了一个验证任务组来解决项目,然后生成一个项目验证策略计划.关键目标是记录其他工程师在采用、修改或扩展核心时可能需要进行的尽职调查。所有的文档现在都可以在openenhw集团的GitHub存储库中找到,Core-V-Docs

测试计划是使用UVM(通用验证方法)开发的,使项目可转让和容易通过SoC社区采用。此方法使用基于SystemVerilog的类库来创建一个不特定于任何单个EDA工具供应商的验证环境。

初始焦点涉及CV32E40P核心的验证,一种功率有效的32位RISC-V核心,尺寸小,但受欢迎程度大。它使用使用4级流水线的按订单执行,现在使用了几种商业SOC设计。万博投注网址这些包括用于工业和消费者部门的物联网(IoT)设备,以及通用32位微控制器。

创建的验证环境称为core-v-verif(图1)。它提供了一个基于RISC-V规范(RV32IMCZifencei)的CV32E40P RTL核心的仿真环境。该环境将适应其他未来的CORE-V核心,包括CV32E40X, CV32E40S和CVA6,并是自由无障碍在github上。

对RISC-V的开放验证
图1:由CV32E40P的OpenHW组开发的Core-V-Verif测试台(资料来源:Imperas Software Ltd)

该项目的一个关键目标是环境应开放,EDA供应商无关,基于UVM等标准,提供与普通SOC DV流相兼容的工业级验证。此目标是实现的,环境在任何SystemVerilog标准的模拟器上运行。此外,它还提供完整的代码覆盖范围和全面的功能覆盖范围,并通过开放和完整的验证计划支持。

验证环境有六个主要组件,如图1所示。这些包括DUT(待测设计),在本例中是CV32E40P RTL。它还包括RISC-V参考模型(RM)和COREV-DV;延伸到Google开源ISG(指令流生成器).Core-V-verif环境中的其他关键元素是阶梯和比较状态机,它同步DUT和RM。UVM代理的调试请求和中断是在测试程序的控制下异步发生的。最终元素是功能覆盖模型,其对应于DV计划。

ISG在Core-V-Verif环境中,Core-DV是Google的开源ISG的扩展名称RISCV-DV。Google的ISG是一种流行的选项,支持多个RISC-V ISA配置。虽然标准RISCV-DV提供了用于测试处理器的指令序列,但是一个有用的DV工具,作为一个开源项目,它也可以由用户扩展。

验证任务组创建的实现扩展了用于包含增强的调试和中断功能的SystemVerilog / UVM类,该类在RISCV-DV提供的具有挑战性的指令序列和角色情况下构建。这是在不改变核心RISCV-DV实现的情况下实现的,因此Core-V-Verif与对RISCV-DV的任何未来改进保持一致,同时也实现了OpenHW组的特定功能。

使用SystemVerilog DPI(直接编程接口)在DUT和RM上编译和执行测试程序。该方法允许测试禁止同时模拟核心(以RTL形式),RM和测试台组件。在模拟期间,被捕获执行的指令的操作码,允许在RTL核和RM之间进行比较。任何变型都是实时显示的,因为UVM错误,这意味着无需后处理来确定测试是否已通过或失败。还可以应用其他测试套件,例如RISC-V国际RISC-V建筑验证测试套件。

验证的步骤和比较

上面描述的验证流程,其示出了DUT和RM之间的比较是验证方法的基础。指令流可用于识别一些独特的角壳;处理器设计团队的另一个重要任务是了解异步条件下发生的情况,例如中断。

imperas步骤和比较状态机
图2:步骤和比较状态机(资料来源:Imperas Software Ltd)

步进和比较(也称为锁定步骤)方法使DUT和RM在指令边界保持同步(图2)。这个锁步允许以可重复的方式分析异步事件,因此任何差异都可以视为调试过程的一部分。在验证期间,回溯到错误的根本原因是必要的,而步骤和比较方法允许在调试和分析之间无缝过渡。

ImperAs提供的RM是验证质量的另一个基本要素,以及所执行的国家比较。AmperAs参考模型完全可配置,遍布所有RISC-V规格,涵盖开发下的子集扩展,并且已经批准。目前正在开发但由凡斯坦茨覆盖的人包括向量(0.7到1.0),并支持DSP,Crypto(标量)和调试的比特操纵(0.90到0.90到0.90到0.90到Crypto)和调试。基础用户和特权规范的级别。

将来,预计核心可以基于RISC-V规范的组合,跨各种基础和标准扩展。ImperAsEventope RM可以在其配置粒度内支持这些组合,涵盖RISC-V规格的所有功能和增量版本。

在Core-V-Verif Flow中,ImperAs RISC-V RM将被集成到SystemVerilog TestBench中作为二进制对象,链接到通过DPI可执行的SystemVerilog。该模型包括控制和状态界面,其提供了架构状态的同步和提取,以实现CV32E40P的有序流水线的RTL比较。然而,对于RISC-V核心设计,具有多竖起符号或无万博投注网址序管道,ImperAs RM允许详细的控制功能确保完全同步和与正在测试的RTL进行比较的能力。

支持核心扩展

开源IP和RISC-V ISA的主要优点之一是扩展其功能的能力。这是由验证环境和默认情况下的支持支持。除了自定义控制/状态寄存器和标准配置和指令子集合之外,该模型还支持自定义扩展指令集。

因为这种能力实现为扩展,所以包络模型没有修改。这意味着已经验证的任何功能都不会改变,而是从其基本功能扩展。例如,即使它在其实现中是高度可配置的,也可以提供对调试规范的支持。它可以编码为侧扩展,该侧扩展绑定到基础模型。

其他人可以建立的参考验证解决方案

由于其开放式的性质,RISC-V ISA非常受欢迎,但由于开源核心所提供的功能和优势,它也是如此。这包括CV32E40P,它很受欢迎,这些开发人员在各种工业和商业应用中瞄准了新的SOC设计。万博投注网址

openenhw验证任务组努力全面测试和验证开源CV32E40P RISC-V核心。更重要的是,在这样做的过程中,它还生成了core-v-verif测试台,也可以在GitHub上免费获得,并与任何支持UVM/SystemVerilog标准的工具一起使用。在结束CV32E40P验证项目时,核心通过了所有测试,其中包括100%的功能和代码覆盖率。项目的所有文档都是可用的,它为任何设计团队评估、采用和/或修改核心内容提供了有价值的信息来源。关注RISC-V的工业级验证解决方案的需求,openenhw验证任务组真正提供了一个参考,其他人可以在此基础上构建未来。

本文最初发布嵌入式

Kevin McDermott是Imperas软件的营销副总裁。此前,他在ARM,MIPS和Imagination Technologies举办了各种高级商业和管理角色,专注于CPU IP和软件开发工具。凯文获得了纽卡斯尔大学的微电子和微处理器应用的BSC学位,U.K.

留下你的评论