CN114519332B - 一种基于断言的处理器验证方法、装置及电子设备 - Google Patents
一种基于断言的处理器验证方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114519332B CN114519332B CN202210150169.XA CN202210150169A CN114519332B CN 114519332 B CN114519332 B CN 114519332B CN 202210150169 A CN202210150169 A CN 202210150169A CN 114519332 B CN114519332 B CN 114519332B
- Authority
- CN
- China
- Prior art keywords
- assertion
- processor
- exception
- checking
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于断言的处理器验证方法、装置及电子设备,该方法包括:构建断言数据库,该断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;定义断言检查机制;该断言检查机制定义为在断言数据库中任一个断言检查表达式满足断言触发条件时,判定处理器状态发生异常;在接收到处理器设计指令时,将断言数据库和断言检查机制集成到处理器中,并等待接收处理器验证指令;在接收到处理器验证指令时,通过断言检查机制检查处理器的内部状态;在处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告。本发明提高了处理器验证的速度以及处理器设计的灵活性,同时有利于提高处理器后续调试的便利性。
Description
技术领域
本发明涉及处理器技术领域,尤其涉及一种基于断言的处理器验证方法、装置及电子设备。
背景技术
在处理器研发过程中,由于设计缺陷在处理器流片后无法进行修复,因此为确保处理器功能验证的完全,需要在流片前发现处理器设计的所有问题。处理器研发过程中验证工作通常比设计工作的花费时间更多,处理器验证工作通常从单元级开始进行,单元级通常包含单个模块,通过建立测试环境,使用测试激励对模块进行功能验证,由于测试激励长度较短,可以采用EDA(Electronic DesignAutomation,电子设计自动化)工具在计算机上进行模拟。在采用EDA工具进行模拟验证时,通常会带上一些断言进行模拟,通过断言来判断处理器内部状态是否发生异常,在发生异常时,EDA工具将报告问题,从而及时发现处理器设计的问题,并在所有模块完成单元级验证后,将所有模块集成起来,形成最终的处理器形态。此时,在使用裸机程序验证处理器时,可以继续采用EDA工具模拟的方法进行验证,当处理器验证达到一定成熟度后,需要在处理器上运行真实操作系统和真实应用程序,测试处理器的性能。
由于采用EDA工具在计算机上进行模拟的速度太慢,且难以运行真实操作系统和真实应用程序,一般采用在FPGA(Field Programmable Gate Array,现场可编程门阵列)上对处理器进行仿真的方法,进行操作系统和应用程序的测试,以便在真实应用场景下对处理器进行验证。虽然FPGA仿真速度快,但是存在程序运行出错后难以调试的问题,目前采用的FPGA调试方式是检测到程序运行出错之后,先将少量的波形加入到调试信号列表中,再重新运行程序,这种FPGA调试方式存在以下不足:由于调试过程中只能加入少量的调试信号,并且只能保存与调试信号对应的少量波形,因此对于设计复杂的处理器,很难使用少量的调试信号一次定位问题,需要多次更换加入调试信号列表的波形,才有可能捕捉到出错现场;另外,调试信号加入FPGA,会导致整个设计的运行速度变慢,造成整个验证周期十分漫长。
基于此,如何解决由于调试次数多、运行速度变慢导致的处理器验证周期长的问题,是当前亟待解决的问题。
发明内容
基于此,本发明提供一种基于断言的处理器验证方法、装置及电子设备,以解决在FPGA上验证处理器时由于调试次数多、运行速度变慢导致的处理器验证周期长的问题。
基于上述目的,本发明提供一种基于断言的处理器验证方法,包括:
构建断言数据库,所述断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;
定义断言检查机制;所述断言检查机制定义为在所述断言数据库中任一个所述断言检查表达式满足断言触发条件时,判定处理器状态发生异常;
在接收到处理器设计指令时,将所述断言数据库和所述断言检查机制集成到处理器中,并等待接收处理器验证指令;
在接收到所述处理器验证指令时,通过所述断言检查机制检查处理器状态;
在所述处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告。
优选地,所述启动异常处理机制,包括:
构建断言触发集合,所述断言触发集合包含所有的满足断言触发条件的断言检查表达式;
将所述断言触发集合发送至所述处理器中的异常报告模块,通过所述异常报告模块获取所述断言触发集合中每一个所述断言检查表达式匹配的所述断言编码,将匹配的所述断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常;
通过设置在所述处理器中的同步异常报告机制报告异常;
跳转到异常处理程序,通过所述异常处理程序调用并运行异常处理指令;
根据所述异常处理指令生成处理器异常报告;所述处理器异常报告包括满足断言触发条件的所述断言检查表达式、与所述断言检查表达式匹配的所述断言编码、所述异常原因寄存器的值。
优选地,所述跳转到异常处理程序之后,还包括:
通过所述异常处理程序调用并运行休眠指令,根据所述休眠指令控制所述处理器进入暂停状态。
优选地,所述将所述断言数据库和所述断言检查机制集成到处理器中,包括:
将所述断言数据库添加到所述处理器的内存储器中;
将所述断言检查机制接入到所述处理器的异常报告模块中;所述异常报告模块用于访问所述内存储器获取所述待检测断言触发时对应的所述断言编码,并将获取的所述断言编码存储至与所述异常报告模块关联的异常值寄存器;
将存储器验证异常编码添加到与所述异常报告模块关联的异常原因寄存器中。
优选地,所述构建断言数据库,包括:
获取断言集合,所述断言集合包含多个待检查断言;
对所述断言集合中的每个所述待检查断言进行转换处理,得到对应的断言检查表达式;
将每个所述断言检查表达式进行编码,得到对应的断言编码;
根据每个所述断言检查表达式和对应的所述断言编码构建断言数据库。
优选地,所述获取断言集合,包括:
构建初始的断言集合,所述初始的断言集合为空集;
获取包含至少一个待检查断言的断言新增请求,解析所述断言新增请求获取所有的所述待检查断言,并将所有的所述待检查断言添加至初始的所述断言集合,得到新的所述断言集合。
基于同一个发明构思,本发明还提供一种基于断言的处理器验证装置,包括:
断言数据库构建模块,用于构建断言数据库,所述断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;
断言检查机制模块,用于定义断言检查机制;所述断言检查机制定义为在所述断言数据库中任一个所述断言检查表达式满足断言触发条件时,判定处理器状态发生异常;
处理器设计模块,用于在接收到处理器设计指令时,将所述断言数据库和所述断言检查机制集成到处理器中,并等待接收处理器验证指令;
处理器验证模块,用于在接收到所述处理器验证指令时,通过所述断言检查机制检查处理器状态;
异常处理模块,用于在所述处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告。
优选地,所述异常处理模块包括:
断言触发子模块,用于构建断言触发集合,所述断言触发集合包含所有的满足断言触发条件的断言检查表达式;
异常发送子模块,用于将所述断言触发集合发送至所述处理器中的异常报告模块,通过所述异常报告模块获取所述断言触发集合中每一个所述断言检查表达式匹配的所述断言编码,将匹配的所述断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常;
异常报告子模块,用于通过设置在所述处理器中的同步异常报告机制报告异常;
程序跳转子模块,用于跳转到异常处理程序,通过所述异常处理程序调用并运行异常处理指令;
异常处理子模块,用于根据所述异常处理指令生成处理器异常报告;所述处理器异常报告包括满足断言触发条件的所述断言检查表达式、与所述断言检查表达式匹配的所述断言编码、所述异常原因寄存器的值。
优选地,所述异常处理模块还包括:
休眠控制子模块,用于通过所述异常处理程序调用并运行休眠指令,根据所述休眠指令控制所述处理器进入暂停状态。
基于同一个发明构思,本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的基于断言的处理器验证方法。
综上所述,本发明提供的基于断言的处理器验证方法,首先将构建的断言数据库和定义的断言检查机制集成到处理器设计中,然后在处理器验证过程中,在通过断言检查机制检查到处理器状态发生异常时,启动异常处理机制生成处理器异常报告。相较于采用EDA工具模拟验证的方法,该基于断言的处理器验证方法具体以下有益效果:1)将断言数据库和断言检查机制集成到处理器设计中,在处理器验证过程中可以依据需要的断言编码添加调试信号,并且不会影响处理器在FPGA上的运行速度,提高了处理器验证的速度;2)处理器设计过程不需修改原有的处理器流水线,提高了处理器设计的灵活性;3)通过异常处理机制自动生成处理器异常报告,有利于提高处理器后续调试的便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中基于断言的处理器验证方法的流程示意图;
图2为本发明一实施例中基于断言的处理器验证方法步骤S10的流程示意图;
图3为本发明一实施例中基于断言的处理器验证方法步骤S50的流程示意图;
图4为本发明一实施例中基于断言的处理器验证装置的结构示意图;
图5为本发明一实施例中基于断言的处理器验证装置的异常处理模块的结构示意图;
图6为本发明一实施例中电子设备的示意图。
具体实施方式
为使本发明所要解决的技术问题、技术方案及有益效果更为清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一实施例提供的一种基于断言的处理器验证方法,具体包括以下步骤:
步骤S10,构建断言数据库,该断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码。
在本实施例中,待检查断言可以直接复用在EDA工具模拟验证中单个模块之间交互的断言,也可以根据用户需求选择在整个处理器验证中易发生错误的断言或者新增的断言。
断言检查表达式是指,可直接应用在FPGA上的可综合表达式,其形式例如check_a=a&~b,由该表达式可知,在信号a为1的条件下,若信号b为0,则触发断言。
断言编码是指,断言检查表达式的唯一编号。
作为优选,如图2所示,步骤S10,即构建断言检测包括以下步骤:
步骤S101,获取断言集合,该断言集合包含多个待检查断言。
在步骤S101中,首先构建初始的断言集合,该初始的断言集合为空集;然后获取包含至少一个待检查断言的断言新增请求,解析断言新增请求获取所有的待检查断言,并将所有的待检查断言添加至初始的断言集合,得到新的断言集合。
步骤S102,对断言集合中的每个待检查断言进行转换处理,得到对应的断言检查表达式。
在步骤S102中,对于断言集合中的每个待检查断言,采用可综合语句描述断言。
具体的,对于复用在EDA工具模拟验证中单个模块之间交互的断言,存在不可综合的断言,不能直接应用到FPGA上,需要将不可综合的断言处理为可综合的形式,以便集成到FPGA的运行环境中;此外,本实施例中断言是描述了处理器状态中必然保证的正确行为,在描述时,可以将断言转换为违反断言的表述。
示例性的,若某个待检查断言的初始表达式为assert(c|->d),该初始表达式断定了处理器状态中信号c为1时信号d一定为1,将初始表达式转换为违反断言的可综合表达式,可以表示为check_c=c&~d,也就是当信号c为1时,若信号d为0,则触发断言,确定处理器状态异常。
步骤S103,将每个断言检查表达式进行编码,得到对应的断言编码。
可理解的,在处理器验证中,通常会加入多个断言,为了后续处理时对断言进行区分,可以对断言进行编码,具体的编码方式是将步骤S102中得到的每个断言检查表达式设置一个唯一的编号。
步骤S104,根据每个断言检查表达式和对应的断言编码构建断言数据库。
也即,断言数据库中包含多条断言数据,每条断言数据由断言检查表达式和断言检查表达式的断言编码组成。
可理解的,通过上述步骤S101至步骤S104构建的断言数据库,可以为断言检查机制提供有效支撑。
步骤S20,定义断言检查机制;该断言检查机制定义为在断言数据库中任一个断言检查表达式满足断言触发条件时,判定处理器状态发生异常。
在本实施例中,断言检查机制包括以下步骤:检测断言数据库中的每个断言检测表达式是否满足断言触发条件,若任一个断言检测表达式满足断言触发条件,则判定处理器状态发生异常,若所有的断言检测表达式均不满足断言触发条件,则判定处理器状态未发生异常,也即若检查到任一个待检查断言触发,则判定处理器状态发生异常,否则判定处理器状态正常。优选的,断言触发条件是指断言检测表达式的值为1。
在其他实施例中,断言检查机制可以定义为在断言数据库中所有断言检查表达式的值进行或操作后的结果为1时,则判定处理器状态发生异常,否则判定处理器状态正常。
步骤S30,在接收到处理器设计指令时,将断言数据库和断言检查机制集成到处理器中,并等待接收处理器验证指令。
在本实施例中,该处理器包含内存储器、与内存储器连接的异常报告模块以及与异常报告模块连接的异常值寄存器和异常原因寄存器。其中,内存储器用于存储待检查断言的断言检查表达式以及断言编码;异常报告模块用于访问内存储器获取待检查断言触发时对应的断言编码,并将获取到的断言编码存储至异常值寄存器;异常原因寄存器可以包含多种异常编码,例如指令访问异常编码、数据访问异常编码、页面访问异常编码等,还可以根据需求设置异常编码,例如存储器验证异常编码。
作为优选,步骤S30中将断言数据库和断言检查机制添加至处理器中,具体包括以下步骤:
步骤S301,将断言数据库添加到处理器的内存储器中;
步骤S302,将断言检查机制接入到处理器的异常报告模块中;该异常报告模块在接收处理器状态发生异常的信息时,访问内存储器获取待检查断言触发时对应的断言编码,并将获取到的断言编码存储至与异常报告模块关联的异常值寄存器;
步骤S303,将存储器验证异常编码添加到与异常报告模块关联的异常原因寄存器中。
在本实施例中,在处理器设计过程中,将所有的待检查断言的断言检查表达式以及断言编码添加到处理器的内存储器中,并将步骤S20定义的断言检测机制接入到处理器的异常报告模块;该异常报告模块是处理器中报告处理器运行异常的模块,且处理器异常类型包含但不限定于指令访问异常、数据访问异常、页面访问异常等。
进一步地,在本实施例中可以在异常报告模块中新增一个基于断言触发的处理器验证异常,处理器验证异常的触发条件为任一个断言检查表达式的值为1。
示例性的,在RISC-V体系结构中的mcause寄存器中新增一个自定义编码,用于表示处理器验证异常,并且可以利用RISC-V体系结构中的mtval寄存器来保存待检查断言触发时对应的断言编码,后续异常处理时该待检查断言触发时对应的断言编码可以作为处理器异常的相关信息输出。
可理解的,通过步骤S301至步骤S303,将断言检查机制集成到处理器设计中,可以实现处理器状态的检查功能。
步骤S40,在接收到处理器验证指令时,通过断言检查机制检查处理器状态。
在本实施例中,在将步骤S10构建的断言数据库和步骤S20定义的断言检查机制集成到处理器之后,将设计好的处理器安装到FPGA上运行真实操作系统和真实应用程序,并通过断言检查机制自动检查处理器状态。可理解的,本实施例采用FPGA上验证处理器的方式,既不会影响处理器原有功能,也不会影响处理器在FPGA上的运行速度、验证进度以及验证准确性。
步骤S50,在处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告。
在本实施例中,在处理器验证过程中,若检查到任一个待检查断言触发,也即检查到断言数据库中任一个断言检查表达式满足断言触发条件,则判定处理器状态发生异常,启动异常处理器机制生成处理器异常报告。其中,处理器异常报告中可以包含但不限于处理器异常类型、满足断言触发条件的待检查断言、与待检查断言对应的断言编码以及异常原因寄存器的值等信息等。
进一步地,若检查到所有待检查断言未触发,则判定处理器状态正常,可以自动生成处理器正常报告。其中,处理器正常报告可以包含处理器验证时间、验证通过结果等信息。
作为优选,如图3所示,步骤S50中启动异常处理机制,包括以下步骤:
步骤S501,构建断言触发集合,该断言触发集合包含所有的满足断言触发条件的断言检查表达式。
在步骤S501中,先获取每一个值为1的断言检查表达式,再由所有值为1的断言检查表达式组成构建断言触发集合。
步骤S502,将断言触发集合发送至存储器中的异常报告模块,通过异常报告模块获取断言触发集合中每一个断言检查表达式匹配的断言编码,将匹配的断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常。
在步骤S502中,异常报告模块接收到断言触发集合之后,可以判定处理器异常类型为基于断言触发的处理器验证异常,并以断言触发集合中的每一个断言检查表达式为待查询目标,访问内存储器查询与待查询目标匹配的断言编码,并将匹配的断言编码存储至异常值寄存器(例如RISC-V架构体系中的mtval寄存器)中,同时将异常原因寄存器(例如RISC-V架构体系中的mcause寄存器)的值置为处理器验证异常。
步骤S503,通过设置在处理器中的同步异常报告机制报告处理器验证异常。
在步骤S503中,通过预先设置在处理器中的同步异常报告机制,将处理器验证异常报出。其中,同步异常报告机制是指先由处理器验证程序切换到更高的处理器优先级,再跳转到处理器的操作系统寄存器中异常处理程序的首地址。
步骤S504,跳转到异常处理程序,通过异常处理程序调用并运行异常处理指令。
在步骤S504中,处理器先根据操作系统寄存器中异常处理程序的首地址和处理器异常类型的偏移量获取处理器跳转的目标地址,再跳转到至目标地址获取异常处理指令,最后运行异常处理指令。
步骤S505,根据异常处理指令生成处理器异常报告;该处理器异常报告包括满足断言触发条件的断言检查表达式、与断言检查表达式匹配的断言编码、异常原因寄存器的值。
在步骤S505中,在跳转到异常处理程序时,可以首先将处理器异常状态存储至内存储器中,然后根据处理器异常类型、满足断言触发条件的断言检查表达式、满足断言触发条件的断言检查表达式所匹配的断言编码(即待检查断言触发时对应的断言编码)、异常原因寄存器的值生成处理器异常报告,最后可以将处理器异常报告发送至指定用户,例如指定用户为验证人员。本实施例中处理器异常报告中的信息可以用于验证人员对处理器异常的现象进行判断,确定下一步调试方向,例如根据断言编码,可以在未来调试中将断言编码对应的待检查断言加入到调试信号中,在FPGA上重新运行抓取对应的波形,进行处理器设计的分析,此时调试中只需要加入少量的信号即可一次性准确定位缺陷。
可理解的,本实施例通过上述步骤S501至步骤S505,将异常处理机制应用到处理器验证中,可以实现处理器异常报告的智能化生成功能。
进一步地,如图3所示,步骤S50中启动异常处理机制,还包括以下步骤:
步骤S506,通过异常处理程序调用并运行休眠指令,根据休眠指令控制处理器进入暂停状态。
在步骤S506中,在跳转到异常处理程序时,确定处理器当前状态为不确定状态,此时可以通过异常处理程度调用并运行休眠指令,例如RISC-V架构体系中的WFI指令,控制处理器进入暂停状态。进一步地,在处理器进入暂停状态时,可以通过外部调试方式,读取与异常相关的处理器状态,对处理器进行缺陷分析及缺陷定位。
综上所述,本实施例提供的基于断言的处理器验证方法,首先将构建的断言数据库和定义的断言检查机制集成到处理器设计中,然后在处理器验证过程中,在通过断言检查机制检查到处理器状态发生异常时,启动异常处理机制生成处理器异常报告。相较于采用EDA工具模拟验证的方法,本实施例提供的基于断言的处理器验证方法具体以下有益效果:1)将断言数据库和断言检查机制集成到处理器设计中,在处理器验证过程中可以依据需要的断言编码添加调试信号,并且不会影响处理器在FPGA上的运行速度,提高了处理器验证的速度;2)处理器设计过程不需修改原有的处理器流水线,提高了处理器设计的灵活性;3)通过异常处理机制自动生成处理器异常报告,有利于提高处理器后续调试的便利性。
如图4所示,基于同一发明构思,与上述任意实施例方法相对应的,本发明一实施例还提供了一种基于断言的处理器验证装置,包括断言数据库构建模块110、断言检查机制模块120、处理器设计模块130、处理器验证模块140和异常处理模块150,各功能模块的详细说明如下:
断言数据库构建模块110,用于构建断言数据库,该断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;
断言检查机制模块120,用于定义断言检查机制;该断言检查机制定义为在断言数据库中任一个断言检查表达式满足断言触发条件时,判定处理器状态发生异常;
处理器设计模块130,用于在接收到处理器设计指令时,将断言数据库和断言检查机制集成到处理器中,并等待接收处理器验证指令;
处理器验证模块140,用于在接收到处理器验证指令时,通过断言检查机制检查处理器状态;
异常处理模块150,用于在处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告。
在一可选实施方式中,所述断言数据库构建模块110包括以下子模块,各功能子模块的详细说明如下:
断言获取子模块,获取断言集合,该断言集合包含多个待检查断言;
转换处理子模块,用于对断言集合中的每个待检查断言进行转换处理,得到对应的断言检查表达式;
编码子模块,用于将每个断言检查表达式进行编码,得到对应的断言编码;
数据库构建子模块,用于根据每个断言检查表达式和对应的断言编码构建断言数据库。
在一可选实施方式中,所述断言获取子模块包括以下单元,各功能单元的详细说明如下:
初始集合构建单元,用于构建初始的断言集合,该初始的断言集合为空集;
集合更新单元,用于获取包含至少一个待检查断言的断言新增请求,解析断言新增请求获取所有的待检查断言,并将所有的待检查断言添加至初始的断言集合,得到新的断言集合。
在一可选实施方式中,所述处理器设计模块130包括以下子模块,各功能子模块的详细说明如下:
数据库添加子模块,用于将断言数据库添加到处理器的内存储器中;
接入子模块,用于将断言检查机制接入到处理器的异常报告模块中;该异常报告模块用于访问内存储器获取待检测断言触发时触发断言的断言编码,并将获取的断言编码存储至与异常报告模块关联的异常值寄存器;
异常编码添加子模块,用于将存储器验证异常编码添加到与异常报告模块关联的异常原因寄存器中。
在一可选实施方式中,如图5所示,所述异常处理模块150包括以下子模块,各功能子模块的详细说明如下:
断言触发子模块151,用于构建断言触发集合,该断言触发集合包含所有的满足断言触发条件的断言检查表达式;
异常发送子模152,用于将断言触发集合发送至处理器中的异常报告模块,通过异常报告模块获取断言触发集合中每一个断言检查表达式匹配的断言编码,将匹配的断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常;
异常报告子模块153,用于通过设置在处理器中的同步异常报告机制报告异常;
程序跳转子模块154,用于跳转到异常处理程序,通过异常处理程序调用并运行异常处理指令;
异常处理子模块155,用于根据异常处理指令生成处理器异常报告;该处理器异常报告包括满足断言触发条件的断言检查表达式、与断言检查表达式匹配的断言编码、异常原因寄存器的值。
在一可选实施方式中,如图5所示,所述异常处理模块150还包括以下子模块,各功能子模块的详细说明如下:
休眠控制子模块156,用于通过异常处理程序调用并运行休眠指令,根据休眠指令控制处理器进入暂停状态。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本发明一实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的基于断言的处理器验证方法。
图6示出了本实施例所提供的一种更为具体的电子设备硬件示意图,该设备可以包括:处理器100、存储器200、输入/输出接口300、通信接口400和总线500。其中处理器100、存储器200、输入/输出接口300与通信接口400、总线500实现彼此之间在设备内部的通信连接。
处理器100可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器200可以采用ROM(Read Only Memory,只读存储器)、RAM(RandomAccessMemory,随机存取存储器)、静态存储设备、动态存储设备等形式实现。存储器200可以存储操作系统和其他应用程序,在通过软件或者固件来实现本发明实施例所提供的技术方案时,相关的程序代码保存在存储器200中,并由处理器100来调用执行。
输入/输出接口300用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触控屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口400用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线500包括一通路,在设备的各个组件(例如处理器100、存储器200,输入/输出接口300和通信接口400)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器100、存储器200、输入/输出接口300、通信接口400以及总线500,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明实施例的,不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明实施例旨在涵盖落入本发明的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于断言的处理器验证方法,其特征在于,包括:
构建断言数据库,所述断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;
定义断言检查机制;所述断言检查机制定义为在所述断言数据库中任一个所述断言检查表达式满足断言触发条件时,判定处理器状态发生异常;
在接收到处理器设计指令时,将所述断言数据库和所述断言检查机制集成到处理器中,并等待接收处理器验证指令;
在接收到所述处理器验证指令时,通过所述断言检查机制检查处理器状态;
在所述处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告;所述启动异常处理机制,包括:
构建断言触发集合,所述断言触发集合包含所有的满足断言触发条件的断言检查表达式;
将所述断言触发集合发送至所述处理器中的异常报告模块,通过所述异常报告模块获取所述断言触发集合中每一个所述断言检查表达式匹配的所述断言编码,将匹配的所述断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常;
通过设置在所述处理器中的同步异常报告机制报告异常;
跳转到异常处理程序,通过所述异常处理程序调用并运行异常处理指令;
根据所述异常处理指令生成处理器异常报告;所述处理器异常报告包括满足断言触发条件的所述断言检查表达式、与所述断言检查表达式匹配的所述断言编码、所述异常原因寄存器的值。
2.根据权利要求1所述的基于断言的处理器验证方法,其特征在于,所述跳转到异常处理程序之后,还包括:
通过所述异常处理程序调用并运行休眠指令,根据所述休眠指令控制所述处理器进入暂停状态。
3.根据权利要求1所述的基于断言的处理器验证方法,其特征在于,所述将所述断言数据库和所述断言检查机制集成到处理器中,包括:
将所述断言数据库添加到所述处理器的内存储器中;
将所述断言检查机制接入到所述处理器的异常报告模块中;所述异常报告模块用于访问所述内存储器获取所述待检测断言触发时对应的所述断言编码,并将获取的所述断言编码存储至与所述异常报告模块关联的异常值寄存器;
将存储器验证异常编码添加到与所述异常报告模块关联的异常原因寄存器中。
4.根据权利要求1所述的基于断言的处理器验证方法,其特征在于,所述构建断言数据库,包括:
获取断言集合,所述断言集合包含多个待检查断言;
对所述断言集合中的每个所述待检查断言进行转换处理,得到对应的断言检查表达式;
将每个所述断言检查表达式进行编码,得到对应的断言编码;
根据每个所述断言检查表达式和对应的所述断言编码构建断言数据库。
5.根据权利要求4所述的基于断言的处理器验证方法,其特征在于,所述获取断言集合,包括:
构建初始的断言集合,所述初始的断言集合为空集;
获取包含至少一个待检查断言的断言新增请求,解析所述断言新增请求获取所有的所述待检查断言,并将所有的所述待检查断言添加至初始的所述断言集合,得到新的所述断言集合。
6.一种基于断言的处理器验证装置,其特征在于,包括:
断言数据库构建模块,用于构建断言数据库,所述断言数据库包含多个待检查断言的断言检查表达式以及对应的断言编码;
断言检查机制模块,用于定义断言检查机制;所述断言检查机制定义为在所述断言数据库中任一个所述断言检查表达式满足断言触发条件时,判定处理器状态发生异常;
处理器设计模块,用于在接收到处理器设计指令时,将所述断言数据库和所述断言检查机制集成到处理器中,并等待接收处理器验证指令;
处理器验证模块,用于在接收到所述处理器验证指令时,通过所述断言检查机制检查处理器状态;
异常处理模块,用于在所述处理器状态发生异常时,启动异常处理机制,以生成处理器异常报告;所述异常处理模块包括:
断言触发子模块,用于构建断言触发集合,所述断言触发集合包含所有的满足断言触发条件的断言检查表达式;
异常发送子模块,用于将所述断言触发集合发送至所述处理器中的异常报告模块,通过所述异常报告模块获取所述断言触发集合中每一个所述断言检查表达式匹配的所述断言编码,将匹配的所述断言编码存储至异常值寄存器中,同时将异常原因寄存器的值置为处理器验证异常;
异常报告子模块,用于通过设置在所述处理器中的同步异常报告机制报告异常;
程序跳转子模块,用于跳转到异常处理程序,通过所述异常处理程序调用并运行异常处理指令;
异常处理子模块,用于根据所述异常处理指令生成处理器异常报告;所述处理器异常报告包括满足断言触发条件的所述断言检查表达式、与所述断言检查表达式匹配的所述断言编码、所述异常原因寄存器的值。
7.根据权利要求6所述的基于断言的处理器验证装置,其特征在于,所述异常处理模块还包括:
休眠控制子模块,用于通过所述异常处理程序调用并运行休眠指令,根据所述休眠指令控制所述处理器进入暂停状态。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的基于断言的处理器验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210150169.XA CN114519332B (zh) | 2022-02-18 | 2022-02-18 | 一种基于断言的处理器验证方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210150169.XA CN114519332B (zh) | 2022-02-18 | 2022-02-18 | 一种基于断言的处理器验证方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114519332A CN114519332A (zh) | 2022-05-20 |
CN114519332B true CN114519332B (zh) | 2022-12-27 |
Family
ID=81598555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210150169.XA Active CN114519332B (zh) | 2022-02-18 | 2022-02-18 | 一种基于断言的处理器验证方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114519332B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342669A (zh) * | 2021-06-22 | 2021-09-03 | 无锡江南计算技术研究所 | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 |
CN113778852A (zh) * | 2021-06-04 | 2021-12-10 | 南方科技大学 | 一种基于正则表达式的代码分析方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589895B2 (en) * | 2010-01-13 | 2013-11-19 | International Business Machines Corporation | Architectural support for automated assertion checking |
CN105930590A (zh) * | 2016-04-24 | 2016-09-07 | 焦芳 | 基于ovl断言的微处理器流水线验证方法 |
US10282501B1 (en) * | 2017-09-07 | 2019-05-07 | Cadence Design Systems, Inc. | Support for multiple user defined assertion checkers in a multi-FPGA prototyping system |
CN109933451B (zh) * | 2019-03-18 | 2022-06-28 | 晶晨半导体(上海)股份有限公司 | 一种基于risc-v架构的异常和中断处理系统及方法 |
CN110427188B (zh) * | 2019-08-02 | 2023-06-09 | 深圳前海微众银行股份有限公司 | 单测断言程序的配置方法、装置、设备及存储介质 |
-
2022
- 2022-02-18 CN CN202210150169.XA patent/CN114519332B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778852A (zh) * | 2021-06-04 | 2021-12-10 | 南方科技大学 | 一种基于正则表达式的代码分析方法 |
CN113342669A (zh) * | 2021-06-22 | 2021-09-03 | 无锡江南计算技术研究所 | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114519332A (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
US9569325B2 (en) | Method and system for automated test and result comparison | |
JP2022537620A (ja) | 人工知能チップ検証 | |
CN107656872B (zh) | 软件测试方法、装置、设备和计算机存储介质 | |
CN111240973B (zh) | 基于仿真的设备测试方法、系统及可读存储介质 | |
CN110532185B (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
US10521335B2 (en) | Context-based device testing | |
CN110879781B (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN111737073B (zh) | 自动化测试方法、装置、设备及介质 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN110674047A (zh) | 软件测试方法、装置及电子设备 | |
CN111104319A (zh) | 一种代码覆盖率测试方法、装置、电子设备及存储介质 | |
CN111427771A (zh) | 一种代码覆盖率分析方法、设备、服务器及可读存储介质 | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN111736951A (zh) | 自动驾驶的仿真方法、计算机设备、及存储介质 | |
Djedidi et al. | Power profiling and monitoring in embedded systems: A comparative study and a novel methodology based on NARX neural networks | |
CN117076330B (zh) | 一种访存验证方法、系统、电子设备及可读存储介质 | |
CN114519332B (zh) | 一种基于断言的处理器验证方法、装置及电子设备 | |
CN108287781B (zh) | 一种内存占用监控方法及装置、系统 | |
CN117435483A (zh) | 基于Formal工具的仿真验证激励生成方法、装置、介质及终端 | |
CN109739760B (zh) | 一种代码调测测试方法及装置、存储介质 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 410006 ka-657, 7th floor, Yannong complex building, Dongfanghong community, No. 459, lushong Road, high tech Development Zone, Changsha, Hunan Applicant after: Chaorui Technology (Changsha) Co.,Ltd. Address before: 410006 ka-657, 7th floor, Yannong complex building, Dongfanghong community, No. 459, lushong Road, high tech Development Zone, Changsha, Hunan Applicant before: Transcendence information technology (Changsha) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |