使用序列門控在掃描位移中實現(xiàn)強大的時序閉合
如今,所有SOC都使用掃描結(jié)構(gòu)來檢測設(shè)計中的任何制造缺陷。掃描鏈專為測試而設(shè)計,按串行形式連接芯片的時序元件。由于掃描元件之間缺少組合邏輯,因此這些掃描鏈容易出現(xiàn)保持故障。除了采用小于90納米的技術(shù)外,OCV(片上工藝偏差)對時序裕量有著巨大的影響。因此,除非設(shè)計在多個拐角處實現(xiàn)時序簽核(sign-off),否則極有可能出現(xiàn)保持故障,尤其是在掃描鏈等保持關(guān)鍵路徑上。這些保持故障會導(dǎo)致芯片無法在實際的應(yīng)用中使用(即便芯片能夠在功能場景中完全運行也會如此)。如果芯片中出現(xiàn)這些故障,將會降低成品率,影響產(chǎn)量,由此導(dǎo)致設(shè)計公司蒙受巨大的經(jīng)濟(jì)損失。因此,我們需要設(shè)計一個強大的掃描結(jié)構(gòu)來解決上述問題。
本文引用地址:http://butianyuan.cn/article/187486.htm在本文中,我們將首先快速回顧鎖存器與觸發(fā)器的時序基本概念。在下一節(jié)中,我們將介紹掃描鏈以及與其相關(guān)的時序閉合問題。然后,我們將解釋如何在掃描鏈中使用鎖存器和觸發(fā)器創(chuàng)建強大的掃描結(jié)構(gòu),以避免在小于90納米的技術(shù)中出現(xiàn)時序故障。我們將介紹最優(yōu)秀的解決方案,滿足掃描鏈中所有可能出現(xiàn)的時序元件組合的時序要求。
建立/保持時序概述
觸發(fā)器和鎖存器是時序電路的兩個基本構(gòu)件。觸發(fā)器在所應(yīng)用的時鐘脈沖的活動邊沿(正或負(fù))更改其狀態(tài)。觸發(fā)器在無活動時鐘邊沿時只保持其輸出。另一方面,鎖存器是電平敏感器件,它不斷對其輸入進(jìn)行采樣,并相應(yīng)地在某些電平啟動信號的活動脈沖電平(正或負(fù))上更改其輸出。觸發(fā)器采用主從配置,有兩個鎖存器在彼此相對的活動電平上以級聯(lián)方式工作。一個觸發(fā)器的面積幾乎是鎖存器面積的兩倍。
為了實現(xiàn)同步設(shè)計,我們需要確保觸發(fā)器/鎖存器的輸出不處于亞穩(wěn)狀態(tài)。這可以通過在設(shè)計中滿足建立和保持檢查要求來確保。
圖1
在觸發(fā)器中,1-1是保持檢查,而1-3是用于單周期操作的建立檢查(圖1)。我們需要確保由觸發(fā)器1發(fā)出的數(shù)據(jù)在下一個活動邊沿之前由觸發(fā)器2捕獲。同時,我們也需要確保由觸發(fā)器1發(fā)出的數(shù)據(jù)在相同的活動邊沿上沒有被觸發(fā)器2捕獲。
圖2
當(dāng)?shù)诙€觸發(fā)器被負(fù)邊沿觸發(fā)后,建立檢查將是1-2(見圖2),而保持檢查將發(fā)生在上一個負(fù)邊沿(見圖2)。這意味著由觸發(fā)器1發(fā)出的數(shù)據(jù)不應(yīng)被之前觸發(fā)器2的下降沿捕獲。除非我們擁有超過半個周期的時鐘偏移,否則無法以實時的方式將其實現(xiàn)。
因此,在正-正或負(fù)-負(fù)觸發(fā)器對中,建立檢查默認(rèn)為一個周期,保持檢查為零周期,而在正-負(fù)或負(fù)-正觸發(fā)器對中,建立檢查默認(rèn)為半個周期,而保持檢查為反向的半個周期。現(xiàn)在讓我們了解一下鎖存器中的時序檢查概念。
掃描鏈
掃描鏈用于在SOC中執(zhí)行測試。設(shè)計中的所有寄存器以串行形式連接,外部芯片提供刺激,然后讀出這些鏈的輸出,監(jiān)測是否有固住/狀態(tài)轉(zhuǎn)換故障。當(dāng)今的SOC都非常復(fù)雜,并且在單一芯片中具有多個時鐘域。雖然在邏輯合成之后掃描會拼接出一個設(shè)計,一般還是需要注意將具有相同時鐘結(jié)構(gòu)的觸發(fā)器拼接在同一個掃描鏈中。但是,由于可用于最高級別的掃描輸入/輸出端口是有限的,因此在不同時鐘域之間混合寄存器是無法避免的。使掃描鏈具有不平衡的長度也不是最佳解決方案,因為這樣會增加總體測試時間。因此,這種設(shè)計結(jié)構(gòu)會在之后的設(shè)計階段中導(dǎo)致時序閉合問題。因為掃描位移在低頻進(jìn)行,并且觸發(fā)器對,之間需要的邏輯最小,如果有的話,因此建立閉合將不是問題。但是,因為最小邏輯和觸發(fā)器對之間出現(xiàn)的偏移,這些路徑是關(guān)鍵的保持路徑。正如我們在前面所討論的,因為來自不同域中的觸發(fā)器在掃描鏈中被混合,所以在許多情況下發(fā)出和捕獲觸發(fā)器之間會出現(xiàn)巨大的偏移。在設(shè)計的后期階段,由于噪聲的影響會出現(xiàn)許多保持時間違規(guī),這將導(dǎo)致無論在穩(wěn)定或閉合設(shè)計中都會出現(xiàn)保持緩沖,從而引發(fā)設(shè)計故障。
更差的情況可能是,我們的減額裕量可能并不充足,并且我們僅可以從硅片上發(fā)現(xiàn)保持故障。如果異常的時鐘路徑非常巨大,并且硅片上的實際偏差高于預(yù)計偏差,則有可能會出現(xiàn)這種情況。當(dāng)我們進(jìn)一步使用小于90納米的CMOS技術(shù)時,偏差影響將變得越來越占主導(dǎo)地位,并將導(dǎo)致硅片上出現(xiàn)許多保持偏差。掃描移位路徑中的保持故障會導(dǎo)致嚴(yán)重的后果。需要進(jìn)行多次調(diào)試,并且需要花許多時間來檢測硅片上的故障鏈。當(dāng)我們也具有用于掃描的壓縮邏輯時,這種情況會變得更加糟糕。即使檢測到了故障鏈,我們也需要將其阻塞,這將導(dǎo)致減少測試覆蓋范圍。
總之,掃描鏈中的保持故障風(fēng)險很高,必須實現(xiàn)足夠強大的設(shè)計才能處理這些不確定因素。
可以有多種解決方法,例如,對掃描鏈重新排序,根據(jù)寄存器的位置重新布置掃描鏈。盡管這些技術(shù)非常容易獲得,設(shè)計者也必須對其進(jìn)行仔細(xì)探究,正如我們前面所討論的,掃描鏈在兩個時鐘域之間交叉的情況是不可避免的。
解決這種問題的一種更為有效的方式是提前采取措施,并在構(gòu)建掃描鏈的邏輯合成階段處理這些問題。來自相同時鐘門控邏輯的所有觸發(fā)器都應(yīng)拼接在一起,并且在這些觸發(fā)器束的末端可以插入一個鎖定的鎖存器,以避免從這個域的最后一個觸發(fā)器到下一個時鐘域的第一個觸發(fā)器之間出現(xiàn)任何保持故障。
圖3所示的例子將有助于我們理解這一概念。
圖3
如果時鐘周期為50ns并且偏移為5ns,我們必須在設(shè)計后續(xù)階段的觸發(fā)器3和觸發(fā)器4之間插入具有相當(dāng)于5ns以上減額裕量的保持緩沖器。正如前面所討論的,由于小于90納米設(shè)計中的ocv,我們的標(biāo)準(zhǔn)減額可能因為異常時鐘路徑超出特定限制而變得并不充足。例如,對于具有10個額外時鐘緩沖器的捕獲路徑來說,每個時鐘緩沖器只具有5ps偏差(超出并超過減額值)將導(dǎo)致50ps的偏離。另外,由于OCV的因素。這一偏移可能會超過5ns,該一裕量可能并不充足。
解決上述問題的解決方案是在觸發(fā)器3輸出中插入鎖定的鎖存器,同時使鎖定的鎖存器具有與觸發(fā)器3相同的延遲。
lockup latch:鎖定鎖存器;clock gating:門控
zero cycle check hold, easy to meet: 零周期檢查保持,易于滿足;
shifting of data from flop 3 to 4 is still in one shift cycle:從觸發(fā)器3到觸發(fā)器4的數(shù)據(jù)轉(zhuǎn)移仍然保持在一個周期內(nèi)。
Hold check is half cycle back now, much relaxed now: 保持檢查現(xiàn)在只占后半個周期,比以前輕松很多
圖4
正如以上波形中所示(圖4),當(dāng)我們在 觸發(fā)器3 和觸發(fā)器4之間插入鎖定鎖存器時,我們的時序路徑將被分為兩個階段。
1. 從觸發(fā)器3到鎖定鎖存器
保持檢查從1-1開始,它仍然是零周期檢查,但是因為沒有偏移,因此非常簡單易行。默認(rèn)建立檢查從1-2開始。
2. 從鎖定鎖存器到觸發(fā)器4
保持檢查從2-1開始。這是插入鎖定鎖存器的主要優(yōu)勢和動機。保持是向后移位半周期,現(xiàn)在即使我們的時鐘偏移高達(dá)半個移位時鐘周期,我們?nèi)跃哂凶銐虻脑A?。這可以確保在這種情況下不會出現(xiàn)任何保持偏差。
建立檢查從2-3開始。在2-3期間鎖存器是透明的,這一階段中捕獲的任何數(shù)據(jù)都將被傳輸至觸發(fā)器4,直到邊沿 3(減去觸發(fā)器的建立時間)。我們可以看到,從觸發(fā)器1到鎖定鎖存器之間的建立檢查也可以輕松完成。1-2是默認(rèn)檢查,但是鎖存器在整個半個周期的過程中都是透明的,在理想情況下,建立檢查可以向邊沿3位移。(這一概念被稱為鎖存器借用)。
此處,另外一個需要注意的重要事項是該鎖定鎖存器應(yīng)具有與發(fā)出觸發(fā)器時鐘相同的時鐘,而不是與捕獲觸發(fā)器時鐘相同。正如我們在上面所看到的,觸發(fā)器3到鎖存器的保持檢查仍然是1-1(零周期檢查)。如果鎖定鎖存器具有與捕獲 觸發(fā)器時鐘相同的時鐘,我們將不會得到任何優(yōu)點。因此,理想的解決方案是在時鐘樹結(jié)構(gòu)中發(fā)出觸發(fā)器和鎖定鎖存器都由相同的時鐘緩沖器驅(qū)動。
以上示例說明,鎖存器可以在掃描移位路徑中有效地混合保持。也許有人會提出疑問,我們是否也可以通過插入保持緩沖器或延遲cell來修復(fù)這些偏離。但是,快速查看保持緩沖器的面積,延遲cell和鎖存器表明,保持緩沖器適合用于混合較小的保持偏離,但是如果偏離較大,則鎖存器在面積和延遲方面都比緩沖器更有優(yōu)勢。使用延遲cell時,不同操作條件之間始終存在巨大的偏離風(fēng)險,因此應(yīng)當(dāng)有選擇地、巧妙地使用這些cell。在另一方面,鎖存器在任何操作條件下始終存在半個周期的延遲。
在最后一節(jié)中,我們將考慮各種情況,找出在掃描鏈的發(fā)出和捕獲觸發(fā)器之間出現(xiàn)巨大的時鐘偏移時修復(fù)保持故障的最適合的解決方案。
不同情形
情形1:正-正邊沿觸發(fā)觸發(fā)器之間
我們在以上示例中包括了這一情況,可以使用負(fù)電平鎖存器。
情形2:負(fù)-負(fù)邊沿觸發(fā)觸發(fā)器之間
通過上述相同的模擬,可以使用正電平鎖存器。
情形3:負(fù)-正邊沿觸發(fā)觸發(fā)器之間
我們已經(jīng)了解到保持在此處非常輕松。此處不需要鎖定元件。
情形4:正-負(fù)邊沿觸發(fā)觸發(fā)器之間
這是一個非常有趣的情形。從時序的角度來看,這種情況不會造成問題,但是在掃描移位中這是一個非法連接。由于在ATPG中,時鐘被視為返回至零波形(在移位完成后,時鐘將變?yōu)榛顒拥碗娖剑?,如果我們允許這種交叉,我們將發(fā)現(xiàn)在掃描移位后,所有此類的正-負(fù)對在時鐘脈沖后將具有相同的值。因為所有觸發(fā)器都不是可以獨立控制的,因此這將導(dǎo)致測試覆蓋范圍減少。在拼接時應(yīng)該避免出現(xiàn)這種情況,但是有時候無法避免,因為存在壓縮邏輯或硬宏。
我們可以在正和負(fù)觸發(fā)器之間插入一個正電平鎖定鎖存器,這樣將解決ATPG問題,但是同時也會帶來時序問題,因為保持檢查在從觸發(fā)器到鎖定鎖存器以及從鎖存器到負(fù)邊沿觸發(fā)器之間將再次變?yōu)榱阒芷跈z查。
另一個解決方案將插入一個啞觸發(fā)器,可以在這些觸發(fā)器之間的正邊沿或負(fù)邊沿上工作。應(yīng)該注意的是,在移位后啞觸發(fā)器將仍然具有與第一個觸發(fā)器或第二個觸發(fā)器相同的值,這取決于它是在正邊沿觸發(fā)還是在負(fù)邊沿觸發(fā),但這不會導(dǎo)致任何問題出現(xiàn),因此它不是一種功能性觸發(fā)器,我們不會以任何方式在任何位置使用它來捕獲數(shù)據(jù)。如果我們決定插入正邊沿觸發(fā)器,發(fā)出 觸發(fā)器的時鐘延遲和該dummy 觸發(fā)器將相同,因為它將是零周期保持檢查,并且啞觸發(fā)器到下一個觸發(fā)器將是半周期保持檢查,同樣,如果我們插入啞負(fù)邊沿觸發(fā)器,捕獲觸發(fā)器和啞負(fù)邊沿觸發(fā)器的延遲是相同的。
這些就是設(shè)計中可能存在的觸發(fā)器之間的所有四種情況,但有時候這些情況并不十分明顯。例如,在掃描具有硬宏且是預(yù)拼接的設(shè)計時需要特別注意。許多情況下我們并不具備針對硬宏的netlist/spef/timing約束,因此我們建議在這些硬宏之前插入鎖定鎖存器,以防這些硬宏的所有者將其丟失。另外一個此類示例是burn-in模式,設(shè)計中的掃描鏈將被連接在一起,以便同時切換所有觸發(fā)器。因此同樣存在這種可能性,也就是說鏈中的最后一個元件和下一個鏈的第一個元件具有時序關(guān)鍵邏輯或無效的正-負(fù)交叉。對于此種情形,理想的情況下應(yīng)該注意RTL本身,因為設(shè)計者在將這些掃描鏈連接在一起能夠更好地了解掃描元件的順序。如果未將其考慮在內(nèi),最佳的做法是在每個鏈的結(jié)尾處插入相應(yīng)的鎖定鎖存器。
通過采用上述技巧和指導(dǎo),設(shè)計者可以在其芯片上實現(xiàn)強大的掃描結(jié)構(gòu)。在出現(xiàn)建立故障的情況下,設(shè)計可以在更低的頻率上運行,但是在出現(xiàn)任何重大保持故障時,邏輯的既定功能是無法預(yù)測的。掃描位移中的保持故障非常嚴(yán)重。它會在測試期間極大地縮小測試覆蓋范圍。因此,我們需要一個強大的掃描結(jié)構(gòu),解決我們前面所討論的潛在的掃描移位故障問題。相應(yīng)的鎖定類型元件可以完美地解決此類問題,因為它可以在任何操作條件下確保半個周期的延遲。
評論