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