【導(dǎo)讀】在用于汽車 SoC 的納米技術(shù)中,硅上的大多數(shù)缺陷都是由于時(shí)序問題造成的。因此,汽車設(shè)計(jì)中的全速覆蓋要求非常嚴(yán)格。為了滿足這些要求,工程師們付出了很多努力來獲得更高的實(shí)速覆蓋率。主要挑戰(zhàn)是以盡可能低的成本以高產(chǎn)量獲得所需質(zhì)量的硅。在本文中,我們討論了與實(shí)時(shí)測試中的過度測試和測試不足相關(guān)的問題,這些問題可能會導(dǎo)致良率問題。我們將提供一些有助于克服這些問題的建議。
在用于汽車 SoC 的納米技術(shù)中,硅上的大多數(shù)缺陷都是由于時(shí)序問題造成的。因此,汽車設(shè)計(jì)中的全速覆蓋要求非常嚴(yán)格。為了滿足這些要求,工程師們付出了很多努力來獲得更高的實(shí)速覆蓋率。主要挑戰(zhàn)是以盡可能低的成本以高產(chǎn)量獲得所需質(zhì)量的硅。在本文中,我們討論了與實(shí)時(shí)測試中的過度測試和測試不足相關(guān)的問題,這些問題可能會導(dǎo)致良率問題。我們將提供一些有助于克服這些問題的建議。
全速測試的主要目的是檢測硅在其工作頻率下可能發(fā)生的任何時(shí)序故障。要測試的重要部分是生成可控時(shí)鐘脈沖的邏輯,該時(shí)鐘脈沖的頻率與功能操作所需的頻率相同。提供受控時(shí)鐘脈沖的方法是通過輸入焊盤從測試器 (ATE) 提供,因?yàn)檫@將降低復(fù)雜性并限度地減少需要在設(shè)計(jì)中構(gòu)建的額外測試邏輯。
然而,這種方案會有頻率限制,因?yàn)楹副P通常不能支持非常高頻率的時(shí)鐘。因此,片上鎖相環(huán) (PLL) 和振蕩器用于提供時(shí)鐘脈沖。然而,不能直接使用這些的自由運(yùn)行時(shí)鐘,因?yàn)槭紫任覀儽仨氁缘皖l(移位頻率)通過掃描鏈移位矢量,以功能頻率捕獲,然后以移位頻率清除數(shù)據(jù)。我們需要可控脈沖,同時(shí)以功能頻率捕獲,這可以通過使用斬波邏輯來實(shí)現(xiàn)。圖 1顯示了具有全速時(shí)鐘的典型時(shí)鐘架構(gòu)。
圖 1: 具有全速時(shí)鐘的典型時(shí)鐘架構(gòu)
對于任何 SoC,STA(靜態(tài)時(shí)序分析)簽核對于驗(yàn)證時(shí)序性能是不可或缺的。時(shí)序簽核確保硅將以所需的功能頻率運(yùn)行。同樣的邏輯也適用于全速測試。必須對全速模式和功能模式一起完成 STA 簽核,因?yàn)闀r(shí)鐘路徑在全速模式下可能不同,并且添加的測試控制邏輯也需要定時(shí)。在正常功能模式下不需要斬波邏輯,因此我們還需要滿足斬波邏輯的時(shí)序要求。
理想情況下,如果時(shí)鐘的變化是在公共路徑中完成的,那么在全速模式下關(guān)閉時(shí)序應(yīng)該不是問題,例如在時(shí)鐘路徑的開始處,以便啟動和捕獲觸發(fā)器的變化是共同的,因此不會影響設(shè)計(jì)的設(shè)置和保持時(shí)序。測試控制邏輯一般工作在低頻或靜態(tài),因此不難滿足時(shí)序要求。
典型的 SoC 時(shí)鐘方案
然而,現(xiàn)代 Soc 設(shè)計(jì)并不那么簡單。高性能和低泄漏要求導(dǎo)致設(shè)計(jì)在單個(gè) SoC 中具有各種時(shí)鐘源,例如 PLL、振蕩器、時(shí)鐘分頻器等。根據(jù)架構(gòu),可能有許多 IO 接口在外部時(shí)鐘上運(yùn)行幾個(gè) MHz,例如 SPI、JTAG、I2C 等。因此,SoC 的不同部分可以以不同的頻率運(yùn)行。
這就是事情變得復(fù)雜的地方。前面討論的用于全速時(shí)鐘的時(shí)鐘解決方案(斬波邏輯)對于以不同頻率運(yùn)行的復(fù)雜芯片來說是不夠的。在全速測試中,這些復(fù)雜性會引發(fā)稱為測試不足和測試過度的問題,從而導(dǎo)致需要進(jìn)行測試。
與功能模式下的運(yùn)行頻率相比,在全速模式下以更高的頻率測試邏輯時(shí)會發(fā)生過度測試。參考圖 2,如果在全速模式下向看門狗和 RTC 等任何低頻模塊提供 pll_clock,就會發(fā)生過度測試。采用這種方法的一個(gè)關(guān)鍵原因是測試時(shí)鐘路徑的簡單性,因?yàn)檫@種方法只需要對功能邏輯進(jìn)行的更改。在我們的示例中,我們只需要通過掃描時(shí)鐘繞過所有分頻時(shí)鐘/RC osc 時(shí)鐘/外部時(shí)鐘,而掃描時(shí)鐘又將由 pll 時(shí)鐘控制。
圖 2: 存儲器和閃存在分頻 PLL 時(shí)鐘上運(yùn)行,而平臺在實(shí)際 pll_clock 下工作。內(nèi)部 RC 振蕩器為 RTC(實(shí)時(shí)計(jì)數(shù)器)和看門狗定時(shí)器等塊提供時(shí)鐘,這些塊需要非常慢的時(shí)鐘頻率。像顯示大師這樣的積木既有IPS接口又有攝像頭接口。IPS 接口通常以系統(tǒng)頻率工作,而攝像頭邏輯以外部提供的較慢頻率時(shí)鐘工作。SPI 和 JTAG 等 IO 接口在幾 MHz 下工作。因此,SOC 的整體配置需要多個(gè)模塊在多個(gè)頻率下工作。
當(dāng)在全速模式下以低于預(yù)期操作頻率的頻率測試任何邏輯時(shí),就會發(fā)生測試不足。這種情況通常存在于無法提供與功能模式相同頻率的測試時(shí)鐘時(shí),但同時(shí)由于較大的數(shù)據(jù)路徑延遲或技術(shù)限制而無法以高頻率關(guān)閉設(shè)計(jì)。在這種情況下,我們被迫提供較低頻率的時(shí)鐘。
因此,有必要以與功能頻率完全相同的頻率測試硅的缺陷。任何偏差都會導(dǎo)致過度測試或測試不足的問題:
? 當(dāng)功能邏輯旨在以較低的頻率工作時(shí),關(guān)閉較高頻率的設(shè)計(jì)以進(jìn)行全速測試將影響整體設(shè)計(jì)的面積和功率。在時(shí)序關(guān)鍵設(shè)計(jì)的情況下,實(shí)時(shí)測試工具將使用高驅(qū)動強(qiáng)度單元,甚至可能需要低 Vt 單元來滿足這些頻率目標(biāo)。
? 即使設(shè)計(jì)的時(shí)序以更高的頻率收斂,以功耗和面積為代價(jià),我們在良率計(jì)算中也可能會不必要地悲觀。在全速測試期間可能會出現(xiàn)不切實(shí)際的良率下降。例如,在具有兩個(gè)時(shí)鐘域(domain1 @ 120MHz 和 domain2 @ 80MHz)的設(shè)計(jì)中,我們將整個(gè)設(shè)計(jì)的時(shí)序關(guān)閉在 120MHz 平坦處以簡化全速模式下的時(shí)鐘架構(gòu)。這兩個(gè)域的所有 ATPG 模式生成都將在 120MHz 時(shí)發(fā)生。由于工藝可變性,在硅上,domain1 在 120MHz 下工作正常,但 domain2 僅在 110MHz 下工作,因此所有管芯都將被視為有缺陷的部件。盡管該芯片足以滿足功能要求,但基于全速模式故障,我們會將芯片宣布為故障芯片,這會降低我們的產(chǎn)量。
? 在測試不足的情況下,全速模式不能保證芯片實(shí)際工作在預(yù)期頻率。由于壞芯片可以通過全速測試,所以原先的全速測試過濾掉壞芯片的目的就落空了。在這種情況下,我們在收益率計(jì)算中會過于樂觀。
了解了缺點(diǎn)后,我們將重點(diǎn)關(guān)注在任何 SoC 中存在過度測試和測試不足的原因:
時(shí)鐘架構(gòu)的簡單性
鑒于功能模式下的時(shí)鐘源如此之多,簡單的方法是在全速模式下提供少量可控測試時(shí)鐘。
圖 3: 簡單和簡單的測試時(shí)鐘解決方案是將 PLL 時(shí)鐘與外部時(shí)鐘復(fù)用,即使對于全速模式也是如此,這是一種過度測試的情況。
讓我們以 DSPI 模塊為例。該 IP 在 2 個(gè)時(shí)鐘上工作,一個(gè) 15 MHz 的外部時(shí)鐘和一個(gè)用于內(nèi)部邏輯的 120MHz 功能 PLL 時(shí)鐘。如圖3所示,簡單和簡單的測試時(shí)鐘解決方案是將 PLL 時(shí)鐘與外部時(shí)鐘復(fù)用,即使對于全速模式也是如此,這是一種過度測試的情況。
納米設(shè)計(jì)中的分頻器
對于時(shí)鐘分頻器,原始源時(shí)鐘用于所有測試模式,并與分頻時(shí)鐘復(fù)用,如下圖 4所示。
圖 4: 原始源時(shí)鐘用于所有測試模式,并與分頻時(shí)鐘復(fù)用。
這是設(shè)計(jì)中的常見場景,我們有很多分頻器,但我們不能在全速測試中使用它們,因?yàn)檫@些分頻器在測試期間不可控(相位確定)。因此,簡化全速測試的簡單方法是在測試模式下提供一個(gè)不分頻的時(shí)鐘,這會導(dǎo)致過度測試。
多周期路徑等時(shí)序異常
在設(shè)計(jì)中,當(dāng)信號傳播在功能操作期間需要多于單周期時(shí)鐘時(shí),會使用多周期路徑、偽路徑、分析等形式的各種時(shí)序異常。這些異常在at-中有效速度模式,因此也應(yīng)以 SDC(標(biāo)準(zhǔn)設(shè)計(jì)約束文件)的形式適當(dāng)?shù)匾浦驳饺倌J?。然而,?dāng)前的 ATPG 工具在理解其中一些約束方面存在局限性,尤其是多循環(huán)路徑。當(dāng)通過 SDC 文件進(jìn)行解析時(shí),它會忽略多周期路徑并且不會為此創(chuàng)建任何模式。例如,如果我們有一個(gè)從一個(gè)寄存器到另一個(gè)寄存器的 2 的多周期,它將簡單地屏蔽任何檢查這兩個(gè)寄存器之間捕獲的模式。
所以這意味著所有多周期路徑都沒有在全速測試中進(jìn)行測試,導(dǎo)致測試不足。另一方面,如果這些異常未成為 SDC 文件的一部分,則時(shí)序檢查將在單個(gè)時(shí)鐘周期內(nèi)發(fā)生,而從功能上講,該路徑將在兩個(gè)時(shí)鐘周期內(nèi)工作,這是過度測試的典型情況??偟膩碚f,這是一個(gè)大問題,因?yàn)橥ǔN覀冊谌魏螐?fù)雜的設(shè)計(jì)中都會遇到很多多周期異常,如果我們采用傳統(tǒng)方法,這可能會導(dǎo)致過度測試或測試不足。
實(shí)時(shí)測試
到目前為止,我們已經(jīng)看到過度測試和測試不足都是不可取的,因此我們需要一種方法來確保在不影響設(shè)計(jì) QOR 的情況下實(shí)現(xiàn)實(shí)時(shí)測試的實(shí)際好處。這個(gè)想法是,由于實(shí)時(shí)測試,設(shè)計(jì)上不應(yīng)有任何顯著的面積/功率開銷,但同時(shí)我們應(yīng)該確保在預(yù)期的功能頻率下檢查實(shí)時(shí)測試設(shè)計(jì),而不是高于或低于該頻率。
這里列出了一些指南/技術(shù),以確保以正確的方式完成全速測試:
? 在 func 模式下識別設(shè)計(jì)中的不同頻域。這是重要的一步,因?yàn)槟皆绱_定頻域,就越能了解全速測試要求。對時(shí)鐘架構(gòu)的全面分析有助于定義的全速時(shí)鐘。例如,在開始一個(gè)項(xiàng)目時(shí),通常不會過多強(qiáng)調(diào)外部 IO 接口頻率目標(biāo),這會在以后影響為這些接口定義全速時(shí)鐘策略。
? 定義全速模式時(shí)序約束以及功能模式約束生成。全速模式下的任何時(shí)序關(guān)鍵路徑都可以在設(shè)計(jì)周期開始時(shí)解決。在早期階段進(jìn)行更改總是比較容易。
? 關(guān)鍵解決方案之一是識別測試不足和測試過度的情況,因?yàn)楹芏鄷r(shí)候這些問題會在終 STA 運(yùn)行期間突然出現(xiàn),甚至在滿足時(shí)序時(shí)甚至不會被注意到。使用某種腳本,可以比較功能模式和全速模式下所有寄存器的頻率。將寄存器分為三類:在兩種模式下具有相同頻率的觸發(fā)器——可以使用;觸發(fā)器在全速模式下的頻率低于功能模式下的頻率——測試中的情況;觸發(fā)器在全速模式下的頻率高于功能模式下的頻率——過度測試的情況。
一旦確定了這些情況,就應(yīng)該進(jìn)行徹底的分析,并探索所有架構(gòu)的可能性,以提供與功能模式下頻率完全相同的時(shí)鐘。
為了解決時(shí)序異常,解決方案在于通過以較低頻率進(jìn)行測試,將多周期路徑轉(zhuǎn)換為單周期路徑。這個(gè)概念很簡單。假設(shè)一個(gè)設(shè)計(jì)工作在 200MHz,并且有幾個(gè) 2 的多周期路徑。用 2 的多周期在 200MHz 時(shí)對這些路徑進(jìn)行定時(shí)相當(dāng)于在單個(gè)周期中以 100MHz 測試這些路徑。在全速測試中,分兩次測試邏輯。在遍中,將提供 200MHz 的捕獲時(shí)鐘來測試所有單周期路徑,并將屏蔽所有多周期路徑。在第二遍中,將提供 100MHz 的捕獲時(shí)鐘以僅測試所有多周期路徑。相同的概念可以應(yīng)用于更高的多周期。
分多次進(jìn)行at-speed testing也會在很大程度上解決over-testing/under-testing的問題。正如我們上面所討論的,有時(shí)不可能同時(shí)為所有域提供的頻率時(shí)鐘,但我們可以通過在每次傳遞中以多個(gè)頻率配置捕獲時(shí)鐘來做到這一點(diǎn)。通常,在我們將 pll 用作系統(tǒng)時(shí)鐘的設(shè)計(jì)中,我們可以靈活地將 pll 配置為某些離散頻率。
可以使用相同的多次測試方法來解決與分頻器相關(guān)的過度測試問題。不同之處在于,在多周期路徑的情況下,觸發(fā)器可以被屏蔽,但在分頻器的情況下,我們需要分頻時(shí)鐘的可控性,以便時(shí)鐘可以在掃描模式下被門控。
圖 5: 當(dāng)系統(tǒng)時(shí)鐘為 200Mhz 時(shí),在通道 1 的全速測試期間,時(shí)鐘門控邏輯會將時(shí)鐘門控到在 100Mhz 下正常運(yùn)行的域(通過除以 2 邏輯)。
如圖 5所示,在系統(tǒng)時(shí)鐘為 200Mhz 的第 1 輪全速測試期間,時(shí)鐘門控邏輯會將時(shí)鐘門控到在 100Mhz 下正常運(yùn)行的域(通過除以 2 邏輯)。但在第 2 輪中,當(dāng)系統(tǒng)時(shí)鐘設(shè)置為 100Mhz 時(shí),時(shí)鐘門控單元的使能將被驅(qū)動為邏輯 1。這將確保邏輯現(xiàn)在以 100Mhz 的預(yù)期頻率進(jìn)行測試。
使用上述指南,應(yīng)該可以解決大多數(shù)與過度測試和測試不足相關(guān)的問題。但萬一被迫在測試不足和過度測試之間做出選擇,決定取決于 SoC 的應(yīng)用。汽車設(shè)計(jì)中,人身安全是首要考慮因素,應(yīng)該選擇安全的過度測試方法,而在功耗大的設(shè)計(jì),例如在網(wǎng)絡(luò)和無線領(lǐng)域,需要進(jìn)行測試。即使對于這些情況,也應(yīng)盡一切努力確保與所需頻率的偏差盡可能小。
讓我們舉一個(gè)具有多個(gè)頻率時(shí)鐘的設(shè)計(jì)示例,這將有助于理解這個(gè)概念:
假設(shè)一個(gè)設(shè)計(jì)在 240MHz 上工作,我們有一個(gè) 2、3、4 等的多周期用于各種路徑。還有一些接口工作在 10MHz 和 60MHz 的外部時(shí)鐘上。為避免任何類型的過度測試或測試不足,請?jiān)谌倌J较露啻瓮ㄟ^測試。在 240、120、80、60MHz 下配置 PLL,并以實(shí)際功能速度測試所有邏輯。
? 第一遍:@240MHz - 所有單周期路徑(掩碼 100MHz 和 60MHz 接口,其余 SDC 是標(biāo)準(zhǔn)的)
? 第二遍:@120MHz – 多周期 2 的路徑(從 SDC 中刪除多周期 2 異常)+ 100MHz 接口邏輯(過度測試化)
? 第三遍:@80MHz – 多周期為 3 的路徑(刪除 2 和 3 的所有多周期異常)
? 第四遍:@60MHz – 4條路徑+60mhz接口邏輯的多周期路徑(去除所有多周期異常)
結(jié)論
隨著 SoC 的功能變得越來越復(fù)雜以及技術(shù)向更低的節(jié)點(diǎn)轉(zhuǎn)移,良好的成品率被證明是任何設(shè)計(jì)公司的一個(gè)重要關(guān)注點(diǎn)。收益率直接影響損益方程式,需要認(rèn)真努力解決低收益率的原因。實(shí)速測試是衡量硅質(zhì)量的重要標(biāo)準(zhǔn),因此我們應(yīng)該以高覆蓋率為目標(biāo)。但同時(shí),我們應(yīng)該只在適當(dāng)?shù)臅r(shí)鐘頻率下運(yùn)行我們的實(shí)速模式,因?yàn)樵阱e誤的時(shí)鐘頻率下測試會導(dǎo)致問題過度測試或測試不足。這兩種情況(測試不足和測試過度)既不利于設(shè)計(jì) QOR,也不利于良率估算。
測試時(shí)鐘應(yīng)該與功能時(shí)鐘同等重要,并且應(yīng)該努力為不同的域提供相同頻率的時(shí)鐘,因?yàn)樗鼈冊诠δ苡蛑斜挥?jì)時(shí)。同時(shí),應(yīng)該對多周期路徑給予相當(dāng)大的關(guān)注,因?yàn)樗鼈兺ǔ?gòu)成任何設(shè)計(jì)中時(shí)序路徑的重要組成部分。At-speed testing in multiple pass是解決多周期路徑at-speed testing的方法。Multipass測試方法也可以用來解決其他過度測試和under-testing的情況。因此,總而言之,使用上述建議和方法,我們可以實(shí)現(xiàn)更準(zhǔn)確的全速覆蓋,這反過來將確保我們在不影響設(shè)計(jì) QOR 的情況下將良率下降問題降至。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。
推薦閱讀:
使用 LLC 諧振轉(zhuǎn)換器的數(shù)字電源控制
上海功成半導(dǎo)體科技有限公司——聚焦光儲充 邁向碳中和
知名半導(dǎo)體芯片制造企業(yè)——揚(yáng)州晶新微電子參展CITE2023