本發(fā)明涉及仿真驗證,尤其涉及一種通用mcu驗證平臺的系統(tǒng)級隨機驗證方法及系統(tǒng)。
背景技術(shù):
1、微控制器單元(mcu)是一種集成了中央處理器(cpu)、存儲器和其他外圍設(shè)備的集成電路,廣泛應(yīng)用于工業(yè)控制、醫(yī)療設(shè)備、汽車電子等多個領(lǐng)域。為了確保系統(tǒng)的可靠性和穩(wěn)定性,仿真驗證技術(shù)起著至關(guān)重要的作用。在mcu的仿真驗證過程中,模塊級驗證常采用基于system?verilog的隨機驗證方法,而系統(tǒng)級驗證則側(cè)重于定向驗證,主要目的是檢查系統(tǒng)間連接關(guān)系的準(zhǔn)確性。
2、mcu通常設(shè)計為包含多個時鐘域的系統(tǒng)。以一款32位mcu的時鐘系統(tǒng)為例,它可能包括外部高速時鐘hse、內(nèi)部高速時鐘hrc、內(nèi)部低速時鐘lrc、外部低速時鐘lse以及鎖相環(huán)時鐘pll等五種時鐘,以適應(yīng)正常功能和低功耗模式下的工作要求。這些時鐘不僅用于不同的模塊和模式,還允許用戶在mcu運行的任何時候進(jìn)行分頻和切換系統(tǒng)時鐘等操作,使得mcu的實際工作時序變得非常復(fù)雜。此外,mcu的模塊還集成了各種通信協(xié)議,這些協(xié)議在數(shù)據(jù)傳輸時的不確定性(如數(shù)據(jù)長度、發(fā)送時機和時鐘速率等)會產(chǎn)生更為復(fù)雜的時序問題。驗證人員在面對由復(fù)雜時序帶來的跨時鐘域、時鐘相位、時鐘分頻等驗證難點,以及mcu各個模塊眾多確定性功能的驗證點時,往往難以在系統(tǒng)級驗證中做到全面考慮,也很難通過定向測試用例進(jìn)行有效的驗證。
3、目前,隨機驗證方法主要通過仿真環(huán)境中的system?verilog語言來實現(xiàn)。systemverilog作為一種硬件描述語言,支持行為級、寄存器傳輸級(rtl)和門級描述,在數(shù)字電路的設(shè)計和驗證中得到了廣泛應(yīng)用。在system?verilog中,可以通過定義隨機環(huán)境來生成隨機測試向量,并通過與mcu寄存器的讀寫操作來執(zhí)行測試。盡管現(xiàn)有的隨機驗證方法在一定程度上提高了驗證的效率和覆蓋率,但仍面臨一些挑戰(zhàn)和限制。當(dāng)前的mcu驗證方法雖然能夠在一定程度上對模塊的工作場景進(jìn)行隨機化,但在處理模塊間時序交互或復(fù)雜使用場景的驗證時,其隨機化能力仍然不足。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種通用mcu驗證平臺的系統(tǒng)級隨機驗證方法,包括:步驟s1,在硬件環(huán)境中基于隨機變量和硬件約束條件生成隨機激勵存儲至被驗證設(shè)備中;步驟s2,所述被驗證設(shè)備的mcu調(diào)取存儲的所述隨機激勵并添加軟件約束條件,隨后將軟件約束后的所述隨機激勵用作于隨機仿真得到仿真結(jié)果;步驟s3,所述硬件環(huán)境讀取軟件約束后的所述隨機激勵產(chǎn)生期望結(jié)果,在比較所述期望結(jié)果和所述仿真結(jié)果不一致時輸出警示信息完成隨機驗證。
2、優(yōu)選的,所述步驟s1包括:步驟s11,在所述硬件環(huán)境中根據(jù)所述隨機變量生成初始隨機激勵;步驟s12,在所述硬件環(huán)境中根據(jù)所述硬件約束條件對所述初始隨機激勵進(jìn)行范圍限定,和或數(shù)值剔除完成約束得到所述隨機激勵存儲至所述被驗證設(shè)備。
3、優(yōu)選的,在執(zhí)行所述步驟s1之后還包括激勵監(jiān)控過程,包括:所述硬件環(huán)境監(jiān)控所述被驗證設(shè)備中存儲的所述隨機激勵,在所述隨機激勵被調(diào)用時再次執(zhí)行所述步驟s1重新生成所述隨機激勵存儲至所述被驗證設(shè)備。
4、優(yōu)選的,所述被驗證設(shè)備中設(shè)有存儲空間,所述隨機激勵存儲在所述存儲空間中,在執(zhí)行所述步驟s1之后還包括激勵重寫入過程,包括:所述硬件環(huán)境監(jiān)控所述存儲空間,在所述存儲空間數(shù)據(jù)丟失時,將生成的所述隨機激勵存儲再次寫入所述存儲空間。
5、優(yōu)選的,每個仿真結(jié)果關(guān)聯(lián)一條log信息,將所述硬件環(huán)境中的時間作為所述隨機變量;在每次得到所述仿真結(jié)果時,將對應(yīng)的所述隨機變量記錄在關(guān)聯(lián)的所述log信息中。
6、優(yōu)選的,所述隨機仿真過程為所述mcu根據(jù)所述隨機激勵進(jìn)行配置,在配置完畢后在所述mcu中執(zhí)行預(yù)先編寫的函數(shù)得到對應(yīng)的仿真結(jié)果。
7、優(yōu)選的,所述mcu需要至少兩條隨機激勵進(jìn)行配置;則在所述步驟s1中,所述硬件環(huán)境生成隨機激勵之后還獲取外部激勵,將所述隨機激勵和所述外部激勵存入所述mcu中;在所述隨機仿真過程中所述mcu根據(jù)所述隨機激勵和所述外部激勵進(jìn)行配置。
8、本發(fā)明還提供一種通用mcu驗證平臺的系統(tǒng)級隨機驗證系統(tǒng),應(yīng)用上述的隨機驗證方法,包括激勵產(chǎn)生環(huán)境和被驗證設(shè)備;所述激勵產(chǎn)生環(huán)境中的硬件環(huán)境包括:隨機激勵生成模塊,用于根據(jù)所述隨機變量和所述硬件約束條件產(chǎn)生所述隨機激勵,并存儲在所述被驗證設(shè)備的存儲空間中;第一監(jiān)控模塊,用于監(jiān)控所述被驗證設(shè)備的mcu在隨機仿真過程中的配置,以及監(jiān)控所述存儲空間中的所述隨機激勵;期望產(chǎn)生模塊,連接所述第一監(jiān)控模塊,用于接收所述第一監(jiān)控模塊發(fā)送的配置并產(chǎn)生對應(yīng)的所述期望結(jié)果;第二監(jiān)控模塊,用于監(jiān)控所述mcu隨機仿真產(chǎn)生的仿真結(jié)果;計分板模塊,連接所述期望產(chǎn)生模塊和所述第二監(jiān)控模塊,用于對比所述仿真結(jié)果和所述期望結(jié)果,在仿真結(jié)果和所述期望結(jié)果不一致時輸出警示信息完成隨機驗證;所述激勵產(chǎn)生環(huán)境中的運行環(huán)境配置在所述被驗證設(shè)備的mcu中,包括:軟件約束模塊,連接所述存儲空間,用于調(diào)用所述存儲空間中的所述隨機激勵并添加軟件約束,根據(jù)軟件約束后的所述隨機激勵對mcu進(jìn)行配置。
9、優(yōu)選的,所述硬件環(huán)境中還包括外部激勵模塊,連接所述隨機激勵生成模塊和所述第一監(jiān)控模塊,用于在所述mcu需要至少兩條隨機激勵進(jìn)行配置時獲取外部激勵,并以所述隨機激勵對所述外部激勵進(jìn)行約束,將約束后的所述外部激勵發(fā)送給所述mcu。
10、優(yōu)選的,所述第一監(jiān)控模塊還包括:再隨機單元,用于在所述隨機激勵被調(diào)用時驅(qū)動所述隨機激勵生成模塊重新生成所述隨機激勵存儲在所述存儲空間中;以及再寫入單元,用于監(jiān)控所述存儲空間,在所述存儲空間數(shù)據(jù)丟失時,將生成的所述隨機激勵存儲再次寫入所述存儲空間。
11、上述技術(shù)方案具有如下優(yōu)點或有益效果:
12、1、通過在硬件環(huán)境中基于隨機變量和硬件約束條件生成隨機激勵,能夠更靈活地模擬各種復(fù)雜的mcu工作場景??梢阅M出各種可能的時序關(guān)系,從而確保驗證過程能夠覆蓋到更多的場景和情況,提高驗證的全面性。從而大大增強了隨機化的能力。
13、2、可以兼容現(xiàn)有的任一mcu驗證平臺,不會對現(xiàn)有驗證環(huán)境造成影響,只是對現(xiàn)有驗證環(huán)境功能的擴(kuò)展。
1.一種通用mcu驗證平臺的系統(tǒng)級隨機驗證方法,其特征在于,包括:步驟s1,在硬件環(huán)境中基于隨機變量和硬件約束條件生成隨機激勵存儲至被驗證設(shè)備中;步驟s2,所述被驗證設(shè)備的mcu調(diào)取存儲的所述隨機激勵并添加軟件約束條件,隨后將軟件約束后的所述隨機激勵用作于隨機仿真得到仿真結(jié)果;步驟s3,所述硬件環(huán)境讀取軟件約束后的所述隨機激勵產(chǎn)生期望結(jié)果,在比較所述期望結(jié)果和所述仿真結(jié)果不一致時輸出警示信息完成隨機驗證;所述步驟s1包括:步驟s11,在所述硬件環(huán)境中根據(jù)所述隨機變量生成初始隨機激勵;步驟s12,在所述硬件環(huán)境中根據(jù)所述硬件約束條件對所述初始隨機激勵進(jìn)行范圍限定,和/或數(shù)值剔除完成約束得到所述隨機激勵存儲至所述被驗證設(shè)備。
2.根據(jù)權(quán)利要求1所述的隨機驗證方法,其特征在于,在執(zhí)行所述步驟s1之后還包括激勵監(jiān)控過程,包括:所述硬件環(huán)境監(jiān)控所述被驗證設(shè)備中存儲的所述隨機激勵,在所述隨機激勵被調(diào)用時再次執(zhí)行所述步驟s1重新生成所述隨機激勵存儲至所述被驗證設(shè)備。
3.根據(jù)權(quán)利要求1所述的隨機驗證方法,其特征在于,所述被驗證設(shè)備中設(shè)有存儲空間,所述隨機激勵存儲在所述存儲空間中,在執(zhí)行所述步驟s1之后還包括激勵重寫入過程,包括:所述硬件環(huán)境監(jiān)控所述存儲空間,在所述存儲空間數(shù)據(jù)丟失時,將生成的所述隨機激勵存儲再次寫入所述存儲空間。
4.根據(jù)權(quán)利要求1所述的隨機驗證方法,其特征在于,每個仿真結(jié)果關(guān)聯(lián)一條log信息,將所述硬件環(huán)境中的時間作為所述隨機變量;在每次得到所述仿真結(jié)果時,將對應(yīng)的所述隨機變量記錄在關(guān)聯(lián)的所述log信息中。
5.根據(jù)權(quán)利要求1所述的隨機驗證方法,其特征在于,所述步驟s2中隨機仿真過程為所述mcu根據(jù)所述隨機激勵進(jìn)行配置,在配置完畢后在所述mcu中執(zhí)行預(yù)先編寫的函數(shù)得到對應(yīng)的仿真結(jié)果。
6.根據(jù)權(quán)利要求5所述的隨機驗證方法,其特征在于,所述mcu需要至少兩條隨機激勵進(jìn)行配置;則在所述步驟s1中,所述硬件環(huán)境生成隨機激勵之后還獲取外部激勵,將所述隨機激勵和所述外部激勵存入所述被驗證設(shè)備中;在所述隨機仿真過程中所述mcu根據(jù)所述隨機激勵和所述外部激勵進(jìn)行配置。
7.一種通用mcu驗證平臺的系統(tǒng)級隨機驗證系統(tǒng),其特征在于,應(yīng)用如權(quán)利要求1-6中任意一項所述的隨機驗證方法,包括激勵產(chǎn)生環(huán)境和被驗證設(shè)備;所述激勵產(chǎn)生環(huán)境中的硬件環(huán)境包括:隨機激勵生成模塊,用于根據(jù)所述隨機變量和所述硬件約束條件產(chǎn)生所述隨機激勵,并存儲在所述被驗證設(shè)備的存儲空間中;第一監(jiān)控模塊,用于監(jiān)控所述被驗證設(shè)備的mcu在隨機仿真過程中的配置,以及監(jiān)控所述存儲空間中的所述隨機激勵;期望產(chǎn)生模塊,連接所述第一監(jiān)控模塊,用于接收所述第一監(jiān)控模塊發(fā)送的配置并產(chǎn)生對應(yīng)的所述期望結(jié)果;第二監(jiān)控模塊,用于監(jiān)控所述mcu隨機仿真產(chǎn)生的仿真結(jié)果;計分板模塊,連接所述期望產(chǎn)生模塊和所述第二監(jiān)控模塊,用于對比所述仿真結(jié)果和所述期望結(jié)果,在仿真結(jié)果和所述期望結(jié)果不一致時輸出警示信息完成隨機驗證;所述激勵產(chǎn)生環(huán)境中的運行環(huán)境配置在所述被驗證設(shè)備的mcu中,包括:軟件約束模塊,連接所述存儲空間,用于調(diào)用所述存儲空間中的所述隨機激勵并添加軟件約束,根據(jù)軟件約束后的所述隨機激勵對mcu進(jìn)行配置。
8.根據(jù)權(quán)利要求7所述的隨機驗證系統(tǒng),其特征在于,所述硬件環(huán)境中還包括外部激勵模塊,連接所述隨機激勵生成模塊和所述第一監(jiān)控模塊,用于在所述mcu需要至少兩條隨機激勵進(jìn)行配置時獲取外部激勵,并以所述隨機激勵對所述外部激勵進(jìn)行約束,將約束后的所述外部激勵發(fā)送給所述mcu。
9.根據(jù)權(quán)利要求7所述的隨機驗證系統(tǒng),其特征在于,所述第一監(jiān)控模塊還包括:再隨機單元,用于在所述隨機激勵被調(diào)用時驅(qū)動所述隨機激勵生成模塊重新生成所述隨機激勵存儲在所述存儲空間中;以及再寫入單元,用于監(jiān)控所述存儲空間,在所述存儲空間數(shù)據(jù)丟失時,將生成的所述隨機激勵存儲再次寫入所述存儲空間。