Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

驗證邁向更高抽象層級

上網時間: 2005年12月22日     打印版  Bookmark and Share  字型大小:  

關鍵字:驗證  流程  模擬  向量  建模 

摘要: 為了解決驗證危機,必須結合三種關鍵技術,即忽略執行細節的高層模擬技術,確保執行功能與高層次模型相匹配的技術,以及定義並檢查設計臨時屬性是否滿足規格的有效技術。

在設計流程中功能驗證經常會引發問題。半數以上的晶片在初次投片時以失敗告終,而其中70%的問題歸因於功能驗證。模擬器供應商的解決方案是告誡用戶進行更多的模擬,設立更大規模的模擬庫,並使用模擬方法。透過分析以往驗證的關鍵環節,我們得知,這些解決方案並不能真正的解決問題。

最近,驗證產能獲得了極大的提高,特別是在測試平台開發方面,能夠更快更方便的進行新測試的開發。由於能夠積極回應設計更改(沒有大的變動),驗證產能提高後還能減少對已有測試的維護時間。

但是,驗證產能的提高也加重了超負載執行的模擬器的負擔。現在廠商可以產生數以千計的向量集,但卻沒有時間或資源來執行這些向量。因此,模擬器供應商們試圖確定‘最佳’的向量集,而不同向量集的差別在於所提供的覆蓋率。


圖1: 設計與驗證各方面。

設計在不斷產生變化,而如今的驗證技術已經過時。隨著SystemC等新語言的推出,特別是事務級建模的出現,設計師們可以在更高的抽象層級上進行思考和工作。IP使用的增加也使設計師們更加注重系統級效應、模組的交互以及系統架構。驗證必須反映這些設計方法的變化,而這就要求下文所述的三大獨立技術的融合和成熟。

設立驗證統一體

我們應該將驗證視為一個與設計流程平行的完整統一體,而不是單獨一項功能。在這個統一體中,每項任務執行系統某方面的驗證,例如功能、架構、性能、時序和實現。

讓我們先看一下圖1所示的簡化設計流程。在該設計流程的頂部是系統設計和演算法開發。大多數公司以書面形式完成這項工作,而小公司可能用UML、Matlab或具備所需抽象級的類似語言進行建模。但此時沒有考慮軟硬體之間的分割和演算法實現問題。

假設這一層上的所有對象都有模型,那麼設計師希望能夠驗證演算法是否正確,以及模組間的交互是否能夠在主要輸出上產生期望的功能。系統模擬器並不是什麼新鮮事物,但今天功能驗證因為不合適的模型而必須在流程的後期階段執行。

設計過程的下一階段是透過確定哪些功能分別由硬體和軟體實現,來設定解決方案的基本架構。這其中需要選擇將使用的大部份IP,特別是平台和基本的作業系統,因而相當準確的預測系統性能。

產業標準taxonomy2將其定義為抽象行為模型,它描述了一個組件的功能和時序,但沒有對其實現作出解釋。這種模型的介面實際上是密碼傳送,但包含實際數據,並能在上面執行正確的功能。

業界常把這些模型稱為‘事務處理’,因為它能夠核查負載係數、擁塞、資源利用以及其它系統因素。雖然目前已經出現了抽象的硬/軟體協同模擬,但由於缺少模型,很少有人能在現階段進行性能驗證,一般都要延遲到流程的後期階段。

在硬體方面,設計過程考慮了微架構決策,如要使用的平行數量、管線和資源共享等。這些決定影響到面積、功耗、延遲以及解決方案的吞吐量。

一旦在精確的抽象行為模型中加入實現細節,就產生了RTL模型。大多數公司從這裡開始驗證過程,包括系統級功能驗證、性能驗證和實現驗證。這些模型包含了有關驗證類型性能等冗餘細節,因而造成浪費。

諸如SystemC這類語言的推出使行為模型的開發成為可能,並為功能驗證的性能加入了更高的抽象層。但是,如果業界接受並使用這種抽象進行功能驗證,那麼還需要進行其它一些改變。

為了避免驗證效率的低下,我們必須理解圖1的每個階段。我們無需了解驗證架構如何實現,也不用按每個時脈驗證行為。RTL實現的驗證不需要詳細的時序。成功的驗證會把這些問題區分開來,並依靠其它工具來確保各階段所作假設的正確性並進行簡化。

抽象層向上提升

新推出的SystemC和SystemVerilog工具定位於兩個抽象層。第一個是由上向下的系統級工具,它們分析演算法和架構,然後實施最佳化。這些工具的使用目標是圖1所示的系統設計和分割階段。

圖2: 序列差異。

最近推出的許多工具都能夠對PrimeXsys4和OMAP5等預置平台進行快速模擬,能夠處理用戶製作的模組。這些以處理器模型為核心的系統,在典型Pentium平台上的執行速度可以達到數MIPS。

在這些模型的基礎上,就可以借助從架構或分割選擇中獲得的相當準確的資訊來執行大量的功能驗證。但是,我們無法獲悉這些模型是否在RTL級得到了正確實現。而這也正是大多數此類系統基於可用IP模組的原因。

第二種進行抽象方法是將自底向上的過程延續到更為抽象的設計描述層,此時的微架構細節插入了一個合成工具,而不是在描述中定義。這就是圖1所示的行為層。微架構細節顯示了一種演算法是如何被實現的。例如,實現乘法作業有多種方法,從單循環到需要多時脈的反覆‘移位和加’作業指令。

可以設立允許數據串流經多作業符的管線,並且透過資源共享和調度避免衝突。接受RTL設計並產生模擬模型的現有工具並不維護執行細節,但卻能將速度提高5倍或7倍以上。由業界人士所做的實驗已經顯示,全事務級模型的執行速度比等效的RTL模型快100到1000倍。

解決方案的關鍵

當設計規模達到千萬閘級時,測試向量執行的次數只佔可能設計行為的一小部份。回歸組件的範圍擴展到了數百至數千個向量集,執行時間為數天至數周,即使在模擬庫上。如果上述這些在每次修改後都要執行,那麼開發後期階段的修改代價實在是太過昂貴了。

如果想要解決上述驗證危機,那麼必須結合使用以下三種關鍵技術:

1. 忽略實現細節的高層模擬技術,適用於所需功能的高效模擬並進行性能評估。

2.確保一個具體實現在功能上與高層次模型相匹配的技術。

3.定義並檢查設計臨時屬性是否滿足規格的有效技術。

這三種技術目前正興起,許多高層模擬技術也已投入實際使用,雖然應用範圍還不是很廣。Accellera定義了聲明,網上也即將提供工具支援。序列等價驗證(Sequential equivalence checking)是業界的最新技術,序列差異見圖2。

圖2的頂部定義了系統行為,但沒有時脈驅動。換句話,它不能用上升沿CLK來表示,只有這樣圖2左邊的解決方案才可行。圖2右邊所示的解決方案同樣有效,它具有非常大的靈活性,允許使用更快的全局時脈或更少的矽片面積。

然而,證明這兩種方案在功能上等效相當困難。由於不知道控制觸發器的起始狀態,因此很難知道什麼時候作業開始或輸出有效。如果想證明這兩種解決方案在功能上等效,那麼必須解決這些差異。

在簡單的例子中定位問題是一件容易的事情,但是如果改用複雜的處理器管線,並使用模擬去發現所有可能的行為,那麼不僅耗時,而且極可能出錯。為了進行完整的驗證,可以使用2-power(輸入位數量+狀態位數量)向量。雖然不需要所有的向量,但確保高概率功能等效的向量數量非常大,這也解釋了為什麼大多數工程師一旦發現系統工作後就不願意對微架構作大幅度修改。

組合等價性驗證的關鍵是發現每個設計中相應的狀態記憶體,雖然不同設計可能採用不同的狀態編碼或者狀態記憶體很難被發現。而在序列等價性驗證中,設計可以根據相互的關係重新定時,這也意味著有些狀態可能只出現在建模的時刻。

圖2右邊所示的設計在暫存器中儲存中間值。其它設計不會這樣做,最多可能會在第一個加法器的輸出端產生臨時的訊號值。

序列等價性驗證器需要識別兩個設計中的對應值,然後確定該功能會在已定義的時間點之間出現。這叫做‘同步點’。只有兩個設計具有相似性,才可能簡化比較點的識別。

預測未來

未來方案成功的關鍵是使用正確的數據點和長期有效趨勢。當在閘級設計中實現過程進行更改時,在驗證之前會進行測試以避免對系統其餘部份的影響。

答案並不是執行完整的測試套件。組合等價性驗證可以解決這個問題,並使驗證向更高的抽象層轉移。當功能驗證集中於RTL級時,就可以製作時間更長、更具強韌性的測試。

同樣,序列等價性驗證可以排除大多數RTL級功能驗證的必要性。隨著PSL和SystemVerilog的標準化和廣泛化,臨時聲明正變得越來越先進,這意味著確保實現模型時序符合規格的解決方案正出現。高層模擬器(比執行在RTL級的現有模擬器速度更快)已證明它們能夠提供大量的功能驗證。

這三種向更高抽象層轉變所必需的技術目前已經各就其位並逐漸走向成熟。在不久的將來,我們可望看到驗證方法的長足進步,不僅能夠支援更大規模和更複雜的設計,還能夠積極影響設計流程的改善。

許多設計師很難設立和使用行為模型,因為他們無法針對RTL設計展開等價性驗證。不管是否採用行為合成工具,序列等價性驗證都將提高設計師的信心。值得慶幸的是,這些性能和品質上的改善可望繼續下去,直到下一個障礙出現在串流程中,其中包括管理設計中必要的一些平行層面。

作者: Brian Bailey

功能驗證諮詢顧問




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


EE人生人氣排行
 
返回頁首