為了追求以更低功耗和成本實(shí)現(xiàn)更高性能的目標(biāo),超大規(guī)模集成電路產(chǎn)業(yè)向系統(tǒng)級(jí)芯片(SoC)集成方向發(fā)展,從而導(dǎo)致了多時(shí)鐘域設(shè)計(jì)的出現(xiàn)。最常見的是,當(dāng)頻率關(guān)系是2的整數(shù)倍時(shí),共享相同時(shí)鐘源的功能塊具有同步交互性。從時(shí)序的角度看,這些交互可能經(jīng)常發(fā)生在設(shè)計(jì)的關(guān)鍵路徑。在這種情況下,你必須測(cè)試這些交互以查證過渡類型(transition-type)故障,以達(dá)到測(cè)試覆蓋率和DPPM(百萬分之一缺陷)目標(biāo)。
換句話說,在一個(gè)時(shí)鐘域中具有發(fā)射觸發(fā)器,并且在另一個(gè)同步時(shí)鐘域中具有捕獲觸發(fā)器的路徑被稱為同步跨時(shí)鐘域(SCCD)路徑。如圖1所示,F(xiàn)F1到FF2之間的組合云被稱為內(nèi)部時(shí)鐘(intra-clock)域,而FF1到FF3之間的云被稱為跨時(shí)鐘(inter-clock)域。
圖1:內(nèi)部時(shí)鐘域和跨時(shí)鐘域路徑可能會(huì)以延遲的形式引入故障。
用于過渡故障測(cè)試的時(shí)鐘濾波電路(CFC)從時(shí)鐘源濾除所需的時(shí)鐘脈沖。典型的CFC具有局限性,不能用于測(cè)試跨同步時(shí)鐘域的過渡故障。出現(xiàn)過渡錯(cuò)誤時(shí)會(huì)出現(xiàn)什么問題?我們將解釋這些限制,并建議對(duì)CFC進(jìn)行改進(jìn)、以使對(duì)SCCD的測(cè)試(如圖1所示的跨時(shí)鐘域故障)可行。
圖2表示一個(gè)典型的時(shí)鐘濾波電路,它有三個(gè)主要組件。
? 同步單元將掃描使能(SE)信號(hào)與工作時(shí)鐘域同步。
? 由同步SE信號(hào)觸發(fā)的可編程移位寄存器來控制集成時(shí)鐘門控(ICG)以生成所需數(shù)量的時(shí)鐘脈沖。
? ICG單元。
圖2:典型的時(shí)鐘濾波電路可能不足以測(cè)試跨同步時(shí)鐘域的時(shí)鐘故障。
全速故障測(cè)試包括兩個(gè)步驟。第一步是移位模式,第二步是捕捉模式。在移位模式,當(dāng)SE為高電平時(shí),經(jīng)由掃描鏈移位,寄存器被初始化為已知值。在捕捉模式,當(dāng)SE為低時(shí),功能路徑的響應(yīng)被捕捉到寄存器中。
在捕捉模式,CFC用于產(chǎn)生所需的時(shí)鐘脈沖,用于全速測(cè)試的啟動(dòng)和捕捉周期。
當(dāng)SE被選通,經(jīng)過一段延遲才到達(dá)CFC。然后在CFC中,與接收時(shí)鐘域的兩級(jí)同步單元同步。被SE同步的信號(hào)將觸發(fā)n級(jí)可編程寄存器給ICG提供使能信號(hào),以濾除所需的時(shí)鐘脈沖。這意味著來自CFC的時(shí)鐘脈沖距離從SE到達(dá)CFC那一刻已有一定延遲。延遲主要由同步單元延遲造成。
圖3:全速測(cè)試時(shí)鐘的典型CFC輸出波形。
為測(cè)試時(shí)鐘域內(nèi)的故障(內(nèi)部時(shí)鐘域故障),該CFC盡職盡責(zé),如圖3所示。但是,要測(cè)試SCCD過渡故障,需要產(chǎn)生啟動(dòng)和捕獲脈沖,如圖4所示。為獲得這種波形,我們通常使用兩個(gè)獨(dú)立的CFC。每個(gè)時(shí)鐘域都需要自己的CFC,因?yàn)槊總€(gè)時(shí)鐘的脈沖寬度都不相同,因此需要從不同的CFC生成。圖4給出了你可以實(shí)現(xiàn)的不同啟動(dòng)和捕獲條件的示例。
圖4:用于測(cè)試跨時(shí)鐘域故障的典型啟動(dòng)和捕獲脈沖組合,包括快速啟動(dòng)和慢速捕獲以及慢速啟動(dòng)和快速捕獲脈沖。
當(dāng)用于測(cè)試同步復(fù)時(shí)鐘域(圖1)中的故障時(shí),同一個(gè)CFC遇到以下挑戰(zhàn):
***邊緣失齊***:當(dāng)測(cè)試兩個(gè)SCCD之間的故障時(shí),每個(gè)時(shí)鐘域都有自己的CFC。而由于CFC固有的同步延遲會(huì)導(dǎo)致輸出錯(cuò)位。產(chǎn)生的時(shí)鐘邊緣將不會(huì)是周期對(duì)齊的。例如,假定頻率為F和F/2的兩個(gè)同步時(shí)鐘,每個(gè)都具有移位寄存器長度為4的可編程CFC。可編程移位寄存器在不同時(shí)間被觸發(fā),從而導(dǎo)致CFC輸出的不同延遲。假定為兩級(jí)同步器,則時(shí)鐘域F/2需要兩倍于時(shí)鐘域F的時(shí)間。圖5顯示了兩個(gè)CFC的時(shí)鐘輸出波形。需要注意的是,有兩種類型的錯(cuò)位失齊。一種是由于同步本身的延遲,如圖5所示。
圖5:通用CFC輸出的時(shí)鐘波形,顯示失齊的邊沿。
失齊的另一個(gè)原因是時(shí)鐘偏斜(clock skew)。每個(gè)時(shí)鐘的偏斜都導(dǎo)致兩個(gè)CFC時(shí)鐘輸出失齊的進(jìn)一步加劇。如圖6所示,CFC_OUT_F的輸出相對(duì)于CFC_OUT_F/2是偏斜的。正因?yàn)槿绱耍东@發(fā)射信號(hào)的功能時(shí)序窗口被壓縮,損害了測(cè)試質(zhì)量和有效性。
圖6:時(shí)鐘偏斜可導(dǎo)致邊緣失齊。
***丟失時(shí)鐘脈沖***:圖4顯示了在跨時(shí)鐘域故障的全速測(cè)試中所需的啟動(dòng)和捕獲脈沖的子集。參考圖5,可以推斷,對(duì)于具有長度為4的可編程移位寄存器的CFC來說,它不能命中發(fā)射和捕獲脈沖的所有組合。例如,發(fā)射和捕獲脈沖的第一個(gè)組合(在圖4中)可以使用這兩個(gè)CFC來創(chuàng)建,但第二個(gè)組合不能。可通過增加移位寄存器的長度來解決該問題。
如圖4所示,為成功測(cè)試SCCD路徑,需要兩個(gè)啟動(dòng)和捕捉脈沖組合。脈沖應(yīng)該由時(shí)鐘時(shí)序窗口分開。但由于時(shí)鐘偏斜和同步單元延遲,這很難實(shí)現(xiàn)。
***多周期路徑(MCP)測(cè)試***:由于與時(shí)鐘脈沖丟失有關(guān)的問題,測(cè)試受移位寄存器長度的限制。移位寄存器的長度不足以捕獲所有的啟動(dòng)和捕獲組合,并且這在MCP中變得更嚴(yán)重,因?yàn)槟惚仨毜却粋€(gè)時(shí)鐘周期來脈啟(pulse)另一個(gè)。可編程的移位寄存器應(yīng)該有足夠的寬度來創(chuàng)建所需的MCP啟動(dòng)并捕獲脈沖和測(cè)試路徑。圖7顯示了MCP的兩種情況。同樣,對(duì)CFC來說,只有第一個(gè)條件是可能的,而第二個(gè)不行,因?yàn)樗腔谕ㄓ肅FC脈沖產(chǎn)生的。
圖7:多周期路徑需要足夠長的移位寄存器來產(chǎn)生有效啟動(dòng)。
***物理實(shí)現(xiàn)和STA挑戰(zhàn)***:如圖8所示,D1和D2之間的延遲差異需要盡可能接近。小的差異確保兩個(gè)時(shí)鐘之間的時(shí)鐘偏斜在測(cè)試條件下與在功能條件下看到的時(shí)鐘偏斜相似。設(shè)計(jì)者應(yīng)提供額外的物理和時(shí)序約束來實(shí)現(xiàn)小差異。例如,你可以使用SDC使能D1和D2路徑之間的時(shí)鐘平衡。
圖8:最小化D1和D2之間的差異以減少時(shí)鐘偏斜。
***范式生成***:即使對(duì)于可測(cè)條件,設(shè)計(jì)者也需要在可編程移位寄存器中找到正確的位序列來實(shí)施約束?;谶@些值,CFC將為單周期路徑和多周期路徑生成正確的啟動(dòng)和捕捉脈沖序列。
用于測(cè)試跨時(shí)鐘域過渡故障的時(shí)鐘濾波電路應(yīng)確保以下幾點(diǎn):
? 同步時(shí)鐘域的CFC應(yīng)同時(shí)觸發(fā),以產(chǎn)生對(duì)齊的時(shí)鐘脈沖。
? 電路應(yīng)提供選擇所需精確脈沖對(duì)的靈活性,以實(shí)現(xiàn)啟動(dòng)和捕獲的任意組合。
? 電路應(yīng)該是時(shí)序友好和便于實(shí)現(xiàn)的。
圖9顯示了我們?cè)贠penSilicon中使用的一個(gè)修改后的CFC。
圖9:CFC修改包括可編程移位寄存器和一個(gè)分離同步單元。
***公用同步單元***:從CFC中取出同步單元,并與所有SCCD CFC公用。這樣做可以確保對(duì)可編程移位寄存器的觸發(fā)同時(shí)到達(dá)。單獨(dú)的單元消除了由于同步單元延遲差異而導(dǎo)致的邊緣失齊。
如圖10所示,要實(shí)現(xiàn)帶對(duì)齊上升沿的輸出時(shí)鐘脈沖,你應(yīng)該在SCCD最快時(shí)鐘的前一個(gè)邊沿處生成同步SE。你可以通過同步單元中多個(gè)SCCD時(shí)鐘的組合來實(shí)現(xiàn)。為了以最小的邏輯來實(shí)現(xiàn)上面的對(duì)齊,在同步單元中使用最慢和最快的SCCD時(shí)鐘。
圖10:有效的SE同步沿產(chǎn)生所有SCCD時(shí)鐘的正確對(duì)齊。
***移位寄存器時(shí)鐘***:SCCD CFC的可編程移位寄存器被修改為以該SCCD的最快時(shí)鐘頻率工作。這在該SCCD的最快時(shí)鐘(f)和工作時(shí)鐘(f/2)之間創(chuàng)建了一條時(shí)序路徑,如圖11所凸顯。通過在時(shí)鐘樹綜合(CTS)階段嚴(yán)格地限制時(shí)鐘偏斜,該修改簡化了物理實(shí)現(xiàn)和靜態(tài)時(shí)序分析(STA)。它還使對(duì)物理實(shí)現(xiàn)和STA的額外限制不再必要。
圖11:SCCD時(shí)序路徑包含一個(gè)同步單元和可編程移位寄存器。
***移位寄存器寬度***:由于移位寄存器的工作頻率高于CFC的工作頻率,因此需要增加其寬度。例如,要產(chǎn)生四個(gè)f/2時(shí)鐘脈沖,移位寄存器的長度應(yīng)為8,因?yàn)樗ぷ髟陬l率f。移位寄存器的寬度取決于給定SCCD中最快時(shí)鐘與最慢時(shí)鐘頻率之比。下面的公式表示可改變移位寄存器寬度的參數(shù):
例如,如果同步時(shí)鐘域的頻率為f、f/2和f/4,為最多實(shí)現(xiàn)四個(gè)時(shí)鐘脈沖,則移位寄存器寬度應(yīng)該是:
因此,你需要一個(gè)以最快時(shí)鐘f工作的16位寬移位寄存器。
圖12描繪了F、F/2和F/4三個(gè)不同時(shí)鐘的SCCD CFC輸出時(shí)鐘脈沖。使用可編程移位寄存器,你可以配置CFC以生成所需的啟動(dòng)和捕捉時(shí)鐘脈沖。
圖12:同步時(shí)鐘域中的CFC輸出顯示了所有時(shí)鐘沿都對(duì)齊、沒有任何延遲。
在圖5,我們表明,使用典型的CFC,不能產(chǎn)生用以測(cè)試跨時(shí)鐘域故障的啟動(dòng)和捕獲時(shí)鐘脈沖的所有組合。使用增強(qiáng)型CFC,你可以生成所有可能的啟動(dòng)和捕獲脈沖組合,包括MCP測(cè)試所需的組合。
***范式生成***:增強(qiáng)型CFC的范式生成涉及將移位寄存器的位編程為與所需的啟動(dòng)和捕獲脈沖相對(duì)應(yīng)的值。使用增強(qiáng)型CFC,可編程移位寄存器工作在最快的時(shí)鐘來獲得一個(gè)時(shí)鐘脈沖。因此,你需要約束移位寄存器內(nèi)的多個(gè)位。
假定頻率為f/4的工作時(shí)鐘和頻率為f的可編程移位寄存器時(shí)鐘。需要對(duì)移位寄存器的四個(gè)位進(jìn)行編程,以生成一個(gè)f/4工作時(shí)鐘頻率的脈沖(圖13)。此外,使用命名捕獲程序(NCP)自動(dòng)測(cè)試范式生成(ATPG)方法來運(yùn)行故障模擬。
圖13:兩個(gè)CFC的可編程移位寄存器位值可生成一個(gè)啟動(dòng)和捕捉組合。
設(shè)計(jì)結(jié)果
在Open-Silicon,這種增強(qiáng)型CFC已經(jīng)在設(shè)計(jì)中實(shí)現(xiàn),實(shí)現(xiàn)了1.07%的全速覆蓋提升。雖然該數(shù)字本身可能看起來很小,但這些故障覆蓋了必須要測(cè)試的關(guān)鍵路徑。
結(jié)論
在包含多個(gè)時(shí)鐘的復(fù)雜SoC中測(cè)試SCCD故障并不容易,但對(duì)于提高良率非常重要。為克服這些挑戰(zhàn),本文提出了一種修改現(xiàn)有CFC以實(shí)現(xiàn)更高覆蓋率的新方法。采用這種方法,可以在不影響任何設(shè)計(jì)進(jìn)度和復(fù)雜性的前提下,只對(duì)原初的CFC進(jìn)行微小更改、就實(shí)現(xiàn)了一款強(qiáng)健的CFC。測(cè)試這種同步跨時(shí)鐘域的故障可以讓設(shè)計(jì)人員實(shí)現(xiàn)更高的全速測(cè)試覆蓋率和低的DPPM目標(biāo)。 這也有助于集成電路(IC)部件的篩選,并給速度分揀(speed binning)帶來額外好處。
這種測(cè)試方法為系統(tǒng)工程師推出成功產(chǎn)品提供了更強(qiáng)信心,特別是在設(shè)計(jì)包含許多這樣的SCCD路徑的情況下。
評(píng)論
查看更多