系統芯片的自動化測試方法、裝置、芯片、設備及系統與流程
1.本技術實施例涉及芯片技術領域,特別涉及一種系統芯片的自動化測試方法、裝置、芯片、設備及系統。
背景技術:
2.傳統的系統芯片(system on chip,soc)的測試高度依賴可測性設計(design for testability,dft),可測性設計可以提供高故障覆蓋率的測試激勵,保證半導體測試可以用最小的時間成本篩選出有故障的系統芯片。但是隨著系統芯片中軟硬件復雜度的提高,許多問題無法或很難抽象出相應的故障模型,這部分測試一般使用自動測試機臺(automatic test equipment,ate)進行測試。
3.目前,自動測試機臺在測試系統芯片時,通常是通過無盤啟動rom接口(boot rom)或者旁路接口下載一段測試程序到系統芯片中,系統芯片運行測試程序后返回測試結果,或者,通過一個旁路接口對系統芯片的內部直接訪問。但是,這種兩種測試方法的測試速度都比較慢,且系統芯片的安全性存在隱患。
技術實現要素:
4.本技術實施例提供了一種系統芯片的自動化測試方法、裝置、芯片、設備及系統,用于解決通過下載測試程序來測試系統芯片時,測試速度較慢,系統芯片的安全性存在隱患的問題。所述技術方案如下:一方面,提供了一種系統芯片的自動化測試方法,所述方法包括:在系統芯片中配置測試單元;接收所述自動測試機臺發送的測試內容;根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試;根據測試后得到的測試結果生成指紋,將所述指紋發送給所述自動測試機臺,所述自動測試機臺用于將所述指紋與標準指紋進行比較,并根據比較結果確定所述系統芯片的測試結果。
5.在一種可能的實現方式中,所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:當所述測試內容包括單個測試單元的指針和測試參數時,根據所述指針調用所述系統芯片中配置的測試單元,根據所述測試單元和所述測試參數對所述系統芯片進行測試。
6.在一種可能的實現方式中,所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:當所述測試內容包括多個測試單元的調用信息和測試參數時,根據所述調用信息依次調用所述系統芯片中配置的測試單元,根據所述測試單元和所述測試參數對所述系統
芯片進行測試。
7.在一種可能的實現方式中,在所述接收所述自動測試機臺發送的測試內容之前,所述方法還包括:向所述自動測試機臺發送隨機數;接收所述自動測試機臺發送的第一消息認證碼,所述第一消息認證碼是所述自動測試機臺利用約定密碼對接收到的所述隨機數計算消息認證碼后生成的;利用所述約定密碼對所述隨機數計算消息認證碼,得到第二消息認證碼;當所述第一消息認證碼和所述第二消息認證碼相同時,確定認證成功,觸發執行所述接收所述自動測試機臺發送的測試內容的步驟。
8.在一種可能的實現方式中,所述方法還包括:當所述第一消息認證碼與所述第二消息認證碼不同時,確定認證失敗;當認證失敗的次數超過預設的次數閾值時,燒寫一次性可編程otp標志位,所述otp標志位表示所述系統芯片不再進行自動化測試。
9.在一種可能的實現方式中,當所述系統芯片中配置有多個測試單元時,所述多個測試單元對應于至少兩個層級,且不同層級的測試單元之間能夠相互調用。
10.在一種可能的實現方式中,當所述多個測試單元對應于三個層級時,第一層級的測試單元用于調用所述系統芯片中的基礎功能函數,第二層級的測試單元用于調用所述第一層級的測試單元以測試所述系統芯片中的中級功能函數;第三層級的測試單元用于調用所述第二層級的測試單元和/或所述第一層級的測試單元以測試所述系統芯片中的高級功能函數。
11.在一種可能的實現方式中,當所述系統芯片包括多個處理器和多個待測的功能dut時,所述接收所述自動測試機臺發送的測試內容,包括:每個處理器從所述自動測試機臺發送的多個測試內容中選擇與自身的處理器標識對應的測試內容;所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:所述多個處理器根據所述測試內容并行調用所述系統芯片中配置的測試單元,根據多個所述測試單元對多個dut進行并行測試。
12.一方面,提供了一種系統芯片的自動化測試方法,所述方法包括:生成測試內容;將所述測試內容發送給系統芯片,所述系統芯片用于根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,根據測試后得到的測試結果生成指紋,將所述指紋發送給自動化測試機臺;接收所述系統芯片發送的所述指紋;將所述指紋與標準指紋進行比較,根據比較結果確定所述系統芯片的測試結果。
13.在一種可能的實現方式中,所述方法還包括:獲取所述測試內容對應的標準測試結果,根據所述標準測試結果生成標準指紋;所述根據比較結果確定所述系統芯片的測試結果,包括:當所述指紋與所述標準指紋相同時,確定所述系統芯片的測試成功;當所述指紋與所述標準指紋不同時,確定所述系統芯片的測試失敗。
14.一方面,提供了一種系統芯片的自動化測試裝置,所述裝置包括:
配置模塊,用于在系統芯片中配置測試單元;接收模塊,用于接收所述自動測試機臺發送的測試內容;測試模塊,用于根據所述測試內容調用所述系統芯片中配置的測試函數,根據所述測試單元對所述系統芯片進行測試;發送模塊,用于根據測試后得到的測試結果生成指紋,將所述指紋發送給所述自動測試機臺,所述自動測試機臺用于將所述指紋與標準指紋進行比較,并根據比較結果確定所述系統芯片的測試結果。
15.一方面,提供了一種系統芯片的自動化測試裝置,所述裝置包括:生成模塊,用于生成測試內容;發送模塊,用于將所述測試內容發送給系統芯片,所述系統芯片用于根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,根據測試后得到的測試結果生成指紋,將所述指紋發送給自動化測試機臺;接收模塊,用于接收所述系統芯片發送的所述指紋;比較模塊,用于將所述指紋與標準指紋進行比較,根據比較結果確定所述系統芯片的測試結果。
16.一方面,提供了一種系統芯片,所述系統芯片包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如上所述的系統芯片的自動化測試方法。
17.一方面,提供了一種自動測試機臺,所述自動測試機臺包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如上所述的系統芯片的自動化測試方法。
18.一方面,提供了一種自動化測試系統,所述自動化測試系統包括如上所述的系統芯片和自動測試機臺。
19.本技術實施例提供的技術方案的有益效果至少包括:由于系統芯片中配置有測試單元,所以,自動測試機臺只需要向系統芯片發送測試內容即可,無需向系統芯片發送測試單元,系統芯片能夠根據測試內容調用自身配置的測試單元來完成測試,從而減少了測試過程中的數據傳輸,提高了測試速度。
20.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
21.系統芯片根據消息認證碼對自動測試機臺進行認證,在認證成功后進行測試,在認證失敗的次數超過預設的次數閾值時,燒寫otp標志位,以通過該otp標志位來表示系統芯片不再進行自動化測試,從而避免系統芯片丟失后被測試。
22.當系統芯片包括多個處理器和多個dut時,多個處理器能夠根據測試內容并行調用系統芯片中配置的測試單元,根據多個測試單元對多個dut進行并行測試,從而提高了測試效率。
附圖說明
23.為了更清楚地說明本技術實施例中的技術方案,下面將對實施例描述中所需要使
用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
24.圖1是本技術一個實施例提供的系統芯片的自動化測試方法的方法流程圖;圖2是本技術一個實施例提供的一種測試單元的存儲位置示意圖;圖3是本技術一個實施例提供的一種系統芯片與自動測試機臺的認證流程示意圖;圖4是本技術一個實施例提供的一種并行測試dut的流程示意圖;圖5是本技術一個實施例提供的一種并行測試dut的流程示意圖;圖6是本技術一個實施例提供的系統芯片的自動化測試方法的方法流程圖;圖7是本技術一個實施例提供的調用fuse燒寫函數燒寫快速fuse的流程示意圖;圖8是本技術一個實施例提供的調用trim函數對模擬量進行調整的流程示意圖;圖9是本技術一個實施例提供的系統芯片的自動化測試裝置的結構框圖;圖10是本技術一個實施例提供的系統芯片的自動化測試裝置的結構框圖;圖11是本技術一個實施例提供的系統芯片的自動化測試裝置的結構框圖。
具體實施方式
25.為使本技術實施例的目的、技術方案和優點更加清楚,下面將結合附圖對本技術實施方式作進一步地詳細描述。
26.請參考圖1,其示出了本技術一個實施例提供的系統芯片的自動化測試方法的方法流程圖,該系統芯片的自動化測試方法可以應用于系統芯片中。該系統芯片的自動化測試方法,可以包括:步驟101,在系統芯片中配置測試單元。
27.測試單元是指在測試系統芯片的某一項功能時調用的最小單元。在一個示例中,測試單元包括一個測試函數,或者,測試單元包括一個測試函數以及其他在測試過程中可能用到的數據、參數等,該測試函數用于單獨測試系統芯片的某一項功能。在另一個實例中,測試單元包括一系列測試函數,或者,測試單元包括一系列測試函數以及其他在測試過程中可能用到的數據、參數等,這一系列的測試函數用于聯合測試系統芯片的某一項功能,此時的測試單元可以理解為一個小的測試程序。需要說明的是,在系統芯片中配置的測試單元與相關技術中的自動測試機臺中配置的測試單元相同。
28.本實施例中設計的測試單元可以根據系統芯片的測試需求進行設置和調整。當系統芯片中配置有多個測試單元時,多個測試單元對應于至少兩個層級,且不同層級的測試單元之間能夠相互調用。這樣,可以通過設計調用關系來靈活測試系統芯片的不同功能,從而提高了測試的靈活性。
29.本實施例中將多個測試單元劃分為三個層級,第一層級的測試單元用于調用系統芯片中的基礎功能函數,第二層級的測試單元用于調用第一層級的測試單元以測試系統芯片中的中級功能函數;第三層級的測試單元用于調用第二層級的測試單元和/或第一層級的測試單元以測試系統芯片中的高級功能函數。
30.為了便于理解,下面對一些常用的測試單元進行舉例說明。在實際使用時,系統芯
片中配置的測試單元可以包含例舉的全部或部分測試單元,也可以包含本實施例中未例舉的測試單元。
31.第一層級的測試單元用于調用以下基礎功能函數來實現以下功能:(1)順序讀一段地址或固定地址中的一定長度內容,返回讀取內容的指紋;(2)從一個固定地址或者連續地址搬運確定長度的數據到固定地址或者一段連續地址,其中,固定地址是處理fifo(first in first out,先進先出)的情況;(3)從一個固定地址或者連續地址搬運不確定長度的數據到固定地址或者一段連續地址,直到數據中的值與配置的測試內容中的值匹配;(4)連續讀取一個地址直到該地址的值變化為預期值時,往另一個地址寫入一個特定值,并返回等待時間或者讀取次數,例如等待中斷后清除中斷動作;(5)在一段地址的數據內尋一個與測試內容相匹配的數據,并返回該數據的地址;(6)將pll(phase locked loop,鎖相環)配置為某一個頻率;第二層級的測試單元用于調用以下中級功能函數實現以下功能:(1)燒寫一段數據到otp(one time programmable,一次性編程),返回燒寫結果的指紋;(2)燒寫一段數據到flash /eeprom(electrically erasable programmable read only memory,帶電可擦可編程只讀存儲器),返回燒寫結果的指紋;(3)analog(模擬)量測量過程中,trim 配置順序增加或減少,與外部io(input/output,輸入輸出)或者timer(定時器)進行handshanke(握手);(4)往一段連續或固定地址寫入一段長度的數據,并從另一個固定地址或一段連續地址不斷讀取,并返回讀取數據的指紋,比如,用作某些外設的loopback(回環)測試;(5)系統芯片自定制的一些工作流程,例如,進入低功耗工作模式或者進入最大功耗模式等,可以測量各種模式的電流;第三層級的測試單元用于調用以下高級功能函數,例如一些高級的數字信號處理函數和特定ip的定制函數,來實現以下功能:(1)對數據統計平均值、方差;(2)計算一段數據的fft(fast fourier transform,快速傅里葉變換)或者ifft(inverse fast fourier transform,快速傅里葉逆變換);(3)計算ad(模數)/da(數模)數據信噪比,線性度等;(4)為ad/da做數據采集或輸出準備。
32.在設計好測試單元后,可以將這些測試單元配置在系統芯片中。具體的,可以將測試單元配置在rom中,也可以在測試開始前,將測試單元下載到片內sram(static random-access memory,靜態隨機存取存儲器)中。
33.請參考圖2,圖2中的ate tester表示自動測試機臺,pattern表示測試內容,soc表示系統片,ate i/f表示系統芯片的接口,test mode ctrl表示測試模式控制器,用于控制系統芯片處于測試模式或正常工作模式,ate ctrl表示機臺控制器,ate dut表示待測的功能,ate function表示測試單元,且測試單元配置在rom中。
34.在配置好測試單元后,系統芯片可以與自動測試機臺建立連接,以便自動測試機
臺對系統芯片進行測試。對于一些高安全性要求的系統芯片,系統芯片可以使用密碼(password)與自動測試機臺建立連接,只有已知密碼和握手協議的自動測試機臺才能夠建立測試認證。
35.具體的,在建立連接時,系統芯片可以向自動測試機臺發送隨機數;接收自動測試機臺發送的第一消息認證碼,第一消息認證碼是自動測試機臺利用約定密碼對接收到的隨機數計算消息認證碼后生成的;利用約定密碼對隨機數計算消息認證碼,得到第二消息認證碼;當第一消息認證碼和第二消息認證碼相同時,確定認證成功,執行步驟102。當第一消息認證碼與第二消息認證碼不同時,確定認證失敗,更新認證失敗的次數。當認證失敗的次數超過預設的次數閾值時,系統芯片燒寫otp標志位,otp標志位表示系統芯片不再進行自動化測試,從而避免系統芯片丟失后被測試。
36.其中,消息認證碼的算法可以是hmac(hash-based message authentication code,基于哈希運算的消息認證碼)或者cmac(cipher block chaining-message authentication code,基于對稱秘鑰分組加密算法的消息認證碼)等,本實施例中不作限定。
37.請參考圖3,圖3中的第一步是系統芯片向自動測試機臺發送隨機數(random number),第二步是自動測試機臺向系統芯片發送第一消息認證碼(mac),第三步是系統芯片向自動測試機臺發送認證通過/失敗的結果。
38.這樣,系統芯片無需發送密碼即可對自動測試機臺進行認證,可以避免密碼被泄露給其他設備時,其他設備偽裝成自動測試機臺來攻擊系統芯片,提高了系統芯片的安全性。另外,每次發送的隨機數都是不同的,即使隨機數被泄露給其他設備,其他設備也無法復制該隨機數來攻擊系統芯片,進一步提高了系統芯片的安全性。
39.步驟102,接收自動測試機臺發送的測試內容。
40.測試內容用于定義測試系統芯片的某一項功能時所需調用的測試單元和測試參數。由于系統芯片中已經配置有測試單元,所以,測試內容中無需包括測試單元的內容,從而減少了測試內容的數據量,可以減少測試過程中的數據傳輸,提高了測試速度。
41.在第一種實現方式中,當需要調用單個測試單元進行測試時,測試內容包括單個測試單元的指針和測試參數。
42.在第二種實現方式中,當需要調用多個測試單元進行測試時,測試內容包括多個測試單元的調用信息和測試參數。比如,調用信息是測試單元1的指針-測試單元2的指針-測試單元3的指針,則表示先調用測試單元1,再調用測試單元2,最后調用測試單元3。
43.步驟103,根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試。
44.在第一種實現方式中,根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試,可以包括:當測試內容包括單個測試單元的指針和測試參數時,根據指針調用系統芯片中配置的測試單元,根據測試單元和測試參數對系統芯片進行測試。
45.在第二種實現方式中,根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試,可以包括:當測試內容包括多個測試單元的調用信息和測試參數時,根據調用信息依次調用系統芯片中配置的測試單元,根據測試單元和測試參數對系
統芯片進行測試。
46.步驟104,根據測試后得到的測試結果生成指紋,將指紋發送給自動測試機臺,自動測試機臺用于將指紋與標準指紋進行比較,并根據比較結果確定系統芯片的測試結果。
47.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
48.根據測試結果生成指紋的算法有很多種,本實施例中不限定具體的算法。在一個示例中,系統芯片可以采用消息摘要算法對測試結果進行計算,此時得到的指紋是消息摘要,這里所說的消息摘要算法可以是哈希算法或crc等其他壓縮算法。
49.系統芯片將指紋發送給自動測試機臺,自動測試機臺可以根據測試內容仿真得到標準測試結果,根據標準測試結果生成標準指紋,將接收到的指紋與標準指紋進行比較,當指紋與標準指紋相同時,確定系統芯片的測試成功;當指紋與標準指紋不同時,確定系統芯片的測試失敗。
50.需要說明的是,對于不會返回測試結果的測試單元,系統芯片會根據測試情況生成通過或失敗的信號,將該信號發送給自動測試機臺,自動測試機臺根據該信號確定系統芯片的測試結果。
51.本實施例中所說的測試,不光可以包含對于電路正確性的測試,還可以包含有對于系統芯片內非易失存儲器進行燒寫的測試,例如,在出廠前需要對系統芯片內的otp或者flash進行燒寫,可以采用本實施例提供的方法來提高效率。
52.本實施例中所說的測試方法可以應用于系統芯片的各個測試階段,包括cp(晶圓測試)、ft(封裝后測試)、system test(系統測試)、回廠測試等,并不限制于某一階段的測試。
53.綜上所述,本技術實施例提供的系統芯片的自動化測試方法,由于系統芯片中配置有測試單元,所以,自動測試機臺只需要向系統芯片發送測試內容即可,無需向系統芯片發送測試單元,系統芯片能夠根據測試內容調用自身配置的測試單元來完成測試,從而減少了測試過程中的數據傳輸,提高了測試速度。
54.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
55.系統芯片根據消息認證碼對自動測試機臺進行認證,在認證成功后進行測試,在認證失敗的次數超過預設的次數閾值時,燒寫otp標志位,以通過該otp標志位來表示系統芯片不再進行自動化測試,從而避免系統芯片丟失后被測試。
56.當系統芯片包括多個處理器和多個dut(design under test,待測的功能)時,多個處理器可以并行測試多個dut,請參考圖4所示的并行測試流程。
57.步驟401,在系統芯片中配置測試單元。
58.其中,測試單元的配置流程詳見步驟101中的描述,此處不再贅述。
59.步驟402,每個處理器從自動測試機臺發送的多個測試內容中選擇與自身的處理器標識對應的測試內容。
60.請參考圖5,系統芯片中的機臺控制器通過ate i/f接口接收到多個測試內容后,
按照測試內容對應的處理器標識,將每個測試內容分發給對應的處理器。
61.步驟403,多個處理器根據測試內容并行調用系統芯片中配置的測試單元,根據多個測試單元對多個dut進行并行測試。
62.圖5中,pattern for dut1表示dut1的測試內容,pattern for dut2表示dut2的測試內容。
63.一個處理器在獲取到一個測試內容后,根據該測試內容中的測試參數確定待測試的dut,這樣,多個處理器可以并行測試系統芯片中的不同dut。
64.步驟404,根據測試后得到的測試結果生成指紋,將指紋發送給自動測試機臺,自動測試機臺用于將指紋與標準指紋進行比較,并根據比較結果確定系統芯片的測試結果。
65.當系統芯片包括多個處理器和多個dut時,多個處理器能夠根據測試內容并行調用系統芯片中配置的測試單元,根據多個測試單元對多個dut進行并行測試,從而提高了測試效率。
66.請參考圖6,其示出了本技術一個實施例提供的系統芯片的自動化測試方法的方法流程圖,該系統芯片的自動化測試方法可以應用于自動測試機臺中。該系統芯片的自動化測試方法,可以包括:步驟601,生成測試內容。
67.測試內容用于定義測試系統芯片的某一項功能時所需調用的測試單元和測試參數。由于系統芯片中已經配置有測試單元,所以,測試內容中無需包括測試單元的內容,從而減少了測試內容的數據量,可以減少測試過程中的數據傳輸,提高了測試速度。
68.在第一種實現方式中,當需要調用單個測試單元進行測試時,測試內容包括單個測試單元的指針和測試參數。
69.在第二種實現方式中,當需要調用多個測試單元進行測試時,測試內容包括多個測試單元的調用信息和測試參數。
70.需要說明的是,當系統芯片中包括多個處理器和多個dut時,自動測試機臺生成多個測試內容,每個測試內容對應于一個處理器標識,以指示對應的處理器來測試對應的dut。
71.步驟602,將測試內容發送給系統芯片,系統芯片用于根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試,根據測試后得到的測試結果生成指紋,將指紋發送給自動化測試機臺。
72.步驟603,接收系統芯片發送的指紋。
73.步驟604,將指紋與標準指紋進行比較,根據比較結果確定系統芯片的測試結果。
74.在確定測試結果之前,自動測試機臺需要獲取測試內容對應的標準測試結果,根據標準測試結果生成標準指紋。其中,標準指紋的生成算法與指紋的生成算法相同,具體是采用一個完全正確的芯片原型進行運行得到,該芯片原型可以是eda仿真或者硬件加速器仿真。
75.當指紋與標準指紋相同時,確定系統芯片的測試成功;當指紋與標準指紋不同時,確定系統芯片的測試失敗。
76.綜上所述,本技術實施例提供的系統芯片的自動化測試方法,由于系統芯片中配置有測試單元,所以,自動測試機臺只需要向系統芯片發送測試內容即可,無需向系統芯片
發送測試單元,系統芯片能夠根據測試內容調用自身配置的測試單元來完成測試,從而減少了測試過程中的數據傳輸,提高了測試速度。
77.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
78.下面以測試單元為fuse燒寫函數(fuse burn function),且調用fuse燒寫函數燒寫快速fuse為例,對測試流程進行說明,請參考圖7。
79.(1)通過ate i/f接口向ram中寫入待燒寫的數值(values to be burn)。
80.(2)機臺控制器接收到測試內容后向cpu發送測試內容,cpu根據測試內容調取內置在rom中的fuse燒寫函數。
81.(3)cpu執行fuse燒寫函數,讀取ram中寫入的數值。
82.(4)cpu將數值順序燒寫到fuse中,完成后cpu讀取全部已燒寫的內容并計算指紋。
83.(5)cpu將指紋返回給ate i/f接口。
84.(6)ate i/f接口向指紋發送給ate tester,ate tester根據指紋判斷燒寫是否成功。
85.下面對比本發明和傳統方式,對比fuse燒寫時需要的周期數和存儲空間要求。
86.假設需要燒寫1kb的數據,每次燒寫otp的固定流程是,首先要寫入地址到otp 控制器的寄存器,然后寫入數據到otp 控制器的寄存器,隨后配置otp控制寄存器進行對應地址的寫入操作,隨后讀取otp控制器的寄存器確認寫入完成,可以寫入下一筆數據。
87.寫入完成后,需要讀取otp的數據確認是否寫入成功,讀取每個地址的過程是,寫入地址到otp 控制器的寄存器,隨后配置otp控制寄存器進行對應地址讀取操作,隨后讀取otp控制器的寄存器確認讀取完成,隨后可以從otp控制器的數據寄存器中讀取otp對應地址中存儲的數據。
88.假設ate接口可以運行到50mhz頻率,cpu可以運行到300mhz,ate訪問一次內部空間的word的需要30個周期,而cpu需要5個周期(實際cpu對于連續地址操作可以采用burst方式進行,且可以打開cache,速度會更快)。對于1kb數據的燒寫,如果采用傳統方式和本發明的方式,需要的時間對比。
89.傳統方式中需要分別進行讀寫操作,所以,需要2kb的存儲空間;本發明中只需要進行讀操作,寫入的指紋的數據量很小,可以忽略不計,所以,需要1kb的存儲空間。
90.下面以測試單元為trim函數(trim function),且調用trim函數對模擬(analog)量進行調整為例,對測試流程進行說明,請參考圖8。
91.(1)通過atei/f接口向ram中寫入測試內容(trim program),該測試內容包括analog的初始化和trim流程控制。
92.(2)機臺控制器接收到測試內容后向cpu發送測試內容,啟動cpu。
93.(3)cpu調用rom中存儲的trim函數的參數,參數包括analog trim值的寄存器地
址、初始值、每次增加值的配置以及握手的條件(采用io)。
94.(4)cpu準備完畢后在analog io設置第一個trim值,并在gpio控制器的端口發出握手請求,等待ate tester響應。
95.(5)ate tester等待系統芯片發出握手請求后,在analog io進行analog 量的測量,測量完畢后對系統芯片的握手請求進行響應。
96.(6)得到握手請求的響應后,將trim寄存器的值配置為當前值++,通過analog io輸出,在gpio控制器的端口發出握手請求,等待ate tester響應。
97.(7)重復上述兩個步驟直到trim設置完畢后停止,cpu返回測試完成。
98.(8)ate tester根據trim初始值和每次握手后trim增加的約定,對比analog量的測試項,得到最理想情況下的trim值并記錄。
99.請參考圖9,其示出了本技術一個實施例提供的系統芯片的自動化測試裝置的結構框圖,該系統芯片的自動化測試裝置可以應用于系統芯片中。該系統芯片的自動化測試裝置,可以包括:配置模塊910,用于在系統芯片中配置測試單元;接收模塊920,用于接收自動測試機臺發送的測試內容;測試模塊930,用于根據測試內容調用系統芯片中配置的測試函數,根據測試單元對系統芯片進行測試;發送模塊940,用于根據測試后得到的測試結果生成指紋,將指紋發送給自動測試機臺,自動測試機臺用于將指紋與標準指紋進行比較,并根據比較結果確定系統芯片的測試結果。
100.在一個可選的實施例中,測試模塊930,還用于:當測試內容包括單個測試單元的指針和測試參數時,根據指針調用系統芯片中配置的測試單元,根據測試單元和測試參數對系統芯片進行測試。
101.在一個可選的實施例中,測試模塊930,還用于:當測試內容包括多個測試單元的調用信息和測試參數時,根據調用信息依次調用系統芯片中配置的測試單元,根據測試單元和測試參數對系統芯片進行測試。
102.在一個可選的實施例中,發送模塊940,還用于在接收自動測試機臺發送的測試內容之前,向自動測試機臺發送隨機數;接收模塊920,還用于接收自動測試機臺發送的第一消息認證碼,第一消息認證碼是自動測試機臺利用約定密碼對接收到的隨機數計算消息認證碼后生成;請參考圖10,該裝置還包括加密模塊950,用于利用約定密碼對隨機數計算消息認證碼,得到第二消息認證碼;確定模塊960,用于當第一消息認證碼和第二消息認證碼相同時,確定認證成功,觸發執行接收自動測試機臺發送的測試內容的步驟。
103.在一個可選的實施例中,確定模塊960,還用于當第一消息認證碼與第二消息認證碼不同時,確定認證失敗;該裝置還包括燒寫模塊970,用于當認證失敗的次數超過預設的次數閾值時,燒寫一次性可編程otp標志位,otp標志位表示系統芯片不再進行自動化測試。
104.在一個可選的實施例中,當系統芯片中配置有多個測試單元時,多個測試單元對
應于至少兩個層級,且不同層級的測試單元之間能夠相互調用。
105.在一個可選的實施例中,當多個測試單元對應于三個層級時,第一層級的測試單元用于調用系統芯片中的基礎功能函數,第二層級的測試單元用于調用第一層級的測試單元以測試系統芯片中的中級功能函數;第三層級的測試單元用于調用第二層級的測試單元和/或第一層級的測試單元以測試系統芯片中的高級功能函數。
106.在一個可選的實施例中,當系統芯片包括多個處理器和多個dut時,接收模塊920,還用于通過每個處理器從自動測試機臺發送的多個測試內容中選擇與自身的處理器標識對應的測試內容;測試模塊930,還用于:通過多個處理器根據測試內容并行調用系統芯片中配置的測試單元,根據多個測試單元對多個dut進行并行測試。
107.綜上所述,本技術實施例提供的系統芯片的自動化測試裝置,由于系統芯片中配置有測試單元,所以,自動測試機臺只需要向系統芯片發送測試內容即可,無需向系統芯片發送測試單元,系統芯片能夠根據測試內容調用自身配置的測試單元來完成測試,從而減少了測試過程中的數據傳輸,提高了測試速度。
108.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
109.系統芯片根據消息認證碼對自動測試機臺進行認證,在認證成功后進行測試,在認證失敗的次數超過預設的次數閾值時,燒寫otp標志位,以通過該otp標志位來表示系統芯片不再進行自動化測試,從而避免系統芯片丟失后被測試。
110.當系統芯片包括多個處理器和多個dut時,多個處理器能夠根據測試內容并行調用系統芯片中配置的測試單元,根據多個測試單元對多個dut進行并行測試,從而提高了測試效率。
111.請參考圖11,其示出了本技術一個實施例提供的系統芯片的自動化測試裝置的結構框圖,該系統芯片的自動化測試裝置可以應用于自動測試機臺中。該系統芯片的自動化測試裝置,可以包括:生成模塊1110,用于生成測試內容;發送模塊1120,用于將測試內容發送給系統芯片,系統芯片用于根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試,根據測試后得到的測試結果生成指紋,將指紋發送給自動化測試機臺;接收模塊1130,用于接收系統芯片發送的指紋;比較模塊1140,用于將指紋與標準指紋進行比較,根據比較結果確定系統芯片的測試結果。
112.在一個可選的實施例中,生成模塊1110,還用于獲取測試內容對應的標準測試結果,根據標準測試結果生成標準指紋;比較模塊1140,還用于當指紋與標準指紋相同時,確定系統芯片的測試成功;當指紋與標準指紋不同時,確定系統芯片的測試失敗。
113.綜上所述,本技術實施例提供的系統芯片的自動化測試裝置,由于系統芯片中配置有測試單元,所以,自動測試機臺只需要向系統芯片發送測試內容即可,無需向系統芯片
發送測試單元,系統芯片能夠根據測試內容調用自身配置的測試單元來完成測試,從而減少了測試過程中的數據傳輸,提高了測試速度。
114.系統芯片向自動測試機臺發送的是測試結果的指紋,由于指紋的數據量小于測試結果的數據量,所以,可以減少數據傳輸,提高測試速度。另外,根據指紋無法反推出測試結果,所以,可以提高系統芯片的安全性。
115.本技術一個實施例提供了一種系統芯片,所述系統芯片包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如上所述的系統芯片的自動化測試方法。
116.本技術一個實施例提供了一種自動測試機臺,所述自動測試機臺包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如上所述的系統芯片的自動化測試方法。
117.本技術一個實施例提供了一種自動化測試系統,所述自動化測試系統包括如上所述的系統芯片和自動測試機臺。
118.本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
119.以上所述并不用以限制本技術實施例,凡在本技術實施例的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本技術實施例的保護范圍之內。
技術特征:
1.一種系統芯片的自動化測試方法,其特征在于,所述方法包括:在系統芯片中配置測試單元;接收所述自動測試機臺發送的測試內容;根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試;根據測試后得到的測試結果生成指紋,將所述指紋發送給所述自動測試機臺,所述自動測試機臺用于將所述指紋與標準指紋進行比較,并根據比較結果確定所述系統芯片的測試結果。2.根據權利要求1所述的系統芯片的自動化測試方法,其特征在于,所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:當所述測試內容包括單個測試單元的指針和測試參數時,根據所述指針調用所述系統芯片中配置的測試單元,根據所述測試單元和所述測試參數對所述系統芯片進行測試。3.根據權利要求1所述的系統芯片的自動化測試方法,其特征在于,所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:當所述測試內容包括多個測試單元的調用信息和測試參數時,根據所述調用信息依次調用所述系統芯片中配置的測試單元,根據所述測試單元和所述測試參數對所述系統芯片進行測試。4.根據權利要求1所述的系統芯片的自動化測試方法,其特征在于,在所述接收所述自動測試機臺發送的測試內容之前,所述方法還包括:向所述自動測試機臺發送隨機數;接收所述自動測試機臺發送的第一消息認證碼,所述第一消息認證碼是所述自動測試機臺利用約定密碼對接收到的所述隨機數計算消息認證碼后生成的;利用所述約定密碼對所述隨機數計算消息認證碼,得到第二消息認證碼;當所述第一消息認證碼和所述第二消息認證碼相同時,確定認證成功,觸發執行所述接收所述自動測試機臺發送的測試內容的步驟。5.根據權利要求4所述的系統芯片的自動化測試方法,其特征在于,所述方法還包括:當所述第一消息認證碼與所述第二消息認證碼不同時,確定認證失敗;當認證失敗的次數超過預設的次數閾值時,燒寫一次性可編程otp標志位,所述otp標志位表示所述系統芯片不再進行自動化測試。6.根據權利要求1所述的系統芯片的自動化測試方法,其特征在于,當所述系統芯片中配置有多個測試單元時,所述多個測試單元對應于至少兩個層級,且不同層級的測試單元之間能夠相互調用。7.根據權利要求6所述的系統芯片的自動化測試方法,其特征在于,當所述多個測試單元對應于三個層級時,第一層級的測試單元用于調用所述系統芯片中的基礎功能函數,第二層級的測試單元用于調用所述第一層級的測試單元以測試所述系統芯片中的中級功能函數;第三層級的測試單元用于調用所述第二層級的測試單元和/或所述第一層級的測試單元以測試所述系統芯片中的高級功能函數。
8.根據權利要求1至7中任一項所述的系統芯片的自動化測試方法,其特征在于,當所述系統芯片包括多個處理器和多個待測的功能dut時,所述接收所述自動測試機臺發送的測試內容,包括:每個處理器從所述自動測試機臺發送的多個測試內容中選擇與自身的處理器標識對應的測試內容;所述根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,包括:所述多個處理器根據所述測試內容并行調用所述系統芯片中配置的測試單元,根據多個所述測試單元對多個dut進行并行測試。9.一種系統芯片的自動化測試方法,其特征在于,所述方法包括:生成測試內容;將所述測試內容發送給系統芯片,所述系統芯片用于根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,根據測試后得到的測試結果生成指紋,將所述指紋發送給自動化測試機臺;接收所述系統芯片發送的所述指紋;將所述指紋與標準指紋進行比較,根據比較結果確定所述系統芯片的測試結果。10.根據權利要求9所述的系統芯片的自動化測試方法,其特征在于,所述方法還包括:獲取所述測試內容對應的標準測試結果,根據所述標準測試結果生成標準指紋;所述根據比較結果確定所述系統芯片的測試結果,包括:當所述指紋與所述標準指紋相同時,確定所述系統芯片的測試成功;當所述指紋與所述標準指紋不同時,確定所述系統芯片的測試失敗。11.一種系統芯片的自動化測試裝置,其特征在于,所述裝置包括:配置模塊,用于在系統芯片中配置測試單元;接收模塊,用于接收所述自動測試機臺發送的測試內容;測試模塊,用于根據所述測試內容調用所述系統芯片中配置的測試函數,根據所述測試單元對所述系統芯片進行測試;發送模塊,用于根據測試后得到的測試結果生成指紋,將所述指紋發送給所述自動測試機臺,所述自動測試機臺用于將所述指紋與標準指紋進行比較,并根據比較結果確定所述系統芯片的測試結果。12.一種系統芯片的自動化測試裝置,其特征在于,所述裝置包括:生成模塊,用于生成測試內容;發送模塊,用于將所述測試內容發送給系統芯片,所述系統芯片用于根據所述測試內容調用所述系統芯片中配置的測試單元,根據所述測試單元對所述系統芯片進行測試,根據測試后得到的測試結果生成指紋,將所述指紋發送給自動化測試機臺;接收模塊,用于接收所述系統芯片發送的所述指紋;比較模塊,用于將所述指紋與標準指紋進行比較,根據比較結果確定所述系統芯片的測試結果。13.一種系統芯片,其特征在于,所述系統芯片包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如權利要求1至8中任一項所述的系統芯片的自動化測試方法。
14.一種自動測試機臺,其特征在于,所述自動測試機臺包括處理器和存儲器,所述存儲器中存儲有至少一條指令,所述指令由所述處理器加載并執行以實現如權利要求9或10所述的系統芯片的自動化測試方法。15.一種自動化測試系統,其特征在于,所述自動化測試系統包括如權利要求13所述的系統芯片和如權利要求14所述的自動測試機臺。
技術總結
本申請公開了一種系統芯片的自動化測試方法、裝置、芯片、設備及系統,屬于芯片技術領域。所述方法包括:在系統芯片中配置測試單元;接收自動測試機臺發送的測試內容;根據測試內容調用系統芯片中配置的測試單元,根據測試單元對系統芯片進行測試;根據測試后得到的測試結果生成指紋,將指紋發送給自動測試機臺,自動測試機臺用于將指紋與標準指紋進行比較,并根據比較結果確定系統芯片的測試結果。本申請能夠根據測試內容調用自身配置的測試單元來完成測試,減少了測試過程中的數據傳輸,提高了測試速度,還能夠反饋測試結果的指紋,以減少數據傳輸和提高系統芯片的安全性。少數據傳輸和提高系統芯片的安全性。少數據傳輸和提高系統芯片的安全性。
