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

SoC設計中基於PCI子系統的一體化驗証解決方案

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

關鍵字:PCI subsystem  PCI Sig  PCI Local Bus  PCI 2.2  PCI-X 

據統計,百萬閘級SoC的NRE費用已達到100萬美元,因此在SoC正式投產前開展全面完整的測試非常必要。本文將著重討論典型PCI子系統設計中的驗証策略及實現方法。包括功能和性能驗証在內的驗証策略充分應用了直接和偽隨機測試產生方法、協議檢查器和功能覆蓋分析方式,以期創造客觀公正的測試過程。

隨著採用即插即用IP的單晶片系統(SoC)設計逐步進入實用階段,元件與系統相容性測試問題變得越來越突出。問題的關鍵在於,IP的使用(如各式各樣的周邊元件互連介面PCI)對功能性驗証來說基本沒有什麼幫助。另外,隨著IP硬體和軟體的日趨複雜,對協議相容性和系統級驗証的要求也越來越高。PCI具有強大的互連機能,專門用於連接各種高性能周邊設備,如圖形處理器、全運動視頻處理器、SCSI和LAN等介面卡。目前為止全球已有70多個PCI組織(PCI貿易協會),而PCI也成為全世界最受歡迎的匯流排標準之一。

對於SoC設計人員來說,在SoC中嵌入PCI介面來橋接片上匯流排和片外PCI本地匯流排的確是一個非常好的解決方案。事實上,全球有許多ASIC和IP供應商已開始供應包含單主、單從和主從控制器在內的各種PCI和PCI-X介面控制器,而且這些控制器均支援同步和非同步PCI介面。建立PCI子系統驗証環境的首要目標是要實現適用於最新PCI匯流排介面元件和周邊元件的可再使用高效能隨插即用型驗証環境。

PCI子系統驗証會遇到包括PCI本地匯流排要求和系統級要求在內的很多挑戰。PCI本地匯流排結構功能十分強大,而且這種複雜的數據處理沒有固定的持續時間。另外,每個設計都會採納一系列供應商提出的實現方案,因此每個IP內核或周邊元件都有其特有的性能。而且PCI子系統是一種多層次的硬體?軟體系統,系統內的整體匯流排性能、頻寬和反應時間取決於系統負載特性、匯流排速度和頻寬(如圖1所示)。

模組測試環境

下面所要討論的PCI子系統驗証策略實現了模組化可再使用的測試開發和覆蓋分析環境,該環境適用於PCI介面和子系統級的功能驗証。利用簡單的網表實例和元件功能與地址結構可以簡化新元件和元件的整合。此外,所有的測試產生器、處理器、監視器和協議檢查器都是在PCI級開發完成的。

PCI測試環境提供了完整的基於‘PCI信號和系統測試綜合論壇’的PCI元件相容性測試套件。每項測試都需要進行嚴格的PCI協議檢查、功能覆蓋測試以及PCI元件與系統級功能的分析。功能覆蓋測試尤其重要,其結果可以用來客觀地評估元件和系統功能藉由驗証的程度,而且還能用來控制閉環測試。

除了基本的相容性測試外,PCI測試環境還支援測試開發,利用偽隨機處理產生器還可以驗証周邊設備的核心功能和性能。這些偽隨機處理產生器可以改變多種處理參數,如命令類型、脈衝長度、目標地址、元件請求速率以及重試率。最後,由於PCI子系統本質上是一個多層次的硬體?軟體系統,因此需要盡早地把診斷和元件驅動器與硬體模型模擬整合起來,這樣可以簡化軟體的開發和除錯。由於主機運行的是本地作業系統和驅動器,因此需要藉由中間處理器才能與PCI設備的硬體模擬協同工作。

PCI匯流排協議需要接受全面的PCI2.2和PCI-X匯流排處理規則檢查。本文討論的驗証策略採用了嚴格的客觀的驗証方法,要求為每項測試指標定義一組客觀的藉由?失敗標準。由於所定義的測試標準能滿足被測元件的性能要求,同時也滿足業界標準和規範,因此測試標準中的數據能與業界實際應用保持一致。

與業界規範的一致性

測試文件是在一系列相容性測試的基礎產生的,而這些符合PCI組織及系統測試綜合論壇規定的相容性測試又分為三個等級,它們是:PCI元件介面級;PCI系統介面級;獨立於元件的核心功能級。

元件介面相容性基礎測試是PCI國際組織定義的,其根據就是專用於元件的主從協議測試方案下的PCI2.2相容性檢查表及該表的PCI-X附錄。這個項目有限的協議測試方案是與主從元件所用的元件協議檢查表一起使用的,可作為PCI本地匯流排規範2.2的協議相容性測試的簡化規範,並且有助於設計檢查。當然前提條件是配置暫存器需要設置為適當的狀態,並由協議檢查器監視PCI匯流排。上述協議測試方案主要用於模擬環境,但也可用於硬體測試環境。

系統測試開發論壇(系統測試-介面)的PC99測試技術規範第4章-PCI測試規範提供了有關係統介面相容性測試的內容。另外,在論壇所提供的測試規範中還有許多針對不同設備類型如網卡、數據機等的專門測試技術規範。

獨立於設備的系統相容性測試需要考慮包括應用軟體、專用驅動器和設備特殊機能在內的多種硬體和軟體協議間的相互關係和影響,而且必須在功能和性能測試的基礎上做系統級結構相容性測試。另外,相容性測試需要具體到相容性測試覆蓋矩陣中的每個PCI元件和系統級性能。矩陣對照測試的依據是:

硬體和系統功能;各種晶片、電路板以及當前使用的系統級模擬模型配置

相容性測試覆蓋範圍

根據協議檢查器和功能覆蓋模型的藉由?失敗標準所制定的測試實現方法和測試結果,就很容易跟蹤PCI結構性特點以及晶片、電路板的測試範圍(大量隨機案例),並有利於開展系統級驗証測試。

驗証環境的具體實現過程還確定了另外的目標,包括:利用以數據處理為主,且適用於功能測試產生器、結果檢查器和結構性參考模型,可以提高編寫和再使用測試的效率;利用整合的模擬及功能覆蓋分析來開展閉環隨機測試,並向驗証小組不斷提供有益的幫助。

硬體?軟體介面的驗証

在PCI子系統驗証中有三種關鍵的硬體軟體介面必須正常工作,它們是:PCI設備驅動器、PCI基本輸入輸出系統(BOIS)以及用於支撐PCI自動配置的主作業系統。診斷程式將利用PCI驅動器和PCI BOIS程式來配置和執行記憶體及I/O匯流排周期,以測試主機及設備的作業過程,如正常的讀、寫和中斷。

本文採用了Avery設計系統公司提供的Verilog-C Kernel(VCK)和C語言來作為建立自動化測試平台、覆蓋分析和軟硬體協同模擬環境的主要工具。利用這些工具建立起的測試環境所支援的關鍵驗証技術和方法有:平行測試的自動化流水作業;偽隨機測試;用於處理器?測試開發的增強型Verilog HDL和C/C++(VCI API);靈活的軟硬體協同模擬;穩定的功能覆蓋分析和協議檢查;可升級性能的平行模擬。

Avery公司的VCK驗証環境支援驗証合作基礎設施(VCI),因此能夠滿足多種多樣的分佈式功能性驗証要求,包括基於C語言的測試開發,分佈式平行模擬以及對主機和嵌入式系統的軟硬體協同模擬。VCK可直接支援VCI功能,另外,基於ANSI C語言的應用程式介面(API)可與C/C++程式及Verilog PLI庫一起使用,因此任何標準的Verilog模擬器都能實現對VCI的支援。

覆蓋分析和協議檢查器

在大規模特別是包含有偽隨機驗証環境的驗証測試中,覆蓋測試的自動化是非常重要的,它能讓人很好地理解有大量測試案例的複雜測試過程。具體來說,覆蓋測試可用來正確評估測試的整體進程,去除那些重複的低效的測試案例,確定尚沒有被測試過的區域,並能識別那些回歸組件測試(Regression Suites)。另外,覆蓋測試可以劃分為兩大類,即代碼覆蓋(基於程式)測試和功能覆蓋(特殊處理有關)測試。

代碼覆蓋測試會在模擬過程期間測試設計中哪些部份已經運行了測試程式,某個高級行為會指示所有的狀態機控制器、數據通道和控制,從而給出是否至少以一個工作模式藉由測試的資訊。代碼覆蓋工具還會測試累積性模擬,並對狀態值和狀態變換、數據和控制值以及線覆蓋實施追蹤。

功能覆蓋測試方法需要用到監視器和聲明檢查器()。藉由收集模擬過程中有關臨時相關性組合所產生的資訊以及狀態條件和次序資訊,監視器可以管理整個驗証過程。因此可以用這種方式在結構性能的測試作業範圍內對一項測試或一組測試作出評估。根據模擬過程中測得的覆蓋水平,可以往功能測試項目中動態增加更多的偽隨機測試案例,或者增加全新的測試。覆蓋分析數據可以保存在數據庫中以備今後更好地集中、分類和分析。監視器可提供不止一種的特殊功能覆蓋分析方法。

然而,現在仍不能保証這些固定的、偽隨機性的功能測試能用預期的所有系統作業模式來試驗設計。此外,用於PCI的小型覆蓋監視器子系統包含有匯流排命令類型、目標地址、數據處理類型(消息、延遲、分支與合併)和長度、終止和故障條件。

在模擬期間,協議檢查器會在協議、結構和演算法沒有遭到破壞的前提下對系統性能和假設條件進行驗証。而在複雜的平行系統中,協議規則的相互影響是非常微妙的,很容易遺漏一些問題,因此需要為每個協議規則製作藉由?失敗聲明。一份協議規則必須支援信號與事件之間複雜的臨時性關係,而PCI協議規則的一個小型化子集需要包含元件選擇時序、最大處理長度、數據相位時序和終止及重試資訊。

偽隨機測試基礎

開展系統級相容性驗証最重要的是要利用隨機測試產生偏僻案例和重點測試,一般可以藉由系統性地產生大量高度相關的處理特性來完成。在嘗試了所有的人工測試後就會發現,偽隨機測試方法能提供更有效的途徑來提高功能覆蓋水平。偽隨機測試是一種高效率的智慧化測試方法,它不像窮舉測試需要長時間的模擬。從這些非常有用的隨機方法中可以發現限制性隨機案例、循環案例、邊界案例和一些加權案例演算法。另外,對多個結構化參數之間固有關係的充分理解能改進隨機案例的品質,並提高設計人員的設計效率。

偽隨機測試過程有三個步驟。首先,需要根據特定的測試規範選擇結構化性能特點;其次,要獲得可支援測試內容包括隨機參數的測試樣板;第三,需要開發一個能實現測試樣板與硬體模型之間物理介面的處理器。當模擬過程同時用到多個隨機測試產生器時,由於子系統中相互獨立的功能間會出現較為複雜的關係,因此常常會產生很多問題,這也是PCI子系統的功能與性能驗証所用的隨機測試中的重要因素。

可增強測試的Verilog語言延伸

Verilog硬體描述語言(HDL)中通常都有測試產生器、協議檢查器和監視器的代碼。Verilog支援平行處理,其數據類型可支援硬體實現、通用數據類型,其任務與函數可改進模組性能。然而,與一般的編程語言相比,Verilog語言缺乏用戶可定義的數據結構、巨集、強大的隨機函數以及可互處理的同步原始對象,如鎖、互斥體和旗語。在測試平台的開發中,無論是Verilog還是與它同類的一般性編程語言都無法提供有效的表達方法來開發高效的偽隨機測試、臨時協議檢查器和功能覆蓋監視器。

Verilog HDL驗証語言延伸(VLE)是VCK的一個子集,它能提供一些必需的函數與數據類型,可用於開發人工指導測試和自動偽隨機指導測試以及結果檢查器、功能覆蓋圖和協議檢查器。幸運的是,由於VLE是Verilog語言的擴展,設計人員能很容易地學會VLE新功能的用法。VLE的基礎是IEEE 1364-1995 Verilog HDL標準中提到的Verilog用戶自定義任務和函數語法。VLE具有以下一些性能特點:

1. 列表功能支援用於保持內容集的新數據類型。所提供的列表是可變的、未排序的,包含所有Verilog和VLE能支援的數據類型,甚至也包括列表類型。同時列表也支援範圍符號(Range Notation),因此可提供數值範圍的定義。

2. 隨機變量函數能將一個或多個隨機值產生器聲明為標準的包括VLE記錄類型在內的Verilog數據類型。同時它還支援不少隨機數位產生器演算法,包括簡單隨機、加權分佈、邊界案例以及在不重複的情況下能一次窮舉所有值的循環再生演算法。合法的隨機值子集被定義為列表函數。此外,利用隨機變量組和其它特殊的隨機變量相關函數可建立複雜的相關性,並且藉由調用更新函數(Update Function)可給隨機變量賦值。

3. 信號歷史函數可提供對信號歷史的存取,包括變量值和修改次數。查詢函數能在指定的模擬時間存取變量歷史,或者存取可查尋到前面N個數值的數值修改歷史索引。

4. 協議和臨時檢查任務所提供的函數可用於檢查變量與表達式之間的臨時關係。

5. 旗語任務所提供的同步函數可用於控制對共享資源的存取,並具有延緩和即時兩種選項。另外,這是一種計數式旗語,對資源的存取不具備排他性。

6. 任務增強功能支援引用性調用,並能藉由建立任務變量的保護性拷貝支援並發調用。任務變量現在已包含了記憶體和記錄類型(表1)。

7. 記錄函數具有聲明和存取記錄的功能。這?的記錄非常類似於C語言中的結構或者C++中的容器對象(Container Object),記錄的每個域可以是任何Verilog或VLE數據類型,甚至可以是記錄類型。記錄數據類型提供了功能強大的用戶自定義Verilog結構。另外,可直接映射為C結構的“$c_record”能被直接建立。

功能覆蓋函數(Profile Function)用於分析模擬的功能覆蓋,而功能覆蓋監視器可以跟蹤變量中數值的變化,包括狀態機的變化。功能覆蓋函數可以聲明功能覆蓋監視器、設置變量的合法值、控制人工和自動的功能覆蓋測試升級,還能聲明功能覆蓋方程並報告功能覆蓋結果。

功能覆蓋測試可以在模擬期間動態地進行,並支援覆蓋面的擴大。

軟體抽象級測試

雖然利用基於VLE的自動化測試平台可以改善硬體測試性能,但系統相容性方面仍需慎重考慮軟硬體之間的相互作用。ASIC和SoC的複雜結構給晶片處理器、固件和RTOS(即時作業系統)的設計敲響了警鐘。系統綜合測試的重點在於固件和設備驅動器的除錯,因此這兩個因素形成了基於軟體的應用程式、高層協議堆棧、RTOS和獨立嵌入式系統的硬體平台結構之間的標準介面。

系統相容性驗証需要開發工作於軟體抽象級的測試,並提供與系統設備的軟體數據表示模型和演算法更好的一致性。診斷測試程式是在軟硬體協同模擬環境下運行的,該模擬環境採用了基於VCI API的硬體軟體處理器。SoC設計中的隨插即用IP元件的生命力最大程度上要取決於驗証環境的品質和完整性,PCI本地匯流排標準中提供了一個理想的案例可作參考。PCI組織和系統測試綜合論壇已明確客觀地定義了PCI元件與系統級相容性驗証的具體要求。

[Integrated System Design]

作者:Dave Duxstad




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


EE人生人氣排行
 
返回頁首