Global Sources
電子工程專輯
 
電子工程專輯 > 製造/封裝
 
 
製造/封裝  

驗証再使用技術確保設計符合預定要求

上網時間: 2002年11月09日     打印版  Bookmark and Share  字型大小:  

關鍵字:reuse  再使用  verification  驗証  module 

系統單晶片是由已經設計好的模組組成的,設計人員事先已考慮到了各個方面,並對每一部份都進行了檢驗,現在只需要把這些模組組合起來,整合為一個完整的系統即可。但問題是怎樣使整合好的系統能像各個模組一樣可靠完整呢?怎樣以最快的速度完成呢?如何才能在一項工作完成之後再整合另一個晶片時,儘管每個步驟都不同,但也不會覺得又是完全從頭開始呢?本文介紹利用驗証再使用技術對晶片進行測試,確保設計符合原來預定的要求。

在設計再使用中,驗証就像汽車的剎車一樣,我們都知道如何製作結構模組,怎樣使介面標準化並使用相容的後端流程,但恰恰是驗証使我們無法再高興下去。的確,我的模組和你的模組都有很好的測試平台和測試軟體,然而將它們放在一起時,卻需要新的測試平台和全新的測試,每一個整合步驟都好像要重新來過。驗証不像其它設計任務那樣可以累積,這就是為什麼隨著設計變得越來越大,花在驗証上的時間也越來越多。下面介紹一些方法使驗証工作能夠重覆使用,這樣項目的整合就是可以預測的而不是掉入一個無底洞。我們以美國國家半導體公司的Geode GX2為例,許多此類想法都是針對Geode系列整合處理器開發的,而GX2項目也証明了這種方法非常成功。

驗証環境包含許多部份,如測試平台組件、測試軟體、隨機測試產生器、測試計劃、規定條件和覆蓋範圍分析,要想解決整合瓶頸,上述所有部份在下一結構層次也必須可重覆使用,這些驗証部份的建立和除錯時間將比花在設計模組本身上面的還要多,如果不能重覆利用,這部份工作將難以想象。

驗証再使用既不簡單也不輕鬆,需要做大量工作以使驗証環境不僅好而且可以再使用,但結果是很明顯的。下面首先介紹在模組級如何進行驗証,然後說明需要驗証組合模組時如何再使用模組驗証工作。

測試平台組件

測試平台組件可以激勵設計並觀察評估其反應特性。測試平台必須是針對待測模組的,我們發現藉由將測試平台以某種規範方式組織起來,並使各組件之間通訊方式標準化之後,將可在下一級整合時再利用這些組件。

一個模組規範測試平台包括測試閱讀器、處理器、監視器、模擬器和檢驗器。測試閱讀器讀取測試語言並將其轉化為一系列命令轉給處理器,處理器驅動待測模組輸入信號,監視器觀察模組的反應特性並按照事件序列做出報告。

模擬器是設計參考模組,我們用C++編寫模擬程式,這些模擬程式是對事件處理精確而不是對周期精確。給模擬程式輸入和處理器相同的命令序列,它將產生我們認為模組應該具有的反應序列。

檢驗器得到從模擬程式輸出的事件數據流和從監視器輸出的事件數據流,將兩者進行比較並將不匹配作為錯誤報告出來。

許多設計人員習慣於在測試平台中使用監視器和處理器,卻將模擬器和檢驗器視為額外的工作。編寫自查測試或使用判定語句和智慧監視器來查找錯誤確實比較簡單,但我們發現編寫模擬程式和傻瓜式監視器及檢驗器常常比編寫智慧監視器更加簡單,它使得測試不必檢查其自身,這樣隨機測試更加容易。

這種測試平台組織方法的真正優越性還體現在整合上。例如可以湊出一個測試平台,用另一個模組的模擬程式來驅動處理器而不用自己的測試程式,這樣可以在不更改模組的前提下執行另一模組的所有測試。或者也可以使用兩個監視器、兩個模擬器和兩個檢驗器分別說明兩個模組,如果原模組輸入是點對點來自於另一個模組,則只要去掉原處理器執行另一個模組測試程式即可;如果原模組輸入是多路驅動器匯流排,則可以保留兩個處理器同時進行兩個測試,每個測試的內容從各模組測試程式中選取。藉由在模組級測試平台上做一些額外工作,可以得到能在整合測試平台使用的組件。

這種再使用性能可一直延伸到結構最上層,藉由將模擬器和處理器混合匹配在一起,你可以測試任意組合形式模組而無需設計新的測試平台組件。

Geode GX2設計小組針對每個主要模組使用一種測試平台,如記憶體控制器、PCI介面、處理器內核和顯示控制器(圖1),我們將各部件組合起來做成組合模組測試平台,到項目收尾階段我們使用了40個不同的測試平台,這些測試平台都共享測試組件。

測試計劃

每一個驗証環境都應該有一個測試計劃,建議你將它寫下來。測試計劃就像鍛煉一樣:我們知道應該做,但有時就是不想做,因為太麻煩。計劃做好後應將整個小組集合起來,集思廣益討論測試方法,要經常這樣做而且越早越好。測試計劃也應是可重覆利用的,我們選擇一個可以描述極端情況的簡單格式,然後記下這些情況是否已被考慮,以及由哪個測試完成。如果測試計劃使用通用語言,還可以有一些工具能根據計劃追蹤進度,並且在到達整合時將測試計劃累積起來。圖1:帶有儲存控制器和顯示控制器的混合式測試平台。

有關驗証一個很困難且無法回避的事實是,沒有什麼可以替代用手工仔細編寫的測試程式。這是一種勞動密集型工作,其編寫和除錯非常單調乏味。但如果誰要能夠編寫覆蓋極端情況的測試程式,那麼他將是一個很好的邏輯設計師,事實上模組設計師應該編寫大部份測試程式,在數位設計中黑盒測試和白盒測試都很重要。

我們設計了一個C++應用程式介面作為周邊模組測試語言,而將X86匯編語言用於處理器內核。但是具體的測試語言要根據設計類型決定,測試語言越少越好,這一點很重要,最好是只有一種。如果不同的模組可以用同一語言進行測試,那麼在硬體執行這些測試或今後設計採用新模組組合時可以節約大量人工。

驗証的一個重要部份是隨機測試,對Geode GX2我們編寫了上千條測試程式並產生了更多的隨機測試。我們對想得到的任何事情進行隨機處理:中斷、停止、除錯中斷、探測、記憶體延遲、I/O延遲、仲裁形式等等,如果隨時都可以用兩種方法,那麼確保兩個都做,並在兩者之間進行均衡。

設計中有些地方只有邏輯設計師知道,他們需要將這些部份作為規定內容進行編碼,然後在每次模擬時都可自動進行檢查。規定內容就像一個微型監視器,它可檢查一些條件並且在違反這些條件時使測試失效。例如你可以規定兩個信號不能在同一時刻出現,或一個信號不能在另一個信號的六個周期內出現,或FIFO不能溢出等等。無論怎樣規定和定義數位介面,我們總要假設介面是怎樣使用的,並經常在口頭上對其它設計師講清這些假設。我們應該做一些額外的工作將假設作為一個規定寫到設計中去,這樣兩年後當你不認識的人使用你的設計時,或者介面協議有輕微改變時,都可以容易地取消這些規定直接解決問題。

一些設計人員喜歡這種規定是因為它們使除錯變得十分簡單,而有些人則必須要藉由勸說他們才會使用。其實這是很值得的,它將使你的設計更加完善。由於它們是模組RTL邏輯的一部份,所以對整合再使用並不重要。這種規定的另一個好處是可將它們提供給靜態規則檢查器,我們在Geode GX2上使用了等效檢查器而不是靜態規則檢查器。正式檢驗工具在特性和處理複雜性方面發展得很快,即使有好的測試計劃、好的測試平台和隨機測試,驗証也只是一個沒有覆蓋範圍分析的開環過程,只有覆蓋範圍分析能告訴你所做的工作狀況怎樣並顯示哪些地方仍需要關注。最為成熟的覆蓋工具是代碼覆蓋工具,它能檢查所有已編寫並正在使用的代碼,或設計中正在擺動的每一個信號、設計中每個翻轉的觸發器等等。Geode GX2小組使用的代碼覆蓋工具結果在90%到99%之間,我們還計劃了一個功能覆蓋工具但後來沒有時間和資源來實現它。

總而言之,只在模組自身環境下對其進行測試整合是不夠的,需要執行一些高級測試,必須在整合以後再利用驗証組件(包括測試程式、測試產生器、測試平台設備、覆蓋範圍分析等等)對每個模組進行徹底的測試。當可以重覆利用所有這些工作時,這種整合就將僅僅只是整合而不是全部再從頭設計。

作者:Will Walker


高級工程經理


美國國家半導體公司




投票數:   加入我的最愛
我來評論 - 驗証再使用技術確保設計符合預定要求
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首