新四季網

一種基於Mars評判Verilog實現MIPS處理器正確性的自動化測試方法

2023-09-17 18:25:30

一種基於Mars評判Verilog實現MIPS處理器正確性的自動化測試方法
【專利摘要】本發明提供了一種基於Mars評判Verilog實現MIPS處理器正確性的自動化測試方法,可應用在計算機組成原理及體系結構的教學中。本方法所用testbench驗證文件除了實現為MISP處理器提供激勵信號外,還通過檢索名稱對仿真過程中的狀態變化進行記錄,獲得仿真結果;設置狀態記錄工具對Mars模擬器運行時的寄存器和存儲器內容變化進行記錄,並根據Mars模擬器運行的記錄對仿真結果的正確性進行評判;MIPS處理器在編寫時採用模塊化和層次化設計,並依據驗證文件設定某些模塊與寄存器的名稱。本發明對仿真結果進行粗粒度的分析,對MIPS處理器功能的正確性實現自動化的評判,避免複雜的波形分析,提高了實驗效率。
【專利說明】-種基於Mars評判Ver i I og實現ΜI PS處理器正確性的自 動化測試方法

【技術領域】
[0001] 本發明涉及一種基於Mars (Mips Assembeler and Runtime Simulator,MIPS 彙編運 行模擬器)評判Verilog(硬體描述語言)編寫MIPS處理器正確性的自動化測試方法,適 用於MIPS處理器設計實驗,可應用在計算機組成原理及體系結構的教學中。

【背景技術】
[0002] MIPS處理器(Microprocessor without interlocked piped stages,無內部互鎖流 水級的微處理器)是一種很流行的RISC (Reduced Instruction Set Computer,精簡指令集 計算機)處理器。通過對MIPS處理器的設計實現,可以使得計算機學習者對計算機的組成 原理及體系結構有一個直觀的認知。MIPS處理器設計實驗可以對計算機組成原理及體系結 構的教學起到很好的輔助作用。
[0003] MIPS處理器設計實驗要求學生掌握一門硬體描述語言,結合MIPS處理器的結構 特點,完成MIPS處理器的編寫並通過正確性測試。其中,正確性測試可以分成兩個步驟進 行。首先,對已編寫好的MIPS處理器進行功能仿真,然後下載到硬體實驗平臺上進行驗證。 功能仿真對於正確性測試至關重要,功能仿真的效率直接影響正確性測試以及整個實驗的 效率。傳統的功能仿真方法是觀察仿真波形,逐周期細粒度的分析處理器功能是否正確。這 種方法需要觀察大量的信號波形,並由人工分析其正確性,十分繁瑣複雜。
[0004] Mars是MIPS彙編運行模擬器,是Missouri State University的課程網站提供的 一款軟體,集成彙編器和模擬器,主要用於MIPS處理器設計的試驗教學中。


【發明內容】

[0005] 本發明針對MIPS處理器設計實驗中,傳統功能仿真方法面臨的問題,提出一種基 於Mars的對硬體描述語言編寫的MIPS處理器的正確性進行評判的自動化方法,以提高實 驗效率。
[0006] 一種基於Mars評判Verilog實現MIPS處理器正確性的自動化測試方法,包括如 下步驟:
[0007] 步驟1 :用MIPS彙編語言編寫測試程序,通過Mars彙編器進行彙編,得到機器代 碼和數據存儲器初始化內容。
[0008] 步驟2 :通過仿真軟體,使用testbench驗證文件,對MIPS處理器進行仿真,仿真 過程中將測試用的機器代碼和數據存儲器初始化內容分別加載到指令存儲器模塊和數據 存儲器模塊,仿真結束後,關閉仿真軟體。
[0009] 所述的testbench驗證文件用於:為MISP處理器提供激勵信號,通過檢索寄存器 名稱對仿真過程中的寄存器狀態變化進行記錄,作為仿真結果保存到記錄文件A中。
[0010] 步驟3 :將步驟1中的測試程序載入Mars模擬器,打開狀態記錄工具Statement Recorder,並連結到Mars模擬器。
[0011] 所述的狀態記錄工具Statement Recorder,用於:對Mars模擬器運行時的寄存器 和存儲器內容變化進行記錄,並導出記錄文件B;根據所得到的記錄文件中的狀態變化記 錄B對已得到的仿真結果的正確性進行評判,並輸出評判信息。
[0012] 步驟4 :根據記錄文件B對步驟2得到的仿真結果進行評判,並輸出評判信息。
[0013] 所述的MIPS處理器編寫時,採用模塊化和層次化設計,並滿足如下約束條件:
[0014] (1)頂層模塊至少包含數據通路模塊,數據通路模塊至少包含程序計數器模塊、指 令存儲器模塊、數據存儲器模塊和寄存器組摸塊;用戶可根據通用的處理器設計原則和個 人需求,在此基礎上添加其他模塊來完善處理器功能;
[0015] (2)頂層模塊的名稱、數據通路模塊的實例名、程序計數器模塊的實例名、寄存器 組模塊的實例名以及數據存儲器模塊的實例名都根據testbench驗證文件設置固定的名 稱;
[0016] (3)程序計數器模塊中,指令地址寄存器根據testbench驗證文件命名;寄存器組 模塊中,通用寄存器、寫使能信號和寫地址信號根據testbench驗證文件命名;數據存儲器 模塊中,數據寄存器、寫使能信號和寫地址信號根據testbench驗證文件命名。
[0017] 本發明相對於現有技術,其的優點和積極效果在於:
[0018] (1)本發明方法能夠對仿真結果進行粗粒度的分析,對MIPS處理器功能的正確性 實現自動化的評判,避免複雜的波形分析,提高實驗效率;
[0019] (2)本發明方法的操作簡單,而且提供的Statement Recorder工具插件可以直觀 的將評判結果展示出來。

【專利附圖】

【附圖說明】
[0020] 圖1為本發明實現MIPS處理器正確性的自動化測試方法的整體流程示意圖;
[0021] 圖 2 為 Statement Recorder 的界面不意圖;
[0022] 圖3為狀態記錄的格式示意圖。

【具體實施方式】
[0023] 在下述具體實施示例中,結合附圖對本發明進行進一步的詳細說明。通過足夠詳 細的描述這些實施示例,使得本領域技術人員能夠理解和實踐本發明。在不脫離本發明的 主旨和範圍的情況下,可以對實施做出邏輯的、實現的和其他的改變。因此,以下詳細說明 不應該被理解為限制意義,本發明的範圍僅僅由權利要求來限定。
[0024] 本發明提供的基於Mars評判Verilog實現MIP處理器正確性的自動化測試方法, 主要包括如下4個步驟,如圖1所示。
[0025] 步驟1 :用MIPS彙編語言編寫測試程序,通過Mars的彙編器進行彙編,得到機器 代碼和數據存儲器初始化內容。
[0026] 測試程序需要根據MIPS處理器實現的指令集進行設計,能夠全面包含所實現的 指令集。該測試程序用於測試用Verilog編寫的MIPS處理器是否正確。
[0027] 同時,根據本發明實施例所提供的testbench文件,測試程序的指令條數不應超 過500條,否則會使得記錄信息不完整。所述的testbench是一種驗證手段,本發明實施例 提供一個專門編制的testbench, v文件,為用戶編寫的MISP處理器提供激勵信號,並對仿 真過程中的狀態變化進行記錄,得到記錄文件,以供下一步的評判使用。
[0028] 利用Mars的彙編器對測試程序進行彙編,彙編成功後,將機器代碼和數據存儲器 初始化內容以十六進位文本的形式導出到Mars彙編器同一文件夾下,分別命名為code, txt 和 data. txt〇
[0029] 步驟2 :通過ModelSim等仿真軟體,使用本發明實施例提供的testbench驗證文 件,對MIPS處理器進行仿真,仿真過程中需要將測試用的機器代碼和數據存儲器初始化內 容分別加載到MIPS處理器的指令存儲器模塊和數據存儲器模塊。仿真結束後,關閉仿真軟 件。
[0030] 步驟2具體實施過程如下:
[0031] 步驟2. 1 :在Mars軟體同一文件夾下建立工程文件夾,將本發明實施例提供 的testbench, v文件和已編寫好的MIPS處理器各模塊文件拷貝到工程文件夾下,建立 ModelSim 工程。
[0032] testbench驗證文件用於為MISP處理器提供激勵信號,並通過檢索寄存器名稱對 仿真過程中的寄存器狀態變化進行記錄,作為仿真結果保存到記錄文件A中,記錄文件A 中的狀態變化記錄的格式如圖3所示。本發明實施例中的testbench驗證文件中對MIPS 處理器中某些模塊以及指令地址寄存器、通用寄存器、數據寄存器設定固定名稱,為了配合 所述的testbench驗證文件的實用,用戶在MIPS處理器設計時,相應模塊及寄存器採用 testbench驗證文件中設置的名稱和約束。
[0033] MIPS處理器各模塊文件是由用戶編寫的組成MIPS處理器各模塊的Verilog文件。
[0034] 本發明實施例中,MIPS處理器的設計必須採用模塊化和層次化設計,且要滿足如 下設計約束:
[0035] (1)頂層模塊命名:mips ;
[0036] (2)頂層模塊包含控制模塊和數據通路模塊,其中數據通路模塊的實例名為 datapath ;
[0037] (3)數據通路模塊包含程序計數器模塊、指令存儲器模塊、數據存儲器模塊、寄存 器組摸塊以及算數邏輯運算單元模塊等,其中程序計數器模塊的實例名為pc,寄存器組模 塊的實例名為gpr,數據存儲器模塊的實例名為dm。
[0038] 部分模塊內部命名約束:
[0039] (1)程序計數器模塊:指令地址寄存器需命名為PC ;
[0040] (2)寄存器組模塊:通用寄存器需命名為regFile,寫使能信號需命名為 regWrite,寫地址信號需命名為wa ;
[0041] (3)數據存儲器模塊:數據存儲單元由寄存器實現,數據寄存器需命名為dm,寫使 能?目號需命名為we,寫地址信號需命名為addr。
[0042] 上述模塊實例的命名以及寄存器的命名,都是根據本發明實施例的testbench驗 證文件中設置的相應名稱來設置,使得編寫的MIPS處理器與testbench驗證文件中相同模 塊或寄存器的名稱相同。
[0043] 步驟2. 2 :利用$readmemh系統任務對指令存儲器和數據存儲器的內容進行初始 化。
[0044] 在指令寄存器模塊中包含如下代碼:
[0045] reg[31:0] im[1023:0];
[0046] initial
[0047] $readmemh ( "code, txt",im);
[0048] 上面代碼表示將機器代碼code, txt的內容讀入指令存儲器的數組im中。
[0049] 在數據寄存器中包含如下代碼:
[0050] reg[31:0]dm[1023:0];
[0051] initial
[0052] $readmemh ( " data, txt ",dm);
[0053] 上面代碼表示將數據存儲器初始化內容data, txt的內容讀入數據存儲器的數組 dm中。
[0054] 步驟2. 3 :編譯步驟2. 1的MIPS處理器各模塊文件,然後對testbench模塊進行 仿真。開啟仿真器後,將仿真時間設置超過5000100ns。仿真過程中,如無其他需要,不需添 加波形信號。仿真結束後,關閉仿真軟體,輸出記錄仿真結果的記錄文件A。
[0055] 步驟3 :打開Mars,並將步驟1中的測試程序載入Mars模擬器。在"Tools"菜單 欄中,打開"Statement Recorder"狀態記錄工具,並連結到MIPS模擬器。
[0056] Statement Recorder工具是在Mars開原始碼的基礎上開發小工具,界面如圖2所 示。顯示區域包含兩部分,左側部分顯示Mars模擬器的狀態變化,右側部分顯示與仿真結 果的比對信息。
[0057] 點擊"Connect to MIPS"按鈕可以將工具連結到Mars模擬器,以實時記錄Mars模 擬器的狀態變化。
[0058] 狀態記錄工具Statement Recorder具有以下兩個功能:
[0059] (1)通過該工具可以對Mars模擬器運行時的寄存器和存儲器內容變化進行記錄, 導出記錄文件B ;
[0060] (2)該工具可以結合Mars模擬器的狀態變化記錄對步驟2的仿真結果的正確性進 行評判,並輸出評判信息。
[0061] 在Mars模擬器中單步或完全執行測試程序,觀察Statement Recorder工具界面顯 示的信息,對步驟2中仿真結果的正確性進行評判。
[0062] Statement Recorder工具對程序計數器、通用寄存器組和數據存儲單元進行監 測。
[0063] 記錄文件A和記錄文件B中每條狀態變化記錄的格式如圖3所示。包括三種類型 的狀態變化記錄,每條記錄包含有標識該條記錄類型的標識,PC、WR和WM就是用來標識記 錄類型的,PC標識該條記錄為程序計數器狀態變化記錄,WR標識該條記錄為通用寄存器內 容變化記錄,WM標識該條記錄為數據存儲單元內容變化記錄。對於程序計數器狀態變化記 錄,記錄當前執行指令的指令地址,為十六進位表示。對於通用寄存器內容變化記錄,記錄 寄存器編號和寄存器中的值,寄存器編號為十進位表示,值為十六進位表示。對於數據存儲 單元內容變化記錄,記錄數據存儲單元地址和數據存儲單元中的值,數據存儲單元地址為 十六進位表示,值為十六進位表示。
[0064] 本發明方法提供的是一種指令級的粗粒度的測試方法,緊隨程序計數器狀態變化 記錄後面的通用寄存器和存儲單元內容變化記錄,表示該條指令執行後引起的處理器的通 用寄存器和存儲單元的內容變化,適用於處理器類的Verilog工程。傳統的功能仿真方法 是觀察仿真波形,逐周期細粒度的分析,需要複雜的波形分析,本發明根據仿真得到的信 息,跳過形成波形的步驟,直接從其中提取出與指令運行相關的寄存器和存儲器的內容變 化,形成指令級的仿真信息,實現粗粒度指令級正確性分析和仿真結果的自動評判。
【權利要求】
1. 一種基於Mars評判Verilog實現MIPS處理器正確性的自動化測試方法,其特徵在 於,包括如下步驟: 步驟1 :用MIPS彙編語言編寫測試程序,通過Mars彙編器進行彙編,得到機器代碼和 數據存儲器初始化內容; 步驟2 :通過仿真軟體,使用testbench驗證文件,對MIPS處理器進行仿真,仿真過程 中將測試用的機器代碼和數據存儲器初始化內容分別加載到MIPS處理器的指令存儲器模 塊和數據存儲器模塊,仿真結束後,關閉仿真軟體,獲得仿真結果; 所述的testbench驗證文件用於:為MISP處理器提供激勵信號,通過檢索寄存器名稱 對仿真過程中的寄存器狀態變化進行記錄,作為仿真結果保存到記錄文件A中; 步驟3 :將步驟1編寫的測試程序載入Mars模擬器,打開狀態記錄工具Statement Recorder,並連結到Mars模擬器; 所述的狀態記錄工具Statement Recorder對Mars模擬器運行時的寄存器和存儲器內 容變化進行記錄,並導出記錄文件B ; 步驟4 :根據記錄文件B對步驟2得到的仿真結果進行評判,並輸出評判信息; 其中,Mars為MIPS彙編運行模擬器,Verilog為硬體描述語言,MIPS為無內部互鎖流 水級的微處理器。
2. 根據權利要求1所述的實現MIPS處理器正確性的自動化測試方法,其特徵在於,步 驟2中所述的MIPS處理器,編寫時採用模塊化和層次化設計,並滿足如下約束條件: (1) 頂層模塊包含數據通路模塊,數據通路模塊包含程序計數器模塊、指令存儲器模 塊、數據存儲器模塊以及寄存器組摸塊; (2) 頂層模塊的名稱、數據通路模塊的實例名、程序計數器模塊的實例名、寄存器組模 塊的實例名以及數據存儲器模塊的實例名都根據testbench驗證文件設置固定的名稱; (3) 程序計數器模塊中,指令地址寄存器根據testbench驗證文件命名;寄存器組模塊 中,通用寄存器、寫使能信號和寫地址信號根據testbench驗證文件命名;數據存儲器模塊 中,數據寄存器、寫使能信號和寫地址信號根據testbench驗證文件命名。
3. 根據權利要求1所述的實現MIPS處理器正確性的自動化測試方法,其特徵在於,所 述的記錄文件A和記錄文件B,其中記載的狀態變化記錄如下格式: (1) 每條記錄都包含有標識該條記錄類型的標識;用PC標識該條記錄為程序計數器狀 態變化記錄,WR標識該條記錄為通用寄存器內容變化記錄,WM標識該條記錄為數據存儲單 元內容變化記錄; (2) 對於程序計數器狀態變化記錄,記錄當前執行指令的指令地址,為十六進位表示; 對於通用寄存器內容變化記錄,記錄寄存器編號和寄存器中的值,寄存器編號為十進位表 示,值為十六進位表示;對於數據存儲單元內容變化記錄,記錄數據存儲單元地址和數據存 儲單元中的值,數據存儲單元地址為十六進位表示,值為十六進位表示。
【文檔編號】G06F11/26GK104050069SQ201410326051
【公開日】2014年9月17日 申請日期:2014年7月9日 優先權日:2014年7月9日
【發明者】萬寒, 馬凱, 高小鵬, 龍翔, 姜博 申請人:北京航空航天大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀