论文部分内容阅读
随着集成电路的工艺变得更加先进,设计规模也变得越来越复杂,规模和复杂度的提升,使得功能验证成为数字芯片设计中的巨大瓶颈。微处理器作为最为设计复杂度最高的芯片之一,需要有一种更加高效的功能验证方法。随机验证作为一种快速高效的验证手段,是处理器核级验证中不可缺少的高效率验证方法。随机验证的特点在于:一方面可以快速生成大量的随机测试向量,减少时间成本和人力成本;另一方面随机激励由于是随机产生的,激励的组合方式更为多样,会产生很多意想不到的结果,很有可能会覆盖到一些工程师无法预料的缺陷。RISC-V指令集作为一种开源的指令集,免费、精简、灵活、可定制的特性使其成为国内外微处理器发展的一个新的方向。本文旨在针对基于RISC-V指令集的处理器进行随机验证,设计一款独立运行的RISC-V约束随机指令生成平台,使其适用于从嵌入式应用到高性能计算等各类基于RISC-V指令集的处理器的功能验证,作为一款通用的平台,提高重用性。本文从实际项目验证需求出发,通过调研国内外随机指令生成的策略,分析其主要功能和特点,确定本文使用的指令生成策略和方法,以及平台的基本结构。提出一种可配置的约束随机指令生成方法,并采用业界标准的SystemVerilog验证语言进行设计,尽可能的提高了平台的重用性。在设计之前仔细研究了RISC-V指令集的特点,根据指令结构和功能,对其进行合理的分类,并进行了大量的编译测试,编写了《指令模板分类构造指南》,确保生成的指令严格按照RISC-V指令的格式。研究分析了目标处理器的功能特点,流水线结构,制定生成激励的方案,包括基本的随机指令,和待测功能点的约束随机指令序列。以耗时短、覆盖率高为目标,完成整个平台的结构,设计完成各类指令模板,组成随机指令库,并创建一些特殊的指令序列生成结构。并添加了配置模块,使指令生成的权重信息和各种约束能根据覆盖率的变化进行灵活的配置,实现更加高效的指令生成。本文以项目组优化改进的开源处理器为研究对象,使用该平台对处理器进行功能验证。在实际验证过程中对平台进行了优化,添加了复杂分支结构,异常处理结构。最终,通过运行该平台,产生大量的随机测试激励,完成了90%以上的验证任务。通过验证结果分析并对比原有方案,该平台在验证效率方面有了巨大提升,并且大部分难以覆盖的功能点在平台的改进优化过程中得到了很好的覆盖。作为验证系统的核心组成部分,可以作为独立的形式应用于更多的项目中,大大提高了重用性。