專利名稱:一種電路狀態檢測的方法和裝置的制作方法
技術領域:
本發明涉及電子電路技術領域,特別涉及一種電路狀態檢測的方法和裝置。
背景技術:
在電路設計被開發完成后,一般需要通過對該電路設計進行檢測,從而驗證該電 路設計是否滿足預期的功能。如果測試過程中出現錯誤,則設計者能夠根據檢測結果識別 并校正與該電路設計相關的問題,例如電路邏輯設計的錯誤,編程錯誤,進而降低該電路 設計投入實際應用后出錯的幾率。現有技術中,對電路設計進行檢測包括以下兩種方法基于 FPGA (Field-Programmable Gate Array,現場可編程陣列)原型的檢測方法,基于 RTL(Register Transfer Level,寄存器傳輸級)仿真的檢測方法。其中,基于FPGA原型的檢測方法包括首先將待測試電路設計集成到FPGA原型 中,然后對該FPGA原型進行測試,如果測試過程中出現錯誤,則設計者根據獲得的有限出 錯信息推斷出錯原因,并對該FPGA原型進行相應的校正。進而對校正后的FPGA原型進行 測試時,沒有出現同樣的錯誤,則可以證實所推測出的出錯原因是正確的;相反,如果對校 正后的FPGA原型進行測試時,再次出現同樣的錯誤,可以證實所推測出的出錯原因是錯誤 的,則需要進一步推斷其他可能的出錯原因,并重復進行上述的測試過程,直到驗證找到正 確的出錯原因為止。另外,基于RTL仿真的檢測方法為首先為RTL設計建立一個測試平臺,該測試平 臺為RTL設計提供較完備的測試激勵,并可以輸出可供觀察的響應信息,從而根據該響應 信息判斷RTL設計是否滿足預期功能。但是,在實現本發明的過程中,發明人發現現有技術中至少存在以下缺點對于基于FPGA原型的檢測方法,由于硬件的可觀測性較差,因此,設計者常常需 要多次的推測出錯原因并進行驗證的過程,才可以發現正確的出錯原因。而對于RTL仿真 的檢測方法,通常情況下,首先對涉及到的各功能模塊分別進行仿真,在各功能模塊單獨仿 真通過后,再對由各功能模塊構成的整個系統進行仿真。可見,需要進行多次仿真過程。而 RTL仿真的運行速度非常慢,這會大大增加查找和確定錯誤的時間。因此,上述兩種檢測方法,找到出錯原因所需時間較長,效率較低。
發明內容
針對以上缺陷,本發明的目的為提供一種在對電路設計進行性能測試的過程中, 快速檢測到出錯原因的方法和裝置。本發明提供的電路狀態檢測的方法,包括以下步驟外部啟動被測試電路,對所述被測試電路進行首次測試;當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻;根據所述出錯時刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換時刻位于所述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;重新啟動所述被測試電路,對所述被測試電路進行再次測試,并當達到所述第一 切換時刻時,向輸出接口開始輸出待觀測值,直到達到第二切換時刻時,結束向所述輸出接 口輸出所述待觀測值;根據輸出的待觀測值確定所述被測試電路的電路狀態。優選的,所述重新啟動所述被測試電路為自動重新啟動所述被測試電路,具體 為設置運行次數參量,并在首次測試之前賦給其初始值,當被測試電路被重新啟動 進行再次測試時,所述運行次數參量被更新;在測試過程中所述被測試電路出現錯誤時,讀 取所述運行次數參量;判斷所述運行次數參量的當前值是否為所述初始值,當判斷結果為 是時,說明本次測試為首次測試,自動重新啟動所述被測試電路;當判斷結果為否時,說明 本次測試為再次測試,對所述被測試電路繼續進行測試,直到達到所述第二切換時刻。優選的,對所述被測試電路進行再次測試時,在達到所述第一切換時刻之前,所述 被測試電路運行頻率為快速時鐘頻率;當達到所述第一切換時刻時,根據分頻因子D對所述被測試電路運行頻率進行分 頻,并將所述被測試電路運行頻率切換到慢速時鐘頻率;其中,所述分頻因子D彡(F1 XM)/W,且取整數;Fl 被測試電路所使用的快速時鐘頻率;M 被測試電路中需要測試的信號個數; W:輸出接口的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬);分頻后慢 速時鐘頻率F2 = F1/D ;當達到所述第二切換時刻時,根據分頻因子D對所述被測試電路運行頻率進行分 頻,并將所述被測試電路運行頻率切換到所述快速時鐘頻率。優選的,向輸出接口輸出待觀測值,之前還包括對所述待觀測值進行排序。優選的,通過時分多路復用技術將與所述待觀測值對應的多路低速并行信號轉換 成高速串行信號。本發明還提供一種電路狀態檢測的裝置,包括第一重啟單元,用于外部啟動被測試電路,對所述被測試電路進行首次測試;記錄單元,用于當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻,并根據 所述出錯時刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換 時刻位于所述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;第二重啟單元,用于重新啟動所述被測試電路,對所述被測試電路進行再次測 試;時鐘計數單元,用于在所述第二重啟單元重新啟動所述被測試電路,對所述被測 試電路進行再次測試后,當達到所述第一切換時刻時,向輸出接口開始輸出待觀測值,直到 達到第二切換時刻時,結束向所述輸出接口輸出所述待觀測值。優選的,還包括運行次數計算單元,用于設置運行次數參量,并在首次測試之前賦給其初始值,當 被測試電路被重新啟動進行再次測試時,所述運行次數參量被更新;
所述第二重啟單元,還用于在測試過程中所述被測試電路出現錯誤時,讀取所述 運行次數參量;判斷所述運行次數參量的當前值是否為所述初始值,當判斷結果為是時,說 明本次測試為首次測試,自動重新啟動所述被測試電路;當判斷結果為否時,說明本次測試 為再次測試,對所述被測試電路繼續進行測試,直到達到所述第二切換時刻。優選的,還包括時鐘分頻單元,用于根據分頻因子D對所述被測試電路運行頻率進行分頻,其中,所述分頻因子D彡(F1 XM)/W,且取整數;Fl 被測試電路所使用的快速時鐘頻率;M 被測試電路中需要測試的信號個數; W:輸出接口的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬);分頻后慢 速時鐘頻率F2 = F1/D ;時鐘切換單元,用于根據所述時鐘分頻單元計算的慢速時鐘頻率與快速時鐘頻率 對所述被測試電路所使用的運行時鐘頻率進行切換,具體為在達到所述第一切換時刻之 前,所述被測試電路運行頻率為快速時鐘頻率;當達到所述第一切換時刻時,將所述被測試電路運行頻率切換到所述慢速時鐘頻 率;當達到所述第二切換時刻時,將所述被測試電路運行頻率切換到所述快速時鐘頻率。優選的,還包括排序處理單元,用于對向輸出接口輸出的待觀測值進行排序。優選的,還包括轉換單元,用于在所述排序處理單元對所述待觀測值進行排序后,通過時分多路 復用技術將與所述待觀測值對應的多路低速并行信號轉換成高速串行信號。本發明的有益效果如下對被測試電路進行性能測試時,當首次出現錯誤時,可以使被測試系統重新啟動 并進行第二次測試,而且能夠輸出出錯時刻的電路狀態,從而根據輸出的電路狀態分析出 錯原因。因此,提高了查找被測試系統出錯原因的效率。
圖1是本發明實施例一提供的電路狀態檢測方法的流程示意圖;圖2是本發明實施例二提供的電路狀態檢測方法的流程示意圖;圖3是本發明提供的對待觀測值進行排序的示意圖;圖4是本發明實施例三提供的電路狀態檢測裝置的結構示意圖。
具體實施例方式本發明中,當需要對被測試電路的性能進行測試時,可采取以下技術方案設置被 測試電路的運行次數值,并對所述被測試電路進行首次測試;當測試過程中所述被測試電 路出現錯誤時,記錄出錯時刻;根據所述出錯時刻獲得輸出待觀測值的第一切換時刻以及 第二切換時刻;其中,所述第一切換時刻位于所述出錯時刻之前,所述第二切換時刻位于所 述出錯時刻之后;根據所述運行次數值自動重新啟動所述被測試電路,對所述被測試電路進行再次測試,并更新所述運行次數值;根據更新后的運行次數值,當達到所述第一切換時 刻時,向輸出接口開始輸出待觀測值,直到達到第二切換時刻時,結束向所述輸出接口輸出 所述待觀測值;根據輸出的待觀測值確定所述被測試電路的電路狀態。以下結合附圖對本 發明各實施例進行詳細說明。實施例一將本發明實施例提供的電路狀態檢測裝置集成到待測試電路中,并將該待測試電 路集成到FPGA原型中,從而對該FPGA原型進行檢測。將集成有本發明實施例提供的電路 狀態檢測裝置以及待測試電路的FPGA原型簡稱為測試系統。當然,在實際應用中,也可以 將待測試電路集成到其他原型中進行測試。如圖1所示,為本發明實施例提供的一種電路狀態檢測的方法流程示意圖,具體 的,該方法包括以下步驟步驟101,對測試系統進行測試,并設置運行次數(Rim_C0Unt)值為初始運行次數值。具體的,運行次數值是指測試系統(即集成有待測試電路的FPGA原型)運行次 數的具體數值,本步驟中,對運行次數值進行初始化設置,例如,可以設置Rim_C0imt值為 0。進一步的,在實際應用中,可以通過寄存器對運行次數值進行記錄。步驟102,當測試過程中首次出現某個錯誤時,記錄當前出錯時刻Tl。其中,Tl可以以時鐘周期為單位。例如,如果時鐘周期為10納秒(ns),當運行到 50ns出現錯誤時,則Tl為第5個時鐘周期。步驟103,根據出錯時刻Tl設置第一切換時刻T2和第二切換時刻T3。其中,T2時 間點位于Tl時間點之前,T3時間點位于Tl時間點之后。例如,根據實際需要,如果后續步驟中需要從Tl之前的tl個時鐘周期開始輸出待 觀測值時,則 T2 = Tl-tl (tl ^ 0);同樣的,如果需要在Tl之后的t2個時鐘周期結束輸出待觀測值時,則T3 = Tl+t2(t2 ^ 0)。另外,tl與t2可以相同,也可以不同。步驟104,自動重新啟動該測試系統,重新進行測試,并更新運行次數值。具體的,本發明實施例中,Run_C0unt值與測試系統重啟條件存在對應關系。因 此,在測試系統出現錯誤時,均需要讀取Rim_C0imt值,從而判斷是否需要自動重新啟動測 試系統。例如可以設置RuruCount值與測試系統重啟條件存在如下對應關系當Run_ Count值為初始運行次數值(如0)時,則滿足測試系統重新啟動的條件;當Rim_C0imt值 不為初始運行次數值時,則不滿足測試系統重新啟動的條件。進一步的,當滿足測試系統重新啟動的條件且測試系統重新啟動后,需要對Run_ Count值進行更新,比如使該Run_Count值加1,即更新后的Run_Count值為1。步驟105,當達到第一切換時刻T 2時,開始輸出測試值,直到達到第二切換時刻 T3時,結束輸出測試值。具體的,本發明涉及到的三個時間周期的先后順序為T2、T1、T3。其中T1為測試 時出現錯誤的時刻。在測試系統自動重新啟動進行第二次測試時,從首先到達的T2時刻開 始輸出測試值,進而當達到Tl時刻時,通常測試系統會出現與首次測試時出樣的錯誤相同的錯誤,但通過讀取Rim_C0imt值(為1,不為0)可以判斷出Rim_C0imt值不為初始運行次 數值,即不滿足測試系統重新啟動的條件,因此,測試系統不需要重啟,可以繼續進行相應 的測試,直到達到T3時刻時,結束輸出測試值。步驟106,對T2到T3時刻輸出的測試值進行分析,從而找到出錯原因。通過上述本發明實施例提供的電路狀態檢測的方法,通過設置運行次數值與測試 系統重啟條件的對應關系,當首次出現錯誤時,可以使測試系統自動重新啟動并進行第二 次測試,而且能夠輸出出錯時刻的電路狀態,從而根據輸出的電路狀態分析出錯原因。因 此,提高了查找測試系統出錯原因的效率。實施例二另外,為了提高對測試系統進行測試,從而發現測試系統出錯原因的效率,可以在 上述實施例的基礎上通過添加時鐘分頻單元以及時鐘切換單元,從而可以使測試系統在不 同的時間階段運行在不同的時鐘頻率上。其中,與上述實施例相同的步驟在本實施例中將 進行簡單介紹。具體的,如圖2所示,包括以下步驟步驟201,對測試系統進行測試,并設置RuruCount值為0。本步驟中,測試系統運行頻率為Fl (快速時鐘頻率)。步驟202,當測試過程中首次出現某個錯誤時,記錄當前出錯時刻Tl,并獲取第一 切換時刻T2和第二切換時刻T3。其中,T2時間點位于Tl時間點之前,T3時間點位于Tl 時間點之后。步驟203,計算分頻因子D。D ≥(F1 XM)/W,且取整數。其中F1 測試系統運行頻率;M 待測電路中待測記憶單元的個數;W 輸出接口 的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬)。因此,對測試系統運行頻率進行分頻后,得到的分頻后的時鐘頻率F2 = F1/D。本實施例中,稱Fl為快速時鐘頻率;F2為慢速時鐘頻率。步驟204,自動重新啟動該測試系統,并使用快速時鐘頻率對測試系統重新進行測 試,并更新運行次數值。步驟205,當達到第一切換時刻T2時,根據分頻因子D對系統運行時鐘頻率進行分 頻,得到慢速時鐘頻率,并通過時鐘切換模塊切換到慢速時鐘狀態。步驟206,當達到第二切換時刻T3時,根據分頻因子D以及通過時鐘切換模塊使測 試系統切換到快速時鐘狀態。因此,在對測試系統進行測試時,測試系統在T2時刻以前使用快速時鐘;在T2到 T3時刻之間,使用慢速時鐘測試,在T3時刻之后,又恢復到快速時鐘狀態,從而既保證了測 試系統可以平穩的將待測值輸出到輸出接口,便于設計者觀察,同時,又提高了測試系統進 行測試的效率,節省了查找出錯原因的時間。在上述實施例一與實施例二的基礎上,還可以進一步包括對將要輸出到輸出接口 中的輸出值進行排序的步驟。具體的,由于輸出接口的帶寬限制,需要對各出錯時間段(例如T2到T3時間段) 輸出的待觀測值進行排序,從而適應輸出接口的位寬。例如如圖3所示,當待觀測的記憶單元的數量M >輸出接口的位寬N時,可以通過時分多路復用等技術將多路低速并行信號轉換成高速串行信號,從而將高速串行信號發 送到輸出接口。實施例三基于同樣的發明構思,本發明實施例提供一種電路狀態檢測的裝置,如圖4所示, 包括第一重啟單元401,用于外部啟動被測試電路,對所述被測試電路進行首次測試;運行次數計算單元402,用于設置被測試電路的運行次數值,并初始設置被測試電 路的運行次數值為初始運行次數值,所述初始運行次數值與所述被測試電路的重啟條件存 在對應關系;記錄單元403,用于當第一重啟單元401啟動被測試電路,對所述被測試電路進行 首次測試時,當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻,并根據所述出錯時 刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換時刻位于所 述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;第二重啟單元404,用于重新啟動所述被測試電路,對所述被測試電路進行再次測 試;還用于在測試過程中所述被測試電路出現錯誤時,讀取所述運行次數參量;判斷所述 運行次數參量的當前值是否為所述初始值,當判斷結果為是時,說明本次測試為首次測試, 自動重新啟動所述被測試電路;當判斷結果為否時,說明本次測試為再次測試,對所述被測 試電路繼續進行測試,直到達到所述第二切換時刻;時鐘計數單元405,用于在第二重啟單元404重新啟動所述被測試電路,對所述被 測試電路進行再次測試后,當達到所述第一切換時刻時,向輸出接口開始輸出待觀測值,直 到達到第二切換時刻時,結束向所述輸出接口輸出所述待觀測值。時鐘分頻單元406,用于根據分頻因子D對所述被測試電路運行頻率進行分頻,其中,所述分頻因子D≥(F1 XM)/W,且取整數;Fl 被測試電路所使用的快速時鐘頻率;M 被測試電路中需要測試的信號個數; W:輸出接口的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬);分頻后慢 速時鐘頻率F2 = F1/D ;時鐘切換單元407,用于根據時鐘分頻單元406計算的慢速時鐘頻率與快速時鐘 頻率對所述被測試電路所使用的運行時鐘頻率進行切換,具體為在達到所述第一切換時 刻之前,所述被測試電路運行頻率為快速時鐘頻率;當達到所述第一切換時刻時,將所述被 測試電路運行頻率切換到所述慢速時鐘頻率;當達到所述第二切換時刻時,將所述被測試 電路運行頻率切換到所述快速時鐘頻率。排序處理單元408,用于對向輸出接口輸出的待觀測值進行排序。轉換單元409,用于在排序處理單元408對所述待觀測值進行排序后,通過時分多 路復用技術將與所述待觀測值對應的多路低速并行信號轉換成高速串行信號。通過本發明實施例提供的電路狀態檢測的裝置,當首次出現錯誤時,可以使測試 系統自動重新啟動并進行第二次測試,而且能夠輸出出錯時刻的電路狀態,從而根據輸出 的電路狀態分析出錯原因。因此,提高了查找測試系統出錯原因的效率。
權利要求
一種電路狀態檢測的方法,其特征在于,包括以下步驟外部啟動被測試電路,對所述被測試電路進行首次測試;當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻;根據所述出錯時刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換時刻位于所述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;重新啟動所述被測試電路,對所述被測試電路進行再次測試,并當達到所述第一切換時刻時,向輸出接口開始輸出待觀測值,直到達到第二切換時刻時,結束向所述輸出接口輸出所述待觀測值;根據輸出的待觀測值確定所述被測試電路的電路狀態。
2.如權利要求1所述的方法,其特征在于,所述重新啟動所述被測試電路為自動重新 啟動所述被測試電路,具體為設置運行次數參量,并在首次測試之前賦給其初始值,當被測試電路被重新啟動進行 再次測試時,所述運行次數參量被更新;在測試過程中所述被測試電路出現錯誤時,讀取所述運行次數參量;判斷所述運行次 數參量的當前值是否為所述初始值,當判斷結果為是時,說明本次測試為首次測試,自動重 新啟動所述被測試電路;當判斷結果為否時,說明本次測試為再次測試,對所述被測試電路 繼續進行測試,直到達到所述第二切換時刻。
3.如權利要求1所述的方法,其特征在于,對所述被測試電路進行再次測試時,在達到所述第一切換時刻之前,所述被測試電路 運行頻率為快速時鐘頻率;當達到所述第一切換時刻時,根據分頻因子D對所述被測試電路運行頻率進行分頻, 并將所述被測試電路運行頻率切換到慢速時鐘頻率; 其中,所述分頻因子D≥(F1 XM)/W,且取整數;Fl 被測試電路所使用的快速時鐘頻率;M 被測試電路中需要測試的信號個數;W 輸 出接口的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬);分頻后慢速時 鐘頻率F2 = F1/D ;當達到所述第二切換時刻時,根據分頻因子D對所述被測試電路運行頻率進行分頻, 并將所述被測試電路運行頻率切換到所述快速時鐘頻率。
4.如權利要求1至3任一項所述的方法,其特征在于,向輸出接口輸出待觀測值,之前 還包括對所述待觀測值進行排序。
5.如權利要求4所述的方法,其特征在于,對所述待觀測值進行排序,之后還包括 通過時分多路復用技術將與所述待觀測值對應的多路低速并行信號轉換成高速串行信號。
6.一種電路狀態檢測的裝置,其特征在于,包括第一重啟單元,用于外部啟動被測試電路,對所述被測試電路進行首次測試; 記錄單元,用于當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻,并根據所述 出錯時刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換時刻 位于所述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;第二重啟單元,用于重新啟動所述被測試電路,對所述被測試電路進行再次測試;時鐘計數單元,用于在所述第二重啟單元重新啟動所述被測試電路,對所述被測試電 路進行再次測試后,當達到所述第一切換時刻時,向輸出接口開始輸出待觀測值,直到達到 第二切換時刻時,結束向所述輸出接口輸出所述待觀測值。
7.如權利要求6所述的裝置,其特征在于,還包括運行次數計算單元,用于設置運行次數參量,并在首次測試之前賦給其初始值,當被測 試電路被重新啟動進行再次測試時,所述運行次數參量被更新;所述第二重啟單元,還用于在測試過程中所述被測試電路出現錯誤時,讀取所述運行 次數參量;判斷所述運行次數參量的當前值是否為所述初始值,當判斷結果為是時,說明本 次測試為首次測試,自動重新啟動所述被測試電路;當判斷結果為否時,說明本次測試為再 次測試,對所述被測試電路繼續進行測試,直到達到所述第二切換時刻。
8.如權利要求6所述的裝置,其特征在于,還包括時鐘分頻單元,用于根據分頻因子D對所述被測試電路運行頻率進行分頻,其中,所述分頻因子D≥(F1 XM)/W,且取整數;Fl 被測試電路所使用的快速時鐘頻率;M 被測試電路中需要測試的信號個數;W 輸 出接口的帶寬,W = F3XN(F3 輸出接口的時鐘頻率;N:輸出接口的位寬);分頻后慢速時 鐘頻率F2 = F1/D ;時鐘切換單元,用于根據所述時鐘分頻單元計算的慢速時鐘頻率與快速時鐘頻率對所 述被測試電路所使用的運行時鐘頻率進行切換,具體為在達到所述第一切換時刻之前,所 述被測試電路運行頻率為快速時鐘頻率;當達到所述第一切換時刻時,將所述被測試電路運行頻率切換到所述慢速時鐘頻率;當達到所述第二切換時刻時,將所述被測試電路運行頻率切換到所述快速時鐘頻率。
9.如權利要求6至8任一項所述的裝置,其特征在于,還包括排序處理單元,用于對向輸出接口輸出的待觀測值進行排序。
10.如權利要求9所述的裝置,其特征在于,還包括轉換單元,用于在所述排序處理單元對所述待觀測值進行排序后,通過時分多路復用 技術將與所述待觀測值對應的多路低速并行信號轉換成高速串行信號。
全文摘要
本發明提供一種電路狀態檢測的方法和裝置,包括以下步驟外部啟動被測試電路,對所述被測試電路進行首次測試;當測試過程中所述被測試電路出現錯誤時,記錄出錯時刻;根據所述出錯時刻獲得輸出待觀測值的第一切換時刻以及第二切換時刻;其中,所述第一切換時刻位于所述出錯時刻之前,所述第二切換時刻位于所述出錯時刻之后;重新啟動所述被測試電路,對所述被測試電路進行再次測試,并當達到所述第一切換時刻時,向輸出接口開始輸出待觀測值,直到達到第二切換時刻時,結束向所述輸出接口輸出所述待觀測值;根據輸出的待觀測值確定所述被測試電路的電路狀態。因此,提高了查找被測試電路出錯原因的效率。
文檔編號G01R31/28GK101975919SQ20101028624
公開日2011年2月16日 申請日期2010年9月19日 優先權日2010年9月19日
發明者王振國 申請人:王振國