We use cookies to improve your experience with our site.

处理器敏捷开发背景下的功能验证案例:流程整合

Functional Verification for Agile Processor Development: A Case for Workflow Integration

  • 摘要:
    研究背景 在过去的10年中,硬件敏捷开发方法得到了广泛应用,特别是学术界提出了大量的新方法、新工具、新流程以加速处理器芯片开发。然而,工业界仍然对敏捷开发方法持有怀疑态度,尤其是在面对复杂处理器的功能验证问题时,其可适用性仍未得到广泛的实践检验。
    目的 本工作围绕动态功能验证方法进行研究,其通过对待测设计DUT和参考模型REF进行联合仿真,并检查它们在给定相同输入激励下的结果一致性,以判断处理器的功能正确性。通过深入分析传统功能验证方法在面对硬件敏捷开发模式时的问题,我们提出对功能验证工具链及开发流程的改进思路,并开发一套创新的功能验证工具链以应对这些挑战。
    方法 我们观察到,现有处理器设计与功能验证流程间的协同工作与信息交换不足,导致它们在面对敏捷开发模式时效率低下。我们提出,通过流程整合这一关键方法对敏捷开发工具链进行设计优化,其包含协同任务委派、动态信息交换两个主要的设计原则。基于此,我们对现有处理器功能验证的工具链与工作流进行优化,创新性地提出基于规则的敏捷验证方法DRAV,并实现了协同仿真框架DiffTest、信息探针Information Probe、模糊测试工具XFUZZ、轻量级仿真快照LightSSS等新工具,以提升处理器的功能验证效率。
    结果 我们在具有代表性的果壳(NutShell)和香山(XiangShan)RISC-V处理器上对所提出的工具进行了评估。我们展示了DiffTest和信息探针在两个处理器上的适用情况,说明了整体框架的通用性;利用XFUZZ发现了33个果壳处理器的功能缺陷;评估了LightSSS的快照效率,它相比已有工作有超过10倍的快照性能提升;基于香山处理器开发过程中的真实案例,说明了整体框架和工具链面对复杂问题时的有效性和对开发效率的显著提升。
    结论 文章通过对敏捷开发背景下RISC-V功能验证流程和工具链的优化,展现了流程整合对敏捷开发工具链设计的重要性。同时,文章所提出的工具链在真实世界的RISC-V处理器开发中得到了充分实践,提供了将敏捷开发方法应用于硬件设计与验证流程的范例。未来,文章所提出的开源工具链有望得到社区的大规模应用,支撑更多的开源硬件项目,同时,更多的开源硬件项目也将反过来吸引更多的敏捷开发方法研究,并形成丰富的硬件开发基础设施,推动开源芯片生态的持续蓬勃发展。

     

    Abstract: Agile hardware development methodology has been widely adopted over the past decade. Despite the research progress, the industry still doubts its applicability, especially for the functional verification of complicated processor chips. Functional verification commonly employs a simulation-based method of co-simulating the design under test with a reference model and checking the consistency of their outcomes given the same input stimuli. We observe limited collaboration and information exchange through the design and verification processes, dramatically leading to inefficiencies when applying the conventional functional verification workflow to agile development. In this paper, we propose workflow integration with collaborative task delegation and dynamic information exchange as the design principles to effectively address the challenges on functional verification under the agile development model. Based on workflow integration, we enhance the functional verification workflows with a series of novel methodologies and toolchains. The diff-rule based agile verification methodology (DRAV) reduces the overhead of building reference models with runtime execution information from designs under test. We present the RISC-V implementation for DRAV, DiffTest, which adopts information probes to extract internal design behaviors for co-simulation and debugging. It further integrates two plugins, namely XFUZZ for effective test generation guided by design coverage metrics and LightSSS for efficient fault analysis triggered by co-simulation mismatches. We present the integrated workflows for agile hardware development and demonstrate their effectiveness in designing and verifying RISC-V processors with 33 functional bugs found in NutShell. We also illustrate the efficiency of the proposed toolchains with a case study on a functional bug in the L2 cache of XiangShan.

     

/

返回文章
返回