關(guān)鍵字: 邏輯分析儀, 虛擬邏輯分析儀,自制邏輯分析儀,USB邏輯分析儀,PC邏輯分析儀
檢驗芯片的各項功能需要編寫診斷軟件,,目的是確保器件的各項功能按要求工作,,但是無論各項測試有多么詳盡,它都無法找出大部分系統(tǒng)層次的問題,。因此,,要利用系統(tǒng)級強化測試(stress testing)來使多種功能以高強度和隨機的方式共同執(zhí)行,,從而迫使這些設(shè)計問題浮出表面。本文將探討用于檢驗半導(dǎo)體器件設(shè)計的系統(tǒng)強化測試方法,。
強化測試
強化測試是指將產(chǎn)品置于比實際正常應(yīng)用苛刻得多的條件下使用,,其目的是通過各種方式對設(shè)備進行考驗,迅速發(fā)現(xiàn)其設(shè)計缺陷,。例如,,對于一件機械產(chǎn)品,可能讓它 面對惡劣的環(huán)境條件,,如高壓,、高溫和震動。如果該產(chǎn)品能在這樣的條件下成功經(jīng)受一個月的考驗,,那么在正常使用條件下,,它應(yīng)該能工作長得多的時間。
同樣的概念也適用于芯片的設(shè)計,。此時,,強化測試的表現(xiàn)形式是執(zhí)行診斷軟件,其目的是使大量的芯片功能同時,、連續(xù),、隨機、密集地工作,,其程度遠遠超過芯片正常 使用時的狀況,。這些測試通常連續(xù)運行,大多數(shù)時候無人照管,,夜間和周末也不停止,。通過這些測試,可以在產(chǎn)品發(fā)貨之前迫使隱藏的系統(tǒng)問題盡快地暴露出來,。
為什么強化測試對半導(dǎo)體設(shè)計如此重要呢,?為了解釋這一問題,,假設(shè)一個半導(dǎo)體器件常常為了不同用途而應(yīng)用在各種電子系統(tǒng)之中,因此,,這些電子產(chǎn)品將被幾千甚至 幾百萬用戶使用,,每個用戶使用產(chǎn)品的方式各不相同。在如此大量的使用中,,當(dāng)芯片上的功能和事件出現(xiàn)某種在器件測試過程中從未遇到過的順序或組合時,可能就 會發(fā)生問題,。這些問題通常表現(xiàn)為:不時被鎖住,、數(shù)據(jù)出錯或其它難以復(fù)現(xiàn)的異常現(xiàn)象,。如果這些問題出現(xiàn)太多(或者在執(zhí)行重要任務(wù)的產(chǎn)品中僅僅偶然出現(xiàn)),,用 戶將會認為這些產(chǎn)品是不可靠甚至不穩(wěn)定的。
強化測試概念的引出
最初嘗試創(chuàng)建系統(tǒng) 強化測試時,,方法是研究和編寫直接激活盡可能多的芯片功能并使它同時執(zhí)行軟件,,使用定時器中斷并讓它執(zhí)行隨機測試,同時主程序不停地復(fù)制數(shù)據(jù),,并隨機地不 時啟動其它芯片操作,。當(dāng)想出向芯片內(nèi)引入更多無序和隨機事件的招數(shù)時,便將它添加到軟件中去,。很快就可以發(fā)現(xiàn),,雖然陸續(xù)發(fā)現(xiàn)了許多問題,但它大多發(fā)生在自 己編寫的軟件上,。
由于不時使用同一塊存儲區(qū)域或外設(shè)資源,,測試軟件中的測試功能相互干擾。例如,,當(dāng)一個測試正在使用某一通用I/O時,,另一個隨機啟動的測試卻更改了它的狀態(tài)。由此不時導(dǎo)致的故障耗用了大量的調(diào)試時間,。
第二次,,嘗試開發(fā)組織得非常好的強化測試軟件。它安排隨機選擇的測試功能輪流運行,,在許多地方將中斷鎖住,,以防止軟件沖突和保證其它安全措施。這種謹慎的編 程使得測試非常穩(wěn)定,,但與直接測試相比,,同樣不能有效地發(fā)現(xiàn)芯片的問題,因為它是按照一種很大程度上可預(yù)期的順序方式來執(zhí)行測試,。畢竟測試的目的是為了測 試半導(dǎo)體器件的設(shè)計,,而不是為了獲得穩(wěn)定的測試軟件,。
在理論上希望避免這兩種極端情況。測試的根本目的是為了暴露芯片中系統(tǒng) 級的相互作用問題,,為了達到這個目的,,就必須將操作搞亂,使得許多不同事件以隨機方式發(fā)生,。其中的訣竅是,,以一種有組織的方式來保持測試的無序特點,從而 獲得可靠的測試軟件,,并可進行擴展,,還可以盡可能地幫助調(diào)試。要達到這些目的,,需要仔細進行考慮和規(guī)劃,。這就是構(gòu)建一個強化測試框架的思路。
測試框架
本文介紹一個軟件框架(framework)的設(shè)計,,讀者可以使用這個框架來為半導(dǎo)體器件構(gòu)建一個可擴展的強化測試,。雖然本文沒有提供完整的框架,但這些內(nèi)容應(yīng)當(dāng)能夠激發(fā)讀者的靈感來幫助構(gòu)建自己的強化測試框架,。
軟件框架通過提供一個公共操作引擎和環(huán)境來簡化特定類型的應(yīng)用開發(fā)工作,,具體的應(yīng)用經(jīng)由一個定義好的接口來與框架連接。強化測試框架也采用了同樣的思路,,它提供一個軟件引擎來處理強化測試的基本操作和公共功能,。
強化測試框架本身不測試任何芯片功能,但它允許嵌入測試事件模塊,。測試事件模塊是實現(xiàn)一項具體的半導(dǎo)體器件測試或事件的函數(shù),,通常要使用一組隨機產(chǎn)生的測試參數(shù)。執(zhí)行強化測試時,,框架引擎將隨機選擇并以不同方式來啟動這些測試事件模塊,。
這個框架還為測試事件模塊提供了基本服務(wù)供其使用,,包括保留系統(tǒng)資源的功能,、選擇隨機測試參數(shù)的功能和數(shù)據(jù)記錄功能。大部分預(yù)先規(guī)劃和設(shè)計都位于框架本身內(nèi) 部,,因為框架處理強化測試復(fù)雜和“混亂無序”的一面,。然后,根據(jù)需要增加單個測試事件模塊,,擴展強化測試,。由于框架負責(zé)處理公共的強化測試軟件部分,測試 事件模塊的開發(fā)人員可以專注于為目標(biāo)芯片功能編寫優(yōu)秀的測試程序。圖1為強化測試框架各個組成部分的高層次示意圖,。
隨機測試池是強化測試的核心部分,,實際的半導(dǎo)體器件測試就位于其中。它是為了對芯片的某項具體功能啟動事件和(或)執(zhí)行測試而編寫的測試事件模塊的集合,。開發(fā)新的 測試事件模塊時,,可將它添加到隨機測試池中,以便在下一次運行強化測試時將其包含在內(nèi),。本文后面還將更詳細地介紹測試事件模塊,,因為這是為芯片開發(fā)并由框 架啟動和支持的實際半導(dǎo)體器件測試。
執(zhí)行過程中,,強化測試引擎隨機地從池中選擇和運行測試事件模塊,。為了使測試變得更加雜亂無序(從而對器件設(shè)計施加更大的強化測試),框架采用異步時隙來按照任意時間間隔隨機選擇和啟動測試,。
“時隙”使用一個硬件定時器來實現(xiàn),器件或測試板卡上的多個定時器可以擁有各自的時隙,??蚣転槊總€時隙定時器選擇隨機的時間間隔,當(dāng)時隙截止時,,引擎中斷當(dāng)前 的測試模塊,,定時器的中斷處理程序?qū)⑦x擇另一個模塊來執(zhí)行,同時引擎為下一個時隙操作選擇另一個隨機的時間間隔,。