论文部分内容阅读
指令正确性验证工作是微处理器设计中必不可少的一步。在流片之前如何自动的、尽可能全面的对处理器指令进行功能上的测试一直是验证工作的重点。随机测试是微处理器验证工作研究的重点。本文首先概述了论文的研究背景,对微处理器的验证工作进行介绍和分析,并在不同于指令树等方法,在一般的随机测试方法的基础上,提出基于蒙特卡罗算法,实现一个用于芯动神州自主研发的CPU指令功能验证的随机测试程序生成以及包含了指令覆盖率分析的平台。该平台的总体设计:基于蒙特卡罗的微处理器指令随机测试平台通过按照符合蒙特卡罗随机数标准的Mersenne Twister算法生成随机数,而后依据随机数生成随机指令序列,能够构造出其他测试方法难以生成出来的各种指令组合情况,与微处理器RTL代码联合测试,同时能达到比较好的测试强度和较高的覆盖率。其次,文章给出该平台的详细的实现方案:(1)采用模块化的设计,具有很的可扩展性。采用多种指令的生成抽象整个被测处理器的可能行为,具有简高效的特点。(2)对每一个功能单元的指令都连接有一个测试覆盖率的分析,可以指导对指令集的各种边界情况以及相关情况进行测试,可以提高测试程序的效率。(3)对跳转指令有很好的支持,能够处理跳转指令的各种情况。(4)通过脚本达到大数据量的指令测试和比对。该平台所生成的测试程序所达到的要求:(1)可以控制程序流的相关检测。(2)可变的测试指令集长度。(3)每一个处理器的一个功能部件都有对应的指令生成单元和覆盖率分析,如果处理器扩充功能件,只需要增加对应功能模块的指令生成单元。(4)可以对指令的多发情况进行测试,即多个功能单元联合指令测试集的产生。文章的最后,采用均匀分布建立指令的概率模型,并且在对期望与方差进行分析的基础上,对指令测试的覆盖率进行的一些数理统计方面的分析,并给出了一部分该随机测试生成器所取得的测试成果。该测试平台在对芯动神州具有自主知识产权的微处理器的测试过程中发挥了积极的作用。