本發明專利技術公開了一種擴展狀態機圖的結構和構建方法,以及在其上實現遍歷的方法,還公開了根據遍歷結果產生測試用例的方法。該擴展狀態機圖對分析覆蓋率有很好的幫助。遍歷方法簡單實用,可以產生狀態序列、狀態轉移時選取的輸出函數、使狀態轉移發生的測試激勵包的約束標簽或其中產生的具體輸入信號值。測試用例產生方法,可以根據遍歷結果的不同形式,包括固定值的激勵包、帶約束的激勵包、帶不可實現標記的激勵包,完成測試用例的產生,實現對更多覆蓋率指標的高覆蓋效果。測試用例的產生過程,可以接受人工的指導來減少運算量。該套方法對邊角情況的自動驗證非常有效,減低了驗證工程師制造邊角情況場景和測試用例的成本。
【技術實現步驟摘要】
本專利技術涉及,屬于集成電路功能驗證的
技術介紹
現有的集成電路功能驗證方法主要通過限制性隨機驗證完成大部分應用場景的模擬。對于很難在隨機情況中產生的邊角情況由驗證工程師手工編寫,并通過原有的驗證平臺加載到被測設計中,這時邊角情況種類的完全性、產生的復雜度、與現有驗證平臺的兼容性都直接影響到了驗證成本。驗證工程師會根據狀態機的狀態點和狀態之間的轉移功能是否被覆蓋到來決定手工編寫的測試案例的內容,以達到兩者覆蓋率的完整。狀態機圖中只標注了狀態和其之間的轉移連線,狀態內部的各種情況沒有進行圖形標注,致使邊角情況的制造困難。在狀態機圖上的遍歷研究中,最優解的查找往往比較復雜,根據功能驗證的特性,少量的重復減少大量的計算是更實用的方案。而且僅對簡單的狀態的遍歷,對其他覆蓋率指標和一些邊角情況的功能測點效果不明顯。隨機加手工的方法產生的測試用例集合整體效率并不高,因為其中測試用例的針對性不強,對某些覆蓋的重復測試過多,影響相同覆蓋率下仿真軟件的運行時間。為解決高覆蓋率且高效的測試用例的產生問題,甚至是對于某些指標的全覆蓋率和最高效問題,本專利將提出一種擴展的狀態機模型,配以低復雜度的遍歷方法和測試用例產生方法,完成高效高覆蓋率測試用例的自動產生。現有根據狀態序列產生測試信號的方法,僅考慮當前運行周期輸入信號對狀態轉移的影響,對復雜狀態機,特別是由內部變量引起的狀態轉移,現有方法無法滿足。
技術實現思路
本專利技術要解決的主要技術問題是,提供一種擴展的狀態機圖及其構建方法,在此基礎上提供對應的遍歷方法和測試用例的自動生成方法。為解決上述技術問題,本專利技術采用的技術方案如下:一種擴展的狀態機圖及其構建方法:1.狀態集合、狀態轉移集合、狀態轉移條件集合分別用帶有狀態名的圓圈、帶箭頭的曲線、曲線上轉移條件的文字表示。2.收集并分類每個狀態中涉及的輸入信號、內部變量、輸出信號、輸出函數。3.對于每個狀態中的每個輸出函數,收集和記錄實現該輸出函數對輸入信號和內部變量的要求,以及該輸出函數輸出時所影響的內部變量與輸出信號。4.將每個狀態中的每個輸出函數,按照輸出后的下一狀態分類。即該狀態的狀態扇出數目為輸出函數的分類數目。5.在每個狀態圓圈中,構建影響輸出函數選擇,由輸入信號和內部變量取值約束構成的,具有優先級先后順序的路徑圖。進一步地,狀態圓圈中的路徑圖,其特征在于,每個狀態有幾種下一狀態,就有幾個路徑終點,即該狀態的狀態扇出數。該路徑圖上的每一條路徑都由一個統一的起點出發,路經該狀態所有輸入信號和內部變量,最后匯聚到這幾個終點中的一個上,形成一條完整的路徑。該起點由該狀態的扇入狀態轉移曲線的終點匯合而成。每一條連接到終點的路徑都對應著一種輸出函數的選擇。從起點走到終點的一條完整路徑,表示了如果要走到最后連接終點的線路所表示的輸出函數,需要經過一路上各相關輸入信號和內部變量的約束,隨后通過終點對應的狀態轉移曲線,進入下一個狀態。更進一步地,狀態圓圈中的路徑圖,其特征在于,在路徑上標注通過該路徑時對輸入信號和內部變量相關的約束條件,包括與多個信號或多個變量相關的組合約束條件,并且同一條路徑上相同的約束條件可以合并。同一個狀態圓圈中的各輸出函數的選取條件可能會存在重疊,根據設計中判斷輸出函數選擇的實際判斷條件的優先級從上到下排列,高優先級的選擇條件自動從低優先級的選擇條件中減掉,使每條完整路徑上的約束條件不會重疊。在擴展的狀態機圖上遍歷的方法:I)計算并保存狀態機圖上任意一個狀態到另一個狀態中間經過的最少狀態路徑,即任意兩狀態間的最短路徑。從一個狀態到另一個狀態,如果是不可達的,最短路徑則為無限大。進入第二步。2)如果從復位后的初始狀態存在到某一個狀態的最短路徑是不可達,停止該方法,打印狀態機設計錯誤信息,否則進入第三步。3)統計每一個狀態到其每種下一個狀態可能通過的路徑圖中的路徑種類。并將種類數標記在該狀態到其下一狀態的狀態轉移連線上。4)創建一條路徑,增加到遍歷路徑集合中,以復位后的初始狀態節點作為起始節點,進入第5步。5)如果當前狀態節點到任意下一狀態節點存在3步中標記的大于零的轉移連線,從中選擇一個下一狀態,并選擇一條可以連接到該狀態轉移的輸出函數的約束路徑通過,在4步中創建的路徑中記錄這個狀態轉移,并將這個轉移的連線上標記的數字減一,再以進入的下一狀態節點作為當前節點,進入5步驟。如果當前狀態節點到任意下一狀態節點轉移連線上的數字都為零,則進入6步驟。6)如果狀態機圖中所有狀態之間的轉移連線上的數字都不大于零時,則遍歷完成,停止該方法,打印所有遍歷路徑集合中的路徑。如果狀態機圖中狀態之間的轉移連線上的數字存在大于零的情況時,進入步驟7。7)如果不存在路徑從當前狀態節點到任何一個標記的數字還大于零的狀態轉移連線的起始狀態節點,則進入步驟4,建立另一個從復位動作開始的路徑。如果存在路徑從當前狀態節點到一個標記的數字還大于零的狀態轉移連線的起始狀態節點,從所有滿足該條件的起始狀態節點中選擇一個,從步驟I中保存的任意兩個可達節點的最短路徑中找到當前狀態節點到所選大于零的狀態轉移連線的起始狀態節點的最短路徑,將該路徑記錄在遍歷路徑中,路徑中經歷的連線上的數字減一。被選擇的大于零的連線的起始狀態節點作為當前節點,進入步驟5。在擴展的狀態機圖上遍歷的方法,其特征在于,先確定下一狀態,再確定進入該下一狀態的輸出函數。在擴展的狀態機圖上遍歷的方法,其特征在于,選擇下一狀態的選擇條件按優先級從高到低的排序為:優先選擇沒有走過的狀態轉移和狀態、選擇在當前條件下可實現該狀態轉移的、選擇該狀態轉移上標記數字大的、選擇該狀態轉移上已減掉的數字小的、選擇該狀態轉移上可實現的輸出函數的種類數字大的、隨機選擇。在擴展的狀態機圖上遍歷的方法,其特征在于,選擇輸出函數時,備選輸出函數集合是連接到選定的下一狀態的輸出函數路徑集合。選擇的優先級從高到低的排序為:優先選擇沒有走過的輸出函數路徑、選擇當前條件下可實現的輸出函數、選取位置靠上的路徑即路徑圖中判斷條件處于較高優先級的路徑。在擴展的狀態機圖上遍歷的方法,其特征在于,記錄遍歷集合中每條路徑經過各節點時狀態轉移的可實現性、選擇的輸出函數、輸入信號與內部變量的約束條件、該輸出函數對內部變量值的影響。需要產生具體輸入信號值時,按照約束條件產生。需要計算輸出信號和內部變量時,根據所選輸出函數設計的功能計算輸出信號和內部變量。在擴展的狀態機圖上遍歷的方法,其特征在于,選擇標記數字大于零的狀態轉移連線的起始狀態節點時優先級從高到低的排序是:優先選擇從當前狀態節點到各大于零的狀態轉移連線的起始狀態節點的最短路徑中路徑長度最短的、選擇從該起始狀態節點所有狀態扇出連線上大于零的數字的總和最大的、選擇從當前狀態節點到各大于零的狀態轉移連線的起始狀態節點的最短路徑中路徑上大于零的數字的總和最大的,隨機選擇。在擴展的狀態機圖上遍歷的方法,其特征在于,可實現性的判斷由是否可以產生滿足該路徑選擇中所有約束條件的數據為依據。在擴展的狀態機圖上遍歷的方法,其特征在于,對于選定的狀態轉移和輸出函數,如果輸入信號的生成不可實現,則用符合選定狀態轉移和輸出函數的內部變量值替換當時內部變量的實際值,生成輸入信號,繼續向后計算,同時本文檔來自技高網...
【技術保護點】
一種擴展的狀態機圖及其構建方法,其特征在于包括:1)狀態集合、狀態轉移集合、狀態轉移條件集合分別用帶有狀態名的圓圈、帶箭頭的曲線、曲線上轉移條件的文字表示。2)收集并分類每個狀態中涉及的輸入信號、內部變量、輸出信號、輸出函數。3)對于每個狀態中的每個輸出函數,收集和記錄實現該輸出函數對輸入信號和內部變量的要求,以及該輸出函數輸出時所影響的內部變量與輸出信號。4)將每個狀態中的每個輸出函數,按照輸出后的下一狀態分類。即該狀態的狀態扇出數目為輸出函數的分類數目。5)在每個狀態圓圈中,構建影響輸出函數選擇,由輸入信號和內部變量取值約束構成的,具有優先級先后順序的路徑圖。
【技術特征摘要】
【專利技術屬性】
技術研發人員:謝崢,羅永貴,宋建龍,伍國斌,李姮樂,
申請(專利權)人:李姮樂,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。