構如圖1所示。其中每一條掃描鏈由一個或多個時序邏輯電路與一個或多個組合邏輯電路組成,原則上所有掃描鏈可以覆蓋全部SOC芯片的全部數字電路部分。如圖2所示為每一條掃描鏈的具體結構圖,從圖中可以看出,每一條掃描鏈上的所有寄存器共享同一個測試復位信號、捕獲使能信號及測試時鐘信號。每一條掃描上包括多個寄存器、多個組合邏輯電路及一個結尾寄存器。每一個寄存器的前一級均加入一個數據選擇器,此數據選擇器負責選擇輸入到寄存器觸發(fā)端的數據。當捕獲使能無效時,普通寄存器的觸發(fā)端的數據由測試數據輸入端輸入,伴隨著測試時鐘從掃描鏈起始端輸入的測試數據,經過多個帶數據選擇器的普通寄存器,經過一系列組合邏輯電路,最后傳遞到結尾寄存器。此時捕獲使能有效,結尾寄存器前的數據選擇器選擇功能模式數據輸入,在下一個測試時鐘周期,得到有效的測試數據輸出。如果此輸出數據與預判值相等,則可認為在此條掃描鏈上所有的寄存器及組合邏輯均不存在物理缺陷。
[0094]傳統(tǒng)的DFT測試,可以有效的測試整個SOC芯片的數字電路部分,但是每次只能針對全芯片進行測試。對于多接口、多應用的SOC芯片,每次對全部芯片進行測試,包括不需要的功能模式,增加了測試時間及測試成本。針對以上問題,本發(fā)明提出了一種適用于不同封裝形式的DFT設計方案,實現(xiàn)了同一款SOC芯片在不同的應用領域下,進行針對性的部分測試,有效的縮短了測試時間及測試成本。
[0095]具體地,本發(fā)明提出了一種片上系統(tǒng)SOC芯片的時鐘網絡系統(tǒng),如圖3所示,所述系統(tǒng)包括:外部時鐘輸入模塊、系統(tǒng)時鐘源、多路測試時鐘和時鐘選擇器。
[0096]外部時鐘輸入模塊,用于通過時鐘選擇器為SOC芯片上的一個或多個功能模塊提供外部時鐘。
[0097]系統(tǒng)時鐘源,用于發(fā)出原始時鐘,將該原始時鐘發(fā)送至倍頻器生成高頻時鐘,并將該原始時鐘和高頻時鐘發(fā)送至時鐘選擇器。
[0098]多路測試時鐘,用于分別通過時鐘選擇器與一個或多個功能模塊相連,并在測試使能信號有效時,根據捕獲使能信號控制各個功能模塊的測試時鐘數據的輸入或測試結果的輸出。
[0099]時鐘選擇器,用于在測試使能信號無效時,根據系統(tǒng)寄存器的配置信息,選擇原始時鐘或者高頻時鐘為一個或多個功能模塊提供各模塊的工作時鐘;或者,在測試使能信號無效時,采用外部時鐘為一個或多個功能模塊提供各模塊的工作時鐘;并且在測試使能信號有效時,為一個或多個功能模塊提供多路測試時鐘輸出的各模塊的測試時鐘數據。
[0100]優(yōu)選地,
[0101]多路測試時鐘包括第一測試時鐘、第二測試時鐘、第三測試時鐘和第四測試時鐘。
[0102]多個功能模塊包括系統(tǒng)控制模塊、安全模塊、內置集成電路I2C模塊、串行外圍設備接口 SPI模塊、通用串行總線USB模塊、通用非同步接收/傳送器UART模塊和7816模塊。
[0103]其中,系統(tǒng)控制模塊負責整個芯片的功能調度、安全模塊負責電路運行中的加密、各個通信模塊(I2C模塊、SPI模塊、USB模塊、UART模塊和7816模塊)負責與其它應用產品進行交互,例如優(yōu)盤、鼠標、鍵盤、讀卡器等。
[0104]時鐘選擇器包括25個時鐘選擇器,該25個時鐘選擇器為從第I時鐘選擇器開始編號的第I時鐘選擇器至第25時鐘選擇器。
[0105]其中,第I時鐘選擇器至第8時鐘選擇器,用于接收系統(tǒng)寄存器的配置信息;第9時鐘選擇器至第25時鐘選擇器,用于接收測試使能信號和/或捕獲使能信號。
[0106]第I時鐘選擇器、第2時鐘選擇器、第3時鐘選擇器、第5時鐘選擇器、第7時鐘選擇器和第8時鐘選擇器分別與倍頻器和系統(tǒng)時鐘源直接連接。
[0107]系統(tǒng)還包括:系統(tǒng)分頻器、安全模塊分頻器、I2C模塊分頻器、SPI模塊分頻器、USB模塊分頻器、UART模塊分頻器和7816模塊分頻器。
[0108]從圖3中可以看出,每一路測試時鐘的輸入,最后可對應一個或者若干個模塊時鐘。每個測試時鐘對應的模塊時鐘的不同,是由模塊本身的特性及應用的可行性決定的。在此系統(tǒng)中,存在4路測試時鐘,分別為第一測試時鐘、第二測試時鐘、第三測試時鐘及第四測試時鐘;及4路SOC芯片功能模式本身需要的時鐘,分別為系統(tǒng)時鐘源、SPI外部時鐘輸入、USB外部時鐘輸入及7816外部時鐘輸入。其中SPI外部時鐘輸入與測試時鐘3共用一路時鐘,這是由SPI功能本身決定的。下面將分別詳細闡述第一測試時鐘、第二測試時鐘、第三測試時鐘及第四測試時鐘如何對本系統(tǒng)中的各個功能模塊進行測試,以及系統(tǒng)時鐘源、SPI外部時鐘輸入、USB外部時鐘輸入及7816外部時鐘輸入如何在芯片正常工作模式下,即,測試時能信號無效,全部測試時鐘均被屏蔽的工作模式下為系統(tǒng)中的各個功能模塊提供正常工作時鐘。
[0109]優(yōu)選地,
[0110]第一測試時鐘,用于為系統(tǒng)控制模塊和安全模塊提供測試時鐘。目的是為了檢測在最高工作頻率下,此部分電路是否存在物理缺陷。
[0111]其中,第一測試時鐘依次通過第9時鐘選擇器、系統(tǒng)分頻器和第10時鐘選擇器與系統(tǒng)控制模塊相連;或者,第一測試時鐘直接通過第10時鐘選擇器與系統(tǒng)控制模塊相連;在第9時鐘選擇器和/或第10時鐘選擇器的測試使能有效且捕獲使能無效時,為系統(tǒng)控制模塊內的所有寄存器輸入測試數據,在第9時鐘選擇器和/或第10時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出系統(tǒng)控制模塊測試結果。
[0112]第一測試時鐘依次通過第11時鐘選擇器、安全模塊分頻器和第12時鐘選擇器與安全模塊相連;或者,第一測試時鐘直接通過第12時鐘選擇器與安全模塊相連;在第11時鐘選擇器和/或第12時鐘選擇器的測試使能有效且捕獲使能無效時,為安全模塊內的所有寄存器輸入測試數據,在第11時鐘選擇器和/或第12時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出安全模塊測試結果。
[0113]優(yōu)選地,
[0114]第二測試時鐘,用于為I2C模塊提供測試時鐘。
[0115]由于I2C模塊在不同的應用環(huán)境下,使用情況不同,所以此處單獨加入第二測試時鐘,當采用非I2C應用時,此部分電路不需要測試。
[0116]其中,第二測試時鐘通過以下任意一種方式為I2C模塊進行測試:
[0117]第二測試時鐘依次通過第13時鐘選擇器、I2C模塊分頻器和第14時鐘選擇器后,再依次經過第4時鐘選擇器和第15時鐘選擇器與I2C模塊相連;在第13時鐘選擇器和第15時鐘選擇器的測試使能有效且捕獲使能無效時,為I2C模塊內的所有寄存器輸入測試時鐘數據,在第13時鐘選擇器和第15時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出I2C模塊測試結果。
[0118]第二測試時鐘直接經過第14時鐘選擇器后,再依次經過第4時鐘選擇器和第15時鐘選擇器與I2C模塊相連;在第14時鐘選擇器和第15時鐘選擇器的測試使能有效且捕獲使能無效時,為I2C模塊內的所有寄存器輸入測試時鐘數據,在第14時鐘選擇器和第15時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出I2C模塊測試結果。
[0119]第二測試時鐘直接經過第15時鐘選擇器與I2C模塊相連,在第15時鐘選擇器的測試使能有效且捕獲使能無效時,為I2C模塊內的所有寄存器輸入測試時鐘數據,在第15時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出I2C模塊測試結果。
[0120]優(yōu)選地,
[0121]第三測試時鐘,用于為SPI模塊提供測試時鐘。
[0122]與I2C模塊類似,SPI模塊在不同的應用環(huán)境下,使用情況不同,但是SPI模塊需要外加一路SPI外部時鐘輸入供SPI模塊使用,所以此處將該SPI外部時鐘復用成第三測試時鐘。
[0123]其中,第三測試時鐘通過以下任意一種方式為SPI模塊進行測試:
[0124]第三測試時鐘依次通過第16時鐘選擇器、SPI模塊分頻器和第17時鐘選擇器后,再依次經過第6時鐘選擇器和第18時鐘選擇器與SPI模塊相連;在第16時鐘選擇器、第17時鐘選擇器和第18時鐘選擇器的測試使能有效且捕獲使能無效時,為SPI模塊內的所有寄存器輸入測試時鐘數據,在第16時鐘選擇器、第17時鐘選擇器和第18時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出SPI模塊測試結果。
[0125]第三測試時鐘直接經過第17時鐘選擇器后,再依次經過第6時鐘選擇器和第18時鐘選擇器與SPI模塊相連;在第17時鐘選擇器和第18時鐘選擇器的測試使能有效且捕獲使能無效時,為SPI模塊內的所有寄存器輸入測試時鐘數據,在第17時鐘選擇器和第18時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出測試時鐘數據。
[0126]第三測試時鐘直接經過第18時鐘選擇器與SPI模塊相連;在第18時鐘選擇器的測試使能有效且捕獲使能無效時,為SPI模塊內的所有寄存器輸入測試時鐘數據,在第18時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出測試時鐘數據。
[0127]優(yōu)選地,
[0128]第四測試時鐘,用于為USB模塊、UART模塊和7816模塊提供測試時鐘。
[0129]USB模塊、UART模塊及7816模塊同時使用的頻率最高,而且此三部分的時鐘頻率要求一致,故此三部分共用第四測試時鐘。其中USB模塊外部時鐘源輸入由于其特有的物理特性,不能與測試時鐘復用,所以與SPI模塊不同,這里單獨添加了測試時鐘4。且USB模塊第一時鐘、USB模塊第二時鐘與7816模塊第二時鐘不受捕獲使能信號的控制,因為在測試使能信號有效時,第四測試時鐘提供的時鐘頻率已是USB模塊第一時鐘、USB模塊第二時鐘與7816模塊第二時鐘所控制的電路的最高時鐘頻率,故不需要捕獲使能信號控制以提供高頻時鐘。
[0130]其中,第四測試時鐘通過第19時鐘選擇器直接與USB模塊相連,在第19時鐘選擇器的測試使能有效時,為USB模塊提供USB模塊第一路高頻測試時鐘數據,并控制高頻時鐘控制結尾寄存器,輸出USB模塊第一路測試結果;或者,第四測試時鐘通過第20時鐘選擇器直接與USB模塊相連,在第20時鐘選擇器的測試使能有效時,為USB模塊提供USB模塊第二路高頻測試時鐘數據,并控制高頻時鐘控制結尾寄存器,輸出USB模塊第二路測試結果。
[0131]第四測試時鐘依次通過第21時鐘選擇器、UART模塊分頻器和第22時鐘選擇器與UART模塊相連;在第21時鐘選擇器和第22時鐘選擇器的測試使能有效且捕獲使能無效時,為UART模塊內的所有寄存器輸入測試時鐘數據,在第21時鐘選擇器和第22時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出UART模塊測試結果;或者,第四測試時鐘直接經過第22時鐘選擇器與UART模塊相連;在第22時鐘選擇器的測試使能有效且捕獲使能無效時,為UART模塊內的所有寄存器輸入測試時鐘數據,在第22時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出UART模塊測試結果。
[0132]第四測試時鐘依次通過第23時鐘選擇器、7816模塊分頻器和第24時鐘選擇器與7816模塊相連;在第23時鐘選擇器和第24時鐘選擇器的測試使能有效且捕獲使能無效時,為7816模塊內的所有寄存器輸入7816模塊第一路高頻時鐘測試數據,在第23時鐘選擇器和第24時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出7816模塊第一路測試結果;或者,第四測試時鐘直接經過第24時鐘選擇器與7816模塊相連;在第24時鐘選擇器的測試使能有效且捕獲使能無效時,為7816模塊內的所有寄存器輸入7816模塊第一路高頻時鐘測試數據,在第24時鐘選擇器的測試使能與捕獲使能均有效時,控制高頻時鐘控制結尾寄存器,輸出7816模塊第一路測試結果。
[0133]第四測試時鐘通過第25時鐘選擇器直接與7816模塊相連,