中文 英语
系统与设计
的意见

RISC-V验证:基于仿真的处理器硬件DV的5个层次

RISC-V开发者提供灵活性的设计自由创新——现在处理器IP验证质量也是一个灵活的选择。

受欢迎程度

由李摩尔和西蒙Davidmann

RISC-V开放标准ISA(指令集架构)为开发人员提供了机会来配置一个定制的处理器的特性和功能独特的解决他们目标结束应用程序需求和要求。RISC-V具有模块化结构与许多额外的标准指令扩展专用的硬件特性,如浮点操作,DSP,加密,向量,和许多其他正在开发中。此外,可以添加自定义指令进一步优化设计。RISC-V是一个开放标准规范,研制了许多实现商业项目而其他可用的开源硬件IP。因此,SoC开发商有几个选项中选择一个处理器核心,从开发新设计、选择可用内核的修改和提高这些起点。

现有的SoC设计验证流动建立了设计由建立的集成处理器IP核的主流供应商。行业SoC设计验证(DV)方法建立基于SystemVerilog UVM长椅和块级设计验证测试。当前SoC DV方法有一个共同的假设作为起点,已知良好的处理器的IP。这些先进的验证技术的处理器是严格保持内部商业机密和可交付物的质量是一个值得信赖的品牌价值的供应商。

RISC-V不仅仅是扩大自由设计系统架构师开发新的优化设计,RISC-V也扩大验证团队的工作范围。

SoC验证和UVM SystemVerilog是建立在基于仿真的流动,随着更多的SoC设计团队采用RISC-V自然,SoC DV团队将因此建立方法适应解决处理器验证的复杂性。本文介绍的一些选项和最新趋势RISC-V验证和仿真。

介绍RISC-V验证的5个层次

RISC-V定义之间的边界的开放标准ISA处理器的硬件和软件运行。一个ISA规范是处理器设计和操作的基础。作为一个处理器运行一个软件程序设计,这也许是显而易见的,任何设计验证计划的一部分是测试软件的操作。事实上,任何软件运行在设计和开发过程中是一个有用的测试。在某些情况下,如一个研究项目或概念设计,基本处理器可能不是主要的焦点。在某些情况下,处理器只是提供一个前端接口等更复杂的加速器的向量处理器AI或ML项目。在这种情况下,它不需要或期望RISC-V处理器需要运行的所有可能的指令或用例。在其他情况下,处理器功能需要广泛测试跨广泛的应用场景。同时一些基本水平的测试可能会接受一个简单的测试芯片多项目晶片,要求额外的验证设计针对高容量或高可靠性的用例应用程序。

最终决定所需的设计质量是设计过程的一部分,验证的成本仅仅是另一个需要考虑的选项的特性和功能的取舍,一个处理器硬件规格或功能列表可以在对项目的影响评估基于这些关键因素的审查:

  • P:性能(新特性的改进实现)
  • P:权力(功耗影响新功能)
  • 一个:区域(数量的资源影响逻辑门实现新功能)
  • V:验证(努力验证新功能所需的质量水平)

RISC-V正在改变传统的处理器IP设计权衡决策讨论”P- - - - - -P- - - - - -一个“指标”P- - - - - -P- - - - - -一个- - - - - -V”。一个小设计功能,只需要少量的盖茨可能显示为一个有吸引力的选择只有一个“PPA根据评估的特性提供了一些有用的功能,似乎只有边际设计和实现成本。然而,在考虑“PPAV成本,来验证一个可选的特性可以极大地影响验证总成本,努力,和复杂性。作为一个基本的假设,每个可选的特性可以双重验证工作范围,涵盖所有的用例都启用了,没有选择。

初级阶段:# 0

让任何软件运行在一个新的处理器实现证明了一些工作,但“hello world”仅仅是开始,而不是一个详尽的功能测试。RISC-V处理器设计和开发中,人们很自然地测试一个新的实现一些简单的代码片段。让任何软件运行标志着一些进步在设计阶段。一些经典的里程碑在处理器开发得到一些软件运行,使其产生响应,通过输出设备或文件是可见的。这通常是一个简单的“hello world”消息表明一些内部运营活动处理器产生一个预期的输出响应。随着设计的发展,早期的另一个里程碑是第一个引导提示一个操作系统或操作系统。这些成就,而重要的设计进度,提供很少的报道被认为是功能验证计划的一部分,但他们至少显示设计准备一个更健壮的测试计划与软件设计作为输入的刺激,现在可以锻炼更完全。

简单的水平:# 1阶段


图1:简单的日志或签名文件与免费从GitHub riscvOVPsim比较法。

验证一个处理器的第一步是运行一些测试用例,并比较输出质量参考模型或自我签名,如图1所示。相同的软件输入刺激可以运行在一个新RISC-V RTL模拟处理器实现。处理器的RTL设计测试(DUT)是用Verilog模拟,或与SystemVerilog验证测试长椅,由此产生的输出保存到日志文件进行分析。相同的输入也应用于参考模型和输出也保存到一个文件中。比较两个文件可能会表现出一些差异。然而,处理器是一个复杂的状态机,两个独立的模拟可能不准确对齐进行充分的验证。

测试程序的另一个方法是建立在自测或签名结果表示满意的结论。当一个简单的分检结果可能出现有用,DV的现实计划需要一个方法进行分析和调试的问题从观察到的故障点通过设计发现功能错误的来源。

RISC-V国际建筑合规测试套件配置与集成测试签名来表示通过。测试套件是为了说明一个基本水平的一致性RISC-V规范没有任何尝试详细的功能验证。

支持这个简单的网络方法参考模拟器riscvOVPsim是免费,通过许多学术和工业团队。它是可以通过GitHub [1]。作为riscvOVPsim支持所有标准的批准RISC-V扩展,它可以用于简单的测试的基本架构验证测试。然而,这种签名文件比较的方法不是一个健壮的DV解决由于缺乏与下面的解决方法。

Trace-compare: # 2阶段


图2:post-simulation自由riscvOVPsimPlus trace-compare方法。

输出比较的一种更为复杂的方法是扩展的比较完整的指令跟踪级别的分析。流程如图2所示包括一个测试生成器来刺激RTL测试和参考模型和比较输出跟踪日志文件。在这个例子中,指令流发生器(研究小组)是开源RISCV - DV最初由谷歌和开发可在GitHub [2]。从一个纯粹的随机序列的指令将包括大量的非法和无效的组合,一个研究小组生成随机指令,但限制提供合法和有效的指令序列。锻炼一个处理器和意想不到的序列有助于目标角情况下广泛测试的完整操作范围的处理器。为了支持这种基于跟踪流和规则提供了免费参考模型riscvOVPsimPlus,[3]可以从OVPworld.org [4]。

RISC-V开放标准ISA的定义不仅仅是灵活的选项和功能支持在当前版本的规范,但也在版本规范本身随时间而变化。可能是预期的未来实现RISC-V处理器可以根据不同发布版本规范的基础功能,调试和组合各种可选的扩展。

riscvOVPsimPlus也同时支持的配置选项和版本引用的所有规格覆盖需求的完整的信封作为验证参考模型。

跟踪比较方法可以应用水平提高的分析从程序流,基本电脑(程序计数器)监控、程序数据和监视所有的处理器寄存器和内存的变化。

然而,基于跟踪比较方法有一些缺点,跟踪文件可以成为非常大的管理和分析。差异或测试失败可能发生在测试的早期,它可以成为一个资源利用效率低和不必要的模拟故障点。同时支持一些关键的DV目标,trace-compare效率的限制,只考虑适合简单的处理器。也有跟踪比较差异时,很难确定原因,可见是跟踪文件没有能力执行任何更详细的向下钻取审讯。

数据通路lockstep-compare: # 3阶段


图3:数据通路step-and-compare验证同步方法。

提供一个网络流没有trace-compare后处理的缺点和低效,参考模型可以模拟与RTL DUT的同步在同一个SystemVerilog试验台。这个流如图3所示。参考模型是封装在SystemVerilog testbench并提供不仅立即指示应该差异被发现,而且交互式调试环境调查分歧。处理器验证计划通常专注于报道但效率的关键指标确定和调查散度是一个重要的因素在选择一个验证方法。

的数据通路lockstep-compare方法克服了跟踪文件大小问题和一些低效率的选择。它提供了重要的DV支持和可用性,但仍不包括所有的操作事件处理器需要管理,如异步事件和中断。这个数据路径同步方法是一个健壮的验证计划,一些基本的处理器核心功能水平。

异步lockstep-compare: # 4阶段


图4:OpenHW CORE-V-VERIF试验台是用于CV32E40P。

RISC-V正在采用的一些最复杂和最先进的处理器架构设计项目特性,比如硬件多线程,无序(超标量体系结构),多处理器,和异构数组,加上RISC-V向量规范AI的灵活性和DL计算引擎。异步lockstep-compare方法如图4所示充分练习的多态行为复杂的处理器和还支持异步事件如中断和调试模式。

异步lockstep-compare方法建立在早期的方法提供一个质量和同步DV的环境和DUT之间的参考模型。testbench是适应反省在处理器上运行的活动操作和提供了同步事件,寄存器,中断,调试指导与参考模型边界对齐。

目前,在RISC-V验证异步lockstep-compare的黄金标准是动态的(基于模拟)验证和代表RISC-V目前最好的DV环境。通过使用指令,指令分析,完整的处理器执行流包括内部状态可以检查和分析。比较之间的交互和调试阶段允许高效的跟踪和分析确定故障根源分析。然而,除了最初的测试台上设置,整个验证工作的处理器仍是一个不小的任务。一个复杂的处理器验证计划可能涉及测试能力范围的peta的指令(1015)完全覆盖所有的用例和业务场景。这种异步lockstep-compare方法确实是一个健壮的验证计划最复杂的处理器功能。

OpenHW参考验证流程

OpenHW集团[5]成立开发开源RISC-V核心IP与工业实力验证利用最好的可用的工具和流程。第一核心是CV32E40P发布和测试策略和计划都可以作为开源的一部分交付在GitHub [6]。背后的OpenHW成员贡献验证工作,被称为“CORE-V Verif”项目中,验证项目中认识到的价值不仅仅是全面测试处理器IP但是文档,并提供所有的测试,作为开放源码框架和脚本。任何采用开源的核心应该设置试验台和环境完全符合任何IP贡献一个项目的开始。在项目开发期间,这有助于支持回归测试和维护处理器IP在整个设计阶段的质量尤为重要,如果修改或进一步扩展。

虽然试验台和框架最初针对RCV32E40P核心开发,它将扩展到覆盖核心的未来路线图包括CV32E40X CV32E40S, CVA6 32位和64位应用程序核心+更多。

结论

并不是所有的项目都有相同的目标,在各领域的工程资源的正确应用设计的时间和精力是平衡的总体设计目标。因此,在一般情况下同样如此SoC验证。然而,在过去,处理器IP从主流供应商质量不是一个选择,这是强制性的提供最高质量的IP,但随着RISC-V,开发人员可以用相同的方法设计验证任务级别的灵活性RISC-V现在使所有其他方面。在某些情况下,一个简单的网络跟踪分析足以证实某种程度的处理器的基本操作,同时设计针对批量生产和/或高可靠性的应用程序将证明大量额外的验证工作。RISC-V不仅仅是验证的挑战任务,但是正确的选择适当质量水平的最终应用程序。

的治之[7]RISC-V参考模型在使用的一些最复杂和最先进的处理器架构设计项目特性,比如硬件多线程,无序(超标量体系结构),多处理器,和异构数组,加上越来越多采用RISC-V向量AI和DL计算引擎。活跃用户,包括NVIDIA网络、希捷、NSITEXE /电装,谷歌云,芯片联盟,lowRISC, OpenHW集团,安第斯山脉,Valtrix, Nagra / Kudelski硅实验室,多个RISC-V国际工作小组,和许多其他尚未公开。

RISC-V启用处理器设计自由SoC开发人员的广泛的社区,但这也代表一个迁移的处理器设计验证任务团队的几个主流IP提供商RISC-V采用者。开发人员接受的设计自由RISC-V还必须进行适当的验证级别的责任。

引用

  1. riscvOVPsimhttps://github.com/riscv-ovpsim/imperas-riscv-tests
  2. 谷歌研究小组https://github.com/google/riscv-dv
  3. riscvOVPsimPlushttps://www.ovpworld.org/riscvOVPsimPlus/
  4. OVPworld——开源虚拟平台https://www.ovpworld.org
  5. OpenHW组https://www.openhwgroup.org
  6. OpenHW验证https://github.com/openhwgroup/core-v-verif
  7. 治之软件https://www.imperas.com

西蒙Davidmann创始人兼首席执行官和规则和发起者的开放虚拟平台(www.OVPworld.org)。治之成立之前,Davidmann是Synopsys对此成功收购后的副总裁共同设计自动化、SystemVerilog的开发人员。Davidmann创始合作设计自动化之前,是一个执行或欧洲通用5美国EDA公司包括按时间顺序的模拟,它开创了编译后的代码模拟风投,和范围。Davidmann是最初的开发者之一HILO逻辑仿真系统,并在SystemVerilog合著的书。



1评论

柯克• 说:

…和我最喜欢的是5步正式使用参考模型验证,cpu RTL、上海广电等这就是我做RISCV我设计。700 +属性断言工作到目前为止,约15分钟来验证

留下一个回复


(注意:这个名字会显示公开)

Baidu