本發(fā)明涉及芯片驗證,尤其涉及一種測試激勵代碼的優(yōu)化方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、軟件仿真工具可以用來模擬電子系統(tǒng)和電路行為,對電路邏輯行為進行仿真,包括信號傳輸、邏輯運算和時序控制等,以驗證芯片電路的功能和時序約束是否正確。
2、隨著問題規(guī)模的擴大和復(fù)雜度的增加,基于sat(boolean?satisfiability,布爾可滿足性)求解引擎的約束求解器性能因搜索空間的膨脹而下降。現(xiàn)有技術(shù)中,通過改進sat算法可以提升基于sat求解引擎的約束求解器的性能,雖然可以直接提升求解器的運算效率和處理復(fù)雜問題的能力,但是會增加算法實現(xiàn)的復(fù)雜性、對特定類型問題過于優(yōu)化以及求解器在處理新的或未預(yù)見的問題時泛化能力下降的風(fēng)險。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供了一種測試激勵代碼的優(yōu)化方法、裝置、設(shè)備及介質(zhì),以解決在大規(guī)模約束的場景下因約束問題規(guī)模過大導(dǎo)致基于sat求解引擎的約束求解器性能下降的問題。
2、根據(jù)本發(fā)明實施例的一方面,提供了一種測試激勵代碼的優(yōu)化方法,包括:
3、在待輸入至芯片驗證環(huán)境的測試激勵代碼中獲取屬于同一作用域的各約束表達(dá)式;其中,每個約束表達(dá)式中包含被約束隨機變量和用于約束被約束隨機變量的取值范圍的約束量,約束量為常量或其他隨機變量;根據(jù)約束表達(dá)式中包含的約束量,對在各約束表達(dá)式中識別出待優(yōu)化的目標(biāo)約束表達(dá)式,并對各目標(biāo)約束表達(dá)式進行排序;按照排序結(jié)果分別遍歷每個目標(biāo)約束表達(dá)式,并在遍歷過程中逐步確定出每個目標(biāo)約束表達(dá)式中目標(biāo)被約束隨機變量的目標(biāo)取值范圍,其中,目標(biāo)取值范圍中僅包含有常量;根據(jù)每個目標(biāo)被約束隨機變量的數(shù)據(jù)寬度,按照設(shè)定的數(shù)據(jù)寬度單位對每個目標(biāo)被約束隨機變量的目標(biāo)取值范圍進行重編碼,并將重編碼結(jié)果加入至測試激勵代碼中。
4、根據(jù)本發(fā)明實施例的另一方面,還提供了一種測試激勵代碼的優(yōu)化裝置,包括:
5、約束表達(dá)式獲取模塊,用于在待輸入至芯片驗證環(huán)境的測試激勵代碼中獲取屬于同一作用域的各約束表達(dá)式;目標(biāo)約束表達(dá)式排序模塊,用于根據(jù)約束表達(dá)式中包含的約束量,對在各約束表達(dá)式中識別出待優(yōu)化的目標(biāo)約束表達(dá)式,并對各目標(biāo)約束表達(dá)式進行排序;目標(biāo)取值范圍確定模塊,用于按照排序結(jié)果分別遍歷每個目標(biāo)約束表達(dá)式,并在遍歷過程中逐步確定出每個目標(biāo)約束表達(dá)式中目標(biāo)被約束隨機變量的目標(biāo)取值范圍;目標(biāo)取值范圍重編碼模塊,用于根據(jù)每個目標(biāo)被約束隨機變量的數(shù)據(jù)寬度,按照設(shè)定的數(shù)據(jù)寬度單位對每個目標(biāo)被約束隨機變量的目標(biāo)取值范圍進行重編碼,并將重編碼結(jié)果加入至測試激勵代碼中。
6、根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設(shè)備,所述電子設(shè)備包括:
7、至少一個處理器;以及與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的計算機程序,所述計算機程序被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本發(fā)明任一實施例所述的測試激勵代碼的優(yōu)化方法。
8、根據(jù)本發(fā)明實施例的另一方面,提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)本發(fā)明任一實施例所述的測試激勵代碼的優(yōu)化方法。
9、根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機程序產(chǎn)品,包括計算機指令,所述計算機指令被處理器執(zhí)行時實現(xiàn)如本發(fā)明任一實施例所述方法的步驟。
10、本發(fā)明實施例的技術(shù)方案,通過在待輸入至芯片驗證環(huán)境的測試激勵代碼中獲取屬于同一作用域的各約束表達(dá)式,根據(jù)包含的約束量識別待優(yōu)化的目標(biāo)約束表達(dá)式并進行排序,按照排序結(jié)果分別遍歷每個目標(biāo)約束表達(dá)式,并逐步確定每個目標(biāo)約束表達(dá)式中目標(biāo)被約束隨機變量的目標(biāo)取值范圍,根據(jù)每個目標(biāo)被約束隨機變量的數(shù)據(jù)寬度,按照設(shè)定的數(shù)據(jù)寬度單位對每個目標(biāo)被約束隨機變量的目標(biāo)取值范圍進行重編碼,并將重編碼結(jié)果加入至測試激勵代碼中。通過依序逐步縮小目標(biāo)被約束隨機變量的目標(biāo)取值范圍并進行重編碼,優(yōu)化了測試激勵代碼,減小了約束求解問題輸入求解引擎的規(guī)模,提升了約束求解器的性能。
11、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識本發(fā)明的實施例的關(guān)鍵或重要特征,也不用于限制本發(fā)明的范圍。本發(fā)明的其它特征將通過以下的說明書而變得容易理解。
1.一種測試激勵代碼的優(yōu)化方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)約束表達(dá)式中包含的約束量,對在各約束表達(dá)式中識別出待優(yōu)化的目標(biāo)約束表達(dá)式,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,對各目標(biāo)約束表達(dá)式進行排序,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,將各第二類目標(biāo)約束表達(dá)式按照約束量中隨機變量之間的依賴關(guān)系進行排序,得到第二排序結(jié)果,包括:
5.根據(jù)權(quán)利要求1所述方法,其特征在于,按照排序結(jié)果分別遍歷每個目標(biāo)約束表達(dá)式,并在遍歷過程中逐步確定出每個目標(biāo)約束表達(dá)式中目標(biāo)被約束隨機變量的目標(biāo)取值范圍,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,按照排序結(jié)果依次遍歷每個目標(biāo)約束表達(dá)式,并根據(jù)每個目標(biāo)約束表達(dá)式中的約束內(nèi)容分別更新各目標(biāo)被約束隨機變量的取值范圍,包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)寬度單位為1比特;
8.一種測試激勵代碼的優(yōu)化裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)權(quán)利要求1-7中任一項所述的測試激勵代碼的優(yōu)化方法。