CN113342671B - 对运算模块进行验证的方法、装置、电子设备和介质 - Google Patents

对运算模块进行验证的方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN113342671B
CN113342671B CN202110711193.1A CN202110711193A CN113342671B CN 113342671 B CN113342671 B CN 113342671B CN 202110711193 A CN202110711193 A CN 202110711193A CN 113342671 B CN113342671 B CN 113342671B
Authority
CN
China
Prior art keywords
data
result
initial
test
initial data
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
Application number
CN202110711193.1A
Other languages
English (en)
Other versions
CN113342671A (zh
Inventor
于亚轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110711193.1A priority Critical patent/CN113342671B/zh
Publication of CN113342671A publication Critical patent/CN113342671A/zh
Application granted granted Critical
Publication of CN113342671B publication Critical patent/CN113342671B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands

Abstract

一种对运算模块进行验证的方法、装置、电子设备和计算机可读存储介质。该验证方法包括:获取初始数据;对初始数据进行预运算操作,以获得预运算结果数据;以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。该验证方法通过对初始数据进行预运算操作来判断初始数据是否可以作为测试数据,以便利用测试数据对运算模块进行验证,从而实现了更精准地获取用于对运算模块进行验证的测试数据,提高验证效率和可靠性的技术效果。

Description

对运算模块进行验证的方法、装置、电子设备和介质
技术领域
本公开的实施例涉及一种对运算模块进行验证的方法、装置、电子设备和介质。
背景技术
高性能处理器在国民生产各领域显示出越来越重要的作用。在高性能处理器中,运算单元直接关系到整个处理器的性能。因此,需要对运算单元的运算准确性以及可靠性进行验证,以保证处理器的性能。
发明内容
本公开至少一个实施例提供一种对运算模块进行验证的方法,包括:获取初始数据;对初始数据进行预运算操作,以获得预运算结果数据;以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。
例如,在本公开一实施例提供的验证方法中,还包括:将测试数据输入到运算模块,使得运算模块对测试数据执行测试运算操作以获得测试结果;以及将测试结果与测试运算操作的理想输出结果进行比较以获得对运算模块进行验证的验证结果。
例如,在本公开一实施例提供的验证方法中,预运算结果数据包括最终结果数据或中间结果数据,中间结果数据为在对初始数据进行预运算操作的过程中所产生的运算结果,最终结果数据为对初始数据进行预运算操作所产生的最终的运算结果。
例如,在本公开一实施例提供的验证方法中,获取初始数据,包括:根据测试数据的数据约束条件,生成初始数据,数据约束条件用于对初始数据进行约束。
例如,在本公开一实施例提供的验证方法中,经由预运算执行单元对初始数据进行预运算操作,方法还包括:记录预运算执行单元对初始数据进行预运算操作之前,预运算执行单元的初始状态信息;以及响应于预运算结果数据不满足结果约束条件,将预运算执行单元的状态信息恢复为初始状态信息,并丢弃初始数据。
例如,在本公开一实施例提供的验证方法中,还包括:判断当前对运算模块进行验证的验证状态是否满足结束条件;以及响应于验证状态不满足结束条件,再次执行获取初始数据,对初始数据进行预运算操作以获得预运算结果数据,以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据。
例如,在本公开一实施例提供的验证方法中,还包括:记录预运算结果数据不满足结果约束条件的次数;以及响应于次数达到阈值,输出异常信号。
例如,在本公开一实施例提供的验证方法中,还包括:响应于预运算结果数据不满足结果约束条件,获取产生预运算结果数据的运算信息;以及根据运算信息,重新生成初始数据。
例如,在本公开一实施例提供的验证方法中,对初始数据进行预运算操作以获得预运算结果数据,包括:确定预运算操作的操作类型;以及对初始数据进行操作类型的预运算操作以获得预运算结果数据。
例如,在本公开一实施例提供的验证方法中,初始数据为浮点数据,运算模块配置为对初始数据进行浮点运算。
本公开至少一个实施例提供一种对运算模块进行验证的装置,包括:数据获取单元,配置为获取初始数据;预运算执行单元,配置为对初始数据进行预运算操作,以获得预运算结果数据;以及处理单元,配置为响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。
例如,在本公开一实施例提供的验证装置中,还包括:输入单元,配置为将测试数据输入到运算模块,使得运算模块对测试数据执行测试运算操作以获得测试结果;以及比较单元,配置为将测试结果与测试运算操作的理想输出结果进行比较以获得对运算模块进行验证的验证结果。
例如,在本公开一实施例提供的验证装置中,数据获取单元包括生成子单元,配置为根据测试数据的数据约束条件,生成初始数据,数据约束条件用于对初始数据进行约束。
例如,在本公开一实施例提供的验证装置中,还包括:第一记录单元,配置为记录预运算执行单元对初始数据进行预运算操作之前,预运算执行单元的初始状态信息;以及恢复单元,配置为响应于预运算结果数据不满足结果约束条件,将预运算执行单元的状态信息恢复为初始状态信息,并丢弃初始数据。
例如,在本公开一实施例提供的验证装置中,预运算执行单元包括:确定子单元,配置为确定预运算操作的操作类型;以及预运算子单元,配置为对初始数据进行操作类型的预运算操作以获得预运算结果数据。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的对运算模块进行验证的方法的指令。
本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的对运算模块进行验证的方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了本公开至少一实施例提供的一种对运算模块进行验证的方法流程图;
图1B示出了本公开至少一实施例提供的用于实现图1A所示的验证方法的架构的示意图;
图2示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图;
图3A示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图;
图3B示出了本公开至少一实施例提供的用于实现图3A所示的验证方法的架构图;
图4示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图;
图5示出了本公开至少一个实施例提供的一种对运算模块进行验证的装置的示意框图;
图6为本公开一些实施例提供的一种电子设备的示意框图;以及
图7为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
处理器通常利用运算模块对数据进行运算操作。常见的运算操作包括加法、减法、乘法、除法、开方、求倒数、求余数等,对运算模块的验证一直是一个难点,特别是对浮点运算模块的验证。浮点运算模块主要用来完成高精度浮点数据计算的工作,常见的浮点数据的精度有单精度-32bit(比特)、双精度-64bit以及扩展双精度-80bit等。浮点数据的精度越高,验证的空间越大。例如,对双精度64bit的运算来说,对于两操作数的计算,其验证空间最大为(2^64)*(2^64),这就给验证提出来相当大的挑战。如此大的空间采取遍历的方法去验证,是无法实现的。
在相关技术中,可以利用随机生成的测试数据对运算模块进行验证或者测试。虽然在相关技术中可以通过对测试数据进行约束来提高测试效率,但是也仅能对测试数据的数据类型(单精度-32bit、双精度-64bit以及扩展双精度-80bit等)和运算操作的操作类型(加法、减法、乘法、除法、开方、求倒数、求余数等)等进行简单的直接约束。因此,在相关技术中,测试数据的约束简单,容易漏掉边界场景,测试效率低。在本公开的实施例中,边界场景是指不容易验证到的场景,也即发生概率较低的场景。
本公开至少一实施例提供一种对运算模块进行验证的方法,包括:获取初始数据;对初始数据进行预运算操作,以获得预运算结果数据;以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。
本公开至少一实施例还提供一种对应于对运算模块进行验证的方法的装置、电子设备和存储介质。
本公开至少一实施例提供的对运算模块进行验证的方法通过对初始数据进行预运算操作获得的预运算结果数据进行约束来实现对测试数据的运算结果数据的约束,从而能够更精准地获取用于对运算模块进行验证的测试数据,提高验证效率和可靠性。
下面结合附图对本公开的实施例及其一些示例进行详细说明。
本公开至少一实施例提供一种对运算模块进行验证的方法。图1A示出了本公开至少一实施例提供的一种对运算模块进行验证的方法流程图。
如图1A所示,该方法可以包括步骤S10~S30。
步骤S10:获取初始数据。
步骤S20:对初始数据进行预运算操作,以获得预运算结果数据。
步骤S30:响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。
该验证方法通过对初始数据进行预运算操作获得的预运算结果数据进行约束来实现对测试数据的运算结果数据的约束,从而能够更精准地获取用于对运算模块进行验证的测试数据,提高验证效率和可靠性。
图1B示出了本公开至少一实施例提供的用于实现图1A所示的验证方法的架构的示意图。下面结合图1B来对图1A所示的验证方法进行说明。
如图1B所示,在该架构中包括验证环境101和运算模块102。验证环境101用于对运算模块102进行验证。验证环境101包括测试数据生成单元111和预运算执行单元112。
对于步骤S10,例如可以是测试数据生成单元111生成初始数据。例如,测试数据生成单元111生成的初始数据为浮点数据。
例如,在本公开的一些实施例中,测试数据生成单元111可以根据测试数据的数据约束条件,生成初始数据,该数据约束条件用于对初始数据进行约束。
在本公开的一些实施例中,例如,测试数据生成单元111根据测试数据的数据约束条件,随机生成多个初始数据或者随机生成一个初始数据。
例如,数据约束条件用于对初始数据的数据类型进行约束。例如,运算模块102为用于对浮点数据进行运算的浮点运算模块,则数据约束条件可以为浮点数据,使得测试数据生成单元111在数据约束条件的约束下生成的初始数据为浮点数据。并且,数据约束条件可以进一步地对浮点数据的精度进行约束。例如,数据约束条件可以是单精度32bit浮点数据,则测试数据生成单元111在数据约束条件的约束下生成的初始数据为单精度32bit浮点数据。
又例如,数据约束条件可以对初始数据的数据格式进行约束。例如,将浮点数据的数据格式约束为negativeNormal、negativeZero等格式,使得测试数据生成单元111在数据约束条件的约束下生成的初始数据为negativeNormal、negativeZero等格式的浮点数据。
在本公开的一些实施例中,测试数据生成单元111生成初始数据后,向预运算执行单元112发送初始数据,以便预运算执行单元112可以执行步骤S20。
对于步骤S20,例如预运算执行单元112对初始数据进行预运算操作以获得预运算结果数据。
在本公开的一些实施例中,预运算结果数据包括最终结果数据或中间结果数据。中间结果数据为在对初始数据进行预运算操作的过程中所产生的运算结果,最终结果数据为对初始数据进行所述预运算操作所产生的最终的运算结果。
例如,在对浮点数据进行运算的示例中,为了得到精度满足精度要求的最终结果数据,运算过程中产生的中间结果数据要保留的精度需超过精度要求,以便对中间结果数据进行舍入。例如,中间结果数据的比特位(以下简称“bit”)可以包括LSB、Guard bit以及Stick bit。LSB为精度范围内的最低有效位(Least Significant Bit),即,小数部分最右边的bit是LSB。Guard bit为在小数部分精度范围外的第一个bit,即在小数部分LSB右边的第一个bit为guard bit。Stick bit在小数部分精度范围外不包括guard bit的其他bits,如果这些bits不为零则stick bit为1,否则stick bit为0。
在本公开的一些实施例中,步骤S20包括确定预运算操作的操作类型,以及对初始数据进行操作类型的预运算操作以获得预运算结果数据。
例如,预运算操作的操作类型可以是加法、减法、乘法、除法、开方、求倒数、求余数等运算操作中的任意一个。
在本公开的一些实施例中,预运算操作的操作类型可以是外部输入的。例如,测试数据生成单元111接收外部输入的预运算操作的操作类型,并且将向预运算执行单元112发送该操作类型,以便预运算执行单元112对初始数据进行操作类型的预运算操作以获得预运算结果数据。
例如,在步骤S10中测试数据生成单元111生成的初始数据包括两个初始子数据,该初始数据的操作类型为加法运算操作,两个初始子数据作为加法运算操作的操作数,在步骤S20对初始数据中的两个初始子数据进行加法运算操作以得到预运算结果数据。
在本公开的一些实施例中,测试数据生成单元111除向预运算执行单元112发送初始数据外,还向预运算执行单元112发送结果约束条件,以便预运算执行单元112可以判断预运算结果数据是否满足结果约束条件。
在本公开的另一些实施例中,结果约束条件可以是预先存储在预运算执行单元112中的。在这种情形中,测试数据生成单元111不需要向预运算执行单元112发送结果约束条件。
在本公开的一些实施例中,结果约束条件例如可以是外部输入到测试数据生成单元111或者预运算执行单元112中的。
在本公开的一些实施例中,结果约束条件用于对预运算结果数据进行约束。例如,结果约束条件可以对中间结果数据或者最终结果数据进行约束。
例如,结果约束条件可以对中间结果数据的LSB、guard bit、stick bit等做约束。
在本公开的一些实施例中,不同的操作类型(加减乘除等)对中间结果数据可以有不同的约束。例如,对于加法操作,对中间结果数据可以做如下约束:对操作数A和B的指数差值做约束,这个差值可以为:零、正数、负数或者精度范围内的最大值。这样在进行加法运算操作时,根据这个差值调整指数。如果是乘法,由于乘法运算操作对于指数部分是采取相加的运算,因此不需要对操作数A和B的指数差值做约束,乘法可以选择对指数的和做约束。
例如,结果约束条件也可以对最终结果数据的数值范围进行约束。例如,将最终结果数据的数值范围约束在一个区间[result1,result2],或者(result3,result4)。或者,结果约束条件可以对最终结果数据的状态位信息进行约束,如将最终结果数据的状态位约束为发生精度异常(precision exception)、下溢异常(underflow exception)等。
对于步骤S30,例如预运算执行单元112判断预运算结果数据是否满足结果约束条件而得到判断结果,并且预运算执行单元112可以向测试数据生成单元111发送反馈信息。在本公开的一些实施例中,反馈信息包括判断结果。在本公开的另一些实施例中,在预运算结果数据不满足结果约束条件的情况下,反馈信息除包括判断结果外,还可以包括运算信息。这些运算信息用于指导测试数据生成单元111,修正测试数据生成方法,更快速的满足设定的约束条件)。例如,运算信息可以包括产生该预运算结果数据的运算操作的操作类型,本次运算操作使用的初始数据等信息。例如,加法运算操作的结果约束条件为“操作数S1和操作数S2的指数差值大于50”,若预运算结果数据不满足该结果约束条件,测试数据生成单元可以根据预运算执行单元反馈的运算信息(即,操作数S1和操作数S2的指数差值小于等于50),自动的调整操作数S1和S2指数的大小来满足结果约束条件。
测试数据生成单元111可以根据该判断结果确定初始数据是否可以作为测试数据。
例如,若判断结果为预运算结果数据满足结果约束条件,则初始数据可以作为测试数据,以便利用测试数据对运算模块102进行验证。若判断结果为预运算结果数据不满足结果约束条件,则初始数据不可以作为测试数据。在本公开的一些实施例中,若初始数据不可以作为测试数据,则测试数据生成单元111可以丢弃该初始数据。
图2示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图。
如图2所示,该方法除包含图1A所示的步骤S10~步骤S30外,还可以包括步骤S40和步骤S50。
步骤S40:记录预运算执行单元对初始数据进行预运算操作之前,预运算执行单元的初始状态信息。
例如,在预运算执行单元112对初始数据进行预运算操作之前,记录预运算执行单元112的初始状态信息。例如,初始状态信息为预运算执行单元112的数据寄存器、状态寄存器的值等。
步骤S50:响应于预运算结果数据不满足结果约束条件,将预运算执行单元的状态信息恢复为初始状态信息,并丢弃初始数据。
例如,预运算执行单元依次对初始数据A和初始数据B进行预运算操作,则在对初始数据A进行预运算操作之前,记录下此时的初始状态信息,假如此时初始状态信息为P0。然后对初始数据A进行预运算操作。由于对初始数据A进行了预运算操作,预运算执行单元112的数据寄存器、状态寄存器的值等的状态信息更新为P1。若对初始数据A进行预运算操作获得的预运算结果数据不满足结果约束条件,此时则将预运算执行单元112的数据寄存器、状态寄存器的值等的状态信息由P1恢复为初始状态信息P0,并且通知测试数据生成单元111丢弃该初始数据A。在再次记录该初始状态信息P0之后,对初始数据B进行预运算操作。又例如,若对初始数据A进行预运算操作获得的预运算结果数据满足结果约束条件,则记录预运算执行单元112的数据寄存器、状态寄存器的值等的初始状态信息为P1之后,再对初始数据B进行预运算操作。
在预运算结果数据不满足结果约束条件的情况下,通过将预运算执行单元的状态信息恢复为初始状态信息可以保证预运算执行单元112的状态信息与运算模块的状态信息保持一致。
在本公开的一些实施例中,该验证方法在前述图1A或者图2所示的实施例的基础上,还可以包括判断当前对运算模块进行验证的验证状态是否满足结束条件,响应于验证状态不满足结束条件,再次执行获取初始数据,对初始数据进行预运算操作以获得预运算结果数据,以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据。
例如,判断当前对运算模块进行验证的验证状态是否满足结束条件可以在步骤S30之后执行。
例如,测试数据生成单元111可以接收外部输入的结束条件,或者从存储设备中读取结束条件。
例如,结束条件可以是对运算模块进行验证的次数超过第一预设阈值。在本公开的一些实施例中,对运算模块进行验证的次数可以与测试数据生成单元111向运算模块102发送的初始数据的次数相等。也就是说,通过测试数据生成单元111向运算模块102发送的初始数据的次数来确定对运算模块进行验证的次数。
又例如,对运算模块进行验证的次数可以通过测试数据生成单元111生成的初始数据的数量来表示。测试数据生成单元111生成的初始数据的数量越多表明对运算模块进行验证的次数越多。在该实施例中,结束条件可以是测试数据生成单元111生成的初始数据的数量达到第二预设阈值。
本领域技术人员可以根据需要设计结束条件,本公开的实施例对结束条件的设定不做限定。
例如,验证状态为对运算模块进行验证的次数。例如,判断当前对运算模块进行验证的验证状态是否满足结束条件包括:判断对运算模块进行验证的次数是否超过第一预设阈值。
响应于验证状态不满足结束条件,例如再次执行图1A中的步骤S10~S30,即再次执行获取初始数据,对初始数据进行预运算操作以获得预运算结果数据,以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据。或者,响应于验证状态不满足结束条件,再次执行图2中的步骤S10~S50。
例如,若对运算模块进行验证的次数超过第一预设阈值,则测试数据生成单元111停止生成初始数据。若对运算模块进行验证的次数未超过第一预设阈值,则在此执行步骤S10~S40,或者执行步骤S10~S50。
在本公开的一些实施例中,该验证方法在前述实施例的基础上,还可以包括记录预运算结果数据不满足结果约束条件的次数,以及响应于次数达到阈值,输出异常信号。
该方法通过给出异常信号,可以及时发现验证环境发生死锁的情况,以便及时调整验证环境的直接约束条件和结果约束条件,修正死锁的发生。直接约束条件为对测试数据的数据类型(单精度-32bit、双精度-64bit以及扩展双精度-80bit等)和运算操作的操作类型(加法、减法乘法、除法、开方、求倒数、求余数等)进行简单的直接约束的约束条件。
在本公开的另一些实施例中,该验证方法在前述实施例的基础上,还可以包括响应于预运算结果数据不满足结果约束条件,获取产生预运算结果数据的运算信息;以及根据运算信息,重新生成初始数据。
例如,预运算执行单元112每次获取到预运算结果数据不满足结果约束条件的判断结果,便生成产生预运算结果数据的运算信息,并且向测试数据生成单元111发送该运算信息,以便测试数据生成单元111根据运算信息,重新生成初始数据。
又例如,在预运算结果数据不满足结果约束条件的次数达到第三预设阈值的情况下,便生成产生预运算结果数据的运算信息,并且向测试数据生成单元111发送该运算信息,以便测试数据生成单元111根据运算信息,重新生成初始数据,该预运算结果数据为不满足结果约束条件的预运算结果数据。
例如,第一预设阈值、第二预设阈值和第三预设阈值可根据实际情况设定,本公开的实施例对此不作限制。
图3A示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图。
如图3A所示,在图1A所示的示例的基础上,该方法除包含图1A所示的步骤S10~步骤S30外,还可以包括步骤S301和步骤S302。
步骤S301:将测试数据输入到运算模块,使得运算模块对测试数据执行测试运算操作以获得测试结果。
例如,如果初始数据可以作为测试数据,那么测试数据生成单元111向运算模块102发送该测试数据,以便运算模块102对测试数据执行测试运算操作以获得测试结果。
步骤S302:将测试结果与测试运算操作的理想输出结果进行比较以获得对运算模块进行验证的验证结果。
在本公开的实施例中,理想输出结果即为正确的运算结果。例如,若测试结果与理想输出结果一致,则运算模块102的验证结果为成功,也就是说,运算模块102的通过本次测试。若测试结果与理想输出结果不一致,则运算模块102的验证结果为失败,也就是说,运算模块102的验证结果未通过本次测试。
图3B示出了本公开至少一实施例提供的用于实现图3A所示的验证方法的架构图。下面结合图3B来对图3A所示的验证方法进行说明。
如图3B所示,该架构包含验证环境103和运算模块102。验证环境103用于对运算模块102进行验证。验证环境101除包括图1B所示的测试数据生成单元111和预运算执行单元112外,还可以包括结果比对模块113。
结果比对模块113用于生成上述理想输出结果。例如,在结果比对模块中,会有一个运算模块的模型,也会执行运算操作,并记录执行结果。例如,运算模块为执行浮点运算的浮点运算模块,则结果比对模块包括浮点运算模块的模型,该浮点运算模块也执行浮点运算操作并记录执行结果。例如,浮点运算模块的模型是通过软件实现的。
在本公开的一些实施例中,运算模块102向结果比对模块113发送测试结果,以便结果比对模块113将测试结果和理想输出结果进行对比。
在本公开的一些实施例中,例如,图1B或者图3B中的验证环境可以利用verilog、system Verilog或者C语言搭建的验证环境,或者也可以是通过其他的技术手段搭建的验证环境。
图4示出了本公开至少一实施例提供的另一种对运算模块进行验证的方法流程图。
如图4所示,该方法包括步骤S401~S413。
步骤S401:生成初始数据。例如,在图3B所示的系统架构中,可以是测试数据生成单元111生成初始数据。
例如,测试数据生成单元111根据运算操作类型(例如,加减乘除等)约束条件和数据约束条件(例如,数据格式为positiveNormal)生成初始数据。
测试数据生成单元111可以随机生成一组初始数据(包含多个初始数据),也可以随机生成一个初始数据。若测试数据生成单元111随机生成一组初始数据,则下文描述的步骤S403~步骤S405可以是依次对每个初始数据执行的。每个初始数据可以包含多个初始子数据,该多个初始子数据为运算操作的操作数。例如,对于两个操作数的加法操作,每个初始数据可以包含两个初始子数据。
步骤S401类似于上文图1A描述的步骤S10,在此不再赘述。
步骤S402:确定结果约束条件。
例如,结果约束条件可以是外部输入到测试数据生成单元111的。在一组随机初始数据生成后,测试数据生成单元111需要确定结果约束条件。例如,测试数据生成单元111根据外部输入的约束条件信息和操作类型,确定该组初始数据的结果约束条件。
例如,对于加法运算操作或乘法运算操作可以有不同的结果约束条件,即使同一个操作类型也可以有不同的结果约束条件。例如,对于加法操作的结果约束条件可以是:约束中间结果LSB=1,guard bit=1,precision exception=1。又例如,加法运算操作的结果约束条件可以是:约束最终结果数据在一个区间[result1,result2],约束中间结果数据X和Y的指数差值大于50。
步骤S403:记下预运算执行单元的初始状态信息。步骤S403类似于上文图2描述的步骤S40,在此不再赘述。
步骤S404:预运算执行单元执行预运算操作获得预运算结果数据。步骤S404类似于上文图1A或2描述的步骤S20,在此不再赘述。
步骤S405:判断预运算结果数据是否满足结果约束条件。
若预运算结果数据满足结果约束条件,则执行步骤S406。
若预运算结果数据不满足结果约束条件,则执行步骤S409。
步骤S406:把测试数据送给运算模块。例如,若在步骤S401生成的初始数据为一组初始数据,预运算执行单元112向测试数据生成单元111反馈步骤S405的判断结果,使得测试数据生成单元111根据判断结果,确定该组初始数据中的测试数据,并且向运算模块发送测试数据。
若在步骤S401生成的初始数据为一个,则预运算执行单元112向测试数据生成单元111反馈预运算结果数据满足结果约束条件的反馈信息,使得测试数据确定该初始数据可以作为测试数据,并且向运算模块发送测试数据。
步骤S406类似于上文图3A描述的步骤S301,在此不再赘述。
步骤S407:判断对运算模块进行验证的验证状态是否满足结束条件。上文对步骤S407已经进行了描述,在此不再赘述。
若对运算模块进行验证的验证状态满足结束条件,则结束生成初始数据。
若对运算模块进行验证的验证状态不满足结束条件,则执行步骤S408。
步骤S408:反馈预运算结果数据满足结果约束条件的提示信息,并且返回执行步骤S401。
例如,在显示屏上生成提示信息,以提示用户预运算结果数据满足结果约束条件。
步骤S409:丢弃生成的测试数据。例如,若在步骤S401生成的初始数据为一组初始数据,预运算执行单元112向测试数据生成单元111反馈步骤S405的判断结果,使得测试数据生成单元111根据判断结果,确定该组初始数据中预运算结果数据不满足结果约束条件的测试数据,以便测试数据生成单元111丢弃生成的测试数据。
若在步骤S401生成的初始数据为一个,则预运算执行单元112向测试数据生成单元111反馈预运算结果数据不满足结果约束条件的反馈信息,使得测试数据丢弃生成的测试数据。
步骤S410:预运算执行单元状态信息恢复成初始状态信息。
步骤S410类似于上文图2描述的步骤S50,在此不再赘述。
步骤S411:判断预运算结果数据不满足结果约束条件的次数是否达到阈值。
若预运算结果数据不满足结果约束条件的次数达到阈值,表示验证环境出现死锁,则执行步骤S412。
若预运算结果数据不满足结果约束条件的次数未达到阈值,则执行步骤S413。
步骤S412:输出异常信号。
步骤S413:反馈运算信息。
例如,步骤S413执行类似于上文描述的获取产生预运算结果数据的运算信息,向测试数据生成单元111反馈该运算信息,使得测试数据生成单元111根据运算信息,重新生成初始数据。
图5示出了本公开至少一个实施例提供的一种对运算模块进行验证的装置500的示意框图。
例如,如图5所示,该装置500可以包括数据获取单元510、预运算执行单元520和处理单元530。
数据获取单元510配置为获取初始数据。数据获取单元510例如可以执行图1A描述的步骤S10。
预运算执行单元520配置为对初始数据进行预运算操作,以获得预运算结果数据。预运算执行单元520例如可以执行图1A描述的步骤S20。
在本公开的一些实施例中,预运算执行单元520可以包括确定子单元,配置为确定预运算操作的操作类型;以及预运算子单元,配置为对初始数据进行操作类型的预运算操作以获得预运算结果数据。
处理单元530配置为响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据,以利用测试数据对运算模块进行验证。处理单元530例如可以执行图1A描述的步骤S30。
在本公开的一些实施例中,该装置500还可以包括:输入单元,配置为将测试数据输入到运算模块,使得运算模块对测试数据执行测试运算操作以获得测试结果;以及比较单元,配置为将测试结果与测试运算操作的理想输出结果进行比较以获得对运算模块进行验证的验证结果。例如,图3B所示的结果比对模块113可以包括比较单元。
预运算结果数据包括最终结果数据和中间结果数据,中间结果数据为在对初始数据进行预运算操作的过程中所产生的运算结果,最终结果数据为对初始数据进行预运算操作所产生的最终的运算结果。
在本公开的一些实施例中,数据获取单元510包括生成子单元,配置为根据测试数据的数据约束条件,生成初始数据,数据约束条件用于对初始数据进行约束。
在本公开的一些实施例中,该装置500还可以包括:第一记录单元,配置为记录预运算执行单元对初始数据进行预运算操作之前,预运算执行单元的初始状态信息;以及恢复单元,配置为响应于预运算结果数据不满足结果约束条件,将预运算执行单元的状态信息恢复为初始状态信息,并丢弃初始数据。
在本公开的一些实施例中,该装置500还可以包括:判断单元,配置为判断当前对运算模块进行验证的验证状态是否满足结束条件;以及循环单元,配置为响应于验证状态不满足结束条件,再次执行获取初始数据,对初始数据进行预运算操作以获得预运算结果数据,以及响应于预运算结果数据满足结果约束条件,将初始数据作为测试数据。
在本公开的一些实施例中,该装置500还可以包括:第二记录单元,配置为记录预运算结果数据不满足结果约束条件的次数;以及输出单元,配置为响应于次数达到阈值,输出异常信号。
在本公开的一些实施例中,该装置500还可以包括:运算信息获取单元,配置为响应于预运算结果数据不满足结果约束条件,获取产生预运算结果数据的运算信息;以及数据生成单元,配置为根据运算信息,重新生成初始数据。
例如,数据获取单元510、预运算执行单元520和处理单元530可以为硬件、软件、固件以及它们的任意可行的组合。例如,数据获取单元510、预运算执行单元520和处理单元530可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,对运算模块进行验证的装置500的各个单元与前述的对运算模块进行验证的方法的各个步骤对应,关于对运算模块进行验证的装置500的具体功能可以参考关于对运算模块进行验证的方法的相关描述,此处不再赘述。图5所示的对运算模块进行验证的装置500的组件和结构只是示例性的,而非限制性的,根据需要,该对运算模块进行验证的装置500还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的对运算模块进行验证的方法的指令。该电子设备可以通过对初始数据进行预运算操作获得的预运算结果数据进行约束来实现对测试数据的运算结果数据的约束,从而能够更精准地获取用于对运算模块进行验证的测试数据,提高验证效率和可靠性。
图6为本公开一些实施例提供的一种电子设备的示意框图。如图6所示,该电子设备600包括处理器610和存储器620。存储器620用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器610用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器610运行时可以执行上文所述的对运算模块进行验证的方法中的一个或多个步骤。存储器620和处理器610可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器610可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器610可以为通用处理器或专用处理器,可以控制电子设备600中的其它组件以执行期望的功能。
例如,存储器620可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器610可以运行一个或多个计算机程序模块,以实现电子设备600的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备600的具体功能和技术效果可以参考上文中关于对运算模块进行验证的方法的描述,此处不再赘述。
图7为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1000例如适于用来实施本公开实施例提供的对运算模块进行验证的方法。电子设备1000可以是终端设备等。需要注意的是,图7示出的电子设备1000仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1010,其可以根据存储在只读存储器(ROM)1020中的程序或者从存储装置1080加载到随机访问存储器(RAM)1030中的程序而执行各种适当的动作和处理。在RAM 1030中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1010、ROM 1020以及RAM 1030通过总线1040彼此相连。输入/输出(I/O)接口1050也连接至总线1040。
通常,以下装置可以连接至I/O接口1050:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1060;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1070;包括例如磁带、硬盘等的存储装置1080;以及通信装置1090。通信装置1090可以允许电子设备1000与其他电子设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备1000,但应理解的是,并不要求实施或具备所有示出的装置,电子设备1000可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述对运算模块进行验证的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述对运算模块进行验证的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1090从网络上被下载和安装,或者从存储装置1080安装,或者从ROM 1020安装。在该计算机程序被处理装置1010执行时,可以实现本公开实施例提供的对运算模块进行验证的方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的对运算模块进行验证的方法。利用该计算机可读存储介质,可以通过对初始数据进行预运算操作获得的预运算结果数据进行约束来实现对测试数据的运算结果数据的约束,从而能够更精准地获取用于对运算模块进行验证的测试数据,提高验证效率和可靠性。
本公开一些实施例提供了一种存储介质。存储介质用于存储非暂时性计算机可读指令。例如,当非暂时性计算机可读指令由计算机执行时可以执行根据上文所述的对运算模块进行验证的方法中的一个或多个步骤。
例如,该存储介质可以应用于上述电子设备600中。例如,存储介质可以为图6所示的电子设备600中的存储器620。例如,关于存储介质的相关说明可以参考图6所示的电子设备600中的存储器620的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种对运算模块进行验证的方法,包括:
获取初始数据;
经由预运算执行单元对所述初始数据进行预运算操作,以获得预运算结果数据;以及
响应于所述预运算结果数据满足结果约束条件,将所述初始数据作为测试数据,以利用所述测试数据对所述运算模块进行验证,
所述方法还包括:
记录所述预运算执行单元对所述初始数据进行所述预运算操作之前,所述预运算执行单元的初始状态信息;以及
响应于所述预运算结果数据不满足所述结果约束条件,将所述预运算执行单元的状态信息恢复为所述初始状态信息,并丢弃所述初始数据,
响应于所述预运算结果满足所述结果约束条件,将所述预运算执行所述预运算操作之后的状态信息作为所述初始状态信息,以用于对下一个初始数据进行预运算操作。
2.根据权利要求1所述的方法,还包括:
将所述测试数据输入到所述运算模块,使得所述运算模块对所述测试数据执行测试运算操作以获得测试结果;以及
将所述测试结果与所述测试运算操作的理想输出结果进行比较以获得对所述运算模块进行验证的验证结果。
3.根据权利要求1所述的方法,其中,所述预运算结果数据包括最终结果数据或中间结果数据,
所述中间结果数据为在对所述初始数据进行所述预运算操作的过程中所产生的运算结果;
所述最终结果数据为对所述初始数据进行所述预运算操作所产生的最终的运算结果。
4.根据权利要求1所述的方法,其中,获取所述初始数据包括:
根据所述测试数据的数据约束条件,生成所述初始数据,
其中,所述数据约束条件用于对所述初始数据进行约束。
5.根据权利要求1-4任一项所述的方法,还包括:
判断当前对所述运算模块进行验证的验证状态是否满足结束条件;以及
响应于所述验证状态不满足所述结束条件,再次执行获取所述初始数据,对所述初始数据进行预运算操作以获得所述预运算结果数据,以及响应于所述预运算结果数据满足所述结果约束条件,将所述初始数据作为所述测试数据。
6.根据权利要求5所述的方法,还包括:
记录所述预运算结果数据不满足所述结果约束条件的次数;以及
响应于所述次数达到阈值,输出异常信号。
7.根据权利要求1-4任一所述的方法,还包括:
响应于所述预运算结果数据不满足所述结果约束条件,获取产生所述预运算结果数据的运算信息;以及
根据所述运算信息,重新生成所述初始数据。
8.根据权利要求1-4任一所述的方法,其中,对所述初始数据进行预运算操作以获得预运算结果数据,包括:
确定所述预运算操作的操作类型;以及
对所述初始数据进行所述操作类型的预运算操作以获得所述预运算结果数据。
9.根据权利要求1-4任一所述的方法,其中,所述初始数据为浮点数据,所述运算模块配置为对所述初始数据进行浮点运算。
10.一种对运算模块进行验证的装置,包括:
数据获取单元,配置为获取初始数据;
预运算执行单元,配置为对所述初始数据进行预运算操作,以获得预运算结果数据;以及
处理单元,配置为响应于所述预运算结果数据满足结果约束条件,将所述初始数据作为测试数据,以利用所述测试数据对所述运算模块进行验证,
所述装置还包括:
第一记录单元,配置为记录预运算执行单元对初始数据进行预运算操作之前,预运算执行单元的初始状态信息;以及
恢复单元,配置为响应于预运算结果数据不满足结果约束条件,将预运算执行单元的状态信息恢复为初始状态信息,并丢弃初始数据,以及响应于所述预运算结果满足所述结果约束条件,将所述预运算执行所述预运算操作之后的状态信息作为所述初始状态信息,以用于对下一个初始数据进行预运算操作。
11.根据权利要求10所述的装置,还包括:
输入单元,配置为将测试数据输入到运算模块,使得运算模块对测试数据执行测试运算操作以获得测试结果;以及
比较单元,配置为将测试结果与测试运算操作的理想输出结果进行比较以获得对运算模块进行验证的验证结果。
12.根据权利要求10所述的装置,其中,所述数据获取单元包括生成子单元,配置为根据测试数据的数据约束条件,生成初始数据,数据约束条件用于对初始数据进行约束。
13.根据权利要求10所述的装置,其中,预运算执行单元包括:
确定子单元,配置为确定预运算操作的操作类型;以及
预运算子单元,配置为对初始数据进行操作类型的预运算操作以获得预运算结果数据。
14.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序指令;
其中,所述一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现权利要求1-9任一项所述的对运算模块进行验证的方法的指令。
15.一种计算机可读存储介质,非暂时性存储有计算机可读指令,其中,当所述计算机可读指令由处理器执行时实现权利要求1-9任一项所述的对运算模块进行验证的方法。
CN202110711193.1A 2021-06-25 2021-06-25 对运算模块进行验证的方法、装置、电子设备和介质 Active CN113342671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110711193.1A CN113342671B (zh) 2021-06-25 2021-06-25 对运算模块进行验证的方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110711193.1A CN113342671B (zh) 2021-06-25 2021-06-25 对运算模块进行验证的方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN113342671A CN113342671A (zh) 2021-09-03
CN113342671B true CN113342671B (zh) 2023-06-02

Family

ID=77478859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110711193.1A Active CN113342671B (zh) 2021-06-25 2021-06-25 对运算模块进行验证的方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN113342671B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858404B (zh) * 2023-03-01 2023-05-12 上海合见工业软件集团有限公司 一种基于eda的图形用户界面的测试系统
CN116070474B (zh) * 2023-04-07 2023-07-07 之江实验室 一种面向ai浮点融合运算单元的验证激励产生方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844538A (ja) * 1994-07-01 1996-02-16 Hewlett Packard Co <Hp> 除算結果、及び開平算結果に正確な丸め処理を行う方法、及び装置
EP1241577A2 (en) * 2001-03-14 2002-09-18 Hewlett-Packard Company Methods and arrangements for improved parity-stripe processing
CN109710558A (zh) * 2016-11-03 2019-05-03 北京中科寒武纪科技有限公司 Slam运算装置和方法
CN112433904A (zh) * 2019-08-26 2021-03-02 无锡江南计算技术研究所 基于中间结果约束的浮点验证数据生成方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028067B2 (en) * 2002-02-20 2006-04-11 International Business Machines Corporation Generation of mask-constrained floating-point addition and subtraction test cases, and method and system therefor
CN101515310B (zh) * 2009-02-16 2010-10-06 中国科学院计算技术研究所 微处理器浮点单元的随机验证方法及系统
US11106598B2 (en) * 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
CN112363875B (zh) * 2020-10-21 2023-04-07 海光信息技术股份有限公司 一种系统缺陷检测方法、设备、电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844538A (ja) * 1994-07-01 1996-02-16 Hewlett Packard Co <Hp> 除算結果、及び開平算結果に正確な丸め処理を行う方法、及び装置
EP1241577A2 (en) * 2001-03-14 2002-09-18 Hewlett-Packard Company Methods and arrangements for improved parity-stripe processing
CN109710558A (zh) * 2016-11-03 2019-05-03 北京中科寒武纪科技有限公司 Slam运算装置和方法
CN112433904A (zh) * 2019-08-26 2021-03-02 无锡江南计算技术研究所 基于中间结果约束的浮点验证数据生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于高效约束解决算法的浮点数生成器设计;胡广垠;王子欧;吴升光;王申卓;;微电子学与计算机(11);全文 *

Also Published As

Publication number Publication date
CN113342671A (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN113342671B (zh) 对运算模块进行验证的方法、装置、电子设备和介质
WO2017020590A1 (zh) 一种芯片验证方法和装置、设备、存储介质
US8140901B2 (en) Validation of processors using a self-generating test case framework
US10024911B2 (en) Debug circuit, semiconductor device, and debug method
CN107085532B (zh) 任务监听方法和装置
EP2942714B1 (en) Monitoring method, monitoring apparatus, and electronic device
CN112133357A (zh) 一种eMMC的测试方法及装置
CN115129297B (zh) 多点乘运算系统、方法、图形处理器、电子装置及设备
US10657209B2 (en) Computing system and method of performing verification of circuit design in the computing system
JP2016212574A (ja) デバッグ回路、半導体装置及びデバッグ方法
CN106339270B (zh) 数据校验方法及装置
CN109933948B (zh) 一种形式验证方法、装置、形式验证平台及可读存储介质
US9857423B2 (en) Debugging circuit, debugger device, and debugging method
CN111679932B (zh) 一种误码数据生成方法、装置、计算机设备及存储介质
CN114564336A (zh) 数据一致性校验方法、装置、设备以及存储介质
CN114237705A (zh) 验证方法、装置、电子设备和计算机可读存储介质
CN107678967B (zh) 单元测试覆盖率生成方法、装置、可读存储介质及设备
JP6519530B2 (ja) 検証装置、検証プログラム、及び、検証方法
CN111190824A (zh) 监测方法、装置、终端设备及存储介质
CN109992892B (zh) 一种参考模型校验方法、装置、电子设备及可读存储介质
US20230359436A1 (en) Floating-point multiplier using zero counters
CN113312167B (zh) 业务控制方法和装置、电子设备、计算机可读介质
CN117215966B (zh) 一种芯片sdk接口的测试方法、测试装置及电子设备
CN112596869B (zh) 延时模型的构建方法及装置、电子设备及存储介质
CN117331812A (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
GR01 Patent grant
GR01 Patent grant