一種基于遍歷搜索存儲模型的Cache系統(tǒng)形式化驗證方法
【技術領域】
[0001]本發(fā)明涉及一種Cache系統(tǒng)的形式化驗證方法,特別涉及一種基于遍歷搜索存儲模型的Cache系統(tǒng)形式化驗證方法。
【背景技術】
[0002]隨著設計復雜度的提升,驗證成為了影響設計流程的一個重要因素,而且驗證的開銷也越來越大。傳統(tǒng)的Cache驗證方法是仿真驗證。仿真驗證由輸入驅動,是輸入空間的采用,需要通過添加外部激勵向量,通過觀察Cache系統(tǒng)在激勵信號的作用下的反映來判斷該設計是否達到了設計的目標。這種方法的缺點是驗證覆蓋率的完整性依賴于測試向量的選取,達到高的覆蓋率和充分的驗證結果,是一個十分艱難的過程而且要求驗證時間比較長。
[0003]帶有存儲器管理單元的Cache系統(tǒng)相對較復雜,使得仿真驗證狀態(tài)空間變得很大,數(shù)據(jù)完整性的和驗證全面性的要求使得采用形式化的驗證方法更合適。此外,由于驗證過程需要memory模型,傳統(tǒng)的模型需要模擬完整的存儲單元,占用太大的空間,不利于驗證的進行,所以有必要在Cache memory模型建立方面進行創(chuàng)新,才能提高Cache形式化驗證的可控性和靈活性。
【發(fā)明內容】
[0004]本發(fā)明的技術解決的問題是:克服了現(xiàn)有仿真驗證的不足之處,提供了一種cache系統(tǒng)的形式化驗證方法,該方法建立一種遍歷搜索存儲模型,采用模型檢查的方法對Cache單元進行驗證,從而克服了驗證不靈活、Cache memory模型太大導致驗證時間過長以及結果覆蓋率不全面的缺點。
[0005]本發(fā)明的技術解決方案是:如圖1和圖3所示,一種基于遍歷搜索存儲模型的Cache系統(tǒng)形式化驗證方法,包括以下步驟:
[0006](1)用硬件描述語言(例如VHDL語言)建立一種遍歷搜索Cache memory模型(用RTL代碼描述)。該模型包含指令Cache memory和數(shù)據(jù)Cache memory,針對指令Cachememory或數(shù)據(jù)Cache memory僅用2個Cache line來代表原來的整個memory塊,每個Cacheline包括數(shù)據(jù)data、標記位tag、錯誤標記位err_f lag、保護鎖定標識lock、替換算法標識lrr以及有效位valid。有效位valid可以進行擴展,即針對指令Cache memory和數(shù)據(jù)Cache memory的組相連方式不同,即每一個Cache line有效位valid位數(shù)是不同的,分別建立對應的模型;
[0007](2)根據(jù)Cache需要驗證的功能,利用System Verilog Assert1n (SVA)語言描述指令Cache的讀指令和burst操作功能,描述數(shù)據(jù)Cache的正確讀寫功能,即是用SVA語言對步驟(1)中的遍歷搜索Cache memory模型中的數(shù)據(jù)data、標記位tag、錯誤標記位err_flag、保護鎖定標識lock、替換算法標識lrr以及有效位valid進行描述;
[0008](3)利用接口將步驟⑴建立的遍歷搜索Cache memory模型和步驟⑵中的斷言描述連接(link)起來,最后用形式化工具對斷言正確性進行檢查,即檢驗步驟(2)中描述的指令Cache讀指令和burst操作功能以及數(shù)據(jù)Cache的正確讀寫功能與步驟(1)中建立模型的待驗證功能是否一致,如果一致則驗證完成,否則進行對Cache進行調試,直至步驟(1)中建立模型的待驗證功能與步驟(2)中斷言描述的功能一致,如圖4所示,當所有功能全部驗證通過,則結束驗證,否則通過增加或者修改斷言描述來驗證未完成的功能。(即從Cache memory模型實際輸出的數(shù)據(jù)和向Cache memory模型請求的數(shù)據(jù)完全相等,貝lj判定驗證功能一致,否則判定為不一致。)
[0009]本發(fā)明與現(xiàn)有技術相比的有益效果是:
[0010](1)驗證方法提出了一種遍歷搜索存儲模型,利用形式化窮舉的特點,使用一組信號描述了整個的Cache memory行為特征,這樣大大的減小了存儲模型的大小,而且提高了memory模型的行為可控性;
[0011](2)采用基于斷言的模型檢查方法,不再需要提供外部的測試向量,而是根據(jù)設計文檔對輸入進行約束,用斷言對輸出進行描述,利用形式化遍歷窮舉的數(shù)學方法證明功能點,這樣可以發(fā)現(xiàn)設計中用戶無法想到或者無法用仿真來發(fā)現(xiàn)的錯誤,從而提高了驗證的完備性。
【附圖說明】
[0012]圖1是本發(fā)明Cache形式化驗證的結構示意圖;
[0013]圖2 (a)是本發(fā)明的Cache memory模型中的recordO信號示意圖;2(b)是本發(fā)明的Cache memory模型中的recordl信號示意圖;
[0014]圖3是本發(fā)明Cache模型檢查方法的流程圖;
[0015]圖4是本發(fā)明Cache驗證功能覆蓋率收集過程流程圖。
【具體實施方式】
[0016]本發(fā)明的思路為:一種基于遍歷搜索存儲模型的Cache系統(tǒng)形式化驗證方法,本方法提出采用基于模型檢查的形式化驗證方式對Cache控制單元進行驗證。形式化驗證方法是由輸出驅動的,用戶只需要根據(jù)需求編寫相關的斷言語句而不需要關心輸入激勵的產(chǎn)生,同時建立一個遍歷搜索的Cache memory模型,并通過數(shù)學方法進行模型檢查最終達到驗證的目的,這樣可以遍歷所有的可能和相關狀態(tài)條件。本發(fā)明利用形式化驗證的數(shù)學窮舉特性,對指令Cache和數(shù)據(jù)Cache分別建立了遍歷搜索Cache memory模型,實現(xiàn)了 Cache控制單元的準確驗證,縮短了驗證的時間周期,同時提高了驗證的可控性和靈活性。
[0017]下面結合附圖和具體實施例對本發(fā)明進行詳細說明。
[0018]Cache系統(tǒng)包括數(shù)據(jù)Cache、指令Cache、存儲器管理單元、Cache與總線通信管理單元等。存儲器管理單元主要進行虛擬地址和物理地址的轉換,通信管理單元主要負責Cache與AHB總線之間的通信和數(shù)據(jù)傳遞。驗證功能點包括:數(shù)據(jù)正常讀寫功能、指令正常讀功能、指令Cache支持burst操作。
[0019](1)提出一種遍歷搜索Cache memory模型,根據(jù)Cache系統(tǒng)中指令Cache和數(shù)據(jù)Cache的有效位valid位數(shù)不同,分別建立各自對應的cache memory模型,如圖2的(a)和(b)所不,數(shù)據(jù)Cache memory中用兩個Cache line (即reordO和reordl)來描述該模型,利用recordO代表整個數(shù)據(jù)Cache中存儲的數(shù)據(jù)data,標記位tag,錯誤標記err_flag,鎖定信號lock,替換標識lrr,以及有效位標識valid,這樣根據(jù)形式化窮舉的特征,僅需要一組信號就可以表示出整個的數(shù)據(jù)cache memory模型。為了驗證數(shù)據(jù)cache的替換算法,使用2組record信號,每次數(shù)據(jù)Cache沒有命中時,都要進行record信號數(shù)值的更新,但對于valid部分,recordO僅更新一次,而recordl每次都更新,當輸入信號中的地址等于觀察的地址時需要比較兩個valid的關系即可驗證整個Cache的替換算法。(例如:當替換算法是最近最少替換原則LRU時,兩個valid的關系是recordO和recordl之間valid僅有一位不同,即