亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

產(chǎn)生斷言的設(shè)備和方法以及驗(yàn)證處理器的設(shè)備和方法

文檔序號:6510826閱讀:127來源:國知局
產(chǎn)生斷言的設(shè)備和方法以及驗(yàn)證處理器的設(shè)備和方法
【專利摘要】提供一種產(chǎn)生斷言的設(shè)備和方法以及驗(yàn)證處理器的設(shè)備和方法。示例性實(shí)施例公開了一種用于基于用戶程序代碼產(chǎn)生斷言的方法。所述方法包括接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息,并基于用戶程序的編譯結(jié)果和處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言。
【專利說明】產(chǎn)生斷言的設(shè)備和方法以及驗(yàn)證處理器的設(shè)備和方法
[0001]本申請要求于2012年9月7日提交的第61/698,050號美國臨時(shí)專利申請以及于2013年8月13日提交的第10-2013-0096109號韓國專利申請的優(yōu)先權(quán),所述申請的全部公開通過引用合并于此。
【技術(shù)領(lǐng)域】
[0002]示例性實(shí)施例涉及一種用于產(chǎn)生斷言并使用所述斷言驗(yàn)證處理器的技術(shù)。
【背景技術(shù)】
[0003]現(xiàn)有技術(shù)中的處理器的功能驗(yàn)證意味著用于檢查處理器的架構(gòu)規(guī)范以及在寄存器傳輸級(RTL)設(shè)計(jì)的處理器是否在邏輯上執(zhí)行相同操作的驗(yàn)證?,F(xiàn)有技術(shù)中的驗(yàn)證測試案例(諸如回歸測試和隨機(jī)測試)應(yīng)用于驗(yàn)證設(shè)計(jì)的處理器。另外,測試覆蓋率被測量以檢查是否已經(jīng)驗(yàn)證了各種設(shè)計(jì)功能。
[0004]現(xiàn)有技術(shù)中的測試覆蓋率大致被劃分為代碼覆蓋率和功能覆蓋率。代碼覆蓋率是在測試案例的仿真期間設(shè)計(jì)的代碼被如何徹底地測試的指標(biāo),并且功能覆蓋率是工程師想要測量的功能是否被執(zhí)行的指標(biāo)。
[0005]功能覆蓋率是用于通過設(shè)計(jì)用于在工程師想要測量的處理器操作之中必須被執(zhí)行或不應(yīng)該被執(zhí)行的操作的斷言來測量斷言是否被執(zhí)行的方法。
[0006]在基于斷言的驗(yàn)證(ABV)中,將斷言插入到設(shè)計(jì)的處理器中,并且對被插入斷言的處理器進(jìn)行仿真。在處理器的仿真期間,通過監(jiān)視和檢查插入的斷言容易地發(fā)現(xiàn)錯誤檢測點(diǎn),使得驗(yàn)證時(shí)間被減少。
[0007]然而,現(xiàn)有技術(shù)中的斷言必須由用戶基于處理器的架構(gòu)規(guī)范被設(shè)計(jì)并且每當(dāng)所述架構(gòu)規(guī)范被改變時(shí)都需要重新設(shè)計(jì)斷言。另外,在現(xiàn)有技術(shù)中,有必要驗(yàn)證斷言是否被適當(dāng)?shù)卦O(shè)計(jì)。因此,需要大量的時(shí)間和精力來設(shè)計(jì)斷言。

【發(fā)明內(nèi)容】

[0008]在示例性實(shí)施例的一個(gè)方面,提供一種用于基于用戶程序代碼產(chǎn)生斷言的方法,并且所述方法包括:接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息;基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言。
[0009]所述至少一個(gè)斷言指令可指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
[0010]產(chǎn)生斷言的步驟可包括:基于所述至少一個(gè)斷言指令的解釋來確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼;基于在編譯結(jié)果中的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
[0011]產(chǎn)生斷言的步驟可包括:產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
[0012]產(chǎn)生斷言的步驟可包括:使用硬件描述語言(HDL)產(chǎn)生所述斷言。
[0013]產(chǎn)生斷言的步驟可包括:產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
[0014]在示例性實(shí)施例的另一方面,提供一種斷言產(chǎn)生設(shè)備,并且所述斷言產(chǎn)生設(shè)備包括:接收器,被配置為接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息;斷言產(chǎn)生器,被配置為基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言。
[0015]所述至少一個(gè)斷言指令可指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
[0016]斷言產(chǎn)生器可確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼;并基于編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
[0017]斷言產(chǎn)生器可產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
[0018]斷言產(chǎn)生器可使用硬件描述語言(HDL)產(chǎn)生所述斷言。
[0019]斷言產(chǎn)生器可產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
[0020]在示例性實(shí)施例的另一方面,提供一種用于驗(yàn)證處理器的方法,并且所述方法包括:接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息;基于所述編譯結(jié)果以及處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言;在寄存器傳輸級(RTL)的處理器模型中仿真所述編譯結(jié)果,以便驗(yàn)證在處理器模型中在所述斷言中規(guī)定的操作是否被執(zhí)行。
[0021]所述至少一個(gè)斷言指令中的每個(gè)斷言指令可指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
[0022]產(chǎn)生斷言的步驟可包括:基于所述至少一個(gè)斷言指令的解釋來確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼;基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
[0023]產(chǎn)生斷言的步驟可包括:產(chǎn)生規(guī)定所述功能塊在所述時(shí)間點(diǎn)需要執(zhí)行的操作的斷言。
[0024]產(chǎn)生斷言的步驟可包括:使用硬件描述語言(HDL)產(chǎn)生所述斷言。
[0025]產(chǎn)生斷言的步驟可包括:產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
[0026]仿真編譯結(jié)果的步驟可包括:將斷言插入到處理器模型中,并在被插入斷言的處理器模型中仿真所述編譯結(jié)果。
[0027]在示例性實(shí)施例的另一方面,提供一種處理器驗(yàn)證設(shè)備,并且所述處理器驗(yàn)證設(shè)備包括:接收器,被配置為接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息;斷言產(chǎn)生器,被配置為基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言;驗(yàn)證器,被配置為在寄存器傳輸級(RTL)的處理器模型中仿真所述編譯結(jié)果,以便驗(yàn)證在所述處理器模型中在所述斷言中規(guī)定的操作是否被執(zhí)行。
[0028]所述至少一個(gè)斷言指令中的每個(gè)斷言指令可指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
[0029]斷言產(chǎn)生器可解釋所述至少一個(gè)斷言指令,以便確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼,并基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
[0030]斷言產(chǎn)生器可產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
[0031]斷言產(chǎn)生器使用硬件描述語言(HDL)產(chǎn)生所述斷言。
[0032]斷言產(chǎn)生器可產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
[0033]驗(yàn)證器可將斷言插入到處理器模型中,然后在被插入所述斷言的處理器模型中仿真所述編譯結(jié)果。
[0034]在示例性實(shí)施例的另一方面,一種用于基于用戶程序代碼產(chǎn)生斷言的方法可包括:接收用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息;解釋斷言指令,以便從用戶程序中的多個(gè)代碼中確定代碼;確定用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn);確定在所述時(shí)間點(diǎn)執(zhí)行用戶程序的被確定的代碼的功能塊;在用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)產(chǎn)生斷言。
[0035]從以下詳細(xì)描述、附圖和權(quán)利要求中,其他特征和方面可以是清楚的。
【專利附圖】

【附圖說明】
[0036]通過參照附圖詳細(xì)描述示例性實(shí)施例,示例性實(shí)施例的以上和其他方面和優(yōu)點(diǎn)將變得更加清楚,其中:
[0037]圖1是示出根據(jù)示例性實(shí)施例的斷言產(chǎn)生設(shè)備的配置的示圖。
[0038]圖2是示出根據(jù)示例性實(shí)施例的處理器驗(yàn)證設(shè)備的配置的示圖。
[0039]圖3是用戶程序的示例。
[0040]圖4是圖3中示出的用戶程序的編譯結(jié)果的示例。
[0041]圖5是產(chǎn)生的斷言的示例。
[0042]圖6是示出根據(jù)示例性實(shí)施例的用于產(chǎn)生斷言的方法的流程圖。
[0043]圖7是示出根據(jù)示例性實(shí)施例的用于產(chǎn)生斷言的方法的詳細(xì)流程圖。
[0044]圖8是示出根據(jù)示例性實(shí)施例的用于驗(yàn)證處理器的方法的流程圖。
【具體實(shí)施方式】
[0045]在整個(gè)附圖和詳細(xì)說明中,除非另有描述,否則相同的附圖參考標(biāo)號將被理解為指示相同的元件、特征和結(jié)構(gòu)。為了清楚、說明和方便,可夸大這些元件的相對大小和描繪。
[0046]以下描述被提供用于幫助讀者獲得在此描述的方法、設(shè)備和/或系統(tǒng)的全面理解。因此,在此描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物將被建議給本領(lǐng)域的普通技術(shù)人員。此外,為了更加清楚和方便,可省略公知功能和結(jié)構(gòu)的描述。
[0047]圖1是示出根據(jù)示例性實(shí)施例的斷言產(chǎn)生設(shè)備的配置的示圖。
[0048]參照圖1,斷言產(chǎn)生設(shè)備100使用硬件描述語言(HDL)產(chǎn)生斷言,以便驗(yàn)證在寄存器傳輸級(RTL)設(shè)計(jì)的處理器模型的操作。
[0049]斷言是關(guān)于處理器在運(yùn)行時(shí)間期間必須執(zhí)行的操作的語句。例如,斷言可規(guī)定處理器必須執(zhí)行的操作的條件,并可規(guī)定如果處理器在用戶程序的運(yùn)行時(shí)間期間無法滿足所述條件則錯誤將被輸出。
[0050]斷言產(chǎn)生設(shè)備100可包括接收器110和斷言產(chǎn)生器130。
[0051]接收器110接收用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。
[0052]用戶程序由程序員任意實(shí)現(xiàn)以驗(yàn)證處理器的操作,并可包括一個(gè)或多個(gè)斷言指令。
[0053]斷言指令指示用戶程序的全部代碼中需要處理器的操作驗(yàn)證的代碼。另外,用戶可產(chǎn)生斷言,諸如將斷言指令插入到在用戶程序的全部代碼中需要處理器的操作驗(yàn)證的代碼中。
[0054]參照圖3中示出的用戶程序的示例,斷言指令300規(guī)定,如果循環(huán)計(jì)數(shù)器(i)是3,則產(chǎn)生斷言以驗(yàn)證執(zhí)行操作“A[i]=reSult”的處理器??蓪⒁粋€(gè)或多個(gè)斷言指令插入用戶程序。
[0055]處理器的架構(gòu)信息可包括在處理器中包含的功能塊的數(shù)量和類型、功能塊之間的互連、功能塊的控制流程以及關(guān)于處理器的配置的信息。
[0056]用戶程序的編譯結(jié)果是指由編譯器從用戶程序轉(zhuǎn)換以便在處理器中被立即執(zhí)行的二進(jìn)制代碼。
[0057]斷言產(chǎn)生器130基于輸入用戶程序的源代碼、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息來產(chǎn)生斷言。
[0058]斷言產(chǎn)生器130可解釋在用戶程序中包括的斷言指令,以便從用戶程序的全部代碼中找到需要處理器的操作驗(yàn)證的代碼。例如,圖3中示出的斷言指令300規(guī)定,如果循環(huán)計(jì)數(shù)器(i)為3,則產(chǎn)生斷言以驗(yàn)證在存儲變量A[i]的處理器的功能塊中所存儲的值。因此,給定斷言指令300,斷言產(chǎn)生器130在循環(huán)計(jì)數(shù)器(i)為3時(shí)驗(yàn)證執(zhí)行“A[i]=reSult”的處理器的操作。
[0059]對斷言指令300進(jìn)行解釋不足以找到處理器的哪個(gè)功能塊在哪個(gè)時(shí)間點(diǎn)執(zhí)行由斷言指令300指示的代碼。為此,為了找到在處理器中如何執(zhí)行由斷言指令指示的操作,需要用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。
[0060]例如,假定斷言指令指示驗(yàn)證由處理器執(zhí)行的預(yù)定倍增計(jì)算,所述計(jì)算是在用戶程序的代碼中規(guī)定的操作。在此情況下,基于在用戶程序的編譯結(jié)果中包括的調(diào)度信息和處理器的架構(gòu)信息,必須找到執(zhí)行所述預(yù)定倍增計(jì)算的處理器的功能塊以及所述功能塊執(zhí)行預(yù)定倍增計(jì)算的執(zhí)行周期。
[0061]因此,基于編譯結(jié)果和處理器的架構(gòu)信息,斷言產(chǎn)生器130確定由斷言指令指示的用戶程序的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的處理器的功能塊。另夕卜,用戶程序的編譯結(jié)果包括用戶程序被調(diào)度以適合處理器的架構(gòu)的調(diào)度信息,使得用戶程序在處理器中被立即執(zhí)行。因此,基于調(diào)度信息和處理器架構(gòu),能夠找到處理器的功能塊以及由斷言指令指示的用戶程序的預(yù)定代碼被執(zhí)行的周期。
[0062]例如,如圖4所示,可調(diào)度圖3中示出的用戶程序。在圖4中,F(xiàn)U#00至FU#09中的每個(gè)是指在處理器中包括的功能單元,并且將操作分配給每個(gè)功能單元以在每個(gè)周期被執(zhí)行。如果在調(diào)度信息中的循環(huán)計(jì)數(shù)器為3,則操作“A[i]=reSult”在周期22被分配給FU#00o因此,如圖5所示,當(dāng)用指示循環(huán)計(jì)數(shù)器的變量i映射的FU#05為0時(shí),斷言產(chǎn)生器130可考慮循環(huán)開始。因此,可產(chǎn)生斷言以在周期22之后驗(yàn)證在FU#00中存儲的值。
[0063]如果用戶程序包括一個(gè)或多個(gè)斷言指令,則斷言產(chǎn)生器130可產(chǎn)生與每個(gè)斷言指令相應(yīng)的斷言。
[0064]另外,斷言產(chǎn)生器130可使用硬件描述語言(HDL)(例如,System Verilog、VerilogHDL、VHDL 和 HDVL )。
[0065]圖2是示出根據(jù)示例性實(shí)施例的處理器驗(yàn)證設(shè)備的配置的示圖。
[0066]參照圖2,處理器驗(yàn)證設(shè)備230被設(shè)計(jì)用來使用硬件描述語言(HDL)(諸如,SystemVerilog.Verilog HDL、Vhsic硬件描述語言(VHDL)和硬件描述和驗(yàn)證語言(HDVL))驗(yàn)證在RTL設(shè)計(jì)的處理器模型的操作。
[0067]編譯器210轉(zhuǎn)換用戶程序的代碼以適合設(shè)計(jì)的處理器的架構(gòu)來驗(yàn)證處理器,在處理器的功能塊中調(diào)用轉(zhuǎn)換的代碼,并產(chǎn)生可在處理器中執(zhí)行的二進(jìn)制代碼。用戶程序可包括一個(gè)或多個(gè)斷言指令。
[0068]處理器驗(yàn)證設(shè)備230可包括接收器231、斷言產(chǎn)生器233和驗(yàn)證器235。
[0069]接收器231接收用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。用戶程序的編譯結(jié)果可由編譯器210來提供。另外,用戶程序和處理器的架構(gòu)信息可從用戶接收。
[0070]與圖1中示出的斷言產(chǎn)生設(shè)備100相應(yīng)的斷言產(chǎn)生器233可基于通過接收器231接收的用戶程序、用戶程序的編譯結(jié)果和處理器的架構(gòu)信息來產(chǎn)生斷言。
[0071]可使用HDL (諸如,System Verilog, Verilog HDL、VHDL 和 HDVL)來產(chǎn)生斷言。
[0072]另外,斷言產(chǎn)生器233可解釋在用戶程序中包括的斷言指令,以便從用戶程序的全部代碼中找到需要處理器的操作驗(yàn)證的代碼。另外,基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,斷言產(chǎn)生器233確定根據(jù)由斷言指令指示的代碼執(zhí)行處理器的操作的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述操作的功能塊。斷言產(chǎn)生器233產(chǎn)生規(guī)定功能塊在所述時(shí)間點(diǎn)執(zhí)行的所述操作的斷言。
[0073]驗(yàn)證器235在RTL設(shè)計(jì)的處理器模型中仿真用戶程序的編譯結(jié)果,以便驗(yàn)證在斷言中規(guī)定的操作是否被執(zhí)行。
[0074]另外,驗(yàn)證器235基于處理器設(shè)計(jì)層次信息將由斷言產(chǎn)生器233產(chǎn)生的斷言插入到處理器模型中。然后,驗(yàn)證器235在被插入斷言的處理器模型中仿真用戶程序的編譯結(jié)果。驗(yàn)證器235通過檢查在仿真期間在斷言中規(guī)定的操作是否被執(zhí)行,來驗(yàn)證處理器的操作。
[0075]圖6是示出根據(jù)示例性實(shí)施例的用于產(chǎn)生斷言的方法的流程圖。
[0076]參照圖6,在步驟610,斷言產(chǎn)生設(shè)備100接收用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。
[0077]用戶程序可包括一個(gè)或多個(gè)斷言指令。
[0078]在圖6的步驟620,基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息,斷言產(chǎn)生設(shè)備100產(chǎn)生規(guī)定處理器需要根據(jù)由斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言??墒褂?HDL (諸如,System Verilog, Verilog HDL、VHDL 和 HDVL)產(chǎn)生斷言。
[0079]另外,如果用戶程序包括一個(gè)或多個(gè)斷言指令,則斷言產(chǎn)生設(shè)備100可產(chǎn)生與每個(gè)斷言指令相應(yīng)的斷言。
[0080]圖7是示出根據(jù)示例性實(shí)施例的用于產(chǎn)生斷言的方法的詳細(xì)流程圖。
[0081]參照圖7,在步驟710,斷言產(chǎn)生設(shè)備100可接收包括一個(gè)或多個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。
[0082]參照圖7,在步驟730,斷言產(chǎn)生設(shè)備100可解釋斷言指令,以便確定在用戶程序中包括的全部代碼中需要處理器的操作驗(yàn)證的代碼。
[0083]在圖7的步驟750,基于在編譯結(jié)果中包括的調(diào)度信息以及處理器的架構(gòu)信息,斷言產(chǎn)生設(shè)備100確定由斷言指令指示的用戶程序的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
[0084]在圖7的步驟770,斷言產(chǎn)生設(shè)備100產(chǎn)生規(guī)定處理器的功能塊需要在用戶程序的代碼被執(zhí)行的時(shí)間點(diǎn)執(zhí)行的操作的斷言。
[0085]圖8是示出根據(jù)示例性實(shí)施例的用于驗(yàn)證處理器的方法的流程圖。
[0086]參照圖8,在步驟810,處理器驗(yàn)證設(shè)備230接收包括一個(gè)或多個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息。
[0087]參照圖8,在步驟830,基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息,處理器驗(yàn)證設(shè)備230產(chǎn)生規(guī)定處理器需要根據(jù)由斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言。處理器驗(yàn)證設(shè)備230可使用與圖7中描述的相同的方法來產(chǎn)生斷言。
[0088]另外,處理器驗(yàn)證設(shè)備230可使用HDL產(chǎn)生斷言。如果用戶程序包括多個(gè)斷言指令,則處理器驗(yàn)證設(shè)備230產(chǎn)生與每個(gè)斷言指令相應(yīng)的斷言。
[0089]參照圖8,在步驟850,處理器驗(yàn)證設(shè)備230在RTL設(shè)計(jì)的處理器模型中仿真用戶程序的編譯結(jié)果,以便驗(yàn)證在斷言中規(guī)定的操作是否被執(zhí)行。
[0090]另外,處理器驗(yàn)證設(shè)備230可基于處理器設(shè)計(jì)層次信息將斷言插入處理器模型。然后,處理器驗(yàn)證設(shè)備230通過在被插入斷言的處理器模型中仿真用戶程序的編譯結(jié)果,來檢查在所述斷言中規(guī)定的操作是否被執(zhí)行。處理器驗(yàn)證設(shè)備230以這種方式驗(yàn)證處理器的操作。
[0091]以上描述的方法和/或操作可被記錄,存儲或固定在包括程序指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲介質(zhì)中,其中,計(jì)算機(jī)將所述程序指令以促使處理器運(yùn)行或執(zhí)行所述程序指令。所述介質(zhì)還可單獨(dú)包括數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等,或可與程序指令相結(jié)合地包括數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)可讀存儲介質(zhì)的示例包括磁介質(zhì)(諸如硬盤、軟盤和磁帶)、光學(xué)介質(zhì)(諸如⑶ROM盤和DVD)、磁光介質(zhì)(諸如光盤)以及被專門配置為存儲和執(zhí)行程序指令的硬件裝置(諸如只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、閃存等)。程序指令的示例包括機(jī)器代碼(諸如由編譯器產(chǎn)生)以及包含可由計(jì)算機(jī)使用解釋器執(zhí)行的更高級代碼的文件兩者。為了執(zhí)行上述操作和方法,所描述的硬件裝置可被配置為充當(dāng)一個(gè)或多個(gè)軟件模塊,反之亦然。另外,計(jì)算機(jī)可讀存儲介質(zhì)可被分布在通過網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)上中,并且計(jì)算機(jī)可讀代碼或程序指令可按分散方式被存儲和執(zhí)行。
[0092]以上已經(jīng)描述了多個(gè)示例。然而,應(yīng)理解可實(shí)現(xiàn)多種修改。例如,如果所描述的技術(shù)按不同順序被執(zhí)行,和/或如果所描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件按不同方式被組合和/或由其他組件或其等同物替代或補(bǔ)償,則可實(shí)現(xiàn)適當(dāng)?shù)慕Y(jié)果。因此,其他實(shí)現(xiàn)方式在權(quán)力要求的范圍內(nèi)。
【權(quán)利要求】
1.一種用于基于用戶程序代碼產(chǎn)生斷言的方法,所述方法包括: 接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息; 基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息,產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言。
2.如權(quán)利要求1所述的方法,其中,所述至少一個(gè)斷言指令指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
3.如權(quán)利要求1所述的方法,其中,產(chǎn)生斷言的步驟包括: 基于所述至少一個(gè)斷言指令的解釋來確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼; 基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
4.如權(quán)利要求3所述的方法,其中,產(chǎn)生斷言的步驟包括:產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
5.如權(quán)利要求1所述的方法,其中,產(chǎn)生斷言的步驟包括:使用硬件描述語言HDL產(chǎn)生所述斷言。
6.如權(quán)利要求1所述的方法,其中,產(chǎn)生斷言的步驟包括:產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
7.—種斷言產(chǎn)生設(shè)備,包括: 接收器,被配置為接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息; 斷言產(chǎn)生器,被配置為基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息產(chǎn)生規(guī)定處理器根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼需要執(zhí)行的操作的斷言。
8.如權(quán)利要求7所述的斷言產(chǎn)生設(shè)備,其中,所述至少一個(gè)斷言指令指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
9.如權(quán)利要求7所述的斷言產(chǎn)生設(shè)備,其中,斷言產(chǎn)生器確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼;并基于編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
10.如權(quán)利要求9所述的斷言產(chǎn)生設(shè)備,其中,斷言產(chǎn)生器產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
11.如權(quán)利要求7所述的斷言產(chǎn)生設(shè)備,其中,斷言產(chǎn)生器使用硬件描述語言HDL產(chǎn)生所述斷言。
12.如權(quán)利要求7所述的斷言產(chǎn)生設(shè)備,其中,斷言產(chǎn)生器產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
13.一種用于驗(yàn)證處理器的方法,所述方法包括: 接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息; 基于所述編譯結(jié)果以及處理器的架構(gòu)信息,產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言; 在寄存器傳輸級RTL的處理器模型中仿真所述編譯結(jié)果,以便驗(yàn)證在處理器模型中在所述斷言中規(guī)定的操作是否被執(zhí)行。
14.如權(quán)利要求13所述的方法,其中,所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
15.如權(quán)利要求13所述的方法,其中,產(chǎn)生斷言的步驟包括: 基于所述至少一個(gè)斷言指令的解釋來確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼; 基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
16.如權(quán)利要求15所述的方法,其中,產(chǎn)生斷言的步驟包括:產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
17.如權(quán)利要求13所述的方法,其中,產(chǎn)生斷言的步驟包括:使用硬件描述語言HDL產(chǎn)生所述斷言。
18.如權(quán)利要求13所述的方法,其中,產(chǎn)生斷言的步驟包括:產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
19.如權(quán)利要求13所述的方法,其中,仿真編譯結(jié)果的步驟包括:將斷言插入到處理器模型中,并且在被插入斷言的處理器模型中仿真所述編譯結(jié)果。
20.—種處理器驗(yàn)證設(shè)備,包括: 接收器,被配置為接收包括至少一個(gè)斷言指令的用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息; 斷言產(chǎn)生器,被配置為基于用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息,產(chǎn)生規(guī)定處理器需要根據(jù)由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的代碼執(zhí)行的操作的斷言; 驗(yàn)證器,被配置為在寄存器傳輸級RTL的處理器模型中仿真所述編譯結(jié)果,以便驗(yàn)證在所述處理器模型中在所述斷言中規(guī)定的操作是否被執(zhí)行。
21. 如權(quán)利要求20所述的處理器驗(yàn)證設(shè)備,其中,所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼。
22.如權(quán)利要求20所述的處理器驗(yàn)證設(shè)備,其中,斷言產(chǎn)生器解釋所述至少一個(gè)斷言指令,以便確定在用戶程序中包含的多個(gè)代碼中需要處理器的操作驗(yàn)證的代碼,并基于在編譯結(jié)果中包含的調(diào)度信息以及處理器的架構(gòu)信息,確定由所述至少一個(gè)斷言指令中的每個(gè)斷言指令指示的用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)以及在所述時(shí)間點(diǎn)執(zhí)行所述代碼的功能塊。
23.如權(quán)利要求22所述的處理器驗(yàn)證設(shè)備,其中,斷言產(chǎn)生器產(chǎn)生規(guī)定所述功能塊需要在所述時(shí)間點(diǎn)執(zhí)行的操作的斷言。
24.如權(quán)利要求20所述的處理器驗(yàn)證設(shè)備,其中,斷言產(chǎn)生器使用硬件描述語言HDL產(chǎn)生所述斷言。
25.如權(quán)利要求20所述的處理器驗(yàn)證設(shè)備,其中,斷言產(chǎn)生器產(chǎn)生與所述至少一個(gè)斷言指令中的每個(gè)斷言指令相應(yīng)的斷言。
26.如權(quán)利要求20所述的處理器驗(yàn)證設(shè)備,其中,驗(yàn)證器將斷言插入到處理器模型中,然后在被插入所述斷言的處理器模型中仿真所述編譯結(jié)果。
27.一種用于基于用戶程序代碼產(chǎn)生斷言的方法,所述方法包括: 接收用戶程序、用戶程序的編譯結(jié)果以及處理器的架構(gòu)信息; 解釋斷言指令,以便從用戶程序中的多個(gè)代碼中確定代碼; 確定用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn); 確定在所述時(shí)間點(diǎn)執(zhí)行用戶程序的被確定的代碼的功能塊; 在用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)產(chǎn)生斷言。
28.如權(quán)利要求27所述的方法,其中,被確定的代碼需要處理器的操作驗(yàn)證。
29.如權(quán)利要 求27所述的方法,其中,基于在用戶程序的編譯結(jié)果中包括的調(diào)度信息以及處理器的架構(gòu)信息來確定所述時(shí)間點(diǎn)和所述功能塊。
30.如權(quán)利要求27所述的方法,其中,產(chǎn)生的斷言規(guī)定處理器的功能塊需要在用戶程序的被確定的代碼被執(zhí)行的時(shí)間點(diǎn)執(zhí)行的操作。
【文檔編號】G06F11/36GK103678114SQ201310407224
【公開日】2014年3月26日 申請日期:2013年9月9日 優(yōu)先權(quán)日:2012年9月7日
【發(fā)明者】丁鎮(zhèn)世, 沈熙峻, 曹暎喆, 韓淵照 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1