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

驗證方法學必須與複雜IP同步發展

上網時間: 2007年10月31日     打印版  Bookmark and Share  字型大小:  

關鍵字:驗證  測試台  VD3204x 

今天,IP核心驗證越來越複雜,而且非常耗時,特別是像CPU、浮點運算單元、數位訊號處理器這類的處理器核心。目前在性能上顯著強過前代處理器的許多新型嵌入式向量處理器,在設計和驗證方面均存在著艱鉅的挑戰。恩智浦半導體(前飛利浦半導體)的Adelante VD3204x嵌入式向量DSP系列元件即為其中之一。

為了在DSP-IC上改進DSP技術的品質,恩智浦半導體的一個部門將驗證方面的經驗轉換成了推進驗證製程發展的工具和技術。

製作新的驗證方案

恩智浦的嵌入式向量處理器核心以超長指令集(VLIW)架構為基礎,支援高平行度的標量和向量作業,目標是各種多標準的通訊技術,如3G~3.5G、WLAN和數位視訊廣播(手機電視)等。於是,在驗證過程中必須測試許多邊界條件,將成為一項前提條件。而採用DSP技術的用戶,則可仰賴具有高品質的強韌核心,將精力集中到SoC設計上。

在目前DSP架構的複雜性下,採用隨機產生測試且只有少量功能覆蓋點的傳統方案已經過時。因此,從計劃到收斂(plan-to-closure)的完整方法將選用覆蓋率驅動的隨機約束驗證架構。為了做到這一點,我們將採用Cadence公司的plan-to-closure方法學,包括該公司的Specman Elite測試平台自動解決方案和驗證管理平台。

選用的方法要求採用可執行的驗證計劃(vPlan)作為舊式基於紙張之測試計劃的替代方案。其核心目標是在過程早期就確定驗證和覆蓋率,然後貫穿計劃的整個過程,並依設立的目標報告進度。vPlan的性能已經過證實,它不僅可用來驗證獨立的功能區塊,還能將這些功能區塊整合在一個主要的子單元或完整晶片中。

計劃階段判斷需要驗證的特定功能,包括邊界案例。這一過程是在測試台中編寫功能覆蓋程式碼(採用e語言),用以判斷與每個功能覆蓋點相關的特性。

在整個驗證過程中產生的報告指明了被覆蓋(和尚未覆蓋)的點。針對每種情況,覆蓋率參數都將被返回給原始的vPlan。

多級驗證策略

為了避免研發過程中的依賴性,可以選用多級驗證策略,該策略專門將核心驗證與其他的DSP子系統(DSS)分隔開。在e語言中,匯流排功能模型(BFM)是專門為了核心開發的。BFM具有DSS驗證所需的足夠功能,可以與RTL程式碼和核心自身的驗證同時產生。透過執行實際的軟體,最後的驗證階段重點將放在RTL核心和其它DSS元件的整合上。

為了在驗證核心之前驗證基本的功能,RTL設計師透過激勵輸入並檢查輸出的方式對一些單獨的功能區進行基本的測試。這種方法主要用於介面功能模組。大多數獨立功能區塊是利用核心測試環境的一個子集進行測試的。

完整核心的獨立驗證廣泛地依賴於指令集模擬器(ISS),它是Adelante軟體開發套件(SDK)中的一個組件。ISS包括全部暫存器的管線執行週期精密度,這些暫存器是在DSP的指令集架構(ISA)中定義的。這意味著在每一個執行週期的末尾,這些暫存器的狀態與RTL中相應暫存器是精確匹配的。逐個週期地比較ISS和RTL暫存器的狀態是核心驗證中使用的最重要方法。

如圖1所述,所有的核心測試是隨著程式在DSP核心上的執行來實現的。程式可透過測試產生器製作,用的是e語言,它能產生指令序列,並試圖用不同的作業數來執行所有不同的DSP向量和標量運算。

圖1:核心驗證流程利用e編寫的組件鏈接RTL和ISS模擬。
圖1:核心驗證流程利用e編寫的組件鏈接RTL和ISS模擬。

針對測試產生的約束(也用e表達)被分為如下兩類:

1. 擷取有關DSP指令集基本規則的‘硬’約束,例如哪些運算可以平行執行。

2. 指明被測子單元中的子單元和運算的‘測試’約束。

多工測試功能允許我們在模擬伺服器陣列上平行執行任務,減少了每次回歸執行的總時間。測試產生階段的輸出是一個程式映像,可以直接下載到DSP的程式記憶體中,並在RTL模擬中執行。

儘管硬約束能夠擷取絕大部份依賴於結構的問題,但在執行的不同階段多指令間還會偶爾出現許多微妙的資源衝突。與試圖利用約束擷取所有這些規則相反,可以利用ISS及其詳細的指令集架構模型。

解決衝突

除了計算每條指令的預期結果,ISS還檢查該指令針對管線內其他指令的有效性。如果發現資源衝突,一個錯誤條件將會報告給測試產生器。該測試產生器具有‘備份’和重發指令的能力,因此可以避免這些衝突。事實上,在最終測試程式中只包含無衝突的指令。

當在核心驗證環境中執行每個測試程式時,ISS是與DSP RTL平行執行程式的。這兩種表述經對齊後再被包含進一個e檢查程式碼,該程式碼在每個管線執行週期的末端比較所有ISA定義的暫存器狀態。這種能夠發現主要缺陷的方法已被證明是行之有效的。在針對ISS驗證RTL的過程中,也能夠檢測出ISS中的錯誤。

應用覆蓋率指標

自動測試台為每項測試收集了具體的覆蓋率指標。其結果是產生針對計劃的全過程掃描。

除了功能覆蓋點外,傳統的程式碼覆蓋方法也可用來幫助識別無法被充分測試的部份RTL程式碼。模擬器的本地程式碼覆蓋功能可用來收集每次模擬測試的結果並對結果進行合併。為了產生單個的頂層覆蓋視圖,可以書寫腳本將功能覆蓋與模擬器的程式碼覆蓋報告結合。

第一步集中於進入DSS驗證之前,獨立核心驗證過程期間指令的單獨正確執行上。當然,DSP運算的其他方面,例如中斷處理,是在DSS驗證過程中測試並在整合驗證階段期間確認的。

轉到DSS組件

在對整個子系統進行驗證之前,我們先用獨立的測試台對幾個DSS RTL組件進行了驗證,這將簡化一些邊界案例的執行。此外,組件的平行測試避免了驗證過程中由於一定的依賴性所產生的延遲。

為了執行測試序列,採用了一個基於e的測試台。記錄板對結果進行追蹤以驗證三個獨立的DSS功能區塊。

在組件級驗證過程的同時,DSP-IC驗證工程師還開發出了用於核心的BFM,允許提前啟動DSS驗證。另外,BFM還提供了對約束隨機激勵的精密控制,其模擬速度快過完全的RTL實現。

圖2描述了BFM的主要功能以及整個DSS驗證環境。與組件級測試台類似,該環境採用eVCs和記錄板來產生流量和追蹤結果。

圖2:DSS的絕大多數驗證利用了DSP核心的一個BFM。
圖2:DSS的絕大多數驗證利用了DSP核心的一個BFM。

再使用優勢

這種隨機約束並以覆蓋驅動的環境採用e編寫的物件導向功能,允許高度的驗證再使用。在完整的DSS驗證過程中,組件級eVCs、記錄板和序列都已得到再使用。另外,還採用了一個商用的AXI eVC和共享的APB eVC軟體,可以充分利用前人所做的驗證工作。

就DSP核心驗證而言,已證明覆蓋方法對DSS驗證非常重要。DSS vPLAN包括一個基於架構師、設計師和驗證工程師推薦的具體功能列表。當進行測試時,用於全部RTL DSS組件的程式碼覆蓋參量被收集到一起,此外,功能覆蓋結果也被收集和合併。

DSP-IC的驗證策略在每一層都具有通用的主題:即廣泛地利用隨機約束激勵,複雜的自動測試台環境,可執行的驗證計劃,以及一個對能夠度量驗證過程的覆蓋率參量的依賴性。能夠自動執行回歸執行並精確地報告測試結果也很有用處。

用於開發DSP-IC先進方法的投資將會取得豐厚的匯報。Adelante VD3204x嵌入式向量DSP核心已被證明是一款高品質的DSP,極具靈活性,並且易於整合,至今已經用於多個SoC設計中。該方法被證實有助於我們目標的實現,其再使用能力對VD3204x嵌入式向量DSP系列產品的進一步發展來說也至關重要。

作者:Roger Witlox

Ronald Heijmans

資深驗證工程師

Chris Wieckardt

驗證工程師

NXP Semiconductors




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


EE人生人氣排行
 
返回頁首