CN1910588A - 验证装置和验证方法 - Google Patents
验证装置和验证方法 Download PDFInfo
- Publication number
- CN1910588A CN1910588A CNA2005800028608A CN200580002860A CN1910588A CN 1910588 A CN1910588 A CN 1910588A CN A2005800028608 A CNA2005800028608 A CN A2005800028608A CN 200580002860 A CN200580002860 A CN 200580002860A CN 1910588 A CN1910588 A CN 1910588A
- Authority
- CN
- China
- Prior art keywords
- instruction
- reference data
- data
- expectation value
- limit condition
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
当在待验证的对象中执行处理时,存在执行结果依赖待参考的参考数据值并且未定义的情况。当执行结果未定义,并且随后的处理参考执行结果时,执行结果可能具有不同的值。因此,不能对执行结果进行比较,并且验证不能继续。本发明提供用于给予待验证的对象和期望值产生装置相同的测试模式、用于执行仿真并比较执行结果的验证装置。仿真数据被提取。根据对所提取数据的分析结果,控制仿真。可替换地,在获得未定义结果后,控制仿真。因此,可能避免会变成未定义结果的处理的执行。
Description
技术领域
本发明涉及计算装置上的半导体集成电路的验证。
背景技术
作为验证半导体集成电路的方法,用例如硬件描述语言的模型描述语言描述的电路数据在计算装置上仿真以便确认电路数据是否正常工作的验证方法在计算机上是可获得的。在验证方法中,输入测试模式以操作电路数据,并准备执行结果的期望值以确定操作是必需的。所准备的期望值可以预先准备,或者可以采用按照如下方式获得的执行结果:准备电路数据的伪模型,并且与应用于真实电路数据的测试模式相同的测试模式也应用于伪模型。
作为验证方法中的常规技术,这样的方法是可获得的:当测试模式被顺序执行时,在产生错误的情况下,产生错误的测试模式被登记,以删除在仿真中产生错误的测试模式,以便验证可以因此而更加有效(参见专利文献1)。专利文献1:日本专利公开No.3054802
发明内容
本发明要解决的问题
在例如用于处理器的验证方法的常规验证方法中,在执行除法指令时,存在执行零除法(除数为零的除法)的可能性。因此,需要特别的考虑,以便在产生除法指令时,零不被用作除数,尤其是在随机产生的测试模式应用于验证对象的验证环境中。
在常规验证方法中执行零除法的情况下,根据处理器的规范,除法的执行结果可能无法得到保证(非确保的结果)。对于该非确保的结果,从正确的除法得到的计算结果(商和余数)不能作为除法指令的执行结果进行存储。在本发明中,这样的执行结果在下文中称为未定义结果。在某种意义上与真实电路数据相似,在执行零除法时输出期望值的处理器的伪模型中的执行结果通常也是未定义结果。
根据由这样处理器执行指令时对应的数据,零除法可能不是指令的未定义结果的唯一原因。在近年来处理器的计算装置的示例中,对输入数据值施加了限制,并且在违反限制时计算的执行结果不被保证,以便减少能量损耗和计算装置的面积。即使在这样的示例中,在验证方法中执行结果未定义的可能性从未低过。
在电路数据和处理器的伪模型中指令执行结果未定义(例如,零除法)的情况下,所比较的期望值是互不相同的,这导致伪错误的产生。之后,在用于对应存储未定义结果的存储装置的指令被随后执行时,指令的执行必然产生不同的结果。因此,未定义结果不利地影响了此后的仿真,这使得继续验证变得不可能。特别地,在指令是随机产生的验证环境中,在产生未定义结果时,验证被暂停。因此,执行这样连续提供大量测试模式的大范围的仿真变得困难,并且验证因此不能获得高的质量。
如同所描述的一样,在验证方法中,未定义结果如何处理是关键问题。在指令提供给处理器时,未定义结果不能容易地被预测。例如,在零除法的情况下,用作除数的寄存器号可以仅仅指定为操作数(待计算的内容),而不是将除数值本身指定为除法指令中的立即值。在这样的情况下,零除法的产生,不依赖于在除法指令被提供时的寄存器值本身,而是依赖于除法指令执行时的寄存器值。
从上面的描述可以清楚地看出,未定义结果是在向处理器提供指令时难于预测的参数,并且在提供除法指令时难于保证除数不是零。
在专利文献1中,产生错误的测试模式被预先寄存。然而,由于所描述的原因,即使在专利文献1中预测产生未定义结果(零除法)的测试模式并预先寄存相关的未定义结果的产生模式仍旧困难。因此,上述的问题仍然没有解决。
解决问题的手段
为了解决上述问题,在本发明中,提供的指令,由该指令对应的参考数据和该参考数据的数据限制条件被采用,以预测未定义结果的产生,并在未定义结果产生时暂停仿真操作。
曾经被暂停的仿真操作,保持暂停直到预测指令的执行结果不再是未定义时。因此,与仿真操作的暂停/暂停释放有关的控制操作被显著减少,并且由控制操作引起的整体仿真速度的下降可以被控制。
根据本发明的另一种方式,在指令提供给期望值产生操作,并且指令的执行结果(期望值)未定义时,期望值产生操作被转换回到指令执行前的状态,以便和验证对象有关的仿真被暂停。
根据本发明的又一种方式,提供的指令,由该指令对应的参考数据和该参考数据的数据限制条件被采用,以预测未定义结果的产生,其中当未定义结果产生时,所述指令被另外指令替换。
根据本发明的另外一种方式,提供的指令,由该指令对应的参考数据和该参考数据的数据限制条件被采用,以预测未定义结果的产生,其中当预测产生未定义结果时,其中存储有被指定为指令操作数的参考数据的存储装置被其中存储有满足参考数据的数据限制条件的数据的另外存储装置替换。
根据本发明的另外一种方式,提供的指令,由该指令对应的参考数据和寄存有参考数据的数据限制条件的数据限制信息被采用,以预测未定义结果的产生,其中当产生未定义结果时,首先对参考数据存储在其中的存储装置执行用于将参考数据更新为满足数据限制条件的值的指令。
根据本发明的另外一种方式,提供的指令,由该指令对应的参考数据和寄存有参考数据的数据限制条件的数据限制信息被采用,以预测未定义结果的产生,其中当产生未定义结果时,存储在存储装置中的参考数据被更新为满足参考数据的数据限制条件的值。
根据本发明的另外一种方式,提供的指令,由该指令对应的参考数据和寄存有参考数据的数据限制条件的数据限制信息被采用,以预测未定义结果的产生,其中当产生未定义结果时,存储在存储装置中的执行结果被更新为合适的值。
当执行结果更新时,期望值可以更新为与仿真结果相等的值,或者仿真结果可以更新为与期望值相等的值。因此,用于更新执行结果的功能可以提供在待验证的仿真装置中或者提供在期望值产生装置中。
根据本发明的另外一种方式,提供的指令,由该指令对应的参考数据和寄存有参考数据的数据限制条件的数据限制信息被采用,以预测未定义结果的产生,其中,用于基于指令产生限制产生指令的指令产生装置被强制发出用于更新存储有未定义结果的存储装置的指令。
关于指令的强制发出,用于强制发出用于更新存储在存储装置中的未定义结果的指令的指令发出限制被产生,并给予指令产生装置,作为附加的指令发出限制。
关于指令的强制发出,指令产生装置被控制,以产生用于强制发出用于更新存储有未定义结果的存储装置的指令的新限制。
关于指令的强制发出,该指令可以不在未定义结果产生后立即发出,而是可以在对应未定义结果的指令被执行之前的任何时间发出。因此,发出用于更新存储有未定义结果的存储装置的指令的时机具有一定的自由度。因此,由指令强制发出引起的指令执行顺序中的随机损失可以被阻止到一定程度。
根据本发明的另一种方式,具有数据限制条件的指令的参考数据值被用作参考数据,以便由具有数据限制条件的指令对应的参考数据的候选被确定,并且所确定的条件用作指令发出限制,其中,基于因此产生的指令发出限制的指令在指令产生装置中产生。
本发明的效果
根据本发明,得到以下效果:
●未定义结果的产生被控制;并且
●在未定义结果产生时和产生之后的仿真被控制,以致来自未定义结果产生的任何影响被消除,
这样,由于伪错误引起的验证暂停可以避免。因此,验证可以获得高的效率。
根据本发明,可以避免例如在处理器验证中产生的这样的不便:因为在执行指令时对应的参考数据值不满足数据限制条件,所以指令执行结果未定义,这导致在与期望值比较时伪错误的产生。
附图说明
图1是实施本发明验证装置的结构框图。
图2是根据本发明的验证装置中的常规验证方法的流程图。
图3是根据本发明第一较佳实施例的验证装置的结构框图。
图4示出数据限制条件的示例。
图5是图示根据本发明的第一较佳实施例的验证装置中的验证方法总体过程的流程图。
图6是图示根据第一较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图7是根据本发明第二较佳实施例的验证装置的结构框图。
图8是图示根据第二较佳实施例的验证装置中的验证方法总体过程的流程图。
图9是图示根据第二较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图10是根据本发明第三较佳实施例的验证装置的结构框图。
图11是根据第三较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图12是根据本发明第四较佳实施例的验证装置的结构框图。
图13是图示根据第四较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图14是图示根据第四较佳实施例的验证装置中的验证方法的进一步主要步骤的流程图。
图15是根据本发明第五较佳实施例的验证装置的结构框图。
图16是图示根据第五较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图17是图示根据第五较佳实施例的验证装置中的验证方法的进一步主要步骤的流程图。
图18是根据本发明第六较佳实施例的验证装置的结构框图。
图19是图示根据第六较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图20是根据本发明第七较佳实施例的验证装置的结构框图。
图21是图示根据第七较佳实施例的验证装置中的验证方法总体过程的流程图。
图22是图示根据第七较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图23是根据本发明第八较佳实施例的验证装置的结构框图。
图24是图示根据第八较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图25是图示根据第八较佳实施例的修改实施例的结构框图。
图26是根据本发明第九较佳实施例的验证装置的结构框图。
图27是图示根据第九较佳实施例的验证装置中的验证方法总体过程的流程图。
图28是图示根据第九较佳实施例的验证装置中的验证方法的主要步骤的流程图。
图29是图示根据第九较佳实施例的修改实施例的结构框图。
附图标记的描述
1A,1B,1C,1D,1E,1F,1G,1H,1J验证装置
2A,2B,2H,2H’,2J,2J’验证装置的主体
3A,3B,3J提取装置
4A,4B,4C,4D,4E,1F,1G,1H,1J执行控制装置
5电路数据单元
6指令提供装置
7,7B仿真装置
8,8B期望值产生装置
9比较装置
10仿真执行单元
11第一存储装置
12期望值产生单元
13第二存储装置
20数据限制信息存储单元
21指令分析装置
22参考数据分析装置
23A,23B,23C,23D,23E,23F控制装置
23G,23H,23H’,23J,23J’控制装置
30优先状态转换装置
31执行备用装置
32未定义结果判断装置
40参考数据候选搜索装置
41参考数据候选分析装置
42参考数据替换装置
43指令产生装置
44指令放置装置
50H,50H’,50J,50J’指令产生限制创建装置
51指令发出限制创建装置
52指令产生装置
60参考数据候选确定装置
具体实施方式
在描述本发明的较佳实施例之前,描述具有前述问题的验证装置100的结构和验证方法。
验证装置100的结构如图1所示。在图1中,验证装置100包括验证装置主体2,用于提取主体2中的数据信息的提取装置3,和用于接收来自提取装置3的数据信息并控制仿真以控制未定义结果的任何影响的执行控制装置4。
主体2包括含有处理器的电路数据单元5、用于输出由包含在电路数据单元5中的处理器执行的指令的指令提供装置6、用于利用电路数据单元5的处理器仿真指令提供装置6所提供的指令的仿真装置7、用于利用指令产生期望值的期望值产生装置8、和用于将仿真结果和期望值进行比较的比较装置9。
仿真装置7包括用于执行仿真的仿真执行单元10,和用于存储仿真结果和在执行指令时对应的参考数据的第一存储装置11。期望值产生装置8包括用于执行指令提供装置6所提供的指令并产生期望值的期望值产生单元12,和用于存储在由期望值产生单元12执行指令时对应的参考数据和由期望值产生单元12产生的期望值的第二存储装置13。
参见图2,描述使用验证装置主体2的验证方法。图2是使用验证装置100的验证方法的流程图。验证方法包括指令提供过程(S201)、仿真过程(S202,S203)、期望值产生过程(S204,S205)和比较过程(S206)。指令提供过程S201是指令提供装置6向仿真装置7和期望值产生装置8提供指令的过程。仿真过程(S202,S203)是仿真装置7利用提供的指令执行仿真并将仿真结果存储在第一存储装置11的过程。期望值产生过程(S204,S205)是期望值产生装置8利用提供的指令获取期望值并将获取的期望值存储在第二存储装置13的过程。比较过程S206是比较装置9读取存储在第一存储装置11中的仿真结果和存储在第二存储装置13中的期望值以对所读取的仿真结果和期望值进行比较的过程。
如下所述,仿真过程和期望值产生过程是互不相同的。在仿真过程中,在例如硬件描述语言的模型描述语言描述的电路数据单元5用仿真装置7仿真,以便产生仿真结果。在期望值产生过程中,电路数据单元5的伪模型被准备,并在伪模型中执行与给予电路数据单元5的测试模式相同的测试模式,以便产生期望结果(期望值)。
在比较过程S206中,比较装置9在比较结果表明不一致时暂停仿真,并将表明不一致的结果通知用户。相反的,当比较结果表明一致时,比较装置9向指令提供装置6输出用于向仿真装置7和期望值产生装置8提供新指令的命令。在指令提供过程S201中,由指令提供装置6向仿真装置7和期望值产生装置8提供的指令可以是由用户自身产生并输入给指令提供装置6的指令数据,或者是在指令提供装置6中随机产生的指令数据。
在上述验证方法中,仿真会持续直至仿真结果和期望值互不相同。然而,如前所述,在指令执行结果未定义的情况下,在比较过程中比较结果表明不一致。之后,确定在比较过程中产生伪错误,并且仿真因此暂停。进一步,对应未定义结果的指令在仿真中随后执行,由于不同的参考数据被参考,各个执行结果自然互不相同,并且比较过程中的比较结果表明不一致。因此,在未定义的结果产生时和产生之后,仿真不连续。
如前所述,在图2所示验证方法中,仿真由于未定义结果引起的伪错误导致不利的暂停,而不是由于真实错误导致仿真暂停。在指令提供过程中指令是随机产生的方法中,特别是,在未定义结果频繁产生的情况下,仿真可能无法连续执行。
第一较佳实施例
图3示出根据本发明第一较佳实施例的验证装置1A的结构。验证装置1A的结构与前面描述的验证装置100的结构基本类似,并且任何相同或相似部件简单地提供有相同的附图标记并不再描述。然而,那些操作相似但包括任何轻微不同的操作在其附图标记的末尾提供有“A”,从而与验证装置100的部件相区别。
以下描述验证装置1A的结构特性。根据本较佳实施例的验证装置1A包括验证装置主体2A、提取装置3A和执行控制装置4A。验证装置的主体2A基本上以相似于验证装置100的验证装置2的方式构成。第二存储装置13存储期望值产生单元12执行指令时对应的参考数据和作为从期望值产生单元12获得的指令执行结果的期望值。在通常可获得的处理器中,通用目的寄存器构成第二存储装置。
提取装置3A提取存储在第二存储装置13中的参考数据以及由指令提供装置6输出的指令,并且向执行控制装置4A提供所提取的数据和指令。
执行控制装置4A包括数据限制信息存储单元20、指令分析装置21、参考数据分析装置22和控制装置23A。在数据限制信息存储单元20中,指令的限制条件被寄存。指令的限制条件是仿真执行单元10和期望值产生单元12执行指令时对应的参考数据的限制条件。指令分析装置21基于存储在数据限制信息存储单元20中的限制信息分析指令(由提取装置3A提取)的细节。参考数据分析装置22基于存储在数据限制信息存储单元20中的数据限制信息分析参考数据(由提取装置3A提取)的细节和指令分析装置21的指令分析的结果。控制装置23A基于参考数据分析装置22的分析结果控制仿真装置7和期望值产生装置8。
图4示出存储在数据限制信息存储单元20中的数据限制信息。存储在数据限制信息存储单元20中的数据限制信息包括指令和指令的限制条件。本说明书叙述的指令是由包含在电路数据单元5中的处理器执行的指令和执行指令时对应的参考数据中的具有限制条件的指令。在数据限制信息存储单元20中,具有限制条件的指令和限制条件是选择性地存储的。在图4中,每个指令都由操作代码分类。
在DIV指令(除法指令)的情况下,通用目的寄存器的寄存器号被指定,在通用目的寄存器中,被除数作为操作数的第一元素被存储,除数作为操作数的第二元素被存储,并且相关指令的参考数据的限制条件如图4所示。在此情况下,可以是任何不为零的值的作为第二元素的除数作为限制条件被寄存。关于其它的指令(MUL,ADDX2,SUBX2,MULX2,...),在各个操作数中指定的参考数据的限制条件被寄存。
参见图5和图6所示的流程图,描述使用验证装置1A的验证方法。首先,指令提供装置6向仿真执行单元10和期望值产生单元12提供指令(S501)。此时,指令提供装置6也输出待提供的指令给提取装置3A。提取装置3A提取包含在所提供指令中的中间数据(S502)。在验证装置1A中,中间数据具体包括指令自身和执行相关指令时对应的参考数据。
提取装置3A向执行控制装置4A输出所提取的中间数据。执行控制装置4A利用所输入的中间数据执行下面的处理。首先,指令分析装置21分析中间数据。控制装置23A基于分析结果控制验证装置的主体2A(在继续操作和暂停之间转换)(S503)。
当步骤S503中的控制操作是暂停指令执行时,验证装置的主体2A根据控制操作暂停验证操作。在步骤S503中的控制操作是继续操作时,验证装置的主体2A执行与常规执行的仿真类似的过程。更具体地,验证装置的主体2A在仿真装置7和期望值产生装置8中执行指令提供装置6提供的指令(S504,S506),并且将因此所获得的执行结果(仿真结果和期望值)存储在第一存储装置11和第二存储装置13中。存储在第一存储装置11中和第二存储装置13中的执行结果在比较装置9中比较它们是否一致(S508)。之后,仿真的各个步骤被完成。
接下来,参见图6所示的流程图,描述基于中间数据的分析和因此获得的分析结果的控制操作,该控制操作是验证装置1A的特性。首先,在指令分析装置21中判断接收自提取装置3A的中间数据是否具有限制条件(S601)。当判断中间数据是否与带有存储(寄存)在数据限制信息存储单元20中的限制的指令一致时,限制条件的存在与否被更具体地确定。
在S601中所做的判断结果表明中间数据与寄存的指令(带限制的指令)不一致时,指令分析装置21通知控制装置23a结果表明不一致。接收到结果通知的控制装置23A确定相关的指令不可能产生未定义的结果。随后,控制装置23A判断仿真装置7和期望值产生装置8的操作是否暂停(S602)。当判断结果表明操作不暂停时,控制装置23A不控制仿真装置7和期望值产生装置8。此处所述的控制操作指的是仿真装置7和期望值产生装置8的暂停。当在S602中的判断结果表明操作暂停时,控制装置23A重新启动仿真装置7和期望值产生装置8的操作。
当在S601中的判断结果表明中间数据与寄存的指令(带有限制的指令)一致时,指令分析装置21通知参考数据分析装置22结果表明一致。接收到结果通知的参考数据分析装置22进行下面的分析。首先,参考数据分析装置22a从包含在中间数据中的参考数据中提取在相关指令的操作数中指定的寄存器号的寄存器值,并进一步地,判断所提取的寄存器值是否满足数据限制条件(寄存在存储于数据限制信息存储单元20中的数据限制条件中),并且通知控制装置23A判断的结果(S604)。
当在S604中处理后所通知的判断结果满足数据限制条件,表明不违反时,控制装置23A确定相关指令不可能产生未定义结果,并执行步骤S602和S603,也就是说,仿真装置7和期望值产生装置8不被控制(不暂停)。
当在S604中处理后所通知的判断结果不满足数据限制条件,表明违反时,控制装置23A确定相关指令可能产生未定义结果,并控制(暂停)仿真装置7和期望值产生装置8(S605)。
当执行步骤S602、S603和S605时,可以获得下面的效果。在可能产生未定义结果的指令被连续提供的周期中,控制装置23A使仿真装置7和期望值产生装置8处于暂停状态,并当不可能产生未定义结果的指令的提供开始时,释放暂停(重新启动操作)。这样,当判断产生未定义结果的指令连续提供时,控制装置23A保持仿真装置7和期望值产生装置8在暂停状态,从而使用于暂停和释放暂停这些装置7和8的时间消耗量最小,以致避免了仿真的总体速度下降。
如同目前所描述的一样,根据本实施例的验证装置1A,在执行结果未定义的指令执行之前,立即暂停仿真装置7和期望值产生装置8,从而避免相关指令的执行。因此,任何由于执行结果未定义的指令的执行而导致的不便可以被避免。
第二较佳实施例
图7是根据本发明第二较佳实施例的验证装置1B结构框图。期望值产生装置1B基本上以与第一较佳实施例相似的方式构成,并且任何相似或相同部件简单地提供有与第一较佳实施例中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“B”,从而与第一较佳实施例中的部件相区别。
验证装置1B的特征在于包括优先状态转换装置30、执行备用装置31和未定义结果判断装置32。优先状态转换装置30是用于将期望值发生装置8B的状态转换回到最后的指令执行之前的状态的装置。优先状态转换装置30的操作实现如下。在期望值产生装置8B中第二存储装置13的记录内容在指令执行之前立即被暂时保留。随后,在指令执行之后,所保留的数据被转回第二存储装置13的记录内容。因此,优先状态转换装置30可以将期望值发生装置8B的状态转换到最后的指令执行之前的状态。
执行备用装置31提供于仿真装置7B中。执行备用装置31暂停仿真装置7B的指令的执行,直到从执行控制装置4B接收到备用释放通知。在第二较佳实施例中,指令在期望值产生装置8B中优先于仿真装置7被有选择性地执行,并且因此获得的执行结果由提取装置3B提取。
未定义结果判断装置32根据提取装置3B所获得的提取信息判断执行结果是否未定义。在期望值产生装置12创建用于通知未定义执行结果的产生的标志的情况下,未定义结果判断装置32可以基于标志的检测确定未定义结果的产生。进一步,当指令和执行指令时对应的参考数据以与根据第一较佳实施例的验证装置1A相似的方式被分析时,未定义执行结果的产生可以被检测。
基于未定义结果判断装置32的判断结果,控制装置23B执行下面的控制操作。当由期望值产生装置8B执行的指令的执行结果未定义时,控制装置23B操作优先状态转换装置30,以将期望值产生装置8B的状态转换回指令执行前的状态。因为指令首先由期望值产生装置8B执行,所以仿真装置7B在判断指令执行结果是否未定义时,还没有执行指令。控制装置23B,在此时发现指令执行结果未定义,不允许仿真装置7B执行判断产生未定义结果的指令。
在验证装置1B中,期望值产生装置8B基于作为未定义的指令执行结果的早先决定,转换回到指令执行之前的状态,而且进一步暂停仿真装置7B的指令执行。更具体地,验证装置1B使得期望值产生装置8B在执行指令时优先于其它装置,从而决定指令执行结果未定义,并随后复位期望值产生装置8B并基于所获得的判断结果暂停仿真装置7B的指令执行。因此,因为参考数据违反数据限制条件,所以验证装置1B避免了执行结果未定义的指令的执行。
下面参考图8和图9所示的流程图,描述用在验证装置1B的验证方法。图8是验证装置1B的总体操作流程图。图9是提取和示出未定义结果判断装置32和控制装置23B的操作的流程图。
首先,指令提供装置6向仿真执行单元10和期望值产生装置12提供指令(S801)。
期望值产生装置8B在期望值产生单元12中执行指令,并且将表明执行结果的期望值存储在第二存储装置13中(S802,S803)。此时,仿真装置7B待命指令的执行。
期望值,期望值产生单元12的指令执行结果,由提取装置3B提取并提供给未定义结果判断装置32(S804)。
未定义结果产生装置32分析从期望值产生单元12获得的信息,以判断期望值是否未定义,控制装置23B基于分析结果控制仿真装置7和期望值产生装置8(S805)。
参见图9所示的流程图描述步骤S805的细节。首先,未定义结果判断装置32分析从期望值产生单元12获得的信息,从而判断期望值是否未定义(S901)。判断结果提供到控制装置23B。
基于未定义结果判断装置32的判断结果,控制装置23B执行下面的控制操作。基于指令执行结果(期望值)的判断结果,控制装置23B传送仿真装置7B的控制信号给仿真装置7B。对于控制信号,该控制信号用作用于当指令执行结果(期望值)不包含未定义结果时,允许仿真装置7B指令执行的信号(S902),并且用作用于将期望值产生装置8B状态转换回到指令执行之前的状态,并在指令执行结果(期望值)包含未定义结果时,禁止(不允许)仿真装置7B指令执行的信号(S904)。
返回参见图8的流程图,描述接收到控制信号的仿真装置7B和期望值产生装置8B的操作。期望值产生装置8B优先于仿真装置7B执行指令,并且此时(当从控制装置23B接收到控制信号时)仿真装置7B还没有执行指令。接收到控制信号的执行备用装置31判断所接收到的控制信号的内容(S806),并且基于判断结果控制仿真装置7B,如下所述。
当所接收到的控制信号表明禁止(不允许)指令执行时,执行备用装置31根据命令不启动仿真执行单元10的指令的执行,使它处于持续暂停。执行备用装置31进一步返回到步骤S801,并且在判断下一个指令是否由指令提供装置6提供时保留备用。
当接收到的控制信号表明允许指令执行时,执行备用装置31在验证装置的主体2B中启动与常规技术的仿真类似的仿真(S807),并且将仿真执行单元10的执行结果存储在第一存储装置11(S808)。存储在第一存储装置11和第二存储装置13中的执行结果在比较装置9中被比较,以判断它们是否彼此一致(S809)。随后,仿真的全部步骤完成。
如所描述的一样,验证装置1B复位期望值产生装置8B,并基于对通过先前的指令执行获得的未定义期望值的判断结果,暂停仿真装置7B指令的执行。更具体地,验证装置1B将期望值产生装置8B的状态转换返回到指令执行前的状态,并且基于对指令的执行结果是否在期望值产生单元12中在前执行的判断结果,暂停仿真装置7B的指令执行。因此,执行结果未定义的指令的执行在验证装置1B中被阻止。因此,由于伪错误引起的验证的不连续可以避免,并且验证可以因此更有效。
第三较佳实施例
图10是根据本发明第三较佳实施例的验证装置1C的结构框图。验证装置1C的结构与根据第一较佳实施例的验证装置1A的结构基本相似。因此,任何相同或相似部分简单地提供有与第一较佳实施例中叙述相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“C”,从而与验证装置1A的部件相区别。更具体地,验证装置1C的特征在于控制装置23C的控制方法。该控制方法与验证装置1A中的控制装置23A的控制方法不同。
图11示出用在验证装置1C中的验证方法的流程图。验证装置1C的总体控制操作与图5的流程图中所示的验证装置1A的相同。然而,在中间数据的分析和基于步骤S503中获得的分析结果的控制操作上,验证装置1C稍微不同于验证装置1A。
流程图11示出中间数据的分析和基于所获得的分析结果的控制操作,该分析和控制操作为验证装置1C的特征所在。提取装置3A向指令分析装置21和参考数据分析装置22提供所提取的中间数据。
指令分析装置21判断接收自提取装置3的中间数据是否具有限制条件(S1101)。限制条件的存在与否更具体地基于对中间数据是否与存储(寄存)在数据限制信息存储单元20中的指令相一致的判断来决定。
当步骤S1101中的判断结果表明中间数据与所寄存的指令不一致时,指令分析装置21通知控制装置23C结果表明不一致。被通知了结果的控制装置23C确定相关指令不可能产生未定义结果。因此,确定的控制装置23C不控制仿真装置7和期望值产生装置8。因此,仿真装置7和期望值产生装置8执行指令。
当步骤S1101中的判断结果表明中间数据与所寄存的指令(带限制的指令)一致时,指令分析装置21通知参考数据分析装置22结果表明一致。被通知了结果的参考数据分析装置22进行下面的分析。参考数据分析装置22从包含在提供自提取装置3A的中间数据中的参考数据中提取在相关指令的操作数中指定的寄存器号的寄存器值。参考数据分析装置22进一步判断所提取的寄存器值是否满足数据限制条件(寄存在存储于数据限制信息存储单元20中数据限制信息中),并且通知控制装置23C判断结果(S1102)。
当步骤S1102中通知的判断结果表明满足数据限制条并且不违反时,控制装置23C确定相关指令不可能产生未定义结果,并且不控制仿真装置7和期望值产生装置8。因此,仿真装置7和期望值产生装置8执行指令。
当步骤S1102中通知的判断结果表明不满足数据限制条件并且违反时,控制装置23C确定相关指令可能产生未定义结果。已经作出上述决定的控制装置23C用没有数据限制条件的另外指令替换相关的指令(S1103)。没有数据限制条件的指令的示例是NOP(非操作)指令,其替换执行结果未定义的指令。替换指令的另外指令从控制装置23C经由指令提供装置6提供给仿真装置7和期望值产生装置8。
仿真装置7和期望值产生装置8执行替换的指令。因此,没有数据限制条件并不可能影响仿真的指令在仿真装置7和期望值产生装置8中被执行。因此,由于伪错误引起的验证的中断可以避免,并且验证可以因此更有效。
在根据第一较佳实施例的验证装置1A中,仿真装置7和期望值产生装置8在所执行的指令产生未定义结果时被暂停。与之相反,在根据本较佳实施例的验证装置1C中,执行结果未定义的指令被没有数据限制条件的另外的指令替换。当执行结果未定义的指令被这样的指令替换时,指令可以用仿真不受缺少数据限制条件造成的任何影响的方式执行。因此,由于伪错误引起的验证的中断可以避免,并且验证可以因此更有效。
根据第三较佳实施例的验证装置1C除了在指令产生未定义执行结果的情况下执行指令的替换以外,执行与根据第一较佳实施例的验证装置1A相同的控制操作。
第四较佳实施例
图12是根据本发明第四较佳实施例的验证装置1D的结构框图。验证装置1D基本上以与根据第三较佳实施例的验证装置1C相似的方式构成,并且任何相似或相同部件简单的提供有与第三较佳实施例中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“D”,从而与验证装置1C的部件相区别。更具体地,验证装置1D的特征在于控制装置23D的结构和控制方法。该结构和控制方法与验证装置1C的控制装置23C的结构和控制方法不同。
验证装置1D的总体控制方法(验证方法)与根据参考图5所示的流程图描述的第三较佳实施例的验证装置1C的总体控制方法(验证方法)相同。因此,验证装置1D的总体控制方法(验证方法)的描述被省略。
根据本较佳实施例的验证装置1D的控制装置23D的特征在于:当指令执行结果被判断为未定义时,用另外的参考数据替换指令执行时对应的参考数据。图13和图14示出验证装置1D的控制操作中的主要步骤。这些主要步骤与根据第三较佳实施例的验证装置1C的主要步骤基本类似,并且相同的步骤提供有相同的附图标记。然而,验证装置1F与验证装置1C的不同如下。
在根据第三较佳实施例的验证装置1C中,执行结果未定义的指令用不具有数据限制条件的另外的指令替换,如图11的步骤S1103所示。在根据本较佳实施例的验证装置1D中,采用参考数据被替换的步骤S1103D,替换如图13所示的指令的替换。
在验证装置1D中,在执行结果未定义的指令执行时对应的参考数据被另外的可以用作参考数据的数据所替换。更具体地,在指令执行时对应的数据的寄存器号转变为另外的寄存器号(通用目的寄存器的寄存器号),该另外的寄存器号能获取在指令的操作数中指定的参考数据位置(在第四较佳实施例中称作参考数据候选)。上述替换在参考数据被替换的步骤S1103D中。
为了执行上述控制操作,验证装置1D的控制装置23D包括用于搜索参考数据候选的参考数据候选搜索装置40、用于分析所搜索的参考数据候选是否满足数据限制条件的参考数据候选分析装置41和用于当参考数据候选满足数据限制条件时用参考数据候选替换参考数据的参考数据替换装置42。
参见图14所示的流程图,描述在控制装置23D中替换参考数据的步骤S1103的细节。
在处理器执行的指令的操作数中,存储有指令执行时对应的参考数据的寄存器号通常被指定。当参考数据分析装置22给出指令执行结果未定义的判断时,首先,基于执行结果未定义的指令的参考数据的寄存器号,搜索任何可替换的寄存器号(S1401)。搜索操作由参考数据候选搜索装置40执行。
当在S1401中判断任何可替换的寄存器号不存在时,指令被删除(S1402)。指令由参考数据替换装置42删除。
当在S1401中判断任何可替换的寄存器号存在时,判断位于寄存器号处作为替换候选的参考数据候选是否满足数据限制条件(S1403)。判断由参考数据候选分析装置41做出。当在S1403中参考数据候选判断为满足数据限制条件时,执行结果未定义的参考数据用参考数据候选替换。换句话说,关于指令的参考数据,执行结果被判断为未定义的候选用执行结果被判断为定义的候选所替换(S1404)。替换由参考数据替换装置42执行。
当在S1043中,参考数据候选判断为不满足数据限制条件时,再在S1401中判断是否有任何其它的参考数据。执行S1401-S1404的操作,以使参考数据用满足数据限制条件的数据替换。
总的来说,多个通用目的寄存器提供在处理器中,并且在指令的操作数中指定的寄存器号是可替换的。在验证装置1D中,利用处理器的这个特性,用满足数据限制条件的数据替换参考数据。在不可能替换的情况下,可以采用本发明其它较佳实施例中提出的任何对策,例如,根据第三较佳实施例的指令替换。
如所描述的一样,在验证装置1D中,执行结果未定义的指令的参考数据用其它数据替换,这避免了执行结果未定义的指令的执行。因此,由于伪错误引起的验证的中断可以避免,以便验证的效率可以提高。
第五较佳实施例
图15是根据本发明第五较佳实施例的验证装置1E的结构框图。验证装置1E基本上以与根据第三较佳实施例的验证装置1C相似的方式构成,并且任何相似或相同部件简单地提供有与根据第三较佳实施例的验证装置1C相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“E”,从而与验证装置1C的部件相区别。
验证装置1E的特征在于控制装置23E的结构和控制方法。控制装置23E包括指令产生装置43和指令放置装置44。由于这些装置43和44被提供并用在控制方法中,所以控制装置23E与验证装置1C的控制装置23C不同。
验证装置1E的总体控制方法(验证方法)与根据参考图5所示的流程图描述的第三较佳实施例的验证装置1C的控制方法(验证方法)相同。因此,验证装置1E的总体控制方法(验证方法)的描述被省略。
根据本较佳实施例的验证装置1E的控制装置23E的特征在于:当指令执行结果被判断为未定义时新产生用于转变参考数据的指令,并且所产生的用于转变参考数据的指令放置在产生的指令优先于执行结果未定义的指令执行的位置处。图16示出用在验证装置1E中的控制方法(验证方法)的主要步骤。验证装置1E的总体控制操作与根据参考图5所示的流程图描述的第三较佳实施例的验证装置1C的控制方法(验证方法)相同。因此,相同的步骤提供有相同的附图标记。然而,验证装置1E与验证装置1C的不同如下。
控制装置23E执行步骤S1103H,在该步骤中,当指令执行结果被判断为未定义时,新产生用于转变参考数据的指令,并且所产生的用于转变参考数据的指令放置于其优先于执行结果未定义的指令执行的位置处。参见图17所示的流程图,描述在验证装置1E中执行的指令产生和放置的细节。
首先,产生指令,该指令用于用相关指令的数据限制条件范围内的值更新在指令的操作数(通用目的寄存器的寄存器号)中指定的参考数据的位置(S1701)。这个操作由指令产生装置43执行。更新指令被优先于执行结果未定义的指令放置(S1702)。这个操作由指令放置装置44执行。因此转变的指令从控制装置23E经由指令提供装置6提供给期望值产生装置8,并且在期望值产生装置8中执行。
因此,对应不满足数据限制条件的数据的指令被对应满足数据限制条件的数据的指令替换,并且替换的指令在期望值产生装置8和仿真装置7中执行。因此,可以避免未定义结果的产生。
产生在指令产生装置43中的参考数据更新指令如下产生。例如,用于将满足数据限制条件的更新数据存储在寄存器中的存储访问指令作为参考数据更新指令被产生,在这种情况下,有必要将每个指令对应的满足数据限制条件的更新数据的值预先存储在数据存储器或其类似物中。进一步,用于将满足数据限制条件的值指定为操作数中的立即值的MOV指令作为参考数据更新指令被产生。
因此,产生指令,该指令用于将执行结果未定义的指令的参考数据更新为执行结果定义的指令的数据,并且所产生的参考数据更新指令优先于执行结果未定义的指令执行。因此,由于伪错误引起的验证的中断可以避免,这提高了验证的效率。
第六较佳实施例
图18是根据本发明第六较佳实施例的验证装置1F的结构框图。验证装置1F的结构与根据第三较佳实施例的验证装置1C的结构基本相似。因此,任何相同或相似部分简单地提供有与根据第三较佳实施例的验证装置1C中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“E”,从而与验证装置1C的部件相区别。更具体地,验证装置1F的特征在于控制装置23F的结构和控制方法。该结构和控制方法与验证装置1C的控制装置23C的结构和控制方法不同。
验证装置1F的总体控制方法(验证方法)与根据参考图5所示的流程图描述的第三较佳实施例的验证装置1C的控制方法(验证方法)相同。因此,验证装置1F的总体控制方法(验证方法)的描述被省略。
根据本较佳实施例的验证装置1F的控制装置23F的特征在于:当指令执行结果被判断为未定义时,更新在指令执行时对应的参考数据。图19示出验证装置1F的控制操作中的主要步骤。这些步骤与根据第三较佳实施例5的验证装置1C的步骤基本相同,并且相同的步骤提供有相同的附图标记。然而,验证装置1F与验证装置1C的不同如下。
在根据第三较佳实施例的验证装置1C中,如图11的步骤S1103所示,执行结果未定义的指令用不带有数据限制条件的另外的指令替换。在根据本较佳实施例的验证装置1F中,如下所述,执行参考数据被替换的步骤S1103F,代替上述指令的替换。
在参考数据被更新的步骤S1103F中,存储在第一存储装置11和第二存储装置13中的参考数据被强制更新为相关指令的数据限制条件范围内的值。因此,即使在参考数据的指令不满足数据限制条件的情况下,参考数据被更新为满足数据限制条件的数据,并且更新的参考数据被指令执行。因此,未定义结果的产生可以避免。为了在验证装置1F中强制更新指令的参考数据,第一存储装置11(在仿真装置7侧)和第二存储装置13(在期待值产生装置8侧)分别具有强制更新记录内容(参考数据)的功能。
如所描述的一样,在验证装置1F中,执行结果未定义的指令的参考数据被强制更新为相关指令的数据限制条件范围内的值,这避免了执行结果未定义的指令的执行。因此,由于伪错误引起的验证的不连续可以避免,并且验证可以因此更有效。
第七较佳实施例
图20是根据本发明第七较佳实施例的验证装置1G的结构框图。验证装置1G的结构与根据第三较佳实施例的验证装置1C的结构基本相似。因此,任何相同或相似部分简单地提供有与第三较佳实施例中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“G”,从而与验证装置1C的部件相区别。更具体地,验证装置1G的特征在于在控制装置23G的结构和控制方法。该结构和控制方法与验证装置1C的控制装置23C的结构和控制方法不同。
参考图21和图22所示的流程图,描述用在验证装置1G中的控制方法(验证方法)。这些流程图基本上与示出根据第三较佳实施例的验证装置1C中控制方法(验证方法)的图5和图11基本类似,并且相同的步骤提供有相同的附图标记。根据本实施例的验证装置1G的控制装置23G,当在执行仿真前作为指令执行结果的期望值被判断(假定)为未定义时,不用没有数据限制条件的另外的指令替换执行结果未定义的指令(图5中的步骤S503和图11中的步骤S1103)。相反,控制装置23G将从实际执行的指令(期望值和仿真结果)获得的执行结果强制转换为不产生未定义结果的值(图18中的步骤S503G和图19中的步骤S1103G)。然而,步骤S503和S1103不在提取指令的步骤S502后立即执行,而是在指令在仿真装置7和/或期望值产生装置8中执行之后执行。
更具体地,控制装置23G将存储在第一存储装置11和第二存储装置13中的指令执行结果(期望值和仿真结果)强制更新为指令中可以被定义的值。因此,即使在其参考数据不满足数据限制条件的指令的情况下,指令执行结果也可被更新为定义的数据(判定为非未定义的数据),这避免未定义结果的产生。
如所描述的一样,在验证装置1G中,被判断为未定义的指令执行结果被强制更新为被判断为定义的数据,以致避免了执行结果未定义的指令的执行。因此,由于伪错误引起的验证的不连续可以避免,并且验证可以更有效地实现。
如所描述的,当执行结果被强制更新时,有必要将仿真结果和期望值更新为相同的值。为了这样做,仿真结果和期望值被更新为合适的相同的值,或它们中的一个可以参考另一个的值更新为另一个的值。
为了实施强制更新功能,在验证装置1G中,第一存储装置11(在仿真装置7侧)和第二存储装置13(在期望值产生装置8侧)分别具有强制更新记录内容(参考数据)的功能。然而,在参考仿真结果的值将期望值更新为仿真结果值的情况下,强制更新功能可以提供在仿真装置7和期望值产生装置8之一中。
在根据本较佳实施例的验证装置1G中,指令分析装置21和参考数据分析装置22用于判断未定义结果的产生,然而,根据第二较佳实施例的未定义结果判断装置32可以用来判断未定义结果的产生。更具体地,未定义结果的产生可以根据期望值产生装置8中的指令执行结果的信息判断,以便指令执行结果被更新。
第八较佳实施例
图23是根据本发明第八较佳实施例的验证装置1H的结构框图。验证装置1H的结构与根据第三较佳实施例的验证装置1C的结构基本相似。因此,任何相同或相似部分简单地提供有与第三较佳实施例中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“H”,从而与验证装置1C的部件相区别。更具体地,验证装置1H包括指令产生限制创建装置50H、指令发出限制创建装置51H和指令产生装置52。指令产生限制创建装置50H和指令创建装置52被提供在验证装置的主体2H中。指令发出限制创建装置51H被提供在执行控制装置4H中。验证装置1H的特征在于控制装置23H的结构和控制方法(验证方法)被描述。
在验证装置1H中,指令基于指令产生限制创建装置50H产生的指令产生限制由指令产生装置52产生,并且提供给指令提供装置6。指令产生限制包括所产生的指令类型和可在操作数中选择的寄存器号的条件。作为指令产生限制的示例可以为,“可以在加法指令的操作数中选择的通用目的寄存器号是寄存器0直到寄存器8”,“在VLIW方法的处理器中多于一个的加法指令不能同时执行”,或其它。
指令产生装置52可以随机产生指令产生限制范围内的指令。指令产生装置52可以进一步随机产生待提供给处理器的所有指令,或可以向处理器混合提供手动产生的指令和随机产生的指令。
验证装置1H的总体控制方法(验证方法)与根据参考图21所示的流程图描述的第七较佳实施例的验证装置1G的控制操作(验证方法)相同。因此,验证装置1H的总体控制方法(验证方法)的描述被省略。
根据本较佳实施例的验证装置1H的控制装置23H的特征在于:当指令执行结果(仿真结果和期望值)被判断为未定义时,产生更新执行结果的附加指令并向指令提供装置6提供所产生的附加指令。图24示出验证装置1H中的控制方法(验证方法)的主要步骤。这些步骤与根据第三较佳实施例的验证装置1C的步骤基本相同,并且相同的步骤提供有相同的附图标记。然而,验证装置1H与验证装置1C的不同如下。
当指令执行结果(期望值)被判断为未定义时,验证装置1H的控制装置23H,不用没有数据限制条件的另外的指令替换不产生未定义结果的指令(图5中的步骤S502和图11中的步骤S1103)。相反,控制装置23H在相关指令执行后产生待执行的更新指令(步骤S1103-1H),并向指令提供装置6提供所产生的更新指令,以便更新指令在仿真装置7和期望值产生装置8中执行(步骤S1103-2H)。
更新指令是用于强制更新从仿真装置7和/或期望值产生装置8获得的指令执行结果(仿真结果和期望值)的指令。当参考数据分析装置22确定指令执行结果未定义时,控制装置23H使得指令产生装置52发出指令发出限制,该指令发出限制指示用于未定义执行结果的更新指令的发出。更新指令的具体示例包括用于从存储未定义执行结果的第一存储装置11和第二存储装置13中读取执行结果并将执行结果更新为合适的值的存储访问指令,和用于根据MOV指令将存储执行结果的第一存储装置11和第二存储装置12中的记录数据更新为合适的值的指令。
指令产生装置52被强制发出表示指令的强制更新的指令发出限制,并且所发出的指令发出限制给予指令提供装置6。指令提供装置6基于指令发出限制产生更新指令并向仿真装置7和期望值产生装置8提供所产生的更新指令,以便在装置7和装置8中执行更新指令。因此,执行结果未定义的指令执行时,在对应执行结果(未定义)的指令被执行后,作为附加处理,执行结果(未定义)被强制更新为定义的数据。因此,由仿真装置7和期望值产生装置8的指令执行结果之间的不一致导致的伪错误可以避免。
根据本较佳实施例的控制方法不仅可以在图23所示的验证装置1H中被执行,也可以以相同的方式在图25所示的验证装置1H’中被执行。验证装置1H’以与验证装置1H基本相同的方式构成,并且任何相同或相似部件提供有相同的附图标记。然而,具有任何轻微不同的部件提供有(’)。
在验证装置1H中,指令发出限制创建装置51H基于控制装置23H的命令,创建更新指令的指令发出限制,并且向指令产生装置52提供所创建的限制。与之对比,在验证装置1H’中,没有提供用于创建指令发出限制的指令发出限制创建装置51H。可选择地,如下描述,控制装置23H’强制指令产生限制创建装置50H’来创建指令产生限制,并且向指令产生装置52提供所创建的指令产生限制。
控制装置23H’强制指令产生限制创建装置50H’创建的指令产生限制是用于强制指令产生装置52发出未定义指令执行结果(仿真结果和期望值)的更新指令的限制。因此,在验证装置1H’中,当未定义结果以与验证装置1H中相似的方式产生时,指令产生装置52发出用于未定义结果的更新指令。
在验证装置1H和1H’中,不需要在产生未定义结果之后立即强制发出用于未定义结果的更新指令。特别地,在指令产生装置52随机产生指令的情况下,如果更新指令在产生未定义结果之后立即被强制发出,那么某些规律性以指令产生的顺序产生。因此,指令不可能在验证中以随机的顺序有效地给出。因此,用于更新未定义结果的指令可以在对应未定义结果的指令被执行之前执行。作为确保“用于对应未定义结果的指令”执行的可能方法,“用于对应未定义结果的指令”的发出在未定义结果产生时是禁止的,并且在用于未定义结果的更新指令被发出之后,“用于对应未定义结果指令”的发出的禁止被释放。
在本较佳实施例中,指令分析装置21和参考数据分析装置22用于判断未定义结果的产生,然而,根据第二较佳实施例的未定义结果判断装置32也可以用作判断。更具体地,未定义结果的产生可以根据期望值产生装置12中的指令执行结果的信息决定,以便更新指令基于判断结果被强制发出。
第九较佳实施例
图26是根据本发明第九较佳实施例的验证装置1J的结构框图。验证装置1J的结构与根据第八较佳实施例的验证装置1H的结构基本相似。因此,任何相同或相似部分简单地提供有与第三较佳实施例中相同的附图标记,并且不再描述。然而,那些操作相似但包括任何轻微不同的操作在它们附图标记的末尾提供有“J”,从而与验证装置1H的部件相区别。更具体地,验证装置1J包括指令产生限制创建装置50J、指令发出限制创建装置51J、指令产生装置52和参考数据候选确定装置60。提取装置3J的控制方法(验证方法)与根据第八较佳实施例的提取装置3A的控制方法(验证方法)不同。指令产生限制创建装置50J和指令产生装置52位于验证装置的主体2J中。指令发出限制创建装置51J位于执行控制装置4J中。
提取装置3J从第二存储装置13中每一具有数据限制条件的指令提取下面的数据值。所提取的数据值是可选择地作为参考数据的寄存器号和存储在寄存器中的数据值。被选择作为参考数据的寄存器号描述如下。例如,DIV指令具有除数不能为零的数据限制条件,并且当DIV指令执行时,被选择作为除数的通用目的寄存器号表示可选择地作为参考数据的寄存器号。例如,假定当指令执行时,根据任意的数据限制条件选择作为除数的通用目的寄存器号是寄存器0直到寄存器31,那么提取装置3J提取当前存储在寄存器0直到寄存器31的数据值。每一具有数据限制条件指令都提取数据信息。为了这样提取数据信息,提取装置3J在从数据限制信息存储单元20读取数据限制条件的同时提取数据信息。
执行控制装置4J根据提取装置3J所提供的数据信息和数据限制信息存储单元20所提供的数据限制信息,确定参考数据候选。参考数据候选指的是可以由具有数据限制条件的指令所对应的寄存器号。参考数据候选由参考数据候选确定装置60每一指令地确定。参考数据候选表示寄存器,寄存器中可以确保“候选值满足相关指令的数据限制条件,并且当指令与作为参考数据的候选一起发出时,未定义结果不会产生”。控制装置23J向指令发出限制创建装置51J传送命令,该命令用于创建指令的发出限制,该指令的参考数据是由参考数据候选确定装置60确定的参考数据候选。指令发出限制创建装置51J根据控制装置23J传送的用于创建发出限制的命令,创建指令限制,并向指令产生装置52提供所创建的限制。指令产生装置52基于指令发出限制创建装置51J提供的指令发出限制产生指令,并向指令提供装置6提供所产生的指令。指令提供装置6提供指令给其中执行指令的仿真装置7和期望值产生装置8。
下面参考图27和28所示的流程图,描述用在验证装置1J中的控制方法(验证方法)。用在验证装置1J中的控制方法与根据第三较佳实施例的验证装置1C的操作(参考图5)基本类似。因此,执行相同操作的任何步骤简单地提供有相同的步骤号,并且不再描述。然而,在验证装置1J中,中间数据的提取(S502J)、提取结果的分析和基于分析结果的控制(S503J)在时间上在指令的提供(S501)之前执行。参考图28所示的流程图描述步骤S502J和S503J中的操作细节。
首先,描述用在验证装置1J中的验证方法的大概。提取装置3J提取指令的中间数据。如前面描述的,中间数据是可以由具有数据限制条件的指令选择的作为参考数据的寄存器号和存储在寄存器中的数据值。
执行控制装置4J利用提取装置3J提供的中间数据创建待提供给指令提供装置52的指令发出限制。指令产生装置52基于所提供的指令发出限制产生指令,并将所产生的指令通过指令提供装置6提供给仿真装置7和期望值产生装置8。仿真装置7、期望值产生装置8和比较装置9的操作与其它实施例中描述的类似。
下面描述执行控制装置4J的操作,这是用在验证装置1J中的验证方法的基本部分。首先,参考数据候选确定装置60确定在作为参考数据的相关指令中可用的寄存器(参考数据候选)。参考数据候选关于具有数据限制条件的所有指令被确定。下面参考图28所示的流程图描述确定参考数据候选方法的细节。
参考数据候选确定装置60选择具有数据限制条件的指令中的一个(S2801)。参考数据候选确定装置60进一步利用提取装置3J提供的中间数据,分析可选择作为参考数据的存储在寄存器中的数据值是否满足数据限制条件(S2802)。
当在S2802中数据值被判断为满足限制时,相关寄存器被确定为参考数据候选(S2803)。对所有可选择作为与指令有关的参考数据的寄存器进行分析(S2804)。
当步骤S2802-S2804在具有数据限制条件的指令的一个中完成时,判断是否存在具有数据限制条件的任何其它指令(S2805)。当在S2805中检测出存在任何其它的指令时,执行步骤S2802-S2804。因此,参考数据候选(满足数据限制条件的参考数据)在具有数据限制条件的所有指令中被确定。
参考数据候选在所有指令中被确定之后,控制装置23J执行下面的控制操作。在指令提供装置6向仿真装置7和期望值产生装置8提供指令时,控制装置23J执行对应由参考数据候选确定装置60确定的参考数据候选的指令。更具体的描述控制操作,首先,控制装置23J命令指令发出限制创建装置51J创建这样的指令发出限制:“当执行指令时,指令关于参考数据候选确定装置60中确定的参考数据候选被执行”。响应于命令,指令发出限制创建装置51J所产生的指令发出限制提供给指令产生装置52。接收到指令发出限制的指令产生装置52根据限制产生指令,并且将所产生的指令提供给指令提供装置6。指令提供装置6向仿真装置7和期望值产生装置8提供指令(包括指令发出限制)。因此,可以实现控制操作。
验证装置1J的执行控制装置4J通过观测存储参考数据的寄存器的值,预先准备满足数据限制条件的参考数据候选。之后,当具有数据限制条件的指令提供给仿真装置7和期望值产生装置8时,从候选中选择参考数据,以便可以避免未定义结果的产生。
在验证装置1J中,在具有数据限制条件的所有指令中,分析可选择作为参考数据的所有寄存器是否是参考数据候选。因此,通常存在多个参考数据候选。然而,多个参考数据候选并不总是必须的,并且该处理可以在一个参考数据被确定时转向下一个指令。因此,可以降低参考数据候选确定装置60的执行时间。在没有参考数据候选的情况下,可以命令指令提供装置6禁止相关指令的发出。
根据本较佳实施例的控制方法不仅可以在图26所示的验证装置1J中被执行,而且也可以以相似的方式在图29所示的验证装置1J’中被执行。验证装置1J’以与验证装置1J基本相同的方式构成,并且任何相同或类似的部件提供有相同的附图标记。然而,具有任何不同构成的部件提供有(’)。
图26中所示的控制装置向指令产生装置52提供根据参考数据候选确定装置60确定的候选,作为指令发出限制,以致在由指令产生装置52产生的指令中,避免了未定义结果的产生。与之对比,图29所示的控制装置23J’将从参考数据候选确定装置60获得的结果添加至由指令产生限制创建装置50J’产生的现有的指令产生限制。从而,验证装置1J’避免了在指令产生装置52产生的指令中产生未定义结果。因此,指令发出限制创建装置51J并不提供在验证装置1J’中。
如所描述的一样,在验证装置1J和1J’中,具有数据限制条件的指令所参考的参考数据候选根据寄存器值来确定。因此,当指令产生装置52产生指令时,参考数据候选被参考,以致可以避免未定义结果的产生。执行结果未定义的指令的执行因此避免。因此,由伪错误引起的验证的不连续可以避免,这提高了验证的效率。
在第一到第九较佳实施例中叙述的验证装置1A-1J和1J’和验证方法中,验证对象并不限于处理器,并且根据对验证对象执行的处理中的中间数据,这些装置和方法可以应用到执行结果未定义的任何验证对象中。测试模式可以是人工描述的测试模式或是随机产生的测试模式。在各个实施例中,描述了由参考数据的数据限制条件引起的未定义结果。然而,引起未定义结果的因素可以是其它的,只要提取装置3A、3B和3J可以根据未定义结果的因素提取信息,并且将所提取的信息寄存在数据限制信息中。例如,当未定义结果如第七较佳实施例中所描述的一样被更新时,由于执行指令时,诸如中断的外部因素造成的执行结果未定义的情况,可以被处理。
工业上的适用性
根据本发明的验证装置和验证方法可以解决这样的问题:因为在将作为验证对象的测试模式给仿真器并且仿真器用于生成期望值的情况下,当仿真结果和期望值被比较和验证时,执行指令时对应的参考数据不满足数据限制条件,所以由于未定义的执行结果产生伪错误。
更具体地,由于伪错误引起的验证中断以这样的方式被避免:在之后的仿真中,未定义结果的产生被避免,并且源自未定义结果的任何影响被移除。因此,上述的问题可以解决,并且验证可以获得高效率。本发明对于计算装置上的半导体集成电路及其类似物的验证尤其有效。
Claims (35)
1、一种验证装置,包括:
包含至少一个处理器的电路数据单元;
仿真装置;
期望值产生装置;
比较装置;
提取装置;以及
执行控制装置,其中
仿真装置对电路数据单元中处理器可执行的指令执行仿真,以产生仿真结果,
期望值产生装置当指令执行时产生期望值,
比较装置将仿真结果与期望值进行比较,
提取装置提取当期望值产生装置产生期望值时对应的信息或所产生的期望值,并且
执行控制装置基于提取装置所提取的信息判断指令是否满足数据限制条件,并基于所判断的结果,控制在仿真装置和期望值产生装置中指令的执行。
2、如权利要求1所述的验证装置,其中
所述执行控制装置观测存储所述提取装置所提取信息的寄存器值,以判断所述指令是否满足所述数据限制条件。
3、如权利要求1所述的验证装置,其中
所述执行控制装置基于所述判断结果暂停所述仿真装置和所述期望值产生装置中的指令的执行。
4、如权利要求3所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有所述数据限制条件时,通过用存储在所述数据限制信息存储单元中的信息核对所述指令,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述数据限制条件时,暂停所述仿真装置和期望值产生装置。
5、如权利要求1所述的验证装置,其中
所述仿真装置包括执行备用装置,用于暂停所述仿真装置的仿真直至从所述执行控制装置接收到暂停释放通知,
所述期望值产生装置包括优先状态转换装置,用于将所述期望值产生装置的状态转换回最后指令执行之前的状态,并且
所述执行控制装置包括:
未定义结果判断装置,用于判断在所述期望值产生装置中的作为指令执行结果的所述期望值是否产生不能保证作为执行结果的未定义结果;和
控制装置,用于在所述判断结果表明期望值产生未定义结果时,使所述执行备用装置暂停在所述仿真装置中的指令的执行,并使所述优先状态转换装置转换所述期望值产生装置的状态。
6、如权利要求1所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有数据限制条件时,通过用存储在所述数据限制信息存储单元中的信息核对所述指令,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述的数据限制条件时用不具有所述数据限制条件的另外指令替换所述指令,并在所述仿真装置和期望值产生装置中执行所替换的另外指令。
7、如权利要求1所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有所述数据限制条件时,通过用存储在所述数据限制信息存储单元中的信息核对所述指令,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述数据限制条件时将所述指令改正为参考数据满足所述数据限制条件的另外指令,并在所述仿真装置和期望值产生装置中执行所改正的指令。
8、如权利要求7所述的验证装置,其中
所述控制装置用满足所述数据限制条件的另外的参考数据替换参考数据不满足所述数据限制条件的指令的参考数据,以在所述仿真装置和期望值产生装置中执行所替换的另外指令。
9、如权利要求8的所述验证装置,其中
所述控制装置包括:
参考数据侯选搜索装置,用于为参考数据由所述参考数据分析装置判断为不满足所述数据限制条件的指令搜索另外的参考数据候选;
参考数据候选分析装置,用于分析参考数据侯选搜索装置搜索的另外的参考数据候选是否满足所述数据限制条件;和
参考数据替换装置,用于在另外的参考数据候选满足所述数据限制条件时,用所述另外的参考数据候选替换所述参考数据。
10、如权利要求7所述的验证装置,其中
所述控制装置产生更新指令,并且在时间上优先于所述指令在所述仿真装置和期望值产生装置中执行该更新指令,该更新指令用于更新对应不满足所述数据限制条件的参考数据的指令的参考数据。
11、如权利要求10所述的验证装置,其中
所述控制装置包括:
指令产生装置,用于产生更新指令,该更新指令用于将由所述参考数据分析装置判断为所对应的参考数据不满足所述数据限制条件的指令的参考数据更新为满足所述数据限制条件的另外的参考数据,
指令放置装置,用于放置更新指令,以便所述更新指令可以在所述仿真装置和期望值产生装置中在时间上优先于所述指令执行。
12、如权利要求1所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述数据限制条件时,强制更新所述指令的参考数据以在所述仿真装置和期望值产生装置中满足所述数据限制条件。
13、如权利要求1所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述数据限制条件时,更新在所述仿真装置和期望值产生装置中获得的作为指令执行结果的仿真结果和期望值,以使所述仿真结果和期望值具有相等的值。
14、如权利要求1所述的验证装置,其中
所述提取装置提取在所述期望值产生装置中执行的指令以及在所述指令执行时对应的参考数据,并且
所述执行控制装置包括:
数据限制信息存储单元,用于存储在所述指令执行时对应的参考数据的限制条件的存在与否以及所述限制条件的内容;
指令分析装置,用于通过用存储在所述数据限制信息存储单元中的信息核对所述提取装置提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析装置,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;和
控制装置,用于在所述指令的参考数据不满足所述数据限制条件时,产生用于更新在所述仿真装置和期望值产生装置中获得的作为指令执行结果的仿真结果和期望值的更新指令,并在所述仿真装置和期望值产生装置中执行该更新指令。
15、一种验证方法,其中指令的仿真结果通过在包含至少一个处理器的电路数据单元中的指令的仿真获得,并且指令仿真时的期望值依靠指令获得,以便该电路数据单元基于仿真结果和期望值的比较而被验证,该方法包括:
提取步骤,用于提取在期望值产生时对应的信息或所产生的期望值;
判断步骤,用于基于在所述提取步骤中提取的信息判断所述指令是否满足数据限制条件;以及
控制步骤,用于基于在所述判断步骤中的判断结果控制所述指令的仿真和指令期望值的产生。
16、如权利要求15所述的验证方法,其中
观测存储有所述提取步骤中提取的信息的寄存器的值,以便在所述控制步骤中判断所述指令是否满足所述数据限制条件。
17、如权利要求15所述的验证方法,其中
所述数据限制条件包括限制所述参考数据值的范围的条件。
18、如权利要求15所述的验证方法,其中
在所述控制步骤中,基于所述判断步骤中的判断结果暂停所述指令的仿真和所述指令期望值的产生。
19、如权利要求18所述的验证方法,其中
所述提取步骤包括提取用于产生期望值的指令和在产生指令期望值时对应的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于分析在所述提取步骤中提取的指令的参考数据是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时,暂停所述指令的仿真和所述指令期望值的产生。
20、如权利要求19所述的验证方法,其中
在所述控制步骤中,所述指令的仿真和所述指令的期望值的产生被暂停,直至不具有所述数据限制条件的指令或满足所述数据限制条件的指令作为下一个指令被提供。
21、如权利要求15所述的验证方法,其中
在所述控制步骤中基于所述判断步骤中的判断结果,在所述指令之后执行的下一个指令的仿真和该下一个指令的期望值的产生被控制。
22、如权利要求21所述的验证方法,其中
在所述控制步骤中基于所述判断步骤中的判断结果,所述指令的仿真被暂停,并且所述指令的期望值的产生被转换回到产生之前的状态。
23、如权利要求22所述的验证方法,其中
通过所述指令期望值的产生获得的期望值在所述提取步骤中被提取,并且
所述控制步骤包括:
未定义结果判断步骤,用于判断通过所述指令期望值的产生获得的期望值是否产生不能被保证作为所述指令执行结果的未定义结果;以及
优先状态转换步骤,用于在所述判断结果表明所述期望值产生未定义结果时,暂停所述指令的仿真并将所述指令期望值的产生转换回到产生之前的状态。
24、如权利要求15所述的验证方法,其中
所述提取步骤包括提取在所述期望值产生中执行的指令以及在执行所述指令时对应的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于通过用在所述指令执行时对应的参考数据的限制条件核对在所述提取步骤中提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,通过用所述指令执行时对应的参考数据的限制条件核对所述指令的参考数据,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时用不具有数据限制条件的另外指令替换所述指令,仿真所替换的另外指令并且产生所替换的另外指令的期望值。
25、如权利要求15所述的验证方法,其中
所述提取步骤包括提取在所述期望值产生中执行的指令以及在执行所述指令时对应的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于通过用在所述指令执行时对应的参考数据的限制条件核对在所述提取步骤中提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时,将所述指令改正为参考数据满足所述数据限制条件的另外指令,仿真所改正的指令并且产生所改正的指令的期望值。
26、如权利要求25所述的验证方法,其中
在所述控制步骤中,在所述指令的参考数据不满足所述数据限制条件时,用满足所述数据限制条件的另外的参考数据替换所述指令的参考数据。
27、如权利要求26所述的验证方法,其中
所述控制步骤包括:
候选搜索处理,用于为在所述参考数据分析步骤中被分析出具有不满足所述数据限制条件的参考数据的指令,搜索另外的参考数据候选;
候选分析处理,用于分析在所述候选搜索处理中搜索的另外的参考数据候选是否满足所述的数据限制条件;以及
参考数据替换处理,用于把所述参考数据替换为满足所述数据限制条件的另外的参考数据候选。
28、如权利要求25所述的验证方法,其中
在控制步骤中,在所述指令的参考数据不满足数据限制条件时,用于把所述指令的参考数据更新为满足所述数据限制条件的另外参考数据的更新指令产生,所述参考数据基于该更新指令被更新,并且所述指令被仿真,并且所述指令的期望值产生。
29、如权利要求28所述的验证方法,其中
所述控制步骤包括:
更新指令产生处理,用于在所述指令的参考数据不满足所述数据限制条件时,产生用于将所述指令的参考数据更新为满足所述数据限制条件的另外的参考数据的更新指令;以及
指令放置处理,用于放置更新指令,以便在所述指令仿真和所述指令的期望值产生之前执行所述更新指令。
30、如权利要求15所述的验证方法,其中
在所述控制步骤中,当在所述判断步骤中判断所述参考数据不满足所述数据限制条件时,将所述参考数据更新为满足所述数据限制条件的数据。
31、如权利要求30所述的验证方法,其中
所述提取步骤包括提取在所述期望值产生中执行的指令以及在执行所述指令时参考的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于通过用在所述指令执行时对应的参考数据的限制条件核对在所述提取步骤中提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时,强制将所述参考数据更新为满足所述数据限制条件的另外的参考数据,仿真所述指令并且产生所述指令的期望值。
32、如权利要求24所述的验证方法,其中
在所述控制步骤中,当在所述判断步骤中判断所述参考数据不满足所述数据限制条件时,通过所述指令的仿真和所述指令期望值的产生获得的仿真结果和期望值被更新为具有相同的值。
33、如权利要求32所述的验证方法,其中
所述提取步骤包括提取在所述期望值产生中执行的指令以及在执行所述指令时对应的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于通过用在所述指令执行时对应的参考数据的限制条件核对在所述提取步骤中提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时,更新通过所述指令的仿真和所述指令期望值的产生获得的仿真结果和期望值以使其具有相同的值。
34、如权利要求32所述的验证方法,其中
在所述控制步骤中,所述仿真结果被更新为具有与所述期望值相同的值,或者所述期望值被更新为具有与所述仿真结果相同的值。
35、如权利要求15所述的验证方法,其中
所述提取步骤包括提取在所述期望值产生中执行的指令以及在执行所述指令时对应的参考数据的步骤,并且
所述控制步骤包括:
指令分析步骤,用于通过用在所述指令执行时对应的参考数据的限制条件核对在所述提取步骤中提取的所述指令和参考数据,分析所述指令是否具有所述数据限制条件;
参考数据分析步骤,用于在所述指令具有所述数据限制条件时,分析所述指令的参考数据是否满足所述数据限制条件;以及
控制步骤,用于在所述指令的参考数据不满足所述数据限制条件时,产生用于更新通过所述指令的仿真和所述指令期望值的产生获得的仿真结果和期望值的更新指令,并且在所述指令仿真和所述指令的期望值产生之后执行该更新指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004012383A JP2005208762A (ja) | 2004-01-20 | 2004-01-20 | 検証装置および検証方法 |
JP012383/2004 | 2004-01-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1910588A true CN1910588A (zh) | 2007-02-07 |
Family
ID=34792376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800028608A Pending CN1910588A (zh) | 2004-01-20 | 2005-01-18 | 验证装置和验证方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080221861A1 (zh) |
JP (1) | JP2005208762A (zh) |
CN (1) | CN1910588A (zh) |
WO (1) | WO2005069175A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676920B (zh) * | 2008-09-15 | 2013-11-20 | 新思科技有限公司 | 用于合并覆盖数据的eda覆盖日志的方法和装置 |
CN105049234A (zh) * | 2015-06-24 | 2015-11-11 | 盛科网络(苏州)有限公司 | 交换机芯片协同仿真的验证系统及方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8006155B2 (en) * | 2007-01-09 | 2011-08-23 | International Business Machines Corporation | Testing an operation of integrated circuitry |
US8027825B2 (en) * | 2007-01-09 | 2011-09-27 | International Business Machines Corporation | Structure for testing an operation of integrated circuitry |
CN103177165A (zh) * | 2013-04-15 | 2013-06-26 | 帝特汽车技术(上海)有限公司 | 客车车身结构设计系统、客车侧翻仿真测试系统及方法 |
US9842043B2 (en) * | 2014-02-18 | 2017-12-12 | Hariprakash Agrawal | System and method to implement an electronic document based automated testing of a software application |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3018912B2 (ja) * | 1994-08-12 | 2000-03-13 | 横河電機株式会社 | 検証支援システム |
TW421761B (en) * | 1994-04-12 | 2001-02-11 | Yokogawa Electric Corp | Verification support system |
US6871298B1 (en) * | 1999-11-12 | 2005-03-22 | Obsidian Software, Inc. | Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing |
US7120572B1 (en) * | 2000-01-06 | 2006-10-10 | Sun Microsystems, Inc. | Memory efficient program pre-execution verifier and method |
US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
JP2003271694A (ja) * | 2002-03-18 | 2003-09-26 | Fujitsu Ltd | プロセッサを含む論理回路の検証用シミュレーション方法及び装置並びに論理回路検証用エラー検出プログラム |
US7228266B1 (en) * | 2003-12-05 | 2007-06-05 | Unisys Corporation | Instruction processor emulator having separate operand and op-code interfaces |
-
2004
- 2004-01-20 JP JP2004012383A patent/JP2005208762A/ja not_active Withdrawn
-
2005
- 2005-01-18 US US10/586,620 patent/US20080221861A1/en not_active Abandoned
- 2005-01-18 CN CNA2005800028608A patent/CN1910588A/zh active Pending
- 2005-01-18 WO PCT/JP2005/000528 patent/WO2005069175A1/ja active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676920B (zh) * | 2008-09-15 | 2013-11-20 | 新思科技有限公司 | 用于合并覆盖数据的eda覆盖日志的方法和装置 |
CN105049234A (zh) * | 2015-06-24 | 2015-11-11 | 盛科网络(苏州)有限公司 | 交换机芯片协同仿真的验证系统及方法 |
CN105049234B (zh) * | 2015-06-24 | 2018-08-10 | 盛科网络(苏州)有限公司 | 交换机芯片协同仿真的验证系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080221861A1 (en) | 2008-09-11 |
WO2005069175A1 (ja) | 2005-07-28 |
JP2005208762A (ja) | 2005-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1293465C (zh) | Gui显示装置及光标或gui组件动画显示处理方法 | |
CN1517869A (zh) | 处理器、运算处理方法和优先度决定方法 | |
CN1101019C (zh) | 数据序列产生方法及设备、转换方法及计算机 | |
CN1910588A (zh) | 验证装置和验证方法 | |
CN1302380C (zh) | 处理器和编译器 | |
CN1152305C (zh) | 虚拟机系统 | |
CN1680959A (zh) | 进程编辑设备和方法以及进程管理设备和方法 | |
CN1783012A (zh) | 程序转换器件及方法、程序转换执行器件及转换执行方法 | |
CN1160627C (zh) | 通过指令的排列变换以求得消除危险的最优化装置 | |
CN1278226C (zh) | 模拟装置、模拟方法 | |
CN1885295A (zh) | 使用逻辑单元建置集成电路 | |
CN1315062C (zh) | 处理器装置、使用它的信息处理装置、编译装置及其方法 | |
CN1842767A (zh) | 用于多个异常处理模型的中间表示 | |
CN1437110A (zh) | 用于断点设定的装置和方法 | |
CN1918546A (zh) | 程序转换装置及程序转换方法 | |
CN1916962A (zh) | 存储和回存状态上下文在图形处理单元的方法和装置 | |
CN1690971A (zh) | 中断控制装置 | |
CN1758221A (zh) | 程序处理装置 | |
CN1177772A (zh) | 独立处理多个指令流、软式控制各指令流的处理功能的多程序流程同时处理器 | |
CN1930552A (zh) | 优化编码自动生成系统 | |
CN1677365A (zh) | 通过属性控制的测试实例继承 | |
CN1912926A (zh) | 可中断图形处理单元处理多个程序的方法和图形处理单元 | |
CN1908904A (zh) | 实时内部简易监视器 | |
CN1808393A (zh) | 一种计算机系统自动备份和自动还原装置及其实现方法 | |
CN1870028A (zh) | 工作流程系统、工作流程处理方法和工作流程处理程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |