微处理器指令集验证方法技术

技术编号:8271631 阅读:157 留言:0更新日期:2013-01-31 03:57
本发明专利技术提供了一种微处理器指令集验证方法,将监控程序加载到微处理器中;对微处理器支持的指令集分类,将需要验证的指令嵌入到代码框架中;遍历每组参数按生成验证的指令,嵌入到验证代码框架中;将验证代码框架加载到微处理器中,查询微处理器验证结束协议字,将执行结果和指令执行的期望结果比较,结果正确,将比较结果记录到日志文件中,否则,输出错误信息,并记录到日志文件。本发明专利技术避免了通过分析仿真波形才能判断指令执行真确性的弊端,实现了自动、高效率的验证。

【技术实现步骤摘要】
本专利技术涉及一种微处理器指令集的验证方法,具体用于微处理器设计各阶段的功能验证。
技术介绍
指令集验证在微处理器设计中非常关键并贯穿于整个设计过程。指令集定义实现的功能越多,电路的集成复杂度的越高,指令集验证工作的复杂度和工作量越大。设计一种自动化、可移植、验证覆盖率高的指令集验证方法对设计正确性、可靠性和缩短芯片从设计到流片的时间非常重要。传统的功能验证方法是通过人工编写大量的“指令序列”作为验证激励,施加到 微处理器设计上,通过EDA软件查看波形,检查指令执行的正确性。这种验证方法具有很大的“随意性”,通常是设计者考虑到某一方面的指令集功能,就设计相应的指令序列,由微处理器执行该段序列来验证设计的正确性。这样就很难完全覆盖到微处理器指令集定义的全部功能。随着微处理器设计规模的增大,需要编写用于验证的指令序列数量成指数量级增长,自动化程度不高。而且当指令集定义发生改变时,需要针对微处理器重新设计验证指令序列,之前的验证代码很难被移植到新设计的验证上。另一种方法是利用高级语言,如C语言,编写复杂的验证程序,经过编译器编译成二进制码,在微处理器上运行该二进制代码对微处理器设计进行验证。这种方法的缺点是,编译器采用优化策略对二进制代码经过优化后,产生的验证代码不能够完全覆盖到微处理器的设计,在一些路径上会缺少对应的验证激励。
技术实现思路
为了克服现有技术的不足,本专利技术提供一种自动化、可移植的微处理器指令集验证方法,以提高验证的覆盖率。本专利技术解决其技术问题所采用的技术方案包括以下步骤步骤I、将监控程序加载到微处理器中,并启动微处理器运行监控程序;步骤2、对微处理器支持的指令集分类,每一类指令由一组参数确定,针对每一类指令,设计一个指令验证的代码框架,将需要验证的指令或指令序列嵌入到这个代码框架中;步骤3、对每组参数按照取指范围遍历取值,根据每组参数值的组合,生成验证的指令或指令序列,并将这个指令或指令序列嵌入到步骤2的验证代码框架中;步骤4、将验证代码框架加载到微处理器中,并发送协议字给微处理器上的监控程序,使微处理器转入到验证代码框架的执行;步骤5、查询微处理器验证结束协议字,如果验证代码执行结束,将执行结果读出;否则,继续查询;步骤6、将步骤5的执行结果和指令执行的期望结果比较,结果正确,将比较结果记录到日志文件中,转步骤2,继续遍历验证;否则,输出错误信息,并记录到日志文件。所述的监控程序按以下步骤操作步骤1-1、查询验证代码框架加载结束协议字,如果协议字有效,转步骤1-2 ;否则继续查询;步骤1-2、跳转至验证代码框架,执行指令验证代码; 步骤1-3、验证代码执行结束,置验证结束协议字,并跳转到步骤1-2,继续下一次验证的查询。所述的指令验证代码框架按以下步骤设计步骤2-1、根据指令的分类,确定验证该类指令所需要的参数,并根据参数,生成指令序列A,通过执行指令序列A准备好当前指令验证的微处理器的状态;步骤2-2、根据参数生成当前被验证的指令B,将指令B添加到序列A之后,生成序列 A&B ;步骤2-3、在序列A&B之后添加一段保护指令B执行结果的指令序列C。本专利技术的有益效果是本专利技术提出了一套微处理器指令集自动验证的方法。通过将当前验证的指令的各字段以参数化的形式进行配置,可以对参数进行遍历组合,实现对微处理器设计中所有路径的验证覆盖。验证结果采用自动比对的形式,以文件记录的形式输出,避免了通过分析仿真波形才能判断指令执行真确性的弊端,实现了自动、高效率的验证。专利技术中提出的验证方法可以移植到在微处理器设计各阶段的验证平台上,如仿真验证阶段的TestBench、时序验证阶段的功能验证TestBench、FPGA验证平台、微处理器的系统验证平台上。附图说明图I :本专利技术主流程图;图2 :监控程序流程图;图3 :验证代码框架设计流程图;图4 :本专利技术的具体实施实例框图;图5 :具体实施实例程序存储不意图。具体实施例方式本专利技术包括以下步骤步骤I、将监控程序加载到微处理器中,并启动微处理器运行监控程序;步骤2、对微处理器支持的指令集分类,每一类指令由一组参数确定。针对每一类指令,设计一个指令验证的代码框架,需要验证的指令或指令序列嵌入到这个代码框架中;步骤3、对每组参数按照取指范围遍历取值,根据每组参数值的组合,生成验证的指令或指令序列,并将这个指令或指令序列嵌入到步骤2的验证代码框架中;步骤4、将验证代码框架加载到微处理器中,并发送协议字给微处理器上的监控程序,使微处理器转入到验证代码框架的执行;步骤5、查询微处理器“验证结束”协议字。如果验证代码执行结束,将执行结果读出;否则,继续查询;步骤6、将步骤5的执行结果和指令执行的期望结果比较。结果正确,将比较结果记录到日志文件中,转步骤2,继续遍历验证;否则,输出错误信息,并记录到日志文件。在上述方案中,步骤I所述的监控程序按以下步骤操作步骤1-4、查询验证代码框架加载结束协议字。如果协议字有效,转步骤1-2 ;否贝U,转步骤1-1,继续查询;步骤1-5、跳转至验证代码框架程序段,执行指令验证代码;步骤1-6、验证代码执行结束,置“验证结束”协议字,并跳转到步骤1-2,继续下一次验证的查询。 在上述方案中,步骤2所述的指令验证代码框架按以下步骤设计步骤2-4、根据指令的分类,确定验证该类指令所需要的参数,并根据参数,生成指令序列A.通过执行指令序列A准备好当前指令验证的微处理器的状态;步骤2-5、根据参数生成当前被验证的指令B.将指令B添加到序列A之后;步骤2-6、为避免指令执行的结果被其他指令段“污染”,在序列A&B之后添加一段指令序列C,用来保护指令B执行的结果。下面结合附图和实施例对本专利技术进一步说明。微处理器的指令集按照完成的功能对指令进行分类寄存器赋值指令一立即数向寄存器赋值、寄存器-寄存器赋值、条件寄存器赋值;访存指令——包括存储器向寄存器加载指令和寄存器向存储器加载指令;算术逻辑指令一包括算术运算指令和逻辑运算指令;跳转控制指令一包括跳转指令、子程序调用和子程序返回指令。如图4,微处理器401实现了设计定义的指令集,是被验证的对象。该微处理器采用RISC结构实现,指令执行分成四级流水,分别是“取指”一“译码”一“执行”一“写回”。微处理器401的实现包括寄存器组(包括通用寄存器、地址寄存器、索引寄存器和其它寄存器)、核内指令存储器、数据存储器和ALU数据通路。结合本实例,专利技术提出的验证方法模型,由微处理器设计401、微处理器外部存储单元402、主处理器接口 403、指令代码生成框架单元404、数据比较406、结果文件输出405,组成自动化的指令集验证系统,如图4所示。主处理器接口 403、指令代码生成框架单元404、数据比较406、结果文件输出405构成指令集验证的主处理器模拟端。主处理器模拟端控制指令集验证的流程,实现了验证方法的主流程。按以下步骤实施SO:通过处理器接口向微处理器加载协议字监控程序,启动监控程序的运行;SI:随机生成指令验证的参数,包括测试比较数据、操作类型OpType、源操作数Rsrc (包括操作数类型,操作数寄存器索引)、目的操作数Rdst (包括操作数类型,操作数寄存器索引)、条件位cond等指令参本文档来自技高网...

【技术保护点】
一种微处理器指令集验证方法,其特征在于包括下述步骤:步骤1、将监控程序加载到微处理器中,并启动微处理器运行监控程序;步骤2、对微处理器支持的指令集分类,每一类指令由一组参数确定,针对每一类指令,设计一个指令验证的代码框架,将需要验证的指令或指令序列嵌入到这个代码框架中;步骤3、对每组参数按照取指范围遍历取值,根据每组参数值的组合,生成验证的指令或指令序列,并将这个指令或指令序列嵌入到步骤2的验证代码框架中;步骤4、将验证代码框架加载到微处理器中,并发送协议字给微处理器上的监控程序,使微处理器转入到验证代码框架的执行;步骤5、查询微处理器验证结束协议字,如果验证代码执行结束,将执行结果读出;否则,继续查询;步骤6、将步骤5的执行结果和指令执行的期望结果比较,结果正确,将比较结果记录到日志文件中,转步骤2,继续遍历验证;否则,输出错误信息,并记录到日志文件。

【技术特征摘要】
1.一种微处理器指令集验证方法,其特征在于包括下述步骤 步骤I、将监控程序加载到微处理器中,并启动微处理器运行监控程序; 步骤2、对微处理器支持的指令集分类,每一类指令由一组参数确定,针对每一类指令,设计一个指令验证的代码框架,将需要验证的指令或指令序列嵌入到这个代码框架中;步骤3、对每组参数按照取指范围遍历取值,根据每组参数值的组合,生成验证的指令或指令序列,并将这个指令或指令序列嵌入到步骤2的验证代码框架中; 步骤4、将验证代码框架加载到微处理器中,并发送协议字给微处理器上的监控程序,使微处理器转入到验证代码框架的执行; 步骤5、查询微处理器验证结束协议字,如果验证代码执行结束,将执行结果读出;否贝U,继续查询; 步骤6、将步骤5的执行结果和指令执行的期望结果比较,结果正确,将比较结果记录到日志文件中,转步骤2,继续遍历验证;否则,输出错误信...

【专利技术属性】
技术研发人员:曹辉杨靓卢强何卫强
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1