《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 應(yīng)對(duì)掃描壓縮邏輯的合成挑戰(zhàn)
應(yīng)對(duì)掃描壓縮邏輯的合成挑戰(zhàn)
摘要: 所有現(xiàn)代SoC都使用掃描結(jié)構(gòu)來檢測(cè)設(shè)計(jì)中是否存在制造缺陷,。掃描鏈的目的就是用于測(cè)試并按照串行順序連接芯片的時(shí)序元件,。然而,,隨著現(xiàn)代SOC幾何尺寸不斷縮小及復(fù)雜性不斷增加,,如今已能將數(shù)百萬個(gè)晶體管集成到單一芯片之中。因此,,時(shí)序元件總數(shù)與可用的掃描IO總數(shù)之比在不斷增加,。而測(cè)試儀的成本(測(cè)試儀使用時(shí)間)高昂,傳統(tǒng)的掃描結(jié)構(gòu)已不足以支持這些復(fù)雜的SoC,。壓縮邏輯被看作是針對(duì)上述問題的解決方案,,但它在邏輯合成階段卻帶來了掃描拼接方面的新挑戰(zhàn)。我們將詳細(xì)討論這些挑戰(zhàn)和針對(duì)這些掃描拼接問題的解決方案,,但在此之前,,我們先通過一個(gè)示例來了解對(duì)壓縮邏輯的需求。
Abstract:
Key words :

所有現(xiàn)代SoC都使用掃描結(jié)構(gòu)來檢測(cè)設(shè)計(jì)中是否存在制造缺陷,。掃描鏈的目的就是用于測(cè)試并按照串行順序連接芯片的時(shí)序元件,。然而,隨著現(xiàn)代SOC幾何尺寸不斷縮小及復(fù)雜性不斷增加,,如今已能將數(shù)百萬個(gè)晶體管集成到單一芯片之中,。因此,時(shí)序元件總數(shù)與可用的掃描IO總數(shù)之比在不斷增加,。而測(cè)試儀的成本(測(cè)試儀使用時(shí)間)高昂,,傳統(tǒng)的掃描結(jié)構(gòu)已不足以支持這些復(fù)雜的SoC。壓縮邏輯被看作是針對(duì)上述問題的解決方案,,但它在邏輯合成階段卻帶來了掃描拼接方面的新挑戰(zhàn),。我們將詳細(xì)討論這些挑戰(zhàn)和針對(duì)這些掃描拼接問題的解決方案,但在此之前,,我們先通過一個(gè)示例來了解對(duì)壓縮邏輯的需求,。

 


要討論控制掃描結(jié)構(gòu)的各種參數(shù),需要考慮具有以下配置的設(shè)計(jì):可用測(cè)試儀內(nèi)存=每測(cè)試信道1M向量(測(cè)試儀提供的固定內(nèi)存),;可用掃描輸入/輸出端口=5+5,;每個(gè)鏈的觸發(fā)器數(shù)=200(總觸發(fā)器=1000);完整測(cè)試設(shè)計(jì)所需模式數(shù)=2400,。


因此,,所需測(cè)試儀內(nèi)存=200×2400≈每測(cè)試信道0.48M。


在上述情況中,,所需的測(cè)試儀內(nèi)存小于可用內(nèi)存,,因此,此設(shè)計(jì)可測(cè)試,。但隨著現(xiàn)代SOC尺寸的增加(即設(shè)計(jì)中時(shí)序元件數(shù)增加),,現(xiàn)有的測(cè)試儀內(nèi)存可能不足。應(yīng)考慮另一種含20k個(gè)觸發(fā)器且有更多掃描IO的設(shè)計(jì):可用測(cè)試儀內(nèi)存=每測(cè)試信道1M向量,;可用掃描輸入/輸出端口=10+10(封裝上的有限數(shù)量測(cè)試引腳),;每個(gè)鏈的觸發(fā)器數(shù)=2000(總觸發(fā)器=20000);完整測(cè)試設(shè)計(jì)所需模式數(shù)=2400(這是最保守的數(shù)字,因?yàn)槟J綌?shù)會(huì)隨著設(shè)計(jì)尺寸的增加而增加),。


因此,,所需測(cè)試儀內(nèi)存=2000×2400≈每測(cè)試信道4.8M。


在上例中,,由于該模式不適合現(xiàn)有的測(cè)試儀內(nèi)存,,因而上述簡(jiǎn)單的掃描結(jié)構(gòu)已不足以對(duì)設(shè)計(jì)進(jìn)行完全測(cè)試。這個(gè)問題可以通過掃描壓縮來解決,。


壓縮邏輯概念


壓縮邏輯旨在解決與測(cè)試芯片制造缺陷有關(guān)的問題,。在這種結(jié)構(gòu)中,芯片級(jí)鏈被分為多個(gè)內(nèi)部鏈,,因此,,通過壓縮激勵(lì)(掃描輸入)和解壓結(jié)果(掃描輸出),在芯片級(jí)便能解決有多個(gè)掃描輸入和輸出端口的問題,。此后,,我們將把這種壓縮和解壓邏輯簡(jiǎn)稱為CDL

壓縮邏輯解決了較大測(cè)試儀內(nèi)存的問題,如下所示(壓縮因子=10):

可用測(cè)試儀內(nèi)存=每測(cè)試信道1M向量(測(cè)試儀提供的固定內(nèi)存),;可用掃描輸入端口=10(封裝上的有限數(shù)量測(cè)試引腳),;可用掃描輸出端口=10(封裝上的有限數(shù)量測(cè)試引腳);掃描鏈總數(shù)=100,;每個(gè)鏈的觸發(fā)器數(shù)=200(總觸發(fā)器=20000),;完整測(cè)試設(shè)計(jì)所需模式數(shù)=2400。因此,,所需測(cè)試儀內(nèi)存=200*2400≈每測(cè)試信道0.48M。


由于所需測(cè)試儀內(nèi)存較小,,因此設(shè)計(jì)現(xiàn)在可進(jìn)行測(cè)試,。


問題是什么?


掃描壓縮邏輯是所有現(xiàn)代復(fù)雜SOC必須提供的功能,。然而,,引入這種掃描壓縮邏輯也帶來了邏輯合成階段掃描拼接方面的新挑戰(zhàn)。如圖3所示,,掃描鏈從CDL(掃描輸入引腳)的輸出拼接到CDL(掃描輸出引腳)的輸入,。壓縮邏輯的掃描輸入引腳連接到觸發(fā)器的掃描輸入。

 



根據(jù)成功進(jìn)行DFT檢查的要求,,每個(gè)窗口只應(yīng)進(jìn)行一次捕捉,。違反此條件將導(dǎo)致測(cè)試覆蓋率下降,因?yàn)樗杏|發(fā)器都不是獨(dú)立可控的,。對(duì)于本文涉及的所有討論,,我們已經(jīng)考慮了圖4所示的窗口。

 



拼接了掃描鏈后,由于CDL觸發(fā)器和設(shè)計(jì)的其他部分可能由不同時(shí)鐘域的時(shí)鐘進(jìn)行計(jì)時(shí)(因?yàn)樵O(shè)計(jì)中存在不同功能的時(shí)鐘域),,這些時(shí)鐘可能包含不常見的寬時(shí)鐘路徑,,因此可能會(huì)發(fā)生保持(HOLD)時(shí)間沖突。為考慮所有可能的沖突,,圖5列出了以下情況,。

 


因此,發(fā)生以下兩種情況時(shí)將產(chǎn)生沖突,。

 


到達(dá)發(fā)起和捕捉觸發(fā)器的時(shí)鐘出現(xiàn)傾斜,,在以下兩種場(chǎng)景下,正邊沿-正邊沿和負(fù)邊沿-負(fù)邊沿觸發(fā)器對(duì)將發(fā)生這種情況(圖6中已展示):1.在一個(gè)掃描鏈中拼接的觸發(fā)器由同一時(shí)鐘記錄時(shí)間,。由于到達(dá)發(fā)起和捕捉觸發(fā)器的時(shí)鐘之間存在偏差,,時(shí)鐘到達(dá)捕捉觸發(fā)器的時(shí)間可能遠(yuǎn)比到達(dá)發(fā)起觸發(fā)器的時(shí)間晚;2.在一個(gè)掃描鏈中屬于不同時(shí)鐘域的兩個(gè)觸發(fā)器由不同時(shí)鐘進(jìn)行計(jì)時(shí),,由于OCV的存在,,時(shí)鐘之間的偏差可能足以使發(fā)起和捕捉操作在同一個(gè)窗口發(fā)生。當(dāng)其中一個(gè)觸發(fā)器在CDL內(nèi)部而另一個(gè)觸發(fā)器在其外部時(shí),,發(fā)生這種情況的幾率最大,。

 


發(fā)起和捕捉操作在一個(gè)窗口內(nèi)執(zhí)行。當(dāng)發(fā)起觸發(fā)器是正邊沿觸發(fā)器而捕捉觸發(fā)器是負(fù)邊沿觸發(fā)器時(shí),,會(huì)發(fā)生這種情況,。在這種情況下,即使時(shí)鐘邊沿之間不存在偏差,,在一個(gè)時(shí)鐘周期內(nèi)也將發(fā)生兩次捕捉(圖6),。由于掃描拼接在邏輯合成后執(zhí)行,因此,,在進(jìn)行CDL編碼時(shí),,設(shè)計(jì)人員無須考慮掃描鏈中第一個(gè)或最后一個(gè)觸發(fā)器(正或負(fù)邊沿觸發(fā)器)的特性。

目前有哪些技術(shù)可用,?


設(shè)計(jì)人員可以采用各種不同技術(shù)來避免這一問題,。下面介紹其中的一些技術(shù)。


定制的CDL:在這種方法中,,掃描鏈與一個(gè)偽CDL拼接,,根據(jù)掃描鏈的第一個(gè)觸發(fā)器對(duì)CDL進(jìn)行修改,以確保沒有沖突,。然后CDL單獨(dú)進(jìn)行合成,,并與之前創(chuàng)建的網(wǎng)絡(luò)表合并。


這種方法的優(yōu)勢(shì)在余不會(huì)在CDL邊界增加鎖定觸發(fā)器,,因?yàn)槊看蜟DL都將根據(jù)掃描拼接進(jìn)行配置,。缺點(diǎn)是隨著實(shí)施周期的進(jìn)行,,將添加新的觸發(fā)器,且每次都需要對(duì)CDL進(jìn)行修改,。


反饋法:在這種方法中,,先計(jì)算設(shè)計(jì)中正邊沿和負(fù)邊沿觸發(fā)器的數(shù)量,然后根據(jù)掃描鏈的數(shù)量產(chǎn)生CDL,。下面的示例說明了這種方法與自定義CDL方法的不同之處,。假設(shè)一個(gè)設(shè)計(jì)中有4000個(gè)觸發(fā)器,其中有3700個(gè)正邊沿觸發(fā)器和300個(gè)負(fù)邊沿觸發(fā)器?,F(xiàn)在拼接掃描鏈(約100個(gè)觸發(fā)器/鏈)并得到分布(如表1所示),。

 


現(xiàn)在將生成用于觸發(fā)器合并的CDL,這樣在CDL接口就不會(huì)存在正邊沿-負(fù)邊沿觸發(fā)器對(duì),,同時(shí)將強(qiáng)制進(jìn)行合成,,以便根據(jù)RTL調(diào)整掃描鏈中的觸發(fā)器。這可通過一些腳本來實(shí)現(xiàn),。


與自定義CDL方法相比,,這種方法的優(yōu)勢(shì)在于整個(gè)合成在一次運(yùn)行中完成。缺點(diǎn)是:在實(shí)施反饋法之后,,CDL的RTL比較穩(wěn)定,,但是如果負(fù)邊沿觸發(fā)器的數(shù)量突然發(fā)生變化,則需要再次重復(fù)整個(gè)周期,。


使用設(shè)計(jì)中現(xiàn)有的觸發(fā)器:在這種方法中,,CDL的RTL不會(huì)發(fā)生變化,且每次合成都通過同一個(gè)CDL完成,。在掃描拼接后,,掃描鏈將重新排序,以消除發(fā)生沖突的機(jī)會(huì),。


這種方法的優(yōu)點(diǎn)是,,即使新版本RTL的觸發(fā)器數(shù)量突然發(fā)生變化,DFT團(tuán)隊(duì)也無須創(chuàng)建新的CDL,,因?yàn)镃DL代碼是固定的,。與自定義CDL和反饋法相比,,這種方法效率更高,,但是在對(duì)掃描鏈進(jìn)行重新排序以消除沖突時(shí),卻可能發(fā)生覆蓋丟失,。“覆蓋丟失”可通過下面的示例說明,。


只要正邊沿-負(fù)邊沿觸發(fā)器以這種順序進(jìn)行配對(duì),便會(huì)發(fā)生發(fā)起和捕捉?jīng)_突,,因?yàn)榘l(fā)起和捕捉將會(huì)在邊沿2和邊沿3發(fā)生,,如圖7所示,。為了消除這種沖突,我們可以重新進(jìn)行排序,,或者在這兩個(gè)觸發(fā)器之間添加一個(gè)觸發(fā)器,。盡管這樣能夠消除早期沖突,但是我們將無法檢查在插入的觸發(fā)器上收到的數(shù)據(jù),,這將導(dǎo)致覆蓋丟失,。

 



添加偽觸發(fā)器:這種方法克服了上述各種方法的所有缺點(diǎn)。該方法中,,在預(yù)計(jì)發(fā)生沖突的所有地方都添加了一個(gè)偽鎖定觸發(fā)器,。在這種情況下,不會(huì)存在增加覆蓋丟失的影響,,也沒有移動(dòng)設(shè)計(jì)觸發(fā)器方法中討論的問題,。


這種方法非常高效,因?yàn)椴恍枰黾覦FT和合成團(tuán)隊(duì)的工作,。此外,,它還解決了覆蓋丟失的問題。但此方法的缺點(diǎn)是添加了額外的單元,。在對(duì)電力極其敏感而電力又十分關(guān)鍵的情況下,,這會(huì)形成一種阻礙。這些少數(shù)單元的漏電量會(huì)顯著增加設(shè)計(jì)的總漏電量,。

 


本文小結(jié)


表2匯總了本文所討論的各種技術(shù),。掃描壓縮邏輯是復(fù)雜SOC必須提供的功能,而添加壓縮邏輯卻增加了合成過程中掃描拼接方面的挑戰(zhàn),。有許多方法可應(yīng)對(duì)這些挑戰(zhàn),,然而,添加偽觸發(fā)器方法具有其他方法無法比擬的優(yōu)勢(shì),。雖然因?yàn)樘砑恿随i定觸發(fā)器而需要進(jìn)行一些權(quán)衡,,但是,我們已經(jīng)看到額外鎖定觸發(fā)器的數(shù)量非常有限(遠(yuǎn)小于總時(shí)序元件的0.1%),,因?yàn)橹粫?huì)在預(yù)計(jì)發(fā)生捕捉?jīng)_突的那些鏈中添加鎖定觸發(fā)器,。上述方法將有助于最大程度減少DFT和合成設(shè)計(jì)團(tuán)隊(duì)之間的重復(fù)工作,從而加快設(shè)計(jì)完成速度,。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。