一种嵌入式芯片中断异常处理验证方法及模拟器技术

技术编号:37139796 阅读:17 留言:0更新日期:2023-04-06 21:43
本发明专利技术公开了一种嵌入式芯片中断异常处理验证方法及模拟器,使用C语言,基于精简指令集及自研指令集架构模拟嵌入式芯片中断异常处理功能,通过模拟器对全部站台和部件会发生的所有类型的中断异常的判断条件进行建模,对中断异常进行优先级排序,为所有中断异常分配异常处理入口,并设置处理方式;将待测设计与模拟器同时载入指令,将两者的处理结果进行比对,若待测设计与模拟器结果一致则判断为正确处理。本发明专利技术使用C语言开发的模拟器,能更及时发现核心在异常和中断处理产生的错误并告知设计人员错误指令地址,提高了验证效率。提高了验证效率。提高了验证效率。

【技术实现步骤摘要】
一种嵌入式芯片中断异常处理验证方法及模拟器


[0001]本专利技术涉及一种嵌入式芯片中断异常处理验证方法及模拟器,属于通信可靠性检测


技术介绍

[0002]普通的芯片功能验证通常是采用hdl语言或uvm方法等进行验证,但拥有指令集架构的核心验证则需要验证指令集执行的正确性。搭建核内中断异常处理模拟器的意义便是以更高的层次来验证核心在各个站台对中断、异常处理的正确性。现有模拟器对中断和异常无法对dut处理中断、异常如对寄存器操作、返回中断、异常前程序等行为进行有效、快速的模拟,只能通过操作系统进行验证,消耗大量时间。

技术实现思路

[0003]本专利技术的目的在于提供一种嵌入式芯片中断异常处理验证方法及模拟器,使用C语言,基于精简指令集及自研指令集架构模拟嵌入式芯片中断异常处理功能,能更及时发现核心在异常和中断处理产生的错误并告知设计人员错误指令地址。
[0004]为达到上述目的,本专利技术采用的技术方案如下:
[0005]本专利技术提供一种嵌入式芯片中断异常处理验证模拟器,包括:
[0006]判断模块,用于判断当前站台、部件是否产生中断异常以及确定中断异常类型;
[0007]排序模块,用于根据中断异常类型确定中断异常的处理顺序;
[0008]处理模块,用于按照待处理的中断异常的处理顺序调用相应的处理入口,对中断异常进行处理;
[0009]输出模块,用于输出中断异常处理结果。
[0010]进一步的,所述判断模块具体用于,
[0011]基于C语言预先对全部站台和部件会发生的所有类型的中断异常的判断条件进行建模;
[0012]结合测试指令根据预先设置的判断条件确定产生中断异常的站台和部件以及对应的中断异常类型;
[0013]所述站台包括:取指、译码、执行、访存和写回;
[0014]所述部件包括:取指操作、译码操作、算数运算操作、访存和写回操作;
[0015]所述中断包括:处理器核内定时器中断和核外中断;
[0016]所述异常包括:数据快表用户脱靶、数据快表核心脱靶、指令快表用户脱靶、指令快表核心脱靶、地址不对界、算数自陷、地址越界、数据流访问越权、故障位越权、数据流虚地址符号扩展错、指令流访问越权、指令流虚地址符号扩展错、读写CSR指令越权和操作码非法。
[0017]进一步的,所述判断模块具体用于,
[0018]基于C语言对中断判断条件建模如下:
[0019]A1、中断使能寄存器对应位置高且核心定时器使能且计数器达到核心定时器阈值,则判断核内定时器中断;
[0020]A2、中断使能寄存器对应位置高且外设中断状态寄存器至高,则判断核外中断;
[0021]基于C语言对异常判断条件建模如下:
[0022]B1、若数据流在用户模式下进行虚实地址转换且数据快表中不存在需要命中的条目,则判定为数据快表用户脱靶;
[0023]B2、若数据流在核心模式下进行虚实地址转换且数据快表中不存在需要命中的条目,则判定为数据快表核心脱靶;
[0024]B3、若指令流在用户模式下进行虚实地址转换且指令快表中不存在需要命中的条目,则判定为指令快表用户脱靶;
[0025]B4、若指令流在核心模式下进行虚实地址转换且指令快表中不存在需要命中的条目,则判定为指令快表核心脱靶;
[0026]B5、若访存地址和指令粒度不匹配则判定为地址不对界;
[0027]B6、若算数运算时整数溢出则判定为算数自陷;
[0028]B7、若当前指令为锁指令,且访问的是I/O空间或不可cache的页面,则判定为地址越界;
[0029]B8、若当前处理器模式和虚拟地址最高位不匹配则判定为数据流访问越权;
[0030]B9、若数据快表虚实地址转换存储类指令发生读写访问故障则判定为故障位越权;
[0031]B10、若数据流虚地址在进行符号扩展时地址[63:43]位不是[42]位的符号扩展,则判定为数据流虚地址符号扩展错;
[0032]B11、若跳转目标指令地址符号扩展错则判定为指令流访问越权;
[0033]B12、若指令流虚地址在进行符号扩展时地址[63:43]位不是[42]位的符号扩展,则判定为指令流虚地址符号扩展错;
[0034]B13、若对没有定义的CSR进行读写或当前核心模式不符合CSR读写权限,则判定为读写CSR指令越权;
[0035]B14、操作码或功能码不在指令集规定的范围内,则判定为操作码非法。
[0036]进一步的,所述排序模块具体用于,
[0037]预先设置中断异常优先级;
[0038]根据所确定的中断异常类型及预先设置的优先级确定待处理的中断异常的处理顺序。
[0039]进一步的,所述排序模块具体用于,
[0040]设置异常优先级高于中断;
[0041]设置处理器核内定时器中断高于核外中断;
[0042]设置异常的优先级按照站台先后顺序排序,站台越靠后优先级越高;
[0043]设置同站台异常的优先级按照指定顺序排序;
[0044]设置同站台异常的优先级顺序为:指令流访问越权,指令快表用户脱靶,指令快表核心脱靶,操作码非法,读写CSR指令越权,指令流虚地址符号扩展错,算数自陷,数据流虚地址符号扩展错,地址不对界,数据流访问越权,数据快表用户脱靶,数据快表核心脱靶,故
障位越权,地址越界;排序越靠前优先级越高。
[0045]进一步的,所述处理模块具体用于,
[0046]预先为所有中断异常分配异常处理入口,并设置处理方式。
[0047]进一步的,所述处理模块具体用于,
[0048]为异常分配异常处理入口,如下:
[0049]偏移地址0xb80为指令流访问越权、读写CSR指令越权和指令流虚地址符号扩展错异常处理入口;
[0050]偏移地址0x900为指令快表用户脱靶异常处理入口;
[0051]偏移地址0x980为指令快表核心脱靶异常处理入口;
[0052]偏移地址0xc00为操作码非法异常处理入口;
[0053]偏移地址0xa80为算数自陷异常处理入口;
[0054]偏移地址0xb00为数据流虚地址符号扩展错、数据流访问越权、故障位越权和地址越界异常处理入口;
[0055]偏移地址0x800为数据快表用户脱靶异常处理入口;
[0056]偏移地址0x880为数据快表核心脱靶异常处理入口;
[0057]偏移地址0xa00为地址不对界异常处理入口。
[0058]为中断分配对应的中断处理入口如下:
[0059]0xc80为核内定时器中断处理入口;
[0060]0xd00为核外中断处理入口;
[0061]设置异常处理入口对应处理方式如下:
[0062]0xb80:登记中断、异常地址寄存器记录当前异常的指令流虚地址,登记摘要寄存器对应位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式芯片中断异常处理验证模拟器,其特征在于,包括:判断模块,用于判断当前站台、部件是否产生中断异常以及确定中断异常类型;排序模块,用于根据中断异常类型确定中断异常的处理顺序;处理模块,用于按照待处理的中断异常的处理顺序调用相应的处理入口,对中断异常进行处理;输出模块,用于输出中断异常处理结果。2.根据权利要求1所述的一种嵌入式芯片中断异常处理验证模拟器,其特征在于,所述判断模块具体用于,基于C语言预先对全部站台和部件会发生的所有类型的中断异常的判断条件进行建模;结合测试指令根据预先设置的判断条件确定产生中断异常的站台和部件以及对应的中断异常类型;所述站台包括:取指、译码、执行、访存和写回;所述部件包括:取指操作、译码操作、算数运算操作、访存和写回操作;所述中断包括:处理器核内定时器中断和核外中断;所述异常包括:数据快表用户脱靶、数据快表核心脱靶、指令快表用户脱靶、指令快表核心脱靶、地址不对界、算数自陷、地址越界、数据流访问越权、故障位越权、数据流虚地址符号扩展错、指令流访问越权、指令流虚地址符号扩展错、读写CSR指令越权和操作码非法。3.根据权利要求2所述的一种嵌入式芯片中断异常处理验证模拟器,其特征在于,所述判断模块具体用于,基于C语言对中断判断条件建模如下:A1、中断使能寄存器对应位置高且核心定时器使能且计数器达到核心定时器阈值,则判断核内定时器中断;A2、中断使能寄存器对应位置高且外设中断状态寄存器至高,则判断核外中断;基于C语言对异常判断条件建模如下:B1、若数据流在用户模式下进行虚实地址转换且数据快表中不存在需要命中的条目,则判定为数据快表用户脱靶;B2、若数据流在核心模式下进行虚实地址转换且数据快表中不存在需要命中的条目,则判定为数据快表核心脱靶;B3、若指令流在用户模式下进行虚实地址转换且指令快表中不存在需要命中的条目,则判定为指令快表用户脱靶;B4、若指令流在核心模式下进行虚实地址转换且指令快表中不存在需要命中的条目,则判定为指令快表核心脱靶;B5、若访存地址和指令粒度不匹配则判定为地址不对界;B6、若算数运算时整数溢出则判定为算数自陷;B7、若当前指令为锁指令,且访问的是I/O空间或不可cache的页面,则判定为地址越界;B8、若当前处理器模式和虚拟地址最高位不匹配则判定为数据流访问越权;B9、若数据快表虚实地址转换存储类指令发生读写访问故障则判定为故障位越权;
B10、若数据流虚地址在进行符号扩展时地址[63:43]位不是[42]位的符号扩展,则判定为数据流虚地址符号扩展错;B11、若跳转目标指令地址符号扩展错则判定为指令流访问越权;B12、若指令流虚地址在进行符号扩展时地址[63:43]位不是[42]位的符号扩展,则判定为指令流虚地址符号扩展错;B13、若对没有定义的CSR进行读写或当前核心模式不符合CSR读写权限,则判定为读写CSR指令越权;B14、操作码或功能码不在指令集规定的范围内,则判定为操作码非法。4.根据权利要求1所述的一种嵌入式芯片中断异常处理验证模拟器,其特征在于,所述排序模块具体用于,预先设置中断异常优先级;根据所确定的中断异常类型及预先设置的优先级确定待处理的中断异常的处理顺序。5.根据权利要求4所述的一种嵌入式芯片中断异常处理验证模拟器,其特征在于,所述排序模块具体用于,设置异常优先级高于中断;设置处理器核内定时器中断高于核外中断;设置异常的优先级按照站台先后顺序排序,站台越靠后优...

【专利技术属性】
技术研发人员:欧阳有恒李雨格顾彪严大卫姚轶晨黄程张琦滨汪争
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

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

1