專利名稱:驗證裝置和驗證方法
技術領域:
本發(fā)明涉及計算裝置上的半導體集成電路的驗證。
背景技術:
作為驗證半導體集成電路的方法,用例如硬件描述語言的模型描述語言描述的電路數(shù)據(jù)在計算裝置上仿真以便確認電路數(shù)據(jù)是否正常工作的驗證方法在計算機上是可獲得的。在驗證方法中,輸入測試模式以操作電路數(shù)據(jù),并準備執(zhí)行結果的期望值以確定操作是必需的。所準備的期望值可以預先準備,或者可以采用按照如下方式獲得的執(zhí)行結果準備電路數(shù)據(jù)的偽模型,并且與應用于真實電路數(shù)據(jù)的測試模式相同的測試模式也應用于偽模型。
作為驗證方法中的常規(guī)技術,這樣的方法是可獲得的當測試模式被順序執(zhí)行時,在產生錯誤的情況下,產生錯誤的測試模式被登記,以刪除在仿真中產生錯誤的測試模式,以便驗證可以因此而更加有效(參見專利文獻1)。專利文獻1日本專利公開No.3054802發(fā)明內容本發(fā)明要解決的問題在例如用于處理器的驗證方法的常規(guī)驗證方法中,在執(zhí)行除法指令時,存在執(zhí)行零除法(除數(shù)為零的除法)的可能性。因此,需要特別的考慮,以便在產生除法指令時,零不被用作除數(shù),尤其是在隨機產生的測試模式應用于驗證對象的驗證環(huán)境中。
在常規(guī)驗證方法中執(zhí)行零除法的情況下,根據(jù)處理器的規(guī)范,除法的執(zhí)行結果可能無法得到保證(非確保的結果)。對于該非確保的結果,從正確的除法得到的計算結果(商和余數(shù))不能作為除法指令的執(zhí)行結果進行存儲。在本發(fā)明中,這樣的執(zhí)行結果在下文中稱為未定義結果。在某種意義上與真實電路數(shù)據(jù)相似,在執(zhí)行零除法時輸出期望值的處理器的偽模型中的執(zhí)行結果通常也是未定義結果。
根據(jù)由這樣處理器執(zhí)行指令時對應的數(shù)據(jù),零除法可能不是指令的未定義結果的唯一原因。在近年來處理器的計算裝置的示例中,對輸入數(shù)據(jù)值施加了限制,并且在違反限制時計算的執(zhí)行結果不被保證,以便減少能量損耗和計算裝置的面積。即使在這樣的示例中,在驗證方法中執(zhí)行結果未定義的可能性從未低過。
在電路數(shù)據(jù)和處理器的偽模型中指令執(zhí)行結果未定義(例如,零除法)的情況下,所比較的期望值是互不相同的,這導致偽錯誤的產生。之后,在用于對應存儲未定義結果的存儲裝置的指令被隨后執(zhí)行時,指令的執(zhí)行必然產生不同的結果。因此,未定義結果不利地影響了此后的仿真,這使得繼續(xù)驗證變得不可能。特別地,在指令是隨機產生的驗證環(huán)境中,在產生未定義結果時,驗證被暫停。因此,執(zhí)行這樣連續(xù)提供大量測試模式的大范圍的仿真變得困難,并且驗證因此不能獲得高的質量。
如同所描述的一樣,在驗證方法中,未定義結果如何處理是關鍵問題。在指令提供給處理器時,未定義結果不能容易地被預測。例如,在零除法的情況下,用作除數(shù)的寄存器號可以僅僅指定為操作數(shù)(待計算的內容),而不是將除數(shù)值本身指定為除法指令中的立即值。在這樣的情況下,零除法的產生,不依賴于在除法指令被提供時的寄存器值本身,而是依賴于除法指令執(zhí)行時的寄存器值。
從上面的描述可以清楚地看出,未定義結果是在向處理器提供指令時難于預測的參數(shù),并且在提供除法指令時難于保證除數(shù)不是零。
在專利文獻1中,產生錯誤的測試模式被預先寄存。然而,由于所描述的原因,即使在專利文獻1中預測產生未定義結果(零除法)的測試模式并預先寄存相關的未定義結果的產生模式仍舊困難。因此,上述的問題仍然沒有解決。
解決問題的手段為了解決上述問題,在本發(fā)明中,提供的指令,由該指令對應的參考數(shù)據(jù)和該參考數(shù)據(jù)的數(shù)據(jù)限制條件被采用,以預測未定義結果的產生,并在未定義結果產生時暫停仿真操作。
曾經被暫停的仿真操作,保持暫停直到預測指令的執(zhí)行結果不再是未定義時。因此,與仿真操作的暫停/暫停釋放有關的控制操作被顯著減少,并且由控制操作引起的整體仿真速度的下降可以被控制。
根據(jù)本發(fā)明的另一種方式,在指令提供給期望值產生操作,并且指令的執(zhí)行結果(期望值)未定義時,期望值產生操作被轉換回到指令執(zhí)行前的狀態(tài),以便和驗證對象有關的仿真被暫停。
根據(jù)本發(fā)明的又一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和該參考數(shù)據(jù)的數(shù)據(jù)限制條件被采用,以預測未定義結果的產生,其中當未定義結果產生時,所述指令被另外指令替換。
根據(jù)本發(fā)明的另外一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和該參考數(shù)據(jù)的數(shù)據(jù)限制條件被采用,以預測未定義結果的產生,其中當預測產生未定義結果時,其中存儲有被指定為指令操作數(shù)的參考數(shù)據(jù)的存儲裝置被其中存儲有滿足參考數(shù)據(jù)的數(shù)據(jù)限制條件的數(shù)據(jù)的另外存儲裝置替換。
根據(jù)本發(fā)明的另外一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和寄存有參考數(shù)據(jù)的數(shù)據(jù)限制條件的數(shù)據(jù)限制信息被采用,以預測未定義結果的產生,其中當產生未定義結果時,首先對參考數(shù)據(jù)存儲在其中的存儲裝置執(zhí)行用于將參考數(shù)據(jù)更新為滿足數(shù)據(jù)限制條件的值的指令。
根據(jù)本發(fā)明的另外一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和寄存有參考數(shù)據(jù)的數(shù)據(jù)限制條件的數(shù)據(jù)限制信息被采用,以預測未定義結果的產生,其中當產生未定義結果時,存儲在存儲裝置中的參考數(shù)據(jù)被更新為滿足參考數(shù)據(jù)的數(shù)據(jù)限制條件的值。
根據(jù)本發(fā)明的另外一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和寄存有參考數(shù)據(jù)的數(shù)據(jù)限制條件的數(shù)據(jù)限制信息被采用,以預測未定義結果的產生,其中當產生未定義結果時,存儲在存儲裝置中的執(zhí)行結果被更新為合適的值。
當執(zhí)行結果更新時,期望值可以更新為與仿真結果相等的值,或者仿真結果可以更新為與期望值相等的值。因此,用于更新執(zhí)行結果的功能可以提供在待驗證的仿真裝置中或者提供在期望值產生裝置中。
根據(jù)本發(fā)明的另外一種方式,提供的指令,由該指令對應的參考數(shù)據(jù)和寄存有參考數(shù)據(jù)的數(shù)據(jù)限制條件的數(shù)據(jù)限制信息被采用,以預測未定義結果的產生,其中,用于基于指令產生限制產生指令的指令產生裝置被強制發(fā)出用于更新存儲有未定義結果的存儲裝置的指令。
關于指令的強制發(fā)出,用于強制發(fā)出用于更新存儲在存儲裝置中的未定義結果的指令的指令發(fā)出限制被產生,并給予指令產生裝置,作為附加的指令發(fā)出限制。
關于指令的強制發(fā)出,指令產生裝置被控制,以產生用于強制發(fā)出用于更新存儲有未定義結果的存儲裝置的指令的新限制。
關于指令的強制發(fā)出,該指令可以不在未定義結果產生后立即發(fā)出,而是可以在對應未定義結果的指令被執(zhí)行之前的任何時間發(fā)出。因此,發(fā)出用于更新存儲有未定義結果的存儲裝置的指令的時機具有一定的自由度。因此,由指令強制發(fā)出引起的指令執(zhí)行順序中的隨機損失可以被阻止到一定程度。
根據(jù)本發(fā)明的另一種方式,具有數(shù)據(jù)限制條件的指令的參考數(shù)據(jù)值被用作參考數(shù)據(jù),以便由具有數(shù)據(jù)限制條件的指令對應的參考數(shù)據(jù)的候選被確定,并且所確定的條件用作指令發(fā)出限制,其中,基于因此產生的指令發(fā)出限制的指令在指令產生裝置中產生。
本發(fā)明的效果根據(jù)本發(fā)明,得到以下效果●未定義結果的產生被控制;并且●在未定義結果產生時和產生之后的仿真被控制,以致來自未定義結果產生的任何影響被消除,這樣,由于偽錯誤引起的驗證暫??梢员苊?。因此,驗證可以獲得高的效率。
根據(jù)本發(fā)明,可以避免例如在處理器驗證中產生的這樣的不便因為在執(zhí)行指令時對應的參考數(shù)據(jù)值不滿足數(shù)據(jù)限制條件,所以指令執(zhí)行結果未定義,這導致在與期望值比較時偽錯誤的產生。
圖1是實施本發(fā)明驗證裝置的結構框圖。
圖2是根據(jù)本發(fā)明的驗證裝置中的常規(guī)驗證方法的流程圖。
圖3是根據(jù)本發(fā)明第一較佳實施例的驗證裝置的結構框圖。
圖4示出數(shù)據(jù)限制條件的示例。
圖5是圖示根據(jù)本發(fā)明的第一較佳實施例的驗證裝置中的驗證方法總體過程的流程圖。
圖6是圖示根據(jù)第一較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖7是根據(jù)本發(fā)明第二較佳實施例的驗證裝置的結構框圖。
圖8是圖示根據(jù)第二較佳實施例的驗證裝置中的驗證方法總體過程的流程圖。
圖9是圖示根據(jù)第二較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖10是根據(jù)本發(fā)明第三較佳實施例的驗證裝置的結構框圖。
圖11是根據(jù)第三較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖12是根據(jù)本發(fā)明第四較佳實施例的驗證裝置的結構框圖。
圖13是圖示根據(jù)第四較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖14是圖示根據(jù)第四較佳實施例的驗證裝置中的驗證方法的進一步主要步驟的流程圖。
圖15是根據(jù)本發(fā)明第五較佳實施例的驗證裝置的結構框圖。
圖16是圖示根據(jù)第五較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖17是圖示根據(jù)第五較佳實施例的驗證裝置中的驗證方法的進一步主要步驟的流程圖。
圖18是根據(jù)本發(fā)明第六較佳實施例的驗證裝置的結構框圖。
圖19是圖示根據(jù)第六較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖20是根據(jù)本發(fā)明第七較佳實施例的驗證裝置的結構框圖。
圖21是圖示根據(jù)第七較佳實施例的驗證裝置中的驗證方法總體過程的流程圖。
圖22是圖示根據(jù)第七較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖23是根據(jù)本發(fā)明第八較佳實施例的驗證裝置的結構框圖。
圖24是圖示根據(jù)第八較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖25是圖示根據(jù)第八較佳實施例的修改實施例的結構框圖。
圖26是根據(jù)本發(fā)明第九較佳實施例的驗證裝置的結構框圖。
圖27是圖示根據(jù)第九較佳實施例的驗證裝置中的驗證方法總體過程的流程圖。
圖28是圖示根據(jù)第九較佳實施例的驗證裝置中的驗證方法的主要步驟的流程圖。
圖29是圖示根據(jù)第九較佳實施例的修改實施例的結構框圖。
附圖標記的描述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執(zhí)行控制裝置5電路數(shù)據(jù)單元6指令提供裝置7,7B仿真裝置8,8B期望值產生裝置9比較裝置10仿真執(zhí)行單元11第一存儲裝置12期望值產生單元13第二存儲裝置20數(shù)據(jù)限制信息存儲單元21指令分析裝置22參考數(shù)據(jù)分析裝置23A,23B,23C,23D,23E,23F控制裝置23G,23H,23H’,23J,23J’控制裝置30優(yōu)先狀態(tài)轉換裝置31執(zhí)行備用裝置32未定義結果判斷裝置40參考數(shù)據(jù)候選搜索裝置41參考數(shù)據(jù)候選分析裝置42參考數(shù)據(jù)替換裝置43指令產生裝置44指令放置裝置50H,50H’,50J,50J’指令產生限制創(chuàng)建裝置51指令發(fā)出限制創(chuàng)建裝置
52指令產生裝置60參考數(shù)據(jù)候選確定裝置具體實施方式
在描述本發(fā)明的較佳實施例之前,描述具有前述問題的驗證裝置100的結構和驗證方法。
驗證裝置100的結構如圖1所示。在圖1中,驗證裝置100包括驗證裝置主體2,用于提取主體2中的數(shù)據(jù)信息的提取裝置3,和用于接收來自提取裝置3的數(shù)據(jù)信息并控制仿真以控制未定義結果的任何影響的執(zhí)行控制裝置4。
主體2包括含有處理器的電路數(shù)據(jù)單元5、用于輸出由包含在電路數(shù)據(jù)單元5中的處理器執(zhí)行的指令的指令提供裝置6、用于利用電路數(shù)據(jù)單元5的處理器仿真指令提供裝置6所提供的指令的仿真裝置7、用于利用指令產生期望值的期望值產生裝置8、和用于將仿真結果和期望值進行比較的比較裝置9。
仿真裝置7包括用于執(zhí)行仿真的仿真執(zhí)行單元10,和用于存儲仿真結果和在執(zhí)行指令時對應的參考數(shù)據(jù)的第一存儲裝置11。期望值產生裝置8包括用于執(zhí)行指令提供裝置6所提供的指令并產生期望值的期望值產生單元12,和用于存儲在由期望值產生單元12執(zhí)行指令時對應的參考數(shù)據(jù)和由期望值產生單元12產生的期望值的第二存儲裝置13。
參見圖2,描述使用驗證裝置主體2的驗證方法。圖2是使用驗證裝置100的驗證方法的流程圖。驗證方法包括指令提供過程(S201)、仿真過程(S202,S203)、期望值產生過程(S204,S205)和比較過程(S206)。指令提供過程S201是指令提供裝置6向仿真裝置7和期望值產生裝置8提供指令的過程。仿真過程(S202,S203)是仿真裝置7利用提供的指令執(zhí)行仿真并將仿真結果存儲在第一存儲裝置11的過程。期望值產生過程(S204,S205)是期望值產生裝置8利用提供的指令獲取期望值并將獲取的期望值存儲在第二存儲裝置13的過程。比較過程S206是比較裝置9讀取存儲在第一存儲裝置11中的仿真結果和存儲在第二存儲裝置13中的期望值以對所讀取的仿真結果和期望值進行比較的過程。
如下所述,仿真過程和期望值產生過程是互不相同的。在仿真過程中,在例如硬件描述語言的模型描述語言描述的電路數(shù)據(jù)單元5用仿真裝置7仿真,以便產生仿真結果。在期望值產生過程中,電路數(shù)據(jù)單元5的偽模型被準備,并在偽模型中執(zhí)行與給予電路數(shù)據(jù)單元5的測試模式相同的測試模式,以便產生期望結果(期望值)。
在比較過程S206中,比較裝置9在比較結果表明不一致時暫停仿真,并將表明不一致的結果通知用戶。相反的,當比較結果表明一致時,比較裝置9向指令提供裝置6輸出用于向仿真裝置7和期望值產生裝置8提供新指令的命令。在指令提供過程S201中,由指令提供裝置6向仿真裝置7和期望值產生裝置8提供的指令可以是由用戶自身產生并輸入給指令提供裝置6的指令數(shù)據(jù),或者是在指令提供裝置6中隨機產生的指令數(shù)據(jù)。
在上述驗證方法中,仿真會持續(xù)直至仿真結果和期望值互不相同。然而,如前所述,在指令執(zhí)行結果未定義的情況下,在比較過程中比較結果表明不一致。之后,確定在比較過程中產生偽錯誤,并且仿真因此暫停。進一步,對應未定義結果的指令在仿真中隨后執(zhí)行,由于不同的參考數(shù)據(jù)被參考,各個執(zhí)行結果自然互不相同,并且比較過程中的比較結果表明不一致。因此,在未定義的結果產生時和產生之后,仿真不連續(xù)。
如前所述,在圖2所示驗證方法中,仿真由于未定義結果引起的偽錯誤導致不利的暫停,而不是由于真實錯誤導致仿真暫停。在指令提供過程中指令是隨機產生的方法中,特別是,在未定義結果頻繁產生的情況下,仿真可能無法連續(xù)執(zhí)行。
第一較佳實施例圖3示出根據(jù)本發(fā)明第一較佳實施例的驗證裝置1A的結構。驗證裝置1A的結構與前面描述的驗證裝置100的結構基本類似,并且任何相同或相似部件簡單地提供有相同的附圖標記并不再描述。然而,那些操作相似但包括任何輕微不同的操作在其附圖標記的末尾提供有“A”,從而與驗證裝置100的部件相區(qū)別。
以下描述驗證裝置1A的結構特性。根據(jù)本較佳實施例的驗證裝置1A包括驗證裝置主體2A、提取裝置3A和執(zhí)行控制裝置4A。驗證裝置的主體2A基本上以相似于驗證裝置100的驗證裝置2的方式構成。第二存儲裝置13存儲期望值產生單元12執(zhí)行指令時對應的參考數(shù)據(jù)和作為從期望值產生單元12獲得的指令執(zhí)行結果的期望值。在通??色@得的處理器中,通用目的寄存器構成第二存儲裝置。
提取裝置3A提取存儲在第二存儲裝置13中的參考數(shù)據(jù)以及由指令提供裝置6輸出的指令,并且向執(zhí)行控制裝置4A提供所提取的數(shù)據(jù)和指令。
執(zhí)行控制裝置4A包括數(shù)據(jù)限制信息存儲單元20、指令分析裝置21、參考數(shù)據(jù)分析裝置22和控制裝置23A。在數(shù)據(jù)限制信息存儲單元20中,指令的限制條件被寄存。指令的限制條件是仿真執(zhí)行單元10和期望值產生單元12執(zhí)行指令時對應的參考數(shù)據(jù)的限制條件。指令分析裝置21基于存儲在數(shù)據(jù)限制信息存儲單元20中的限制信息分析指令(由提取裝置3A提取)的細節(jié)。參考數(shù)據(jù)分析裝置22基于存儲在數(shù)據(jù)限制信息存儲單元20中的數(shù)據(jù)限制信息分析參考數(shù)據(jù)(由提取裝置3A提取)的細節(jié)和指令分析裝置21的指令分析的結果。控制裝置23A基于參考數(shù)據(jù)分析裝置22的分析結果控制仿真裝置7和期望值產生裝置8。
圖4示出存儲在數(shù)據(jù)限制信息存儲單元20中的數(shù)據(jù)限制信息。存儲在數(shù)據(jù)限制信息存儲單元20中的數(shù)據(jù)限制信息包括指令和指令的限制條件。本說明書敘述的指令是由包含在電路數(shù)據(jù)單元5中的處理器執(zhí)行的指令和執(zhí)行指令時對應的參考數(shù)據(jù)中的具有限制條件的指令。在數(shù)據(jù)限制信息存儲單元20中,具有限制條件的指令和限制條件是選擇性地存儲的。在圖4中,每個指令都由操作代碼分類。
在DIV指令(除法指令)的情況下,通用目的寄存器的寄存器號被指定,在通用目的寄存器中,被除數(shù)作為操作數(shù)的第一元素被存儲,除數(shù)作為操作數(shù)的第二元素被存儲,并且相關指令的參考數(shù)據(jù)的限制條件如圖4所示。在此情況下,可以是任何不為零的值的作為第二元素的除數(shù)作為限制條件被寄存。關于其它的指令(MUL,ADDX2,SUBX2,MULX2,...),在各個操作數(shù)中指定的參考數(shù)據(jù)的限制條件被寄存。
參見圖5和圖6所示的流程圖,描述使用驗證裝置1A的驗證方法。首先,指令提供裝置6向仿真執(zhí)行單元10和期望值產生單元12提供指令(S501)。此時,指令提供裝置6也輸出待提供的指令給提取裝置3A。提取裝置3A提取包含在所提供指令中的中間數(shù)據(jù)(S502)。在驗證裝置1A中,中間數(shù)據(jù)具體包括指令自身和執(zhí)行相關指令時對應的參考數(shù)據(jù)。
提取裝置3A向執(zhí)行控制裝置4A輸出所提取的中間數(shù)據(jù)。執(zhí)行控制裝置4A利用所輸入的中間數(shù)據(jù)執(zhí)行下面的處理。首先,指令分析裝置21分析中間數(shù)據(jù)。控制裝置23A基于分析結果控制驗證裝置的主體2A(在繼續(xù)操作和暫停之間轉換)(S503)。
當步驟S503中的控制操作是暫停指令執(zhí)行時,驗證裝置的主體2A根據(jù)控制操作暫停驗證操作。在步驟S503中的控制操作是繼續(xù)操作時,驗證裝置的主體2A執(zhí)行與常規(guī)執(zhí)行的仿真類似的過程。更具體地,驗證裝置的主體2A在仿真裝置7和期望值產生裝置8中執(zhí)行指令提供裝置6提供的指令(S504,S506),并且將因此所獲得的執(zhí)行結果(仿真結果和期望值)存儲在第一存儲裝置11和第二存儲裝置13中。存儲在第一存儲裝置11中和第二存儲裝置13中的執(zhí)行結果在比較裝置9中比較它們是否一致(S508)。之后,仿真的各個步驟被完成。
接下來,參見圖6所示的流程圖,描述基于中間數(shù)據(jù)的分析和因此獲得的分析結果的控制操作,該控制操作是驗證裝置1A的特性。首先,在指令分析裝置21中判斷接收自提取裝置3A的中間數(shù)據(jù)是否具有限制條件(S601)。當判斷中間數(shù)據(jù)是否與帶有存儲(寄存)在數(shù)據(jù)限制信息存儲單元20中的限制的指令一致時,限制條件的存在與否被更具體地確定。
在S601中所做的判斷結果表明中間數(shù)據(jù)與寄存的指令(帶限制的指令)不一致時,指令分析裝置21通知控制裝置23a結果表明不一致。接收到結果通知的控制裝置23A確定相關的指令不可能產生未定義的結果。隨后,控制裝置23A判斷仿真裝置7和期望值產生裝置8的操作是否暫停(S602)。當判斷結果表明操作不暫停時,控制裝置23A不控制仿真裝置7和期望值產生裝置8。此處所述的控制操作指的是仿真裝置7和期望值產生裝置8的暫停。當在S602中的判斷結果表明操作暫停時,控制裝置23A重新啟動仿真裝置7和期望值產生裝置8的操作。
當在S601中的判斷結果表明中間數(shù)據(jù)與寄存的指令(帶有限制的指令)一致時,指令分析裝置21通知參考數(shù)據(jù)分析裝置22結果表明一致。接收到結果通知的參考數(shù)據(jù)分析裝置22進行下面的分析。首先,參考數(shù)據(jù)分析裝置22a從包含在中間數(shù)據(jù)中的參考數(shù)據(jù)中提取在相關指令的操作數(shù)中指定的寄存器號的寄存器值,并進一步地,判斷所提取的寄存器值是否滿足數(shù)據(jù)限制條件(寄存在存儲于數(shù)據(jù)限制信息存儲單元20中的數(shù)據(jù)限制條件中),并且通知控制裝置23A判斷的結果(S604)。
當在S604中處理后所通知的判斷結果滿足數(shù)據(jù)限制條件,表明不違反時,控制裝置23A確定相關指令不可能產生未定義結果,并執(zhí)行步驟S602和S603,也就是說,仿真裝置7和期望值產生裝置8不被控制(不暫停)。
當在S604中處理后所通知的判斷結果不滿足數(shù)據(jù)限制條件,表明違反時,控制裝置23A確定相關指令可能產生未定義結果,并控制(暫停)仿真裝置7和期望值產生裝置8(S605)。
當執(zhí)行步驟S602、S603和S605時,可以獲得下面的效果。在可能產生未定義結果的指令被連續(xù)提供的周期中,控制裝置23A使仿真裝置7和期望值產生裝置8處于暫停狀態(tài),并當不可能產生未定義結果的指令的提供開始時,釋放暫停(重新啟動操作)。這樣,當判斷產生未定義結果的指令連續(xù)提供時,控制裝置23A保持仿真裝置7和期望值產生裝置8在暫停狀態(tài),從而使用于暫停和釋放暫停這些裝置7和8的時間消耗量最小,以致避免了仿真的總體速度下降。
如同目前所描述的一樣,根據(jù)本實施例的驗證裝置1A,在執(zhí)行結果未定義的指令執(zhí)行之前,立即暫停仿真裝置7和期望值產生裝置8,從而避免相關指令的執(zhí)行。因此,任何由于執(zhí)行結果未定義的指令的執(zhí)行而導致的不便可以被避免。
第二較佳實施例圖7是根據(jù)本發(fā)明第二較佳實施例的驗證裝置1B結構框圖。期望值產生裝置1B基本上以與第一較佳實施例相似的方式構成,并且任何相似或相同部件簡單地提供有與第一較佳實施例中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“B”,從而與第一較佳實施例中的部件相區(qū)別。
驗證裝置1B的特征在于包括優(yōu)先狀態(tài)轉換裝置30、執(zhí)行備用裝置31和未定義結果判斷裝置32。優(yōu)先狀態(tài)轉換裝置30是用于將期望值發(fā)生裝置8B的狀態(tài)轉換回到最后的指令執(zhí)行之前的狀態(tài)的裝置。優(yōu)先狀態(tài)轉換裝置30的操作實現(xiàn)如下。在期望值產生裝置8B中第二存儲裝置13的記錄內容在指令執(zhí)行之前立即被暫時保留。隨后,在指令執(zhí)行之后,所保留的數(shù)據(jù)被轉回第二存儲裝置13的記錄內容。因此,優(yōu)先狀態(tài)轉換裝置30可以將期望值發(fā)生裝置8B的狀態(tài)轉換到最后的指令執(zhí)行之前的狀態(tài)。
執(zhí)行備用裝置31提供于仿真裝置7B中。執(zhí)行備用裝置31暫停仿真裝置7B的指令的執(zhí)行,直到從執(zhí)行控制裝置4B接收到備用釋放通知。在第二較佳實施例中,指令在期望值產生裝置8B中優(yōu)先于仿真裝置7被有選擇性地執(zhí)行,并且因此獲得的執(zhí)行結果由提取裝置3B提取。
未定義結果判斷裝置32根據(jù)提取裝置3B所獲得的提取信息判斷執(zhí)行結果是否未定義。在期望值產生裝置12創(chuàng)建用于通知未定義執(zhí)行結果的產生的標志的情況下,未定義結果判斷裝置32可以基于標志的檢測確定未定義結果的產生。進一步,當指令和執(zhí)行指令時對應的參考數(shù)據(jù)以與根據(jù)第一較佳實施例的驗證裝置1A相似的方式被分析時,未定義執(zhí)行結果的產生可以被檢測。
基于未定義結果判斷裝置32的判斷結果,控制裝置23B執(zhí)行下面的控制操作。當由期望值產生裝置8B執(zhí)行的指令的執(zhí)行結果未定義時,控制裝置23B操作優(yōu)先狀態(tài)轉換裝置30,以將期望值產生裝置8B的狀態(tài)轉換回指令執(zhí)行前的狀態(tài)。因為指令首先由期望值產生裝置8B執(zhí)行,所以仿真裝置7B在判斷指令執(zhí)行結果是否未定義時,還沒有執(zhí)行指令。控制裝置23B,在此時發(fā)現(xiàn)指令執(zhí)行結果未定義,不允許仿真裝置7B執(zhí)行判斷產生未定義結果的指令。
在驗證裝置1B中,期望值產生裝置8B基于作為未定義的指令執(zhí)行結果的早先決定,轉換回到指令執(zhí)行之前的狀態(tài),而且進一步暫停仿真裝置7B的指令執(zhí)行。更具體地,驗證裝置1B使得期望值產生裝置8B在執(zhí)行指令時優(yōu)先于其它裝置,從而決定指令執(zhí)行結果未定義,并隨后復位期望值產生裝置8B并基于所獲得的判斷結果暫停仿真裝置7B的指令執(zhí)行。因此,因為參考數(shù)據(jù)違反數(shù)據(jù)限制條件,所以驗證裝置1B避免了執(zhí)行結果未定義的指令的執(zhí)行。
下面參考圖8和圖9所示的流程圖,描述用在驗證裝置1B的驗證方法。圖8是驗證裝置1B的總體操作流程圖。圖9是提取和示出未定義結果判斷裝置32和控制裝置23B的操作的流程圖。
首先,指令提供裝置6向仿真執(zhí)行單元10和期望值產生裝置12提供指令(S801)。
期望值產生裝置8B在期望值產生單元12中執(zhí)行指令,并且將表明執(zhí)行結果的期望值存儲在第二存儲裝置13中(S802,S803)。此時,仿真裝置7B待命指令的執(zhí)行。
期望值,期望值產生單元12的指令執(zhí)行結果,由提取裝置3B提取并提供給未定義結果判斷裝置32(S804)。
未定義結果產生裝置32分析從期望值產生單元12獲得的信息,以判斷期望值是否未定義,控制裝置23B基于分析結果控制仿真裝置7和期望值產生裝置8(S805)。
參見圖9所示的流程圖描述步驟S805的細節(jié)。首先,未定義結果判斷裝置32分析從期望值產生單元12獲得的信息,從而判斷期望值是否未定義(S901)。判斷結果提供到控制裝置23B。
基于未定義結果判斷裝置32的判斷結果,控制裝置23B執(zhí)行下面的控制操作?;谥噶顖?zhí)行結果(期望值)的判斷結果,控制裝置23B傳送仿真裝置7B的控制信號給仿真裝置7B。對于控制信號,該控制信號用作用于當指令執(zhí)行結果(期望值)不包含未定義結果時,允許仿真裝置7B指令執(zhí)行的信號(S902),并且用作用于將期望值產生裝置8B狀態(tài)轉換回到指令執(zhí)行之前的狀態(tài),并在指令執(zhí)行結果(期望值)包含未定義結果時,禁止(不允許)仿真裝置7B指令執(zhí)行的信號(S904)。
返回參見圖8的流程圖,描述接收到控制信號的仿真裝置7B和期望值產生裝置8B的操作。期望值產生裝置8B優(yōu)先于仿真裝置7B執(zhí)行指令,并且此時(當從控制裝置23B接收到控制信號時)仿真裝置7B還沒有執(zhí)行指令。接收到控制信號的執(zhí)行備用裝置31判斷所接收到的控制信號的內容(S806),并且基于判斷結果控制仿真裝置7B,如下所述。
當所接收到的控制信號表明禁止(不允許)指令執(zhí)行時,執(zhí)行備用裝置31根據(jù)命令不啟動仿真執(zhí)行單元10的指令的執(zhí)行,使它處于持續(xù)暫停。執(zhí)行備用裝置31進一步返回到步驟S801,并且在判斷下一個指令是否由指令提供裝置6提供時保留備用。
當接收到的控制信號表明允許指令執(zhí)行時,執(zhí)行備用裝置31在驗證裝置的主體2B中啟動與常規(guī)技術的仿真類似的仿真(S807),并且將仿真執(zhí)行單元10的執(zhí)行結果存儲在第一存儲裝置11(S808)。存儲在第一存儲裝置11和第二存儲裝置13中的執(zhí)行結果在比較裝置9中被比較,以判斷它們是否彼此一致(S809)。隨后,仿真的全部步驟完成。
如所描述的一樣,驗證裝置1B復位期望值產生裝置8B,并基于對通過先前的指令執(zhí)行獲得的未定義期望值的判斷結果,暫停仿真裝置7B指令的執(zhí)行。更具體地,驗證裝置1B將期望值產生裝置8B的狀態(tài)轉換返回到指令執(zhí)行前的狀態(tài),并且基于對指令的執(zhí)行結果是否在期望值產生單元12中在前執(zhí)行的判斷結果,暫停仿真裝置7B的指令執(zhí)行。因此,執(zhí)行結果未定義的指令的執(zhí)行在驗證裝置1B中被阻止。因此,由于偽錯誤引起的驗證的不連續(xù)可以避免,并且驗證可以因此更有效。
第三較佳實施例圖10是根據(jù)本發(fā)明第三較佳實施例的驗證裝置1C的結構框圖。驗證裝置1C的結構與根據(jù)第一較佳實施例的驗證裝置1A的結構基本相似。因此,任何相同或相似部分簡單地提供有與第一較佳實施例中敘述相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“C”,從而與驗證裝置1A的部件相區(qū)別。更具體地,驗證裝置1C的特征在于控制裝置23C的控制方法。該控制方法與驗證裝置1A中的控制裝置23A的控制方法不同。
圖11示出用在驗證裝置1C中的驗證方法的流程圖。驗證裝置1C的總體控制操作與圖5的流程圖中所示的驗證裝置1A的相同。然而,在中間數(shù)據(jù)的分析和基于步驟S503中獲得的分析結果的控制操作上,驗證裝置1C稍微不同于驗證裝置1A。
流程圖11示出中間數(shù)據(jù)的分析和基于所獲得的分析結果的控制操作,該分析和控制操作為驗證裝置1C的特征所在。提取裝置3A向指令分析裝置21和參考數(shù)據(jù)分析裝置22提供所提取的中間數(shù)據(jù)。
指令分析裝置21判斷接收自提取裝置3的中間數(shù)據(jù)是否具有限制條件(S1101)。限制條件的存在與否更具體地基于對中間數(shù)據(jù)是否與存儲(寄存)在數(shù)據(jù)限制信息存儲單元20中的指令相一致的判斷來決定。
當步驟S1101中的判斷結果表明中間數(shù)據(jù)與所寄存的指令不一致時,指令分析裝置21通知控制裝置23C結果表明不一致。被通知了結果的控制裝置23C確定相關指令不可能產生未定義結果。因此,確定的控制裝置23C不控制仿真裝置7和期望值產生裝置8。因此,仿真裝置7和期望值產生裝置8執(zhí)行指令。
當步驟S1101中的判斷結果表明中間數(shù)據(jù)與所寄存的指令(帶限制的指令)一致時,指令分析裝置21通知參考數(shù)據(jù)分析裝置22結果表明一致。被通知了結果的參考數(shù)據(jù)分析裝置22進行下面的分析。參考數(shù)據(jù)分析裝置22從包含在提供自提取裝置3A的中間數(shù)據(jù)中的參考數(shù)據(jù)中提取在相關指令的操作數(shù)中指定的寄存器號的寄存器值。參考數(shù)據(jù)分析裝置22進一步判斷所提取的寄存器值是否滿足數(shù)據(jù)限制條件(寄存在存儲于數(shù)據(jù)限制信息存儲單元20中數(shù)據(jù)限制信息中),并且通知控制裝置23C判斷結果(S1102)。
當步驟S1102中通知的判斷結果表明滿足數(shù)據(jù)限制條并且不違反時,控制裝置23C確定相關指令不可能產生未定義結果,并且不控制仿真裝置7和期望值產生裝置8。因此,仿真裝置7和期望值產生裝置8執(zhí)行指令。
當步驟S1102中通知的判斷結果表明不滿足數(shù)據(jù)限制條件并且違反時,控制裝置23C確定相關指令可能產生未定義結果。已經作出上述決定的控制裝置23C用沒有數(shù)據(jù)限制條件的另外指令替換相關的指令(S1103)。沒有數(shù)據(jù)限制條件的指令的示例是NOP(非操作)指令,其替換執(zhí)行結果未定義的指令。替換指令的另外指令從控制裝置23C經由指令提供裝置6提供給仿真裝置7和期望值產生裝置8。
仿真裝置7和期望值產生裝置8執(zhí)行替換的指令。因此,沒有數(shù)據(jù)限制條件并不可能影響仿真的指令在仿真裝置7和期望值產生裝置8中被執(zhí)行。因此,由于偽錯誤引起的驗證的中斷可以避免,并且驗證可以因此更有效。
在根據(jù)第一較佳實施例的驗證裝置1A中,仿真裝置7和期望值產生裝置8在所執(zhí)行的指令產生未定義結果時被暫停。與之相反,在根據(jù)本較佳實施例的驗證裝置1C中,執(zhí)行結果未定義的指令被沒有數(shù)據(jù)限制條件的另外的指令替換。當執(zhí)行結果未定義的指令被這樣的指令替換時,指令可以用仿真不受缺少數(shù)據(jù)限制條件造成的任何影響的方式執(zhí)行。因此,由于偽錯誤引起的驗證的中斷可以避免,并且驗證可以因此更有效。
根據(jù)第三較佳實施例的驗證裝置1C除了在指令產生未定義執(zhí)行結果的情況下執(zhí)行指令的替換以外,執(zhí)行與根據(jù)第一較佳實施例的驗證裝置1A相同的控制操作。
第四較佳實施例圖12是根據(jù)本發(fā)明第四較佳實施例的驗證裝置1D的結構框圖。驗證裝置1D基本上以與根據(jù)第三較佳實施例的驗證裝置1C相似的方式構成,并且任何相似或相同部件簡單的提供有與第三較佳實施例中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“D”,從而與驗證裝置1C的部件相區(qū)別。更具體地,驗證裝置1D的特征在于控制裝置23D的結構和控制方法。該結構和控制方法與驗證裝置1C的控制裝置23C的結構和控制方法不同。
驗證裝置1D的總體控制方法(驗證方法)與根據(jù)參考圖5所示的流程圖描述的第三較佳實施例的驗證裝置1C的總體控制方法(驗證方法)相同。因此,驗證裝置1D的總體控制方法(驗證方法)的描述被省略。
根據(jù)本較佳實施例的驗證裝置1D的控制裝置23D的特征在于當指令執(zhí)行結果被判斷為未定義時,用另外的參考數(shù)據(jù)替換指令執(zhí)行時對應的參考數(shù)據(jù)。圖13和圖14示出驗證裝置1D的控制操作中的主要步驟。這些主要步驟與根據(jù)第三較佳實施例的驗證裝置1C的主要步驟基本類似,并且相同的步驟提供有相同的附圖標記。然而,驗證裝置1F與驗證裝置1C的不同如下。
在根據(jù)第三較佳實施例的驗證裝置1C中,執(zhí)行結果未定義的指令用不具有數(shù)據(jù)限制條件的另外的指令替換,如圖11的步驟S1103所示。在根據(jù)本較佳實施例的驗證裝置1D中,采用參考數(shù)據(jù)被替換的步驟S1103D,替換如圖13所示的指令的替換。
在驗證裝置1D中,在執(zhí)行結果未定義的指令執(zhí)行時對應的參考數(shù)據(jù)被另外的可以用作參考數(shù)據(jù)的數(shù)據(jù)所替換。更具體地,在指令執(zhí)行時對應的數(shù)據(jù)的寄存器號轉變?yōu)榱硗獾募拇嫫魈?通用目的寄存器的寄存器號),該另外的寄存器號能獲取在指令的操作數(shù)中指定的參考數(shù)據(jù)位置(在第四較佳實施例中稱作參考數(shù)據(jù)候選)。上述替換在參考數(shù)據(jù)被替換的步驟S1103D中。
為了執(zhí)行上述控制操作,驗證裝置1D的控制裝置23D包括用于搜索參考數(shù)據(jù)候選的參考數(shù)據(jù)候選搜索裝置40、用于分析所搜索的參考數(shù)據(jù)候選是否滿足數(shù)據(jù)限制條件的參考數(shù)據(jù)候選分析裝置41和用于當參考數(shù)據(jù)候選滿足數(shù)據(jù)限制條件時用參考數(shù)據(jù)候選替換參考數(shù)據(jù)的參考數(shù)據(jù)替換裝置42。
參見圖14所示的流程圖,描述在控制裝置23D中替換參考數(shù)據(jù)的步驟S1103的細節(jié)。
在處理器執(zhí)行的指令的操作數(shù)中,存儲有指令執(zhí)行時對應的參考數(shù)據(jù)的寄存器號通常被指定。當參考數(shù)據(jù)分析裝置22給出指令執(zhí)行結果未定義的判斷時,首先,基于執(zhí)行結果未定義的指令的參考數(shù)據(jù)的寄存器號,搜索任何可替換的寄存器號(S1401)。搜索操作由參考數(shù)據(jù)候選搜索裝置40執(zhí)行。
當在S1401中判斷任何可替換的寄存器號不存在時,指令被刪除(S1402)。指令由參考數(shù)據(jù)替換裝置42刪除。
當在S1401中判斷任何可替換的寄存器號存在時,判斷位于寄存器號處作為替換候選的參考數(shù)據(jù)候選是否滿足數(shù)據(jù)限制條件(S1403)。判斷由參考數(shù)據(jù)候選分析裝置41做出。當在S1403中參考數(shù)據(jù)候選判斷為滿足數(shù)據(jù)限制條件時,執(zhí)行結果未定義的參考數(shù)據(jù)用參考數(shù)據(jù)候選替換。換句話說,關于指令的參考數(shù)據(jù),執(zhí)行結果被判斷為未定義的候選用執(zhí)行結果被判斷為定義的候選所替換(S1404)。替換由參考數(shù)據(jù)替換裝置42執(zhí)行。
當在S1043中,參考數(shù)據(jù)候選判斷為不滿足數(shù)據(jù)限制條件時,再在S1401中判斷是否有任何其它的參考數(shù)據(jù)。執(zhí)行S1401-S1404的操作,以使參考數(shù)據(jù)用滿足數(shù)據(jù)限制條件的數(shù)據(jù)替換。
總的來說,多個通用目的寄存器提供在處理器中,并且在指令的操作數(shù)中指定的寄存器號是可替換的。在驗證裝置1D中,利用處理器的這個特性,用滿足數(shù)據(jù)限制條件的數(shù)據(jù)替換參考數(shù)據(jù)。在不可能替換的情況下,可以采用本發(fā)明其它較佳實施例中提出的任何對策,例如,根據(jù)第三較佳實施例的指令替換。
如所描述的一樣,在驗證裝置1D中,執(zhí)行結果未定義的指令的參考數(shù)據(jù)用其它數(shù)據(jù)替換,這避免了執(zhí)行結果未定義的指令的執(zhí)行。因此,由于偽錯誤引起的驗證的中斷可以避免,以便驗證的效率可以提高。
第五較佳實施例圖15是根據(jù)本發(fā)明第五較佳實施例的驗證裝置1E的結構框圖。驗證裝置1E基本上以與根據(jù)第三較佳實施例的驗證裝置1C相似的方式構成,并且任何相似或相同部件簡單地提供有與根據(jù)第三較佳實施例的驗證裝置1C相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“E”,從而與驗證裝置1C的部件相區(qū)別。
驗證裝置1E的特征在于控制裝置23E的結構和控制方法??刂蒲b置23E包括指令產生裝置43和指令放置裝置44。由于這些裝置43和44被提供并用在控制方法中,所以控制裝置23E與驗證裝置1C的控制裝置23C不同。
驗證裝置1E的總體控制方法(驗證方法)與根據(jù)參考圖5所示的流程圖描述的第三較佳實施例的驗證裝置1C的控制方法(驗證方法)相同。因此,驗證裝置1E的總體控制方法(驗證方法)的描述被省略。
根據(jù)本較佳實施例的驗證裝置1E的控制裝置23E的特征在于當指令執(zhí)行結果被判斷為未定義時新產生用于轉變參考數(shù)據(jù)的指令,并且所產生的用于轉變參考數(shù)據(jù)的指令放置在產生的指令優(yōu)先于執(zhí)行結果未定義的指令執(zhí)行的位置處。圖16示出用在驗證裝置1E中的控制方法(驗證方法)的主要步驟。驗證裝置1E的總體控制操作與根據(jù)參考圖5所示的流程圖描述的第三較佳實施例的驗證裝置1C的控制方法(驗證方法)相同。因此,相同的步驟提供有相同的附圖標記。然而,驗證裝置1E與驗證裝置1C的不同如下。
控制裝置23E執(zhí)行步驟S1103H,在該步驟中,當指令執(zhí)行結果被判斷為未定義時,新產生用于轉變參考數(shù)據(jù)的指令,并且所產生的用于轉變參考數(shù)據(jù)的指令放置于其優(yōu)先于執(zhí)行結果未定義的指令執(zhí)行的位置處。參見圖17所示的流程圖,描述在驗證裝置1E中執(zhí)行的指令產生和放置的細節(jié)。
首先,產生指令,該指令用于用相關指令的數(shù)據(jù)限制條件范圍內的值更新在指令的操作數(shù)(通用目的寄存器的寄存器號)中指定的參考數(shù)據(jù)的位置(S1701)。這個操作由指令產生裝置43執(zhí)行。更新指令被優(yōu)先于執(zhí)行結果未定義的指令放置(S1702)。這個操作由指令放置裝置44執(zhí)行。因此轉變的指令從控制裝置23E經由指令提供裝置6提供給期望值產生裝置8,并且在期望值產生裝置8中執(zhí)行。
因此,對應不滿足數(shù)據(jù)限制條件的數(shù)據(jù)的指令被對應滿足數(shù)據(jù)限制條件的數(shù)據(jù)的指令替換,并且替換的指令在期望值產生裝置8和仿真裝置7中執(zhí)行。因此,可以避免未定義結果的產生。
產生在指令產生裝置43中的參考數(shù)據(jù)更新指令如下產生。例如,用于將滿足數(shù)據(jù)限制條件的更新數(shù)據(jù)存儲在寄存器中的存儲訪問指令作為參考數(shù)據(jù)更新指令被產生,在這種情況下,有必要將每個指令對應的滿足數(shù)據(jù)限制條件的更新數(shù)據(jù)的值預先存儲在數(shù)據(jù)存儲器或其類似物中。進一步,用于將滿足數(shù)據(jù)限制條件的值指定為操作數(shù)中的立即值的MOV指令作為參考數(shù)據(jù)更新指令被產生。
因此,產生指令,該指令用于將執(zhí)行結果未定義的指令的參考數(shù)據(jù)更新為執(zhí)行結果定義的指令的數(shù)據(jù),并且所產生的參考數(shù)據(jù)更新指令優(yōu)先于執(zhí)行結果未定義的指令執(zhí)行。因此,由于偽錯誤引起的驗證的中斷可以避免,這提高了驗證的效率。
第六較佳實施例圖18是根據(jù)本發(fā)明第六較佳實施例的驗證裝置1F的結構框圖。驗證裝置1F的結構與根據(jù)第三較佳實施例的驗證裝置1C的結構基本相似。因此,任何相同或相似部分簡單地提供有與根據(jù)第三較佳實施例的驗證裝置1C中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“E”,從而與驗證裝置1C的部件相區(qū)別。更具體地,驗證裝置1F的特征在于控制裝置23F的結構和控制方法。該結構和控制方法與驗證裝置1C的控制裝置23C的結構和控制方法不同。
驗證裝置1F的總體控制方法(驗證方法)與根據(jù)參考圖5所示的流程圖描述的第三較佳實施例的驗證裝置1C的控制方法(驗證方法)相同。因此,驗證裝置1F的總體控制方法(驗證方法)的描述被省略。
根據(jù)本較佳實施例的驗證裝置1F的控制裝置23F的特征在于當指令執(zhí)行結果被判斷為未定義時,更新在指令執(zhí)行時對應的參考數(shù)據(jù)。圖19示出驗證裝置1F的控制操作中的主要步驟。這些步驟與根據(jù)第三較佳實施例5的驗證裝置1C的步驟基本相同,并且相同的步驟提供有相同的附圖標記。然而,驗證裝置1F與驗證裝置1C的不同如下。
在根據(jù)第三較佳實施例的驗證裝置1C中,如圖11的步驟S1103所示,執(zhí)行結果未定義的指令用不帶有數(shù)據(jù)限制條件的另外的指令替換。在根據(jù)本較佳實施例的驗證裝置1F中,如下所述,執(zhí)行參考數(shù)據(jù)被替換的步驟S1103F,代替上述指令的替換。
在參考數(shù)據(jù)被更新的步驟S1103F中,存儲在第一存儲裝置11和第二存儲裝置13中的參考數(shù)據(jù)被強制更新為相關指令的數(shù)據(jù)限制條件范圍內的值。因此,即使在參考數(shù)據(jù)的指令不滿足數(shù)據(jù)限制條件的情況下,參考數(shù)據(jù)被更新為滿足數(shù)據(jù)限制條件的數(shù)據(jù),并且更新的參考數(shù)據(jù)被指令執(zhí)行。因此,未定義結果的產生可以避免。為了在驗證裝置1F中強制更新指令的參考數(shù)據(jù),第一存儲裝置11(在仿真裝置7側)和第二存儲裝置13(在期待值產生裝置8側)分別具有強制更新記錄內容(參考數(shù)據(jù))的功能。
如所描述的一樣,在驗證裝置1F中,執(zhí)行結果未定義的指令的參考數(shù)據(jù)被強制更新為相關指令的數(shù)據(jù)限制條件范圍內的值,這避免了執(zhí)行結果未定義的指令的執(zhí)行。因此,由于偽錯誤引起的驗證的不連續(xù)可以避免,并且驗證可以因此更有效。
第七較佳實施例圖20是根據(jù)本發(fā)明第七較佳實施例的驗證裝置1G的結構框圖。驗證裝置1G的結構與根據(jù)第三較佳實施例的驗證裝置1C的結構基本相似。因此,任何相同或相似部分簡單地提供有與第三較佳實施例中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“G”,從而與驗證裝置1C的部件相區(qū)別。更具體地,驗證裝置1G的特征在于在控制裝置23G的結構和控制方法。該結構和控制方法與驗證裝置1C的控制裝置23C的結構和控制方法不同。
參考圖21和圖22所示的流程圖,描述用在驗證裝置1G中的控制方法(驗證方法)。這些流程圖基本上與示出根據(jù)第三較佳實施例的驗證裝置1C中控制方法(驗證方法)的圖5和圖11基本類似,并且相同的步驟提供有相同的附圖標記。根據(jù)本實施例的驗證裝置1G的控制裝置23G,當在執(zhí)行仿真前作為指令執(zhí)行結果的期望值被判斷(假定)為未定義時,不用沒有數(shù)據(jù)限制條件的另外的指令替換執(zhí)行結果未定義的指令(圖5中的步驟S503和圖11中的步驟S1103)。相反,控制裝置23G將從實際執(zhí)行的指令(期望值和仿真結果)獲得的執(zhí)行結果強制轉換為不產生未定義結果的值(圖18中的步驟S503G和圖19中的步驟S1103G)。然而,步驟S503和S1103不在提取指令的步驟S502后立即執(zhí)行,而是在指令在仿真裝置7和/或期望值產生裝置8中執(zhí)行之后執(zhí)行。
更具體地,控制裝置23G將存儲在第一存儲裝置11和第二存儲裝置13中的指令執(zhí)行結果(期望值和仿真結果)強制更新為指令中可以被定義的值。因此,即使在其參考數(shù)據(jù)不滿足數(shù)據(jù)限制條件的指令的情況下,指令執(zhí)行結果也可被更新為定義的數(shù)據(jù)(判定為非未定義的數(shù)據(jù)),這避免未定義結果的產生。
如所描述的一樣,在驗證裝置1G中,被判斷為未定義的指令執(zhí)行結果被強制更新為被判斷為定義的數(shù)據(jù),以致避免了執(zhí)行結果未定義的指令的執(zhí)行。因此,由于偽錯誤引起的驗證的不連續(xù)可以避免,并且驗證可以更有效地實現(xiàn)。
如所描述的,當執(zhí)行結果被強制更新時,有必要將仿真結果和期望值更新為相同的值。為了這樣做,仿真結果和期望值被更新為合適的相同的值,或它們中的一個可以參考另一個的值更新為另一個的值。
為了實施強制更新功能,在驗證裝置1G中,第一存儲裝置11(在仿真裝置7側)和第二存儲裝置13(在期望值產生裝置8側)分別具有強制更新記錄內容(參考數(shù)據(jù))的功能。然而,在參考仿真結果的值將期望值更新為仿真結果值的情況下,強制更新功能可以提供在仿真裝置7和期望值產生裝置8之一中。
在根據(jù)本較佳實施例的驗證裝置1G中,指令分析裝置21和參考數(shù)據(jù)分析裝置22用于判斷未定義結果的產生,然而,根據(jù)第二較佳實施例的未定義結果判斷裝置32可以用來判斷未定義結果的產生。更具體地,未定義結果的產生可以根據(jù)期望值產生裝置8中的指令執(zhí)行結果的信息判斷,以便指令執(zhí)行結果被更新。
第八較佳實施例圖23是根據(jù)本發(fā)明第八較佳實施例的驗證裝置1H的結構框圖。驗證裝置1H的結構與根據(jù)第三較佳實施例的驗證裝置1C的結構基本相似。因此,任何相同或相似部分簡單地提供有與第三較佳實施例中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“H”,從而與驗證裝置1C的部件相區(qū)別。更具體地,驗證裝置1H包括指令產生限制創(chuàng)建裝置50H、指令發(fā)出限制創(chuàng)建裝置51H和指令產生裝置52。指令產生限制創(chuàng)建裝置50H和指令創(chuàng)建裝置52被提供在驗證裝置的主體2H中。指令發(fā)出限制創(chuàng)建裝置51H被提供在執(zhí)行控制裝置4H中。驗證裝置1H的特征在于控制裝置23H的結構和控制方法(驗證方法)被描述。
在驗證裝置1H中,指令基于指令產生限制創(chuàng)建裝置50H產生的指令產生限制由指令產生裝置52產生,并且提供給指令提供裝置6。指令產生限制包括所產生的指令類型和可在操作數(shù)中選擇的寄存器號的條件。作為指令產生限制的示例可以為,“可以在加法指令的操作數(shù)中選擇的通用目的寄存器號是寄存器0直到寄存器8”,“在VLIW方法的處理器中多于一個的加法指令不能同時執(zhí)行”,或其它。
指令產生裝置52可以隨機產生指令產生限制范圍內的指令。指令產生裝置52可以進一步隨機產生待提供給處理器的所有指令,或可以向處理器混合提供手動產生的指令和隨機產生的指令。
驗證裝置1H的總體控制方法(驗證方法)與根據(jù)參考圖21所示的流程圖描述的第七較佳實施例的驗證裝置1G的控制操作(驗證方法)相同。因此,驗證裝置1H的總體控制方法(驗證方法)的描述被省略。
根據(jù)本較佳實施例的驗證裝置1H的控制裝置23H的特征在于當指令執(zhí)行結果(仿真結果和期望值)被判斷為未定義時,產生更新執(zhí)行結果的附加指令并向指令提供裝置6提供所產生的附加指令。圖24示出驗證裝置1H中的控制方法(驗證方法)的主要步驟。這些步驟與根據(jù)第三較佳實施例的驗證裝置1C的步驟基本相同,并且相同的步驟提供有相同的附圖標記。然而,驗證裝置1H與驗證裝置1C的不同如下。
當指令執(zhí)行結果(期望值)被判斷為未定義時,驗證裝置1H的控制裝置23H,不用沒有數(shù)據(jù)限制條件的另外的指令替換不產生未定義結果的指令(圖5中的步驟S502和圖11中的步驟S1103)。相反,控制裝置23H在相關指令執(zhí)行后產生待執(zhí)行的更新指令(步驟S1103-1H),并向指令提供裝置6提供所產生的更新指令,以便更新指令在仿真裝置7和期望值產生裝置8中執(zhí)行(步驟S1103-2H)。
更新指令是用于強制更新從仿真裝置7和/或期望值產生裝置8獲得的指令執(zhí)行結果(仿真結果和期望值)的指令。當參考數(shù)據(jù)分析裝置22確定指令執(zhí)行結果未定義時,控制裝置23H使得指令產生裝置52發(fā)出指令發(fā)出限制,該指令發(fā)出限制指示用于未定義執(zhí)行結果的更新指令的發(fā)出。更新指令的具體示例包括用于從存儲未定義執(zhí)行結果的第一存儲裝置11和第二存儲裝置13中讀取執(zhí)行結果并將執(zhí)行結果更新為合適的值的存儲訪問指令,和用于根據(jù)MOV指令將存儲執(zhí)行結果的第一存儲裝置11和第二存儲裝置12中的記錄數(shù)據(jù)更新為合適的值的指令。
指令產生裝置52被強制發(fā)出表示指令的強制更新的指令發(fā)出限制,并且所發(fā)出的指令發(fā)出限制給予指令提供裝置6。指令提供裝置6基于指令發(fā)出限制產生更新指令并向仿真裝置7和期望值產生裝置8提供所產生的更新指令,以便在裝置7和裝置8中執(zhí)行更新指令。因此,執(zhí)行結果未定義的指令執(zhí)行時,在對應執(zhí)行結果(未定義)的指令被執(zhí)行后,作為附加處理,執(zhí)行結果(未定義)被強制更新為定義的數(shù)據(jù)。因此,由仿真裝置7和期望值產生裝置8的指令執(zhí)行結果之間的不一致導致的偽錯誤可以避免。
根據(jù)本較佳實施例的控制方法不僅可以在圖23所示的驗證裝置1H中被執(zhí)行,也可以以相同的方式在圖25所示的驗證裝置1H’中被執(zhí)行。驗證裝置1H’以與驗證裝置1H基本相同的方式構成,并且任何相同或相似部件提供有相同的附圖標記。然而,具有任何輕微不同的部件提供有(’)。
在驗證裝置1H中,指令發(fā)出限制創(chuàng)建裝置51H基于控制裝置23H的命令,創(chuàng)建更新指令的指令發(fā)出限制,并且向指令產生裝置52提供所創(chuàng)建的限制。與之對比,在驗證裝置1H’中,沒有提供用于創(chuàng)建指令發(fā)出限制的指令發(fā)出限制創(chuàng)建裝置51H??蛇x擇地,如下描述,控制裝置23H’強制指令產生限制創(chuàng)建裝置50H’來創(chuàng)建指令產生限制,并且向指令產生裝置52提供所創(chuàng)建的指令產生限制。
控制裝置23H’強制指令產生限制創(chuàng)建裝置50H’創(chuàng)建的指令產生限制是用于強制指令產生裝置52發(fā)出未定義指令執(zhí)行結果(仿真結果和期望值)的更新指令的限制。因此,在驗證裝置1H’中,當未定義結果以與驗證裝置1H中相似的方式產生時,指令產生裝置52發(fā)出用于未定義結果的更新指令。
在驗證裝置1H和1H’中,不需要在產生未定義結果之后立即強制發(fā)出用于未定義結果的更新指令。特別地,在指令產生裝置52隨機產生指令的情況下,如果更新指令在產生未定義結果之后立即被強制發(fā)出,那么某些規(guī)律性以指令產生的順序產生。因此,指令不可能在驗證中以隨機的順序有效地給出。因此,用于更新未定義結果的指令可以在對應未定義結果的指令被執(zhí)行之前執(zhí)行。作為確?!坝糜趯炊x結果的指令”執(zhí)行的可能方法,“用于對應未定義結果的指令”的發(fā)出在未定義結果產生時是禁止的,并且在用于未定義結果的更新指令被發(fā)出之后,“用于對應未定義結果指令”的發(fā)出的禁止被釋放。
在本較佳實施例中,指令分析裝置21和參考數(shù)據(jù)分析裝置22用于判斷未定義結果的產生,然而,根據(jù)第二較佳實施例的未定義結果判斷裝置32也可以用作判斷。更具體地,未定義結果的產生可以根據(jù)期望值產生裝置12中的指令執(zhí)行結果的信息決定,以便更新指令基于判斷結果被強制發(fā)出。
第九較佳實施例圖26是根據(jù)本發(fā)明第九較佳實施例的驗證裝置1J的結構框圖。驗證裝置1J的結構與根據(jù)第八較佳實施例的驗證裝置1H的結構基本相似。因此,任何相同或相似部分簡單地提供有與第三較佳實施例中相同的附圖標記,并且不再描述。然而,那些操作相似但包括任何輕微不同的操作在它們附圖標記的末尾提供有“J”,從而與驗證裝置1H的部件相區(qū)別。更具體地,驗證裝置1J包括指令產生限制創(chuàng)建裝置50J、指令發(fā)出限制創(chuàng)建裝置51J、指令產生裝置52和參考數(shù)據(jù)候選確定裝置60。提取裝置3J的控制方法(驗證方法)與根據(jù)第八較佳實施例的提取裝置3A的控制方法(驗證方法)不同。指令產生限制創(chuàng)建裝置50J和指令產生裝置52位于驗證裝置的主體2J中。指令發(fā)出限制創(chuàng)建裝置51J位于執(zhí)行控制裝置4J中。
提取裝置3J從第二存儲裝置13中每一具有數(shù)據(jù)限制條件的指令提取下面的數(shù)據(jù)值。所提取的數(shù)據(jù)值是可選擇地作為參考數(shù)據(jù)的寄存器號和存儲在寄存器中的數(shù)據(jù)值。被選擇作為參考數(shù)據(jù)的寄存器號描述如下。例如,DIV指令具有除數(shù)不能為零的數(shù)據(jù)限制條件,并且當DIV指令執(zhí)行時,被選擇作為除數(shù)的通用目的寄存器號表示可選擇地作為參考數(shù)據(jù)的寄存器號。例如,假定當指令執(zhí)行時,根據(jù)任意的數(shù)據(jù)限制條件選擇作為除數(shù)的通用目的寄存器號是寄存器0直到寄存器31,那么提取裝置3J提取當前存儲在寄存器0直到寄存器31的數(shù)據(jù)值。每一具有數(shù)據(jù)限制條件指令都提取數(shù)據(jù)信息。為了這樣提取數(shù)據(jù)信息,提取裝置3J在從數(shù)據(jù)限制信息存儲單元20讀取數(shù)據(jù)限制條件的同時提取數(shù)據(jù)信息。
執(zhí)行控制裝置4J根據(jù)提取裝置3J所提供的數(shù)據(jù)信息和數(shù)據(jù)限制信息存儲單元20所提供的數(shù)據(jù)限制信息,確定參考數(shù)據(jù)候選。參考數(shù)據(jù)候選指的是可以由具有數(shù)據(jù)限制條件的指令所對應的寄存器號。參考數(shù)據(jù)候選由參考數(shù)據(jù)候選確定裝置60每一指令地確定。參考數(shù)據(jù)候選表示寄存器,寄存器中可以確?!昂蜻x值滿足相關指令的數(shù)據(jù)限制條件,并且當指令與作為參考數(shù)據(jù)的候選一起發(fā)出時,未定義結果不會產生”??刂蒲b置23J向指令發(fā)出限制創(chuàng)建裝置51J傳送命令,該命令用于創(chuàng)建指令的發(fā)出限制,該指令的參考數(shù)據(jù)是由參考數(shù)據(jù)候選確定裝置60確定的參考數(shù)據(jù)候選。指令發(fā)出限制創(chuàng)建裝置51J根據(jù)控制裝置23J傳送的用于創(chuàng)建發(fā)出限制的命令,創(chuàng)建指令限制,并向指令產生裝置52提供所創(chuàng)建的限制。指令產生裝置52基于指令發(fā)出限制創(chuàng)建裝置51J提供的指令發(fā)出限制產生指令,并向指令提供裝置6提供所產生的指令。指令提供裝置6提供指令給其中執(zhí)行指令的仿真裝置7和期望值產生裝置8。
下面參考圖27和28所示的流程圖,描述用在驗證裝置1J中的控制方法(驗證方法)。用在驗證裝置1J中的控制方法與根據(jù)第三較佳實施例的驗證裝置1C的操作(參考圖5)基本類似。因此,執(zhí)行相同操作的任何步驟簡單地提供有相同的步驟號,并且不再描述。然而,在驗證裝置1J中,中間數(shù)據(jù)的提取(S502J)、提取結果的分析和基于分析結果的控制(S503J)在時間上在指令的提供(S501)之前執(zhí)行。參考圖28所示的流程圖描述步驟S502J和S503J中的操作細節(jié)。
首先,描述用在驗證裝置1J中的驗證方法的大概。提取裝置3J提取指令的中間數(shù)據(jù)。如前面描述的,中間數(shù)據(jù)是可以由具有數(shù)據(jù)限制條件的指令選擇的作為參考數(shù)據(jù)的寄存器號和存儲在寄存器中的數(shù)據(jù)值。
執(zhí)行控制裝置4J利用提取裝置3J提供的中間數(shù)據(jù)創(chuàng)建待提供給指令提供裝置52的指令發(fā)出限制。指令產生裝置52基于所提供的指令發(fā)出限制產生指令,并將所產生的指令通過指令提供裝置6提供給仿真裝置7和期望值產生裝置8。仿真裝置7、期望值產生裝置8和比較裝置9的操作與其它實施例中描述的類似。
下面描述執(zhí)行控制裝置4J的操作,這是用在驗證裝置1J中的驗證方法的基本部分。首先,參考數(shù)據(jù)候選確定裝置60確定在作為參考數(shù)據(jù)的相關指令中可用的寄存器(參考數(shù)據(jù)候選)。參考數(shù)據(jù)候選關于具有數(shù)據(jù)限制條件的所有指令被確定。下面參考圖28所示的流程圖描述確定參考數(shù)據(jù)候選方法的細節(jié)。
參考數(shù)據(jù)候選確定裝置60選擇具有數(shù)據(jù)限制條件的指令中的一個(S2801)。參考數(shù)據(jù)候選確定裝置60進一步利用提取裝置3J提供的中間數(shù)據(jù),分析可選擇作為參考數(shù)據(jù)的存儲在寄存器中的數(shù)據(jù)值是否滿足數(shù)據(jù)限制條件(S2802)。
當在S2802中數(shù)據(jù)值被判斷為滿足限制時,相關寄存器被確定為參考數(shù)據(jù)候選(S2803)。對所有可選擇作為與指令有關的參考數(shù)據(jù)的寄存器進行分析(S2804)。
當步驟S2802-S2804在具有數(shù)據(jù)限制條件的指令的一個中完成時,判斷是否存在具有數(shù)據(jù)限制條件的任何其它指令(S2805)。當在S2805中檢測出存在任何其它的指令時,執(zhí)行步驟S2802-S2804。因此,參考數(shù)據(jù)候選(滿足數(shù)據(jù)限制條件的參考數(shù)據(jù))在具有數(shù)據(jù)限制條件的所有指令中被確定。
參考數(shù)據(jù)候選在所有指令中被確定之后,控制裝置23J執(zhí)行下面的控制操作。在指令提供裝置6向仿真裝置7和期望值產生裝置8提供指令時,控制裝置23J執(zhí)行對應由參考數(shù)據(jù)候選確定裝置60確定的參考數(shù)據(jù)候選的指令。更具體的描述控制操作,首先,控制裝置23J命令指令發(fā)出限制創(chuàng)建裝置51J創(chuàng)建這樣的指令發(fā)出限制“當執(zhí)行指令時,指令關于參考數(shù)據(jù)候選確定裝置60中確定的參考數(shù)據(jù)候選被執(zhí)行”。響應于命令,指令發(fā)出限制創(chuàng)建裝置51J所產生的指令發(fā)出限制提供給指令產生裝置52。接收到指令發(fā)出限制的指令產生裝置52根據(jù)限制產生指令,并且將所產生的指令提供給指令提供裝置6。指令提供裝置6向仿真裝置7和期望值產生裝置8提供指令(包括指令發(fā)出限制)。因此,可以實現(xiàn)控制操作。
驗證裝置1J的執(zhí)行控制裝置4J通過觀測存儲參考數(shù)據(jù)的寄存器的值,預先準備滿足數(shù)據(jù)限制條件的參考數(shù)據(jù)候選。之后,當具有數(shù)據(jù)限制條件的指令提供給仿真裝置7和期望值產生裝置8時,從候選中選擇參考數(shù)據(jù),以便可以避免未定義結果的產生。
在驗證裝置1J中,在具有數(shù)據(jù)限制條件的所有指令中,分析可選擇作為參考數(shù)據(jù)的所有寄存器是否是參考數(shù)據(jù)候選。因此,通常存在多個參考數(shù)據(jù)候選。然而,多個參考數(shù)據(jù)候選并不總是必須的,并且該處理可以在一個參考數(shù)據(jù)被確定時轉向下一個指令。因此,可以降低參考數(shù)據(jù)候選確定裝置60的執(zhí)行時間。在沒有參考數(shù)據(jù)候選的情況下,可以命令指令提供裝置6禁止相關指令的發(fā)出。
根據(jù)本較佳實施例的控制方法不僅可以在圖26所示的驗證裝置1J中被執(zhí)行,而且也可以以相似的方式在圖29所示的驗證裝置1J’中被執(zhí)行。驗證裝置1J’以與驗證裝置1J基本相同的方式構成,并且任何相同或類似的部件提供有相同的附圖標記。然而,具有任何不同構成的部件提供有(’)。
圖26中所示的控制裝置向指令產生裝置52提供根據(jù)參考數(shù)據(jù)候選確定裝置60確定的候選,作為指令發(fā)出限制,以致在由指令產生裝置52產生的指令中,避免了未定義結果的產生。與之對比,圖29所示的控制裝置23J’將從參考數(shù)據(jù)候選確定裝置60獲得的結果添加至由指令產生限制創(chuàng)建裝置50J’產生的現(xiàn)有的指令產生限制。從而,驗證裝置1J’避免了在指令產生裝置52產生的指令中產生未定義結果。因此,指令發(fā)出限制創(chuàng)建裝置51J并不提供在驗證裝置1J’中。
如所描述的一樣,在驗證裝置1J和1J’中,具有數(shù)據(jù)限制條件的指令所參考的參考數(shù)據(jù)候選根據(jù)寄存器值來確定。因此,當指令產生裝置52產生指令時,參考數(shù)據(jù)候選被參考,以致可以避免未定義結果的產生。執(zhí)行結果未定義的指令的執(zhí)行因此避免。因此,由偽錯誤引起的驗證的不連續(xù)可以避免,這提高了驗證的效率。
在第一到第九較佳實施例中敘述的驗證裝置1A-1J和1J’和驗證方法中,驗證對象并不限于處理器,并且根據(jù)對驗證對象執(zhí)行的處理中的中間數(shù)據(jù),這些裝置和方法可以應用到執(zhí)行結果未定義的任何驗證對象中。測試模式可以是人工描述的測試模式或是隨機產生的測試模式。在各個實施例中,描述了由參考數(shù)據(jù)的數(shù)據(jù)限制條件引起的未定義結果。然而,引起未定義結果的因素可以是其它的,只要提取裝置3A、3B和3J可以根據(jù)未定義結果的因素提取信息,并且將所提取的信息寄存在數(shù)據(jù)限制信息中。例如,當未定義結果如第七較佳實施例中所描述的一樣被更新時,由于執(zhí)行指令時,諸如中斷的外部因素造成的執(zhí)行結果未定義的情況,可以被處理。
工業(yè)上的適用性根據(jù)本發(fā)明的驗證裝置和驗證方法可以解決這樣的問題因為在將作為驗證對象的測試模式給仿真器并且仿真器用于生成期望值的情況下,當仿真結果和期望值被比較和驗證時,執(zhí)行指令時對應的參考數(shù)據(jù)不滿足數(shù)據(jù)限制條件,所以由于未定義的執(zhí)行結果產生偽錯誤。
更具體地,由于偽錯誤引起的驗證中斷以這樣的方式被避免在之后的仿真中,未定義結果的產生被避免,并且源自未定義結果的任何影響被移除。因此,上述的問題可以解決,并且驗證可以獲得高效率。本發(fā)明對于計算裝置上的半導體集成電路及其類似物的驗證尤其有效。
權利要求
1.一種驗證裝置,包括包含至少一個處理器的電路數(shù)據(jù)單元;仿真裝置;期望值產生裝置;比較裝置;提取裝置;以及執(zhí)行控制裝置,其中仿真裝置對電路數(shù)據(jù)單元中處理器可執(zhí)行的指令執(zhí)行仿真,以產生仿真結果,期望值產生裝置當指令執(zhí)行時產生期望值,比較裝置將仿真結果與期望值進行比較,提取裝置提取當期望值產生裝置產生期望值時對應的信息或所產生的期望值,并且執(zhí)行控制裝置基于提取裝置所提取的信息判斷指令是否滿足數(shù)據(jù)限制條件,并基于所判斷的結果,控制在仿真裝置和期望值產生裝置中指令的執(zhí)行。
2.如權利要求1所述的驗證裝置,其中所述執(zhí)行控制裝置觀測存儲所述提取裝置所提取信息的寄存器值,以判斷所述指令是否滿足所述數(shù)據(jù)限制條件。
3.如權利要求1所述的驗證裝置,其中所述執(zhí)行控制裝置基于所述判斷結果暫停所述仿真裝置和所述期望值產生裝置中的指令的執(zhí)行。
4.如權利要求3所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有所述數(shù)據(jù)限制條件時,通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述指令,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,暫停所述仿真裝置和期望值產生裝置。
5.如權利要求1所述的驗證裝置,其中所述仿真裝置包括執(zhí)行備用裝置,用于暫停所述仿真裝置的仿真直至從所述執(zhí)行控制裝置接收到暫停釋放通知,所述期望值產生裝置包括優(yōu)先狀態(tài)轉換裝置,用于將所述期望值產生裝置的狀態(tài)轉換回最后指令執(zhí)行之前的狀態(tài),并且所述執(zhí)行控制裝置包括未定義結果判斷裝置,用于判斷在所述期望值產生裝置中的作為指令執(zhí)行結果的所述期望值是否產生不能保證作為執(zhí)行結果的未定義結果;和控制裝置,用于在所述判斷結果表明期望值產生未定義結果時,使所述執(zhí)行備用裝置暫停在所述仿真裝置中的指令的執(zhí)行,并使所述優(yōu)先狀態(tài)轉換裝置轉換所述期望值產生裝置的狀態(tài)。
6.如權利要求1所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有數(shù)據(jù)限制條件時,通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述指令,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述的數(shù)據(jù)限制條件時用不具有所述數(shù)據(jù)限制條件的另外指令替換所述指令,并在所述仿真裝置和期望值產生裝置中執(zhí)行所替換的另外指令。
7.如權利要求1所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有所述數(shù)據(jù)限制條件時,通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述指令,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時將所述指令改正為參考數(shù)據(jù)滿足所述數(shù)據(jù)限制條件的另外指令,并在所述仿真裝置和期望值產生裝置中執(zhí)行所改正的指令。
8.如權利要求7所述的驗證裝置,其中所述控制裝置用滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù)替換參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件的指令的參考數(shù)據(jù),以在所述仿真裝置和期望值產生裝置中執(zhí)行所替換的另外指令。
9.如權利要求8的所述驗證裝置,其中所述控制裝置包括參考數(shù)據(jù)侯選搜索裝置,用于為參考數(shù)據(jù)由所述參考數(shù)據(jù)分析裝置判斷為不滿足所述數(shù)據(jù)限制條件的指令搜索另外的參考數(shù)據(jù)候選;參考數(shù)據(jù)候選分析裝置,用于分析參考數(shù)據(jù)侯選搜索裝置搜索的另外的參考數(shù)據(jù)候選是否滿足所述數(shù)據(jù)限制條件;和參考數(shù)據(jù)替換裝置,用于在另外的參考數(shù)據(jù)候選滿足所述數(shù)據(jù)限制條件時,用所述另外的參考數(shù)據(jù)候選替換所述參考數(shù)據(jù)。
10.如權利要求7所述的驗證裝置,其中所述控制裝置產生更新指令,并且在時間上優(yōu)先于所述指令在所述仿真裝置和期望值產生裝置中執(zhí)行該更新指令,該更新指令用于更新對應不滿足所述數(shù)據(jù)限制條件的參考數(shù)據(jù)的指令的參考數(shù)據(jù)。
11.如權利要求10所述的驗證裝置,其中所述控制裝置包括指令產生裝置,用于產生更新指令,該更新指令用于將由所述參考數(shù)據(jù)分析裝置判斷為所對應的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件的指令的參考數(shù)據(jù)更新為滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù),指令放置裝置,用于放置更新指令,以便所述更新指令可以在所述仿真裝置和期望值產生裝置中在時間上優(yōu)先于所述指令執(zhí)行。
12.如權利要求1所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,強制更新所述指令的參考數(shù)據(jù)以在所述仿真裝置和期望值產生裝置中滿足所述數(shù)據(jù)限制條件。
13.如權利要求1所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,更新在所述仿真裝置和期望值產生裝置中獲得的作為指令執(zhí)行結果的仿真結果和期望值,以使所述仿真結果和期望值具有相等的值。
14.如權利要求1所述的驗證裝置,其中所述提取裝置提取在所述期望值產生裝置中執(zhí)行的指令以及在所述指令執(zhí)行時對應的參考數(shù)據(jù),并且所述執(zhí)行控制裝置包括數(shù)據(jù)限制信息存儲單元,用于存儲在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件的存在與否以及所述限制條件的內容;指令分析裝置,用于通過用存儲在所述數(shù)據(jù)限制信息存儲單元中的信息核對所述提取裝置提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析裝置,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;和控制裝置,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,產生用于更新在所述仿真裝置和期望值產生裝置中獲得的作為指令執(zhí)行結果的仿真結果和期望值的更新指令,并在所述仿真裝置和期望值產生裝置中執(zhí)行該更新指令。
15.一種驗證方法,其中指令的仿真結果通過在包含至少一個處理器的電路數(shù)據(jù)單元中的指令的仿真獲得,并且指令仿真時的期望值依靠指令獲得,以便該電路數(shù)據(jù)單元基于仿真結果和期望值的比較而被驗證,該方法包括提取步驟,用于提取在期望值產生時對應的信息或所產生的期望值;判斷步驟,用于基于在所述提取步驟中提取的信息判斷所述指令是否滿足數(shù)據(jù)限制條件;以及控制步驟,用于基于在所述判斷步驟中的判斷結果控制所述指令的仿真和指令期望值的產生。
16.如權利要求15所述的驗證方法,其中觀測存儲有所述提取步驟中提取的信息的寄存器的值,以便在所述控制步驟中判斷所述指令是否滿足所述數(shù)據(jù)限制條件。
17.如權利要求15所述的驗證方法,其中所述數(shù)據(jù)限制條件包括限制所述參考數(shù)據(jù)值的范圍的條件。
18.如權利要求15所述的驗證方法,其中在所述控制步驟中,基于所述判斷步驟中的判斷結果暫停所述指令的仿真和所述指令期望值的產生。
19.如權利要求18所述的驗證方法,其中所述提取步驟包括提取用于產生期望值的指令和在產生指令期望值時對應的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于分析在所述提取步驟中提取的指令的參考數(shù)據(jù)是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,暫停所述指令的仿真和所述指令期望值的產生。
20.如權利要求19所述的驗證方法,其中在所述控制步驟中,所述指令的仿真和所述指令的期望值的產生被暫停,直至不具有所述數(shù)據(jù)限制條件的指令或滿足所述數(shù)據(jù)限制條件的指令作為下一個指令被提供。
21.如權利要求15所述的驗證方法,其中在所述控制步驟中基于所述判斷步驟中的判斷結果,在所述指令之后執(zhí)行的下一個指令的仿真和該下一個指令的期望值的產生被控制。
22.如權利要求21所述的驗證方法,其中在所述控制步驟中基于所述判斷步驟中的判斷結果,所述指令的仿真被暫停,并且所述指令的期望值的產生被轉換回到產生之前的狀態(tài)。
23.如權利要求22所述的驗證方法,其中通過所述指令期望值的產生獲得的期望值在所述提取步驟中被提取,并且所述控制步驟包括未定義結果判斷步驟,用于判斷通過所述指令期望值的產生獲得的期望值是否產生不能被保證作為所述指令執(zhí)行結果的未定義結果;以及優(yōu)先狀態(tài)轉換步驟,用于在所述判斷結果表明所述期望值產生未定義結果時,暫停所述指令的仿真并將所述指令期望值的產生轉換回到產生之前的狀態(tài)。
24.如權利要求15所述的驗證方法,其中所述提取步驟包括提取在所述期望值產生中執(zhí)行的指令以及在執(zhí)行所述指令時對應的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于通過用在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對在所述提取步驟中提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,通過用所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對所述指令的參考數(shù)據(jù),分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時用不具有數(shù)據(jù)限制條件的另外指令替換所述指令,仿真所替換的另外指令并且產生所替換的另外指令的期望值。
25.如權利要求15所述的驗證方法,其中所述提取步驟包括提取在所述期望值產生中執(zhí)行的指令以及在執(zhí)行所述指令時對應的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于通過用在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對在所述提取步驟中提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,將所述指令改正為參考數(shù)據(jù)滿足所述數(shù)據(jù)限制條件的另外指令,仿真所改正的指令并且產生所改正的指令的期望值。
26.如權利要求25所述的驗證方法,其中在所述控制步驟中,在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,用滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù)替換所述指令的參考數(shù)據(jù)。
27.如權利要求26所述的驗證方法,其中所述控制步驟包括候選搜索處理,用于為在所述參考數(shù)據(jù)分析步驟中被分析出具有不滿足所述數(shù)據(jù)限制條件的參考數(shù)據(jù)的指令,搜索另外的參考數(shù)據(jù)候選;候選分析處理,用于分析在所述候選搜索處理中搜索的另外的參考數(shù)據(jù)候選是否滿足所述的數(shù)據(jù)限制條件;以及參考數(shù)據(jù)替換處理,用于把所述參考數(shù)據(jù)替換為滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù)候選。
28.如權利要求25所述的驗證方法,其中在控制步驟中,在所述指令的參考數(shù)據(jù)不滿足數(shù)據(jù)限制條件時,用于把所述指令的參考數(shù)據(jù)更新為滿足所述數(shù)據(jù)限制條件的另外參考數(shù)據(jù)的更新指令產生,所述參考數(shù)據(jù)基于該更新指令被更新,并且所述指令被仿真,并且所述指令的期望值產生。
29.如權利要求28所述的驗證方法,其中所述控制步驟包括更新指令產生處理,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,產生用于將所述指令的參考數(shù)據(jù)更新為滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù)的更新指令;以及指令放置處理,用于放置更新指令,以便在所述指令仿真和所述指令的期望值產生之前執(zhí)行所述更新指令。
30.如權利要求15所述的驗證方法,其中在所述控制步驟中,當在所述判斷步驟中判斷所述參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,將所述參考數(shù)據(jù)更新為滿足所述數(shù)據(jù)限制條件的數(shù)據(jù)。
31.如權利要求30所述的驗證方法,其中所述提取步驟包括提取在所述期望值產生中執(zhí)行的指令以及在執(zhí)行所述指令時參考的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于通過用在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對在所述提取步驟中提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,強制將所述參考數(shù)據(jù)更新為滿足所述數(shù)據(jù)限制條件的另外的參考數(shù)據(jù),仿真所述指令并且產生所述指令的期望值。
32.如權利要求24所述的驗證方法,其中在所述控制步驟中,當在所述判斷步驟中判斷所述參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,通過所述指令的仿真和所述指令期望值的產生獲得的仿真結果和期望值被更新為具有相同的值。
33.如權利要求32所述的驗證方法,其中所述提取步驟包括提取在所述期望值產生中執(zhí)行的指令以及在執(zhí)行所述指令時對應的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于通過用在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對在所述提取步驟中提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,更新通過所述指令的仿真和所述指令期望值的產生獲得的仿真結果和期望值以使其具有相同的值。
34.如權利要求32所述的驗證方法,其中在所述控制步驟中,所述仿真結果被更新為具有與所述期望值相同的值,或者所述期望值被更新為具有與所述仿真結果相同的值。
35.如權利要求15所述的驗證方法,其中所述提取步驟包括提取在所述期望值產生中執(zhí)行的指令以及在執(zhí)行所述指令時對應的參考數(shù)據(jù)的步驟,并且所述控制步驟包括指令分析步驟,用于通過用在所述指令執(zhí)行時對應的參考數(shù)據(jù)的限制條件核對在所述提取步驟中提取的所述指令和參考數(shù)據(jù),分析所述指令是否具有所述數(shù)據(jù)限制條件;參考數(shù)據(jù)分析步驟,用于在所述指令具有所述數(shù)據(jù)限制條件時,分析所述指令的參考數(shù)據(jù)是否滿足所述數(shù)據(jù)限制條件;以及控制步驟,用于在所述指令的參考數(shù)據(jù)不滿足所述數(shù)據(jù)限制條件時,產生用于更新通過所述指令的仿真和所述指令期望值的產生獲得的仿真結果和期望值的更新指令,并且在所述指令仿真和所述指令的期望值產生之后執(zhí)行該更新指令。
全文摘要
當在待驗證的對象中執(zhí)行處理時,存在執(zhí)行結果依賴待參考的參考數(shù)據(jù)值并且未定義的情況。當執(zhí)行結果未定義,并且隨后的處理參考執(zhí)行結果時,執(zhí)行結果可能具有不同的值。因此,不能對執(zhí)行結果進行比較,并且驗證不能繼續(xù)。本發(fā)明提供用于給予待驗證的對象和期望值產生裝置相同的測試模式、用于執(zhí)行仿真并比較執(zhí)行結果的驗證裝置。仿真數(shù)據(jù)被提取。根據(jù)對所提取數(shù)據(jù)的分析結果,控制仿真。可替換地,在獲得未定義結果后,控制仿真。因此,可能避免會變成未定義結果的處理的執(zhí)行。
文檔編號G06F17/50GK1910588SQ200580002860
公開日2007年2月7日 申請日期2005年1月18日 優(yōu)先權日2004年1月20日
發(fā)明者米田圭, 前洋一郎, 吉田久人 申請人:松下電器產業(yè)株式會社