專利名稱:一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自動(dòng)化功能驗(yàn)證流程技術(shù)領(lǐng)域,尤其涉及一種用于嵌入式處理 器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方法。
背景技術(shù):
隨著微電子制造工藝的發(fā)展和設(shè)計(jì)流程和設(shè)計(jì)工具的改進(jìn),現(xiàn)代嵌入式處 理器的設(shè)計(jì)規(guī)模變的越來越龐大,功能越來越復(fù)雜,采用傳統(tǒng)的驗(yàn)證方法和驗(yàn) 證流程己經(jīng)很難滿足日益復(fù)雜的處理器功能特性的驗(yàn)證要求和日益苛刻的上市 時(shí)間的要求。并且,現(xiàn)代嵌入式處理器及其廣泛的應(yīng)用領(lǐng)域也對(duì)其設(shè)計(jì)功能的 可靠性和正確性提出了很高的要求,由功能缺陷而導(dǎo)致的嵌入式處理器產(chǎn)品的 失敗在激勵(lì)的市場(chǎng)競(jìng)爭(zhēng)中對(duì)處理器設(shè)計(jì)廠商而言是毀滅性的。
基于這樣的背景,為了應(yīng)對(duì)功能驗(yàn)證中日益嚴(yán)峻的挑戰(zhàn),提高嵌入式處理 器功能驗(yàn)證的生產(chǎn)率, 一些新的高層次的功能驗(yàn)證語言被推出。它們提升了驗(yàn) 證的層次,并提供了強(qiáng)大的工具特性和驗(yàn)證方法學(xué)支持,使得驗(yàn)證工程師們能 夠站在一個(gè)較高的抽象層次上更好更快的把握設(shè)計(jì)的功能特性,對(duì)之進(jìn)行功能
驗(yàn)證,其中有代表性的語言是Vera, e,以及SystemVerilog語言。
相比于vera和e語言,SystemVerilog語言由于其開放性,支持工具的多樣 性,并且能夠?qū)Ⅱ?yàn)證和設(shè)計(jì)統(tǒng)一到同一種語言中來,因此得到了快速的發(fā)展和 廣泛的應(yīng)用。SystemVerilog語言本身提供了強(qiáng)大的功能驗(yàn)證工具特性,如受限 隨機(jī)激勵(lì)的產(chǎn)生,易于使用的斷言特性,功能覆蓋率統(tǒng)計(jì)特性和工具等,為驗(yàn) 證工程師們提供了豐富而強(qiáng)大的功能驗(yàn)證工具集。禾擁SystemVerilog語言的斷 言特性和結(jié)果監(jiān)測(cè)方法,可事先編寫出獨(dú)立且通用的仿真結(jié)果監(jiān)測(cè)器和斷言檢 查器,應(yīng)用于本發(fā)明中,成為本發(fā)明中步驟5)中操作對(duì)象的一部分。關(guān)于 SystemVerilog語言的驗(yàn)證特性,請(qǐng)參見參考文獻(xiàn)1 。
Vmm驗(yàn)證方法學(xué)和驗(yàn)證IP庫(kù)是Synopsys公司開發(fā)的指導(dǎo)功能驗(yàn)證的標(biāo)準(zhǔn) 驗(yàn)證方法學(xué)和標(biāo)準(zhǔn)IP庫(kù),利用它們驗(yàn)證人員可以迅速構(gòu)建起基于自己設(shè)計(jì)的驗(yàn) 證環(huán)境和流程。關(guān)于Vmm驗(yàn)證方法學(xué),請(qǐng)參見參考文獻(xiàn)2。
腳本在電子設(shè)計(jì)自動(dòng)化(EDA)中起著重要的作用。腳本script是使用一種 特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱作宏或批處理文 件。腳本通??梢杂蓱?yīng)用程序通過接口調(diào)用并執(zhí)行。使用腳本,實(shí)現(xiàn)流程控制, 文件處理等功能,可以大大提高驗(yàn)證工作中的自動(dòng)化程度,縮短驗(yàn)證的時(shí)間,提高驗(yàn)證的效率。
目前存在的嵌入式處理器功能驗(yàn)證平臺(tái)一般采用靜態(tài)編寫直接指令激勵(lì)的 方法對(duì)被測(cè)嵌入式處理器施加激勵(lì),對(duì)于每次施加的直接指令激勵(lì),整個(gè)功能 驗(yàn)證平臺(tái)都需要進(jìn)行編譯,再運(yùn)行仿真。由于處理器驗(yàn)證需要很多的測(cè)試激勵(lì), 逐一人工編寫效率很低,并且容易遺漏其功能點(diǎn)。同時(shí),編譯整個(gè)功能驗(yàn)證平 臺(tái)的耗時(shí)較大,也使得整個(gè)驗(yàn)證仿真流程的效率降低。
因此,采用SystemVerilog提供的強(qiáng)大的驗(yàn)證工具和驗(yàn)證方法,并結(jié)合腳本 的自動(dòng)化批處理特性,搭建出一個(gè)動(dòng)態(tài)的自動(dòng)化的功能驗(yàn)證仿真平臺(tái),并定義 其上的驗(yàn)證流程,對(duì)嵌入式處理器進(jìn)行高效的功能仿真驗(yàn)證。 參考文獻(xiàn)
1. Chris Spear, "SystemVerilog for Verification", Springer 2006.
2. Janick Bergeron, Eduard Cerny, Alan Hunter and Andrew Nightingale, "Verification Methodology for SystemVerilog", Springer 2006.
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種用于嵌入式處理器功能驗(yàn) 證的動(dòng)態(tài)仿真平臺(tái)方法。 包括如下步驟
1) 采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL模型進(jìn)行功能驗(yàn) 證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中,實(shí)現(xiàn)一條單向的 主控流程;
2) 采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,在仿真過程中,根 據(jù)指定約束條件,動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模型中的隨機(jī)指令 序列;
3) 采用SystemVerilog語言,編寫仿真測(cè)試用例,在仿真測(cè)試用例中,為步 驟2)中所編寫的動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器添加約束條件,并使用步驟2)中所編寫的 動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令序列;
4) 在步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中,為步驟3)所編寫的仿真測(cè) 試用例建立一個(gè)工作目錄,并在步驟l)中所實(shí)現(xiàn)的單向的主控流程中轉(zhuǎn)入到該 工作目錄中;
5) 采用SystemVerilog語言,編寫建立一個(gè)動(dòng)態(tài)仿真流程控制臺(tái),在動(dòng)態(tài)仿 真流程控制臺(tái)中,實(shí)例化被測(cè)的嵌入式處理器RTL模型,實(shí)例化步驟3)中所編 寫的仿真測(cè)試用例,實(shí)例化仿真結(jié)果監(jiān)測(cè)器,實(shí)例化斷言檢查器;6) 在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿真流 程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步驟l)所建立的動(dòng) 態(tài)仿真平臺(tái)主控中心指定;
7) 在步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中,對(duì)步驟6)所實(shí)現(xiàn)的動(dòng)態(tài)仿 真流程設(shè)置循環(huán)次數(shù),對(duì)步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)進(jìn)行編譯,并啟 動(dòng)該動(dòng)態(tài)仿真流程控制臺(tái)運(yùn)行仿真。
所述的采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL模型進(jìn)行功 能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中,按步驟實(shí)現(xiàn) 單向主控流程步驟在編寫建立的用于對(duì)嵌入式處理器RTL模型進(jìn)行功能驗(yàn)證 的動(dòng)態(tài)仿真平臺(tái)主控中心中,按如下步驟建立起對(duì)仿真過程的單向主控流程
(a) 為步驟3)中所編寫的仿真測(cè)試用例建立工作目錄并將主控流程工作目錄 轉(zhuǎn)換到該目錄下;
(b) 對(duì)步驟5)中所建立的仿真流程控制臺(tái)進(jìn)行編譯;
(c) 啟動(dòng)步驟5)中所建立的仿真流程控制臺(tái)進(jìn)行仿真。
所述的采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,實(shí)現(xiàn)根據(jù)指定 約束條件在仿真過程中動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模型中的隨機(jī) 指令序列的功能步驟采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,動(dòng) 態(tài)隨機(jī)激勵(lì)發(fā)生器根據(jù)被測(cè)嵌入式處理器的功能定義集合和指令定義集合產(chǎn)生 出隨機(jī)的指令序列,隨機(jī)的指令序列作為激勵(lì)被加載到嵌入式處理器RTL模型 中;在產(chǎn)生該隨機(jī)指令序列的過程中,使用步驟3)中所編寫的仿真測(cè)試用例中 的約束條件來限定所產(chǎn)生的隨機(jī)指令的類型和指令之間的順序。
所述的在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿 真流程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步驟l)所建立 的動(dòng)態(tài)仿真平臺(tái)主控中心指定步驟在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中, 實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿真流程,循環(huán)依次執(zhí)行以下仿真步驟
(d) 運(yùn)行步驟2)所編寫的隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令激勵(lì);
(e) 編譯該指令激勵(lì)生成二進(jìn)制文件;
(f) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器的指令集參考模型;
(g) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器RTL模型;
(h) 將被測(cè)嵌入式處理器的指令集參考模型的仿真結(jié)果文件和被測(cè)嵌入式處 理器的RTL模型的仿真結(jié)果文件進(jìn)行比較和判斷;
(i) 對(duì)仿真過程中所產(chǎn)生的日志文件進(jìn)行收集和歸類處理;(j)仿真循環(huán)次數(shù)加一,判斷其是否達(dá)到了步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主 控中心中所指定的循環(huán)次數(shù),如果達(dá)到,結(jié)束整個(gè)仿真,如果沒有達(dá)到,開始 下一次仿真循環(huán)。 本發(fā)明具有的有益效果是
1) 自動(dòng)化程度高,所需指令激勵(lì)可以由平臺(tái)自動(dòng)產(chǎn)生,減輕了驗(yàn)證人員手工 編寫指令激勵(lì)的負(fù)擔(dān);
2) 驗(yàn)證效率高,對(duì)仿真平臺(tái)只需一次編譯,便可運(yùn)行多次循環(huán)仿真,縮短了 驗(yàn)證時(shí)間;
3) 可重用性強(qiáng),由于平臺(tái)控制中心和仿真控制臺(tái)分離,當(dāng)對(duì)不同的嵌入式處 理器進(jìn)行驗(yàn)證時(shí),只需要修改仿真控制臺(tái),而平臺(tái)控制中心可重用;
4) 維護(hù)修改方便,由于主控流程和循環(huán)仿真流程分離,對(duì)仿真過程的維護(hù)和 修改很方便。
圖1是動(dòng)態(tài)仿真平臺(tái)主控中心及主控流程示意圖; 圖2是動(dòng)態(tài)仿真流程控制臺(tái)及其組件示意圖; 圖3是動(dòng)態(tài)仿真流程示意圖4是一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)流程圖。
具體實(shí)施例方式
本實(shí)施例是應(yīng)用本發(fā)明針對(duì)CKCore系列嵌入式處理器進(jìn)行功能驗(yàn)證。 CKCore系列嵌入式處理器是由杭州中天微系統(tǒng)有限公司與浙江大學(xué)合作研發(fā), 具有自主知識(shí)產(chǎn)權(quán)的32位高性能嵌入式處理器。
具體實(shí)施的基本思路是-
建立一個(gè)平臺(tái)主控中心和一個(gè)仿真流程控制臺(tái),前者負(fù)責(zé)平臺(tái)環(huán)境的建立、 工作目錄的轉(zhuǎn)換、驗(yàn)證平臺(tái)的編譯和仿真的啟動(dòng);后者負(fù)責(zé)仿真流程的控制, 包括激勵(lì)的產(chǎn)生,被測(cè)嵌入式處理器及其指令集參考模型的運(yùn)行,仿真結(jié)果的 比較,和仿真結(jié)果文件的處理。
建立一條主控流程和一條循環(huán)仿真控制流程,前者由平臺(tái)主控中心控制, 為單向的外圍控制流程,依次實(shí)現(xiàn)為仿真測(cè)試用例建立工作目錄,對(duì)仿真流程 控制臺(tái)進(jìn)行編譯,啟動(dòng)仿真流程控制臺(tái);后者由仿真流程控制臺(tái)控制,為循環(huán) 的仿真控制流程,依次實(shí)現(xiàn)隨機(jī)指令激勵(lì)的產(chǎn)生,啟動(dòng)被測(cè)嵌入式處理器及其 指令集參考模型的仿真運(yùn)行,仿真運(yùn)行結(jié)果的比較,仿真運(yùn)行結(jié)果文件的處理 等操作。在單向的主控流程末尾調(diào)用循環(huán)仿真控制流程,從而實(shí)現(xiàn)一次仿真平臺(tái)編 譯,循環(huán)多次動(dòng)態(tài)隨機(jī)仿真,提高了功能驗(yàn)證的效率。
用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方法具體實(shí)施方式
包括如下步
驟
1) 采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL模型進(jìn)行功能驗(yàn) 證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中,實(shí)現(xiàn)一條單向的 主控流程,動(dòng)態(tài)仿真平臺(tái)主控中心被命名為run—tb腳本,在run一tb腳本中通過 子函數(shù)順序調(diào)用的方式實(shí)現(xiàn)一個(gè)單項(xiàng)的主控流程;
2) 采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,在仿真過程中,根 據(jù)指定約束條件,動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模型中的隨機(jī)指令 序列,指定的約束條件是通過constraint塊實(shí)現(xiàn)的,關(guān)于constraint塊的語法定義 請(qǐng)參見參考文獻(xiàn)1,在每個(gè)constraint塊中編寫用于約束所產(chǎn)生功能和指令的范 圍和條件,例如,在constraint塊中添加約束,要求隨機(jī)產(chǎn)生的指令流是對(duì)CKCore 的存儲(chǔ)器進(jìn)行隨機(jī)存取的操作;
3) 采用SystemVerilog語言,編寫仿真測(cè)試用例,在仿真測(cè)試用例中,為步 驟2)中所編寫的動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器添加約束條件,并使用步驟2)中所編寫的 動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令序列,仿真測(cè)試用例被命名為testjrogram, 在test_pr0gmm中編寫constraint塊,作為步驟2)中所編寫的動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生 器的約束條件;
4) 在步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中,為步驟3)所編寫的仿真測(cè) 試用例建立一個(gè)工作目錄,并在步驟l)中所實(shí)現(xiàn)的單向的主控流程中轉(zhuǎn)入到該 工作目錄中,工作目錄名取為work一dir,并在run_tb中切換工作目錄到work一dir 下,后續(xù)工作所產(chǎn)生的文件就都位于work一dir下了;
5) 采用SystemVerilog語言,編寫建立一個(gè)動(dòng)態(tài)仿真流程控制臺(tái),在動(dòng)態(tài)仿 真流程控制臺(tái)中,實(shí)例化被測(cè)的嵌入式處理器RTL模型,實(shí)例化步驟3)中所編 寫的仿真測(cè)試用例,實(shí)例化仿真結(jié)果監(jiān)測(cè)器,實(shí)例化斷言檢査器,命名動(dòng)態(tài)仿 真流程控制臺(tái)為tb—top,在tb—top中,實(shí)例化被測(cè)的嵌入式處理器RTL模型, 實(shí)例化步驟3)中所編寫的testjrogram,實(shí)例化仿真結(jié)果監(jiān)測(cè)器,實(shí)例化斷言檢 查器,關(guān)于SystemVerilog語言中的實(shí)例化操作,請(qǐng)參見參考文獻(xiàn)l;
6) 在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)tb_top中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài) 仿真流程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步驟l)所建 立的動(dòng)態(tài)仿真平臺(tái)主控中心run tb指定,根據(jù)run tb中所定義的宏變量、SIMTIME, tb—top控制仿真循環(huán)的繼續(xù)或停止;7)在步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心runjb中,對(duì)步驟6)所實(shí)現(xiàn)的 動(dòng)態(tài)仿真流程設(shè)置循環(huán)次數(shù),對(duì)步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)tb—top進(jìn) 行編譯,并啟動(dòng)該動(dòng)態(tài)仿真流程控制臺(tái)tbJop運(yùn)行仿真,在runjb中,定義宏 變量'SIMTIME,并對(duì)其賦值100,作為仿真循環(huán)的次數(shù),將宏變量'SIMTIME 作為編譯時(shí)的參數(shù)加載到對(duì)tb—top的編譯過程中;所述的采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL模型進(jìn)行功 能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中,按步驟實(shí)現(xiàn) 單向主控流程步驟在編寫建立的用于對(duì)嵌入式處理器RTL模型進(jìn)行功能驗(yàn)證 的動(dòng)態(tài)仿真平臺(tái)主控中心run—tb中,按如下步驟進(jìn)行子函數(shù)調(diào)用建立起對(duì)仿真 過程的單向主控流程(a) 為步驟3)中所編寫的仿真測(cè)試用例建立工作目錄WOrk_dir并將主控流程 工作目錄轉(zhuǎn)換到該目錄下,采用腳本語言的轉(zhuǎn)換目錄指令進(jìn)行目錄的切換;(b) 對(duì)步驟5)中所建立的仿真流程控制臺(tái)tb—top進(jìn)行編譯,使用Synopsys公 司的VCS工具對(duì)tb—top進(jìn)行編譯;(c) 啟動(dòng)步驟5)中所建立的仿真流程控制臺(tái)tb—top進(jìn)行仿真,使用Sysnopsys 公司的VCS工具運(yùn)行tb—top的仿真。所述的采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,實(shí)現(xiàn)根據(jù)指定 約束條件在仿真過程中動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模型中的隨機(jī) 指令序列的功能步驟采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,動(dòng) 態(tài)隨機(jī)激勵(lì)發(fā)生器根據(jù)被測(cè)嵌入式處理器的功能定義集合和指令定義集合產(chǎn)生 出隨機(jī)的指令序列,隨機(jī)的指令序列作為激勵(lì)被加載到嵌入式處理器RTL模型 中,在產(chǎn)生該隨機(jī)指令序列的過程中,使用步驟3)中所編寫的仿真測(cè)試用例中 的約束條件即constraint塊來限定所產(chǎn)生的隨機(jī)指令的類型和指令之間的順序, 指定的約束條件是通過各個(gè)constraint塊實(shí)現(xiàn)的,例如,在constraint塊中添加約 束,要求隨機(jī)產(chǎn)生的指令流是對(duì)CKCore的存儲(chǔ)器進(jìn)行隨機(jī)存取的操作,則動(dòng)態(tài) 隨機(jī)激勵(lì)發(fā)生器在仿真的過程中就會(huì)動(dòng)態(tài)產(chǎn)生對(duì)CKCore的存儲(chǔ)器進(jìn)行隨機(jī)存 取的指令流;所述的在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿 真流程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步驟l)所建立 的動(dòng)態(tài)仿真平臺(tái)主控中心指定步驟在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中, 實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿真流程,循環(huán)依次執(zhí)行以下仿真步驟(d) 運(yùn)行步驟2)所編寫的隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令激勵(lì);(e) 編譯該指令激勵(lì)生成二進(jìn)制文件,用于被加載到CKCore的指令存儲(chǔ)器中;(f) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器的指令集參考模型;(g) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器RTL模型;(h) 將被測(cè)嵌入式處理器的指令集參考模型的仿真結(jié)果文件和被測(cè)嵌入式處 理器的RTL模型的仿真結(jié)果文件進(jìn)行比較和判斷,匯報(bào)出仿真結(jié)果;(i) 對(duì)仿真過程中所產(chǎn)生的日志文件進(jìn)行收集和歸類處理; (j)仿真循環(huán)次數(shù)加一,判斷其是否達(dá)到了步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中所指定的循環(huán)次數(shù),即'SIMTIME宏定義的數(shù)值100,如果仿真循環(huán)次 數(shù)達(dá)到100,結(jié)束整個(gè)仿真,如果沒有達(dá)到100,則繼續(xù)開始下一次仿真循環(huán)。根據(jù)以上步驟和方法,便可完成一個(gè)針對(duì)CKCore嵌入式處理器的功能驗(yàn)證 動(dòng)態(tài)仿真平臺(tái),基于此平臺(tái)和流程,CKCore系列嵌入式處理器的功能得到了充 分和高效的驗(yàn)證。
權(quán)利要求
1. 一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方法,其特征在于包括如下步驟1)采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL模型進(jìn)行功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中,實(shí)現(xiàn)一條單向的主控流程;2)采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,在仿真過程中,根據(jù)指定約束條件,動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模型中的隨機(jī)指令序列;3)采用SystemVerilog語言,編寫仿真測(cè)試用例,在仿真測(cè)試用例中,為步驟2)中所編寫的動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器添加約束條件,并使用步驟2)中所編寫的動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令序列;4)在步驟1)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中,為步驟3)所編寫的仿真測(cè)試用例建立一個(gè)工作目錄,并在步驟1)中所實(shí)現(xiàn)的單向的主控流程中轉(zhuǎn)入到該工作目錄中;5)采用SystemVerilog語言,編寫建立一個(gè)動(dòng)態(tài)仿真流程控制臺(tái),在動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)例化被測(cè)的嵌入式處理器RTL模型,實(shí)例化步驟3)中所編寫的仿真測(cè)試用例,實(shí)例化仿真結(jié)果監(jiān)測(cè)器,實(shí)例化斷言檢查器;6)在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿真流程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步驟1)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心指定;7)在步驟1)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中,對(duì)步驟6)所實(shí)現(xiàn)的動(dòng)態(tài)仿真流程設(shè)置循環(huán)次數(shù),對(duì)步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)進(jìn)行編譯,并啟動(dòng)該動(dòng)態(tài)仿真流程控制臺(tái)運(yùn)行仿真。
2. 如權(quán)利要求1所述的一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方 法,其特征在于所述的采用腳本語言,編寫建立一個(gè)用于對(duì)嵌入式處理器RTL 模型進(jìn)行功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)主控中心,在該動(dòng)態(tài)仿真平臺(tái)主控中心中, 按步驟實(shí)現(xiàn)單向主控流程步驟在編寫建立的用于對(duì)嵌入式處理器RTL模型進(jìn) 行功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)主控中心中,按如下步驟建立起對(duì)仿真過程的單向 主控流程(a)為步驟3)中所編寫的仿真測(cè)試用例建立工作目錄并將主控流程工作目錄 轉(zhuǎn)換到該目錄下;(b) 對(duì)步驟5)中所建立的仿真流程控制臺(tái)進(jìn)行編譯;(c) 啟動(dòng)步驟5)中所建立的仿真流程控制臺(tái)進(jìn)行仿真。
3. 如權(quán)利要求1所述的一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方 法,其特征在于所述的采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器,實(shí) 現(xiàn)根據(jù)指定約束條件在仿真過程中動(dòng)態(tài)產(chǎn)生用于被加載到嵌入式處理器RTL模 型中的隨機(jī)指令序列的功能步驟采用SystemVerilog語言,編寫動(dòng)態(tài)隨機(jī)激勵(lì) 發(fā)生器,動(dòng)態(tài)隨機(jī)激勵(lì)發(fā)生器根據(jù)被測(cè)嵌入式處理器的功能定義集合和指令定 義集合產(chǎn)生出隨機(jī)的指令序列,隨機(jī)的指令序列作為激勵(lì)被加載到嵌入式處理 器RTL模型中;在產(chǎn)生該隨機(jī)指令序列的過程中,使用步驟3)中所編寫的仿真 測(cè)試用例中的約束條件來限定所產(chǎn)生的隨機(jī)指令的類型和指令之間的順序。
4. 如權(quán)利要求1所述的一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方 法,其特征在于所述的在步驟5)所建立的動(dòng)態(tài)仿真流程控制臺(tái)中,實(shí)現(xiàn)一條循 環(huán)的動(dòng)態(tài)仿真流程,循環(huán)依次執(zhí)行仿真步驟,該動(dòng)態(tài)仿真流程的循環(huán)次數(shù)由步 驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心指定步驟在步驟5)所建立的動(dòng)態(tài)仿真流 程控制臺(tái)中,實(shí)現(xiàn)一條循環(huán)的動(dòng)態(tài)仿真流程,循環(huán)依次執(zhí)行以下仿真步驟(d) 運(yùn)行步驟2)所編寫的隨機(jī)激勵(lì)發(fā)生器產(chǎn)生隨機(jī)指令激勵(lì);(e) 編譯該指令激勵(lì)生成二進(jìn)制文件;(f) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器的指令集參考模型;(g) 加載生成的二進(jìn)制文件,運(yùn)行被測(cè)嵌入式處理器RTL模型;(h) 將被測(cè)嵌入式處理器的指令集參考模型的仿真結(jié)果文件和被測(cè)嵌入式處 理器的RTL模型的仿真結(jié)果文件進(jìn)行比較和判斷;(i) 對(duì)仿真過程中所產(chǎn)生的日志文件進(jìn)行收集和歸類處理; (D仿真循環(huán)次數(shù)加一,判斷其是否達(dá)到了步驟l)所建立的動(dòng)態(tài)仿真平臺(tái)主控中心中所指定的循環(huán)次數(shù),如果達(dá)到,結(jié)束整個(gè)仿真,如果沒有達(dá)到,開始 下一次仿真循環(huán)。
全文摘要
本發(fā)明公開了一種用于嵌入式處理器功能驗(yàn)證的動(dòng)態(tài)仿真平臺(tái)方法。該方法是將驗(yàn)證平臺(tái)控制和仿真流程控制分離,分別建立一個(gè)驗(yàn)證平臺(tái)控制中心和一個(gè)仿真流程控制臺(tái),前者用于實(shí)現(xiàn)驗(yàn)證平臺(tái)的單向主控流程,后者用于實(shí)現(xiàn)動(dòng)態(tài)循環(huán)仿真控制流程,從而實(shí)現(xiàn)了驗(yàn)證平臺(tái)的一次編譯和仿真過程的多次動(dòng)態(tài)循環(huán)運(yùn)行,并結(jié)合受限隨機(jī)激勵(lì)產(chǎn)生機(jī)制,提高了功能驗(yàn)證的效率。該方法能夠?yàn)榍度胧教幚砥鞯墓δ茯?yàn)證提供自動(dòng)化的功能驗(yàn)證平臺(tái),并實(shí)現(xiàn)高效的驗(yàn)證流程。該方法具有自動(dòng)化程度高,驗(yàn)證效率高,可重用性強(qiáng),維護(hù)修改方便等優(yōu)點(diǎn)。
文檔編號(hào)G06F17/50GK101286182SQ20081006173
公開日2008年10月15日 申請(qǐng)日期2008年5月16日 優(yōu)先權(quán)日2008年5月16日
發(fā)明者嚴(yán)曉浪, 傅可威, 欣 張, 燎 殷, 葛海通, 晨 陳, 凱 黃 申請(qǐng)人:浙江大學(xué);杭州中天微系統(tǒng)有限公司