邏輯內(nèi)置自測試(LBIST)允許硬件測試自己的操作。無需任何外部硬件或測試設(shè)備。 LBIST是符合安全標準的SoC的“必備”功能。但是在復(fù)雜的SoC中使用LBIST時必須小心。
整個SoC被劃分為各種LBIST分區(qū)和LBIST控制器用于在每個分區(qū)上運行LBIST。有一個中央控制器控制所有這些LBIST控制器,以便可以從整個SoC的一個點控制LBIST(否則每個LBIST控制器需要單獨編程)。上面提到的中央LBIST控制器具有針對LBIST可用的各種選項的位映射以及用于對LBIST進行排序的寄存器。
上圖顯示了SoC中分區(qū)的基本概念。物理分區(qū)和LBIST分區(qū)的數(shù)量/大小可能因SoC而異。此外,單個物理分區(qū)內(nèi)可以存在多個LBIST分區(qū)。每個LBIST分區(qū)都有一個專用的LBIST控制器,它將被放置在物理分區(qū)內(nèi)(但在LBIST分區(qū)之外)。中央控制器位于頂部分區(qū)。
驗證LBIST的主要挑戰(zhàn)是驗證LBIST分區(qū)的不同排列和組合。假設(shè)一個SoC說“n”個LBIST分區(qū),那么你可以在所有分區(qū)上并行運行LBIST,所有順序運行,或者它們可以分組。例如,您可能希望并行運行前5個,然后依次運行下3個,依此類推。順序運行所有LBIST將花費大量時間。另一方面,并行運行所有LBIST將導(dǎo)致SoC中的大量電流消耗。因此,要運行的理想序列是在優(yōu)化電流消耗和最小化LBIST運行時之間的權(quán)衡。對于具有“n”個LBIST分區(qū)的SoC,將會有n! LBIST組合可能 - 在有限的時間范圍內(nèi)驗證所有這些組合是不可能的。因此,我們根據(jù)SoC的經(jīng)驗和架構(gòu)巧妙地選擇一些選定的組合。
這會導(dǎo)致驗證時遺漏一些問題。本文討論了這些問題,它們在硅上的調(diào)試,以及我們?nèi)绾卧谠O(shè)計周期中避免它們。
在LBIST期間,LBIST下的分區(qū)的所有輸出將隨機切換,可能影響整個SoC功能的重要信號需要“安全聲明”,這意味著它們需要在LBIST期間保持安全值這樣邏輯的其余部分就不會受到它們的影響。例如,如果在LBIST執(zhí)行期間(進入SoC的復(fù)位控制器)在LBIST分區(qū)中的復(fù)位輸出上發(fā)生切換,則將導(dǎo)致整個邏輯的復(fù)位,這不是設(shè)計意圖。因此,為了避免這種情況,需要在LBIST期間將此復(fù)位信號安全地設(shè)置為安全值。 (在這種情況下,它將是重置的非活動值)。
驗證LBIST安全陳述的步驟
由于LBIST掃描鏈以網(wǎng)表級別插入,因此運行門級仿真以驗證SoC中LBIST的正確功能。通過此報告的主要功能問題是缺少對不同LBIST分區(qū)的關(guān)鍵輸出信號的“安全說明”。
由于在網(wǎng)表中引入了實際的LBIST邏輯,因此在RTL階段不會發(fā)生輸出信號的切換在LBIST執(zhí)行期間。因此,為了模仿實際情況,我們在LBIST執(zhí)行期間隨機切換LBIST分區(qū)的輸出,以便在RTL級別本身捕獲丟失的安全說明問題。然而,實際切換僅在門級仿真中發(fā)生,但對于“n”個LBIST分區(qū),不可能在門級仿真中運行每個組合(因為GLS運行時間很大)。大多數(shù)情況下,我們運行所選擇的組合來解決前面提到的安全陳述問題。但是,由于在模擬中未嘗試所有分區(qū)組合,因此仍可能存在一些可能影響SoC功能的看不見的安全說明問題。
缺少安全陳述的后硅調(diào)試策略 - 樣本調(diào)試
我們將解釋如何調(diào)試和根源導(dǎo)致LBIST安全陳述問題硅借助于一個例子:當LBIST在特定配置(序列)中運行時,它失敗,狀態(tài)寄存器中的PLL丟失鎖定錯誤。
調(diào)試步驟
首先,我們嘗試使用不同時鐘源的相同配置。以下是調(diào)查結(jié)果:
PLL鎖定內(nèi)部RC振蕩器時鐘 - 通過。
PLL鎖定在外部振蕩器上 - 出現(xiàn)了問題。
接下來,為了縮小調(diào)試范圍,我們嘗試了各種LBIST分區(qū)組合,以找出硅上的失敗組合。結(jié)果發(fā)現(xiàn),在20個LBIST分區(qū)中,當?shù)?4和第15個LBIST分區(qū)以順序方式運行時,自檢失敗,狀態(tài)寄存器中報告了PLL丟失鎖定錯誤。
第14和第15個LBIST分區(qū)單獨或并行運行,未發(fā)現(xiàn)故障。這給了我們一個強烈的跡象,表明在第14個分區(qū)LBIST中有一些切換正在影響第15個分區(qū)的LBIST執(zhí)行。
下一步是找出看到失敗的最小模式數(shù)。 (在LBIST中,我們對特定數(shù)據(jù)進行“移入”并期望一些已知的“移出”數(shù)據(jù)。一個這樣的步驟被認為是一個“模式”并且將給我們一定的信號覆蓋。對于完整的覆蓋,我們運行多個這樣的模式,總數(shù)被稱為“模式計數(shù)”)。這很重要,這樣我們就可以輕松地模擬驗證環(huán)境中的故障。這是通過編程開始模式計數(shù)和結(jié)束模式計數(shù)以及應(yīng)用二進制搜索來找出發(fā)現(xiàn)故障的最小模式計數(shù)窗口來完成的。
最后,在驗證環(huán)境中模擬了這個最小的模式計數(shù)窗口(網(wǎng)表)。據(jù)觀察,有些情況受到影響,導(dǎo)致振蕩器在兩者之間斷電,導(dǎo)致PLL失鎖,最終導(dǎo)致自檢失敗,PLL失鎖失誤。
失敗的根本原因
外部振蕩器數(shù)字控制邏輯本身是14 th LBIST分區(qū)的一部分(而振蕩器的模擬模塊在外面)這個LBIST分區(qū))。據(jù)觀察,由于從數(shù)字控制模塊到模擬振蕩器模塊的斷電信號沒有安全說明,振蕩器正在斷電。然而,問題仍然存在,為什么只有在兩個分區(qū)按順序運行而不是單獨或并行運行時才能看到這種切換。
為了追蹤問題,振蕩器功率播放邏輯是在設(shè)計中追蹤。它看起來像這樣:
Oscillator_pwrdn = A& B
其中A是14 th 分區(qū)的輸出信號,B是15 th 分區(qū)的輸出信號。默認情況下,A和B均為0。 “A”在第11個 th 分區(qū)的LBIST期間切換,最終穩(wěn)定為1.然而,此時“B”保持為0。這解釋了為什么兩個分區(qū)都單獨傳遞。當LBIST在15 th 分區(qū)上運行時,“B”切換,因此在順序情況下,一旦“B”變?yōu)?,“Oscillator_pwrdn”信號變?yōu)椤?”并且故障發(fā)生。而在并行的情況下,當“A”變?yōu)?時,“B”已經(jīng)確定為0.由于這個原因,故障也從未在平行情況下看到過。
以下是用于解釋行為的波形快照(Xosc_clock - 外部振蕩器時鐘; Xosc_pwrdn - 外部振蕩器掉電信號):
波形在順序LBIST案例(看到失敗)
波形并行LBIST案例(未見失敗)
完成設(shè)計修復(fù)
使用鎖存器安全地聲明“Oscillator_pwrdn”信號,以防止在LBIST執(zhí)行期間切換,以解決此問題設(shè)計。
如何避免LBIST安全陳述問題
應(yīng)注意以下幾點以避免此類情況:
需要通過功率估算技術(shù),LBIST運行時分析等來選擇各種LBIST組合。在物理設(shè)計團隊和DFT團隊的反饋之后需要進行驗證。要提供給客戶的自測配置應(yīng)在設(shè)計階段基于上面的最終確定,以便使用最終配置運行所有門級仿真。這將使我們能夠徹底驗證客戶使用的配置;否則,如前所述,在有限的時間范圍內(nèi)嘗試模擬中的所有自測組合是不可能的。
-
自測試
+關(guān)注
關(guān)注
0文章
2瀏覽量
6091 -
PCB打樣
+關(guān)注
關(guān)注
17文章
2968瀏覽量
21653 -
華強PCB
+關(guān)注
關(guān)注
8文章
1831瀏覽量
27724 -
華強pcb線路板打樣
+關(guān)注
關(guān)注
5文章
14629瀏覽量
42982
發(fā)布評論請先 登錄
相關(guān)推薦
評論