所有現(xiàn)代SoC都使用掃描結(jié)構(gòu)來檢測設(shè)計中是否存在制造缺陷。掃描鏈的目的就是用于測試并按照串行順序連接芯片的時序元件。然而,隨著現(xiàn)代SOC幾何尺寸不斷縮小及復(fù)雜性不斷增加,如今已能將數(shù)百萬個晶體管集成到單一芯片之中。因此,時序元件總數(shù)與可用的掃描IO總數(shù)之比在不斷增加。而測試儀的成本(測試儀使用時間)高昂,傳統(tǒng)的掃描結(jié)構(gòu)已不足以支持這些復(fù)雜的SoC。壓縮邏輯被看作是針對上述問題的解決方案,但它在邏輯合成階段卻帶來了掃描拼接方面的新挑戰(zhàn)。我們將詳細討論這些挑戰(zhàn)和針對這些掃描拼接問題的解決方案,但在此之前,我們先通過一個示例來了解對壓縮邏輯的需求。
要討論控制掃描結(jié)構(gòu)的各種參數(shù),需要考慮具有以下配置的設(shè)計:可用測試儀內(nèi)存=每測試信道1M向量(測試儀提供的固定內(nèi)存);可用掃描輸入/輸出端口=5+5;每個鏈的觸發(fā)器數(shù)=200(總觸發(fā)器=1000);完整測試設(shè)計所需模式數(shù)=2400。
因此,所需測試儀內(nèi)存=200×2400≈每測試信道0.48M。
在上述情況中,所需的測試儀內(nèi)存小于可用內(nèi)存,因此,此設(shè)計可測試。但隨著現(xiàn)代SOC尺寸的增加(即設(shè)計中時序元件數(shù)增加),現(xiàn)有的測試儀內(nèi)存可能不足。應(yīng)考慮另一種含20k個觸發(fā)器且有更多掃描IO的設(shè)計:可用測試儀內(nèi)存=每測試信道1M向量;可用掃描輸入/輸出端口=10+10(封裝上的有限數(shù)量測試引腳);每個鏈的觸發(fā)器數(shù)=2000(總觸發(fā)器=20000);完整測試設(shè)計所需模式數(shù)=2400(這是最保守的數(shù)字,因為模式數(shù)會隨著設(shè)計尺寸的增加而增加)。
因此,所需測試儀內(nèi)存=2000×2400≈每測試信道4.8M。
在上例中,由于該模式不適合現(xiàn)有的測試儀內(nèi)存,因而上述簡單的掃描結(jié)構(gòu)已不足以對設(shè)計進行完全測試。這個問題可以通過掃描壓縮來解決。
壓縮邏輯概念
壓縮邏輯旨在解決與測試芯片制造缺陷有關(guān)的問題。在這種結(jié)構(gòu)中,芯片級鏈被分為多個內(nèi)部鏈,因此,通過壓縮激勵(掃描輸入)和解壓結(jié)果(掃描輸出),在芯片級便能解決有多個掃描輸入和輸出端口的問題。此后,我們將把這種壓縮和解壓邏輯簡稱為CDL
壓縮邏輯解決了較大測試儀內(nèi)存的問題,如下所示(壓縮因子=10):
可用測試儀內(nèi)存=每測試信道1M向量(測試儀提供的固定內(nèi)存);可用掃描輸入端口=10(封裝上的有限數(shù)量測試引腳);可用掃描輸出端口=10(封裝上的有限數(shù)量測試引腳);掃描鏈總數(shù)=100;每個鏈的觸發(fā)器數(shù)=200(總觸發(fā)器=20000);完整測試設(shè)計所需模式數(shù)=2400。因此,所需測試儀內(nèi)存=200*2400≈每測試信道0.48M。
由于所需測試儀內(nèi)存較小,因此設(shè)計現(xiàn)在可進行測試。
問題是什么?
掃描壓縮邏輯是所有現(xiàn)代復(fù)雜SOC必須提供的功能。然而,引入這種掃描壓縮邏輯也帶來了邏輯合成階段掃描拼接方面的新挑戰(zhàn)。如圖3所示,掃描鏈從CDL(掃描輸入引腳)的輸出拼接到CDL(掃描輸出引腳)的輸入。壓縮邏輯的掃描輸入引腳連接到觸發(fā)器的掃描輸入。
根據(jù)成功進行DFT檢查的要求,每個窗口只應(yīng)進行一次捕捉。違反此條件將導(dǎo)致測試覆蓋率下降,因為所有觸發(fā)器都不是獨立可控的。對于本文涉及的所有討論,我們已經(jīng)考慮了圖4所示的窗口。
拼接了掃描鏈后,由于CDL觸發(fā)器和設(shè)計的其他部分可能由不同時鐘域的時鐘進行計時(因為設(shè)計中存在不同功能的時鐘域),這些時鐘可能包含不常見的寬時鐘路徑,因此可能會發(fā)生保持(HOLD)時間沖突。為考慮所有可能的沖突,圖5列出了以下情況。
因此,發(fā)生以下兩種情況時將產(chǎn)生沖突。
到達發(fā)起和捕捉觸發(fā)器的時鐘出現(xiàn)傾斜,在以下兩種場景下,正邊沿-正邊沿和負邊沿-負邊沿觸發(fā)器對將發(fā)生這種情況(圖6中已展示):1.在一個掃描鏈中拼接的觸發(fā)器由同一時鐘記錄時間。由于到達發(fā)起和捕捉觸發(fā)器的時鐘之間存在偏差,時鐘到達捕捉觸發(fā)器的時間可能遠比到達發(fā)起觸發(fā)器的時間晚;2.在一個掃描鏈中屬于不同時鐘域的兩個觸發(fā)器由不同時鐘進行計時,由于OCV的存在,時鐘之間的偏差可能足以使發(fā)起和捕捉操作在同一個窗口發(fā)生。當其中一個觸發(fā)器在CDL內(nèi)部而另一個觸發(fā)器在其外部時,發(fā)生這種情況的幾率最大。
發(fā)起和捕捉操作在一個窗口內(nèi)執(zhí)行。當發(fā)起觸發(fā)器是正邊沿觸發(fā)器而捕捉觸發(fā)器是負邊沿觸發(fā)器時,會發(fā)生這種情況。在這種情況下,即使時鐘邊沿之間不存在偏差,在一個時鐘周期內(nèi)也將發(fā)生兩次捕捉(圖6)。由于掃描拼接在邏輯合成后執(zhí)行,因此,在進行CDL編碼時,設(shè)計人員無須考慮掃描鏈中第一個或最后一個觸發(fā)器(正或負邊沿觸發(fā)器)的特性。
目前有哪些技術(shù)可用?
設(shè)計人員可以采用各種不同技術(shù)來避免這一問題。下面介紹其中的一些技術(shù)。
定制的CDL:在這種方法中,掃描鏈與一個偽CDL拼接,根據(jù)掃描鏈的第一個觸發(fā)器對CDL進行修改,以確保沒有沖突。然后CDL單獨進行合成,并與之前創(chuàng)建的網(wǎng)絡(luò)表合并。
這種方法的優(yōu)勢在余不會在CDL邊界增加鎖定觸發(fā)器,因為每次CDL都將根據(jù)掃描拼接進行配置。缺點是隨著實施周期的進行,將添加新的觸發(fā)器,且每次都需要對CDL進行修改。
反饋法:在這種方法中,先計算設(shè)計中正邊沿和負邊沿觸發(fā)器的數(shù)量,然后根據(jù)掃描鏈的數(shù)量產(chǎn)生CDL。下面的示例說明了這種方法與自定義CDL方法的不同之處。假設(shè)一個設(shè)計中有4000個觸發(fā)器,其中有3700個正邊沿觸發(fā)器和300個負邊沿觸發(fā)器?,F(xiàn)在拼接掃描鏈(約100個觸發(fā)器/鏈)并得到分布(如表1所示)。
現(xiàn)在將生成用于觸發(fā)器合并的CDL,這樣在CDL接口就不會存在正邊沿-負邊沿觸發(fā)器對,同時將強制進行合成,以便根據(jù)RTL調(diào)整掃描鏈中的觸發(fā)器。這可通過一些腳本來實現(xiàn)。
與自定義CDL方法相比,這種方法的優(yōu)勢在于整個合成在一次運行中完成。缺點是:在實施反饋法之后,CDL的RTL比較穩(wěn)定,但是如果負邊沿觸發(fā)器的數(shù)量突然發(fā)生變化,則需要再次重復(fù)整個周期。
使用設(shè)計中現(xiàn)有的觸發(fā)器:在這種方法中,CDL的RTL不會發(fā)生變化,且每次合成都通過同一個CDL完成。在掃描拼接后,掃描鏈將重新排序,以消除發(fā)生沖突的機會。
這種方法的優(yōu)點是,即使新版本RTL的觸發(fā)器數(shù)量突然發(fā)生變化,DFT團隊也無須創(chuàng)建新的CDL,因為CDL代碼是固定的。與自定義CDL和反饋法相比,這種方法效率更高,但是在對掃描鏈進行重新排序以消除沖突時,卻可能發(fā)生覆蓋丟失。“覆蓋丟失”可通過下面的示例說明。
只要正邊沿-負邊沿觸發(fā)器以這種順序進行配對,便會發(fā)生發(fā)起和捕捉?jīng)_突,因為發(fā)起和捕捉將會在邊沿2和邊沿3發(fā)生,如圖7所示。為了消除這種沖突,我們可以重新進行排序,或者在這兩個觸發(fā)器之間添加一個觸發(fā)器。盡管這樣能夠消除早期沖突,但是我們將無法檢查在插入的觸發(fā)器上收到的數(shù)據(jù),這將導(dǎo)致覆蓋丟失。
添加偽觸發(fā)器:這種方法克服了上述各種方法的所有缺點。該方法中,在預(yù)計發(fā)生沖突的所有地方都添加了一個偽鎖定觸發(fā)器。在這種情況下,不會存在增加覆蓋丟失的影響,也沒有移動設(shè)計觸發(fā)器方法中討論的問題。
這種方法非常高效,因為不需要增加DFT和合成團隊的工作。此外,它還解決了覆蓋丟失的問題。但此方法的缺點是添加了額外的單元。在對電力極其敏感而電力又十分關(guān)鍵的情況下,這會形成一種阻礙。這些少數(shù)單元的漏電量會顯著增加設(shè)計的總漏電量。
本文小結(jié)
掃描壓縮邏輯是復(fù)雜SOC必須提供的功能,而添加壓縮邏輯卻增加了合成過程中掃描拼接方面的挑戰(zhàn)。有許多方法可應(yīng)對這些挑戰(zhàn),然而,添加偽觸發(fā)器方法具有其他方法無法比擬的優(yōu)勢。雖然因為添加了鎖定觸發(fā)器而需要進行一些權(quán)衡,但是,我們已經(jīng)看到額外鎖定觸發(fā)器的數(shù)量非常有限(遠小于總時序元件的0.1%),因為只會在預(yù)計發(fā)生捕捉?jīng)_突的那些鏈中添加鎖定觸發(fā)器。上述方法將有助于最大程度減少DFT和合成設(shè)計團隊之間的重復(fù)工作,從而加快設(shè)計完成速度。