專利名稱:一種寄存器測試的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試領(lǐng)域,特別是涉及在一種寄存器測試的方法和系統(tǒng)。
技術(shù)背景寄存器是存儲計算機信息的最小單位,可由寄存器地址和寄存器內(nèi)容來描 述,才艮據(jù)寄存器允許的操作方式,可以將寄存器分為讀寫寄存器、只讀寄存器、 讀清零寄存器和寫清零寄存器等各種屬性的寄存器。在計算機的軟件開發(fā)過程中,常需要使用各種屬性的寄存器,通過對各種 寄存器的組合使用,最終得以實現(xiàn)整個芯片完整的軟件功能。比如,在計算機 芯片中,需要使用不同屬性的寄存器。而在計算機芯片中,寄存器數(shù)量是非常龐大的,比如在包含了 IO個模塊的Vc0336芯片中,其寄存器的個數(shù)就達到了 1000多個,可見,當(dāng)需要對某個芯片進行質(zhì)量測試時,對該芯片中寄存器的測 試尤為重要。目前,寄存器測試的方法還以人工測試為主,具體地講,就是根據(jù)被測寄 存器的屬性,人工輸入寄存器的測試參數(shù),來實現(xiàn)寄存器測試。寄存器的測試 參數(shù)包括測試數(shù)和/或測試命令。比如,被測寄存器的屬性為讀寫寄存器,在 進行測試時,先人工輸入一個數(shù)作為測試數(shù),然后輸入"寫命令"、測試數(shù)和被 測寄存器地址,以實現(xiàn)向被測寄存器寫入該測試數(shù);接著,輸入"讀命令,,和 被測寄存器地址,從該被測寄存器讀取數(shù)值,如果讀取的數(shù)值等于寫入的測試 數(shù),則得到"工作正常,,的測試結(jié)果,否則,得到"工作不正常"的測試結(jié)果。 再如,被測寄存器的屬性為寫1清0,也就是當(dāng)給寄存器寫入"1"時,該寄存 器寫'T,的位置被清零,因而對該屬性寄存器進行測試時,先人工輸入"寫命 令"、被測寄存器地址和常數(shù)"1",向被測寄存器寫入l,接著,人工輸入"讀 命令"和被測寄存器地址,讀取該被測寄存器的值,如果讀出的值等于0,則 得到"工作正常"的測試結(jié)果,否則,得到"工作不正常"的測試結(jié)果??梢姡瑢τ诓煌瑢傩缘谋粶y寄存器,人工輸入的測試參數(shù)也不同,在對各 種屬性的寄存器進行測試時,需要人工根據(jù)寄存器屬性設(shè)定具體的測試參數(shù)值, 而寄存器的數(shù)量比較多,要人工對大量屬性不同的寄存器進行一次有效的測試, 需要花費大量的時間,工作量非常繁重。由于人工測試寄存器的工作量太大, 難免會出現(xiàn)寄存器的漏測或誤測等問題。因此,目前寄存器測試的方法,存在人工參與的比重較多,測試工作量較 大的問題。發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種寄存器測試的系統(tǒng),該系統(tǒng) 能夠降低測試寄存器的工作量。本發(fā)明的第二個主要目的在于提供一種實現(xiàn)寄存器測試的方法,該方法 能夠降低測試寄存器的工作量。為了達到上述第一個目的,本發(fā)明提出的技術(shù)方案為 一種實現(xiàn)寄存器測 試的系統(tǒng),該系統(tǒng)包4舌設(shè)置模塊,用于設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系;信息獲取模塊,用于獲取每一個被測寄存器的寄存器信息,所述寄存器信 息包括寄存器屬性;測試參數(shù)產(chǎn)生模塊,用于從所述信息獲取模塊獲取的寄存器信息中得到寄 存器屬性,產(chǎn)生與所述寄存器屬性對應(yīng)的測試參數(shù);執(zhí)行模塊,用于利用所述測試參數(shù)產(chǎn)生模塊產(chǎn)生的測試參數(shù),對所述被測 寄存器進行測試,得到被測寄存器的測試結(jié)果。所述測試參數(shù)產(chǎn)生模塊包括匹配單元和參數(shù)產(chǎn)生單元;所述匹配單元,用于根據(jù)預(yù)先設(shè)置的寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系, 匹配得到與所述被測寄存器的寄存器屬性對應(yīng)的測試參數(shù),所述測試參數(shù)包括
至少 一組測試命令和/或測試數(shù);所述參數(shù)產(chǎn)生單元,用于根據(jù)匹配單元得到的所述測試參數(shù),產(chǎn)生出每一 組測試命令和/或測試數(shù),依次輸入到執(zhí)行模塊。所述執(zhí)行模塊包括測試參數(shù)接口單元和操作單元; 所述測試參數(shù)接口單元,用于接收來自測試參數(shù)產(chǎn)生模塊的測試參數(shù); 所述操作單元,用于利用來自所述測試參數(shù)接口單元的測試參數(shù),對被測寄存器進行測試操作,得到所述被測寄存器的測試結(jié)果。當(dāng)所述測試參數(shù)包括至少一組測試命令和/或測試數(shù)時,所述執(zhí)行模塊,進一步用于將執(zhí)行完一組測試命令/測試數(shù)后得到的中間結(jié)果返回給所述測試參數(shù)產(chǎn)生模塊;所述測試參數(shù)產(chǎn)生模塊在接收到所述中間結(jié)果后,將產(chǎn)生出的下一組測試 命令和/或測試數(shù)輸入到執(zhí)行模塊。較佳地,所述系統(tǒng)進一步包括測試結(jié)果存儲模塊;所述測試結(jié)果存儲模塊,用于存儲所述執(zhí)行模塊得到的所述被測寄存器的 測試結(jié)果。較佳地,所述系統(tǒng)進一步包括寄存器列表模塊;所述寄存器列表模塊,用于存儲由所有被測寄存器的寄存器信息組成的寄 存器列表;所述信息獲取模塊,依次讀取所述寄存器列表中每一個被測寄存器的寄存 器信息。較佳地,所述系統(tǒng)進一步包括更新模塊;所述更新模塊,用于對所述寄存器列表模塊中的寄存器列表進行更新。 較佳地,所述系統(tǒng)進一步包括測試次數(shù)設(shè)置模塊; 所述測試次數(shù)設(shè)置模塊,用于預(yù)先設(shè)置對每一個被測寄存器的測試次數(shù); 所述測試參數(shù)產(chǎn)生模塊,按照預(yù)先設(shè)置的測試次數(shù),將產(chǎn)生出的被測寄存 器的測試參數(shù)連續(xù)輸入到執(zhí)行模塊。較佳地,所述系統(tǒng)進一步包括測試結(jié)果顯示模塊;
所述測試結(jié)果顯示才莫塊,用于存儲所述執(zhí)行模塊得到的所述被測寄存器的 測試結(jié)果。為了達到上述第二個目的,本發(fā)明提出的技術(shù)方案為 一種寄存器測試的 方法,該方法包4舌設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系,獲取每一個被測寄存器的寄存器 信息,所述寄存器信息包括寄存器屬性;從寄存器信息中提取寄存器屬性,產(chǎn) 生與所述寄存器屬性對應(yīng)的測試參數(shù);利用所述測試參數(shù)產(chǎn)生模塊產(chǎn)生的所述 測試參數(shù),對所述被測寄存器進行測試,得到被測寄存器的測試結(jié)果。所述產(chǎn)生^f皮測寄存器的測試參數(shù)包括根據(jù)預(yù)先設(shè)置的寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系,匹配得到與被測寄存 器的寄存器屬性對應(yīng)的測試參數(shù),所述測試參數(shù)包括至少 一組測試命令和/或測 試數(shù);產(chǎn)生與所述屬性信息對應(yīng)的每一組測試命令和/或測試數(shù)。較佳地,在所述方法之前,進一步包括建立由所有被測寄存器的寄存器 信息構(gòu)成的寄存器列表;所述獲取每一個被測寄存器的寄存器信息包括遍歷所述寄存器列表,依 次獲取所述寄存器列表中的每一個被測寄存器的寄存器信息。較佳地,所述方法之后進一步包括存儲所述被測寄存器的測試結(jié)果。 較佳地,所述方法之后進一步包括顯示所述被測寄存器的測試結(jié)果。 較佳地,所述方法在從寄存器信息中提取寄存器屬性之前進一步包括判 斷是否存儲所述被測寄存器的測試結(jié)果,在沒有存儲所述被測寄存器的測試結(jié) 果時或存儲的所述被測寄存器的測試結(jié)果為"工作不正常,,時,執(zhí)行所述從寄 存器信息中提取寄存器屬性的步驟。綜上所述,本發(fā)明提出的一種寄存器測試的方法和系統(tǒng),具有以下優(yōu)點 第一、本發(fā)明能夠根據(jù)設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系,根據(jù)獲 取到的每個被測寄存器的寄存器屬性,自動產(chǎn)生出對每個被測寄存器的測試 參數(shù),因而能夠降低測試寄存器的工作量。第二、本發(fā)明通過遍歷包含所有被測寄存器的寄存器信息的寄存器列表
來實現(xiàn)對每 一 個被測寄存器的測試,能夠避免寄存器的漏測或誤測等問題, 從而提高測試寄存器的準確性。第三、本發(fā)明還能夠在多人調(diào)試時,通過存儲的被測寄存器的測試結(jié)果, 在存儲的所述被測寄存器的測試結(jié)果為"工作正常"時,不再進行測試,從而 能夠進一步降低測試寄存器的工作量。因此,本發(fā)明提供的一種寄存器測試的方法和系統(tǒng),能夠降低測試寄存 器的工作量。
圖1為本發(fā)明實現(xiàn)寄存器測試的第一個較佳實施例的系統(tǒng)結(jié)構(gòu)示意圖; 圖2為本發(fā)明寄存器測試的第二個較佳實施例的方法流程示意圖; 圖3為本發(fā)明寄存器測試的第三個較佳實施例的方法流程示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體 實施例對本發(fā)明作進一步地詳細描述。本發(fā)明的技術(shù)方案是 一種實現(xiàn)寄存器測試的系統(tǒng),該系統(tǒng)包括用于設(shè) 置寄存器屬性與測試參數(shù)對應(yīng)關(guān)系的設(shè)置模塊、用于獲取每一個被測寄存器的 寄存器信息的信息獲取模塊,該寄存器信息包含寄存器屬性、用于產(chǎn)生與所述 寄存器屬性對應(yīng)的測試參數(shù)的測試參數(shù)產(chǎn)生模塊和用于利用所述測試參數(shù)產(chǎn)生 模塊產(chǎn)生的所述測試參數(shù),對所述被測寄存器進行測試的執(zhí)行模塊。圖1為本發(fā)明實現(xiàn)寄存器測試的第一個較佳實施例的系統(tǒng)結(jié)構(gòu)示意圖,該 系統(tǒng)包括設(shè)置模塊100、信息獲取模塊110、測試參數(shù)產(chǎn)生模塊120和執(zhí)行模 塊130。其中,設(shè)置模塊IOO,設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系;本實施例 中,假設(shè)寄存器屬性包括讀寫寄存器和寫1清零寄存器兩種,則設(shè)置的讀寫寄 存器對應(yīng)的測試參數(shù)為"寫命令,,和"測試數(shù),,;"讀命令,,以及得出測試結(jié)果 的"比較命令"和"測試數(shù)"。設(shè)置的寫1清零寄存器對應(yīng)的測試參數(shù)為"寫 命令,,和"i"、"讀命令,,以及最終得到測試結(jié)果的"比較命令,,和"0"。信息獲取模塊110,獲取每一個被測寄存器的寄存器信息,將每一個被測 寄存器的寄存器信息依次輸入到測試參數(shù)產(chǎn)生模塊120處理,這里,被測寄存 器的寄存器信息包括被測寄存器的寄存器屬性、寄存器地址、寄存器名稱、 寄存器默認值、寄存器位寬或寄存器進制數(shù)等信息。測試參數(shù)產(chǎn)生模塊120,從信息獲^^莫塊IIO輸入的被測寄存器的寄存器 信息中得到寄存器屬性,產(chǎn)生與該寄存器屬性對應(yīng)的測試參數(shù)產(chǎn)生出被測寄存 器的測試參數(shù)。執(zhí)行模塊130,根據(jù)測試參數(shù)產(chǎn)生模塊130產(chǎn)生的被測寄存器的測試參數(shù), 對被測寄存器進行測試,得到被測寄存器的測試結(jié)果。測試參數(shù)產(chǎn)生模塊120包括匹配單元121和參數(shù)產(chǎn)生單元122;匹配單元121,根據(jù)預(yù)先設(shè)置的屬性信息與測試參數(shù)的對應(yīng)關(guān)系,匹配得 到與被測寄存器的寄存器屬性對應(yīng)的測試參數(shù),測試參數(shù)包括至少一組測試命 令和/或測試數(shù);即預(yù)先設(shè)置出屬性與測試參數(shù)的對應(yīng)關(guān)系,如前面提到的讀寫 寄存器對應(yīng)的測試參數(shù)包括"寫命令,,和"測試數(shù),,;"讀命令,,以及得出測試 結(jié)果的"比較命令"和"測試數(shù)"三組測試命令和/或測試數(shù)。參數(shù)產(chǎn)生單元122,根據(jù)匹配單元121得到的與所述寄存器屬性對應(yīng)的被 測寄存器的測試參數(shù),依次產(chǎn)生至少 一組測試命令和/或測試數(shù)。本實施例中,參數(shù)產(chǎn)生單元122按照預(yù)先設(shè)置的策略,產(chǎn)生出對所述#1測 寄存器進行測試的測試數(shù)。預(yù)先設(shè)置的數(shù)據(jù)策略可包括四種,分別是隨機數(shù)、 最大值、最小值和用戶輸入策略,其中,隨機數(shù)策略是指自產(chǎn)生一個隨機數(shù), 進行寄存器測試;如果隨機數(shù)的數(shù)值太大,根據(jù)各個寄存器信息中的位寬或根 據(jù)預(yù)先設(shè)置的默認位寬進行截取,用截取后的值測試相應(yīng)的寄存器;最小值策 略是用寄存器的最小值也就是O進行測試;最大值策略,則是根據(jù)寄存器信息 中的位寬或根據(jù)預(yù)先設(shè)置的默認位寬,計算出寄存器的最大值;用各個寄存器 自身的最大值進行測試;而用戶輸入策略是根據(jù)用戶輸入的數(shù)值,進行寄存器
測試;如果用戶輸入的數(shù)值太大,根據(jù)各個寄存器信息中的位寬或根據(jù)預(yù)先設(shè) 置的默認位寬進行截取,用截取后的值測試相應(yīng)的寄存器。執(zhí)行模塊130包括測試參數(shù)接口單元131和操作單元132;測試參數(shù)接口單元131,接收來自測試參數(shù)產(chǎn)生模塊120的測試參數(shù);操作單元132,根據(jù)來自測試參數(shù)接口單元131的測試參數(shù),對被測寄存器 進行測試操作,得到所述被測寄存器的測試結(jié)果。如圖1所示,操作單元132,還通過測試參數(shù)接口單元131向測試參數(shù)產(chǎn)生模 塊120返回執(zhí)行完一組測試命令/測試數(shù)后得到的中間結(jié)果。測試參數(shù)產(chǎn)生模塊120中的參數(shù)產(chǎn)生單元122在接收到中間結(jié)果后,將產(chǎn) 生出的下一組測試命令和/或測試數(shù)輸入到執(zhí)行模塊130。本實施例假設(shè)的是由個人計算機(PC機)直接完成每一個被測寄存器的 寄存器信息的獲取過程和每一個被測寄存器的測試過程,如果獲取過程和測試 過程由不同的操作系統(tǒng),比如,獲取過程由PC機來實現(xiàn)而測試過程由嵌入式環(huán) 境來實現(xiàn),則測試參凄t接口單元13l采用通過Usb或Uart或Jtag接口來接收來自測 試參數(shù)產(chǎn)生模塊120的測試參數(shù),并需要將PC機上傳輸下來測試參數(shù)中的測試 命令如"讀命令"或"寫命令"解釋成嵌入式環(huán)境可以運行的命令,再輸入到 操作模塊132。系統(tǒng)還包括測試結(jié)果存儲^t塊140,存儲執(zhí)行模塊130得到的被測寄存器的測試結(jié)果。 測試結(jié)果顯示模塊180,顯示執(zhí)行模塊130得到的被測寄存器的測試結(jié)果。 系統(tǒng)還包括寄存器列表模塊150;存儲由所有被測寄存器組成的寄存器列表,該寄存器列表包含每一個被測寄存器的寄存器信息;這時,信息獲取模塊IIO依次獲取寄存器列表模塊150中的每一個被測寄存器的寄存器信息。當(dāng)然,信息獲取模塊IIO也可以通過其它的方式獲取每一個被測寄存器的寄存器信息,比如,動態(tài)輸入方式。當(dāng)系統(tǒng)包括寄存器列表模塊150時,系統(tǒng)還可以包括對寄存器列表^^莫塊150
中的寄存器列表進行更新的更新模塊160;這種更新包括刪除或新增被測寄存 器,或修改被測寄存器的某個寄存器信息。系統(tǒng)還可以包括測試次數(shù)設(shè)置模塊170,預(yù)先設(shè)置對每一個被測寄存器 的測試次數(shù);測試參數(shù)產(chǎn)生模塊120,按照預(yù)先設(shè)置的測試次數(shù),將產(chǎn)生出的被測寄存 器的測試參數(shù)連續(xù)輸入到執(zhí)行模塊130。比如測試次數(shù)為兩次,則將產(chǎn)生出的 被測寄存器的測試參數(shù)連續(xù)兩次輸入到執(zhí)行模塊130。圖2為本發(fā)明寄存器測試的第二個較佳實施例的方法流程示意圖,下面結(jié) 合流程圖,給出本發(fā)明的一個具體實施例。如圖2所示,具體包括以下步驟步驟201:設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系。本實施例,設(shè)置的寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系與第一個實施例相同。 這里不一一贅述。步驟202:獲取每一個被測寄存器的寄存器信息。本實施例中,獲取每一個被測寄存器的寄存器信息的方法是可以通過遍 歷已建立的被測寄存器列表或通過動態(tài)接收的方式,獲取每一個被測寄存器的 寄存器信息。本實施例中,寄存器信息包括寄存器屬性、和/或被測寄存器的寄存器地 址、和/或寄存器名稱、和/或寄存器默認值、和/或寄存器位寬、和/或寄存器進 制數(shù)。對于每一個被測寄存器執(zhí)行一次步驟203到204。步驟203:從寄存器信息中提取寄存器屬性,產(chǎn)生與所述寄存器屬性對應(yīng)的 測試參數(shù)。本實施例中,產(chǎn)生與所述寄存器屬性對應(yīng)的包括根據(jù)預(yù)先設(shè)置的寄存器 屬性與測試參數(shù)的對應(yīng)關(guān)系,匹配得到與被測寄存器的寄存器屬性對應(yīng)的測試 參數(shù),所述測試參數(shù)包括至少一組測試命令和/或測試數(shù);產(chǎn)生與屬性信息對應(yīng) 的至少一組測試命令和/或測試數(shù)。針對:帔測寄存器的測試參數(shù)可以由至少一組 測試數(shù)和/或測試命令組成,比如,對于寫l清零寄存器,產(chǎn)生出的針對被測寄 存器的測試參數(shù)為"寫命令,,和"1"、"讀命令,,以及最終得到測試結(jié)果的"比
較命令"和"0"。步驟204:利用產(chǎn)生的針對被測寄存器的測試參數(shù),對被測寄存器進行測試。本實施例中,由軟件程序?qū)崿F(xiàn)對被測寄存器的測試時,利用產(chǎn)生的針對被 測寄存器的測試參數(shù),對被測寄存器進行測試的方法是按照產(chǎn)生的測試參數(shù), 依此調(diào)用相應(yīng)的測試命令執(zhí)行程序,調(diào)用測試命令執(zhí)行程序的入口參數(shù)包括被 測寄存器的地址信息,從能夠?qū)崿F(xiàn)對某個確定被測寄存器進行測試,當(dāng)測試參 數(shù)包括測試數(shù)時,調(diào)用測試命令執(zhí)行程序的入口參數(shù)中還包括測試數(shù),最后, 由最后一個測試命令執(zhí)行程序的運行結(jié)果,得到被測寄存器的測試結(jié)果。圖3為本發(fā)明寄存器測試的第三個較佳實施例的方法流程示意圖,如圖3所 示,具體包括以下步驟步驟300:設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系。本實施例中給出6種寄存器屬性分別是讀寫寄存器、只寫寄存器、讀清 零寄存器、寫清零寄存器、寫l清零寄存器和寫O清零寄存器。 步驟301:預(yù)先建立寄存器列表。本實施例中,寄存器列表是由所有被測寄存器的寄存器信息構(gòu)成的。 步驟302:讀取寄存器列表中的 一個被測寄存器的寄存器信息。 步驟303:產(chǎn)生測試參數(shù),按照測試參數(shù)對被測寄存器進行測試。 本實施例中,步驟303是根據(jù)被測寄存器的寄存器屬性匹配出對應(yīng)的測試參數(shù),并按照測試參數(shù)對被測寄存器進行測試的過程,本實施例中給出以上6種屬性具體測試過程。當(dāng)被測寄存器的寄存器屬性為讀寫時,先將產(chǎn)生出的測試數(shù),用"寫命令"寫入被測寄存器,然后,用"讀命令,,讀出被測寄存器的值,最后,用"比較命令,,比較讀出的值是否等于測試數(shù),如果等于,則測試結(jié)果為"工作正常",否則為"工作不正常"。當(dāng)被測寄存器的寄存器屬性為只寫時,先將產(chǎn)生出的測試數(shù),用"寫命令"寫入被測寄存器,然后,用"讀命令"讀出被測寄存器的值,最后,用"比較命令"比較讀出的值是否等于O,如果等于,則測試結(jié)果為"工作正常",否則
為"工作不正常"。當(dāng)被測寄存器的寄存器屬性為讀清零時,連續(xù)產(chǎn)生兩個"讀命令",最后,用"比較命令,,判斷最后一個讀出的值是否等于O,如果等于,則測試結(jié)果為 "工作正常",否則為"工作不正常"。當(dāng)被測寄存器的寄存器屬性為寫清零時,先將產(chǎn)生出的測試數(shù),用"寫命 令,,寫入被測寄存器,然后,用"讀命令"讀出被測寄存器的值,最后,用"比 較命令,,比較讀出的值是否等于o,如果等于,則測試結(jié)果為"工作正常",否則為"工作不正常"。當(dāng)被測寄存器的寄存器屬性為寫1清零時,先將數(shù)值"1",用"寫命令" 寫入被測寄存器,然后,用"讀命令,,讀出被測寄存器的值,最后,用"比較命令,,比較讀出的值是否等于o,如果等于,則測試結(jié)果為"工作正常",否則為"工作不正常"。當(dāng)被測寄存器的寄存器屬性為寫0清零時,先將數(shù)值"0",用"寫命令"寫入被測寄存器,然后,用"讀命令"讀出被測寄存器的值,最后,用"比較命令,,比較讀出的值是否等于o,如果等于,則測試結(jié)果為"工作正常",否則為"工作不正常"??梢钥闯觯瑢?yīng)不同的寄存器屬性,對被測寄存器進行測試的測試參數(shù)是 不同的,有的測試參數(shù)包括測試數(shù),有的不包括測試數(shù),有的即使包括測試數(shù), 也不需要產(chǎn)生測試數(shù)。本實施例假設(shè)需要產(chǎn)生測試數(shù),并按照預(yù)先設(shè)置的數(shù)據(jù) 策略,產(chǎn)生出測試數(shù)后,還判斷產(chǎn)生出的測試數(shù)是否小于位寬,如果是,執(zhí)行 測試過程,否則,先按照位寬截取產(chǎn)生的測試數(shù)后,再執(zhí)行測試過程。這里, 位寬是指寄存器所占位數(shù),當(dāng)測試數(shù)超過該位數(shù)時,需要對其進行截取,否則是無效的測試數(shù),位寬可以是l位、2位、8位和16位等。 步驟304:存儲被測寄存器的測試結(jié)果。步驟305:判斷是否所有寄存器均被測試完,如果是,執(zhí)行步驟302,否則 執(zhí)行步驟306。本實施例中,判斷是否所有寄存器均被測試完,就是判斷是否遍歷完寄存 器列表中的所有寄存器,如果是,重新執(zhí)行步驟302,否則,執(zhí)行步驟308。。 步驟306:輸出并顯示測試結(jié)果。本實施例在被測寄存器的測試結(jié)果為"工作不正常,,時,通過顯示測試結(jié) 果,提醒測試者進行相應(yīng)處理。本實施例的步驟303中,還可以根據(jù)預(yù)先設(shè)置的測試次數(shù),利用產(chǎn)生的 測試參數(shù)重復(fù)執(zhí)行測試操作,以便能夠得到更為可靠的測試結(jié)果。本實施例中,還可以在步驟303前,增加判斷是否存儲了被測寄存器的 測試結(jié)果的步驟,如果存儲了被測寄存器的測試結(jié)果,并且測試結(jié)果為"工 作正常,,,可以不進行測試。以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng) 包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種實現(xiàn)寄存器測試的系統(tǒng),其特征在于,該系統(tǒng)包括設(shè)置模塊,用于設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系;信息獲取模塊,用于獲取每一個被測寄存器的寄存器信息,所述寄存器信息包括寄存器屬性;測試參數(shù)產(chǎn)生模塊,用于從所述信息獲取模塊獲取的寄存器信息中得到寄存器屬性,產(chǎn)生與所述寄存器屬性對應(yīng)的測試參數(shù);執(zhí)行模塊,用于利用所述測試參數(shù)產(chǎn)生模塊產(chǎn)生的測試參數(shù),對所述被測寄存器進行測試,得到被測寄存器的測試結(jié)果。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述測試參數(shù)產(chǎn)生模塊包括 匹配單元和參數(shù)產(chǎn)生單元;所述匹配單元,用于根據(jù)預(yù)先設(shè)置的寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系, 匹配得到與所述被測寄存器的寄存器屬性對應(yīng)的測試參數(shù),所述測試參數(shù)包括 至少 一組測試命令和/或測試^:;所述參數(shù)產(chǎn)生單元,用于根據(jù)匹配單元得到的所述測試參數(shù),產(chǎn)生出每一 組測試命令和/或測試數(shù),依次輸入到執(zhí)行模塊。
3、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述執(zhí)行模塊包括測試參 數(shù)接口單元和操作單元;所述測試參數(shù)接口單元,用于接收來自測試參數(shù)產(chǎn)生模塊的測試參數(shù); 所述操作單元,用于利用來自所述測試參數(shù)接口單元的測試參數(shù),對被測 寄存器進行測試操作,得到所述被測寄存器的測試結(jié)果。
4、 根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述測試參數(shù)包括至少一組 測試命令和/或測試數(shù);所述執(zhí)行模塊,進一步用于將執(zhí)行完一組測試命令/測試數(shù)后得到的中間結(jié) 果返回給所述測試參數(shù)產(chǎn)生模塊; 所述測試參數(shù)產(chǎn)生才莫塊在接收到所述中間結(jié)果后,將產(chǎn)生出的下一組測試 命令和/或測試數(shù)輸入到執(zhí)行模塊。
5、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)進一步包括測試 結(jié)果存儲模塊;所述測試結(jié)果存儲模塊,用于存儲所述執(zhí)行模塊得到的所述被測寄存器的 測試結(jié)果。
6、 根據(jù)權(quán)利要求1或5所述的系統(tǒng),其特征在于,所述系統(tǒng)進一步包括 寄存器列表模塊;所述寄存器列表模塊,用于存儲由所有被測寄存器的寄存器信息組成的寄 存器列表;所述信息獲取模塊,依次讀取所述寄存器列表中每一個被測寄存器的寄存 器信息。
7、 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)進一步包括更新 模塊;所述更新模塊,用于對所述寄存器列表模塊中的寄存器列表進行更新。
8、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)進一步包括測試 次數(shù)設(shè)置模塊;所述測試次數(shù)設(shè)置模塊,用于預(yù)先設(shè)置對每一個被測寄存器的測試次數(shù); 所述測試參數(shù)產(chǎn)生模塊,按照預(yù)先設(shè)置的測試次數(shù),將產(chǎn)生出的被測寄存 器的測試參數(shù)連續(xù)輸入到執(zhí)行模塊。
9、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所迷系統(tǒng)進一步包括測試 結(jié)果顯示模塊;所述測試結(jié)果顯示模塊,用于顯示所述執(zhí)行模塊得到的所述被測寄存器的 測試結(jié)果。
10、 一種寄存器測試的方法,其特征在于,該方法包括 設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系,獲取每一個被測寄存器的寄存器信息,所述寄存器信息包括寄存器屬性;從寄存器信息中提取寄存器屬性,產(chǎn)生與所述寄存器屬性對應(yīng)的測試參數(shù);利用所述測試參數(shù)產(chǎn)生模塊產(chǎn)生的所述 測試參數(shù),對所述被測寄存器進行測試,得到被測寄存器的測試結(jié)果。
11、 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述產(chǎn)生被測寄存器的測 試參數(shù)包括根據(jù)預(yù)先設(shè)置的寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系,匹配得到與被測寄存 器的寄存器屬性對應(yīng)的測試參數(shù),所述測試參數(shù)包括至少一組測試命令和/或測 試數(shù);產(chǎn)生與所述屬性信息對應(yīng)的每一組測試命令和/或測試數(shù)。
12、 根據(jù)權(quán)利要求10所述的方法,其特征在于,在所述方法之前,進一步 包括建立由所有被測寄存器的寄存器信息構(gòu)成的寄存器列表;所述獲取每一個被測寄存器的寄存器信息包括遍歷所述寄存器列表,依 次獲取所述寄存器列表中的每一個被測寄存器的寄存器信息。
13、 根據(jù)權(quán)利要求10所迷的方法,其特征在于,所述方法之后進一步包括 存儲所述被測寄存器的測試結(jié)果。
14、 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述方法之后進一步包括 顯示所述被測寄存器的測試結(jié)果。
15、 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述方法在從寄存器信息 中提取寄存器屬性之前進一步包括判斷是否存儲所述被測寄存器的測試結(jié)果, 在沒有存儲所述被測寄存器的測試結(jié)果時或存儲的所述被測寄存器的測試結(jié)果 為"工作不正常"時,執(zhí)行所述從寄存器信息中提取寄存器屬性的步驟。
全文摘要
本發(fā)明公開了一種實現(xiàn)寄存器測試的系統(tǒng),該系統(tǒng)包括設(shè)置模塊,設(shè)置寄存器屬性與測試參數(shù)的對應(yīng)關(guān)系;信息獲取模塊,獲取每一個被測寄存器的寄存器信息,所述寄存器信息包含寄存器屬性;測試參數(shù)產(chǎn)生模塊,從所述信息獲取模塊獲取的寄存器信息中得到寄存器屬性,產(chǎn)生與所述寄存器屬性對應(yīng)的測試參數(shù);執(zhí)行模塊,利用所述測試參數(shù)產(chǎn)生模塊產(chǎn)生的所述測試參數(shù),對所述被測寄存器進行測試,得到被測寄存器的測試結(jié)果。本發(fā)明還公開了寄存器測試的方法,使用本發(fā)明能夠降低寄存器測試的工作量。
文檔編號G11C29/00GK101131875SQ20071017543
公開日2008年2月27日 申請日期2007年9月29日 優(yōu)先權(quán)日2007年9月29日
發(fā)明者馮備戰(zhàn), 占文靜, 游明琦, 國 艾 申請人:北京中星微電子有限公司