新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 可重定位的基于事務的系統(tǒng)級驗證

可重定位的基于事務的系統(tǒng)級驗證

作者:■美國Zaiq公司 Damian Deneault,Rish McAndrew\美國Aptix公司 時間:2005-04-27 來源:eaw 收藏

功能驗證已經(jīng)成為開發(fā)的主要問題。隨著一些復雜的規(guī)模超過兩千萬門,以及對開發(fā)和集成嵌入式軟件的需求持續(xù)增加,軟件模擬器已經(jīng)力所不及。在設計過程需要幾百萬個時鐘周期來充分測試和驗證軟件功能的情況下,軟件仿真器的性能下降到1-5Hz。按照這種速率,軟件調(diào)試需要幾年的時間。如果設計項目組不能夠投入這么多的時間,則意味著芯片制造出來之后,在加電后的幾秒內(nèi)就會出現(xiàn)錯誤。
基于事務的驗證允許代表單個或者多個時鐘周期的大量數(shù)據(jù)不經(jīng)多次調(diào)用而直接進入模擬器,極大地提高了模擬性能。到目前為止,驗證環(huán)境都是基于事件的,也就是說必須在每個時鐘周期甚至子周期提供驗證數(shù)據(jù)。大多數(shù)硬件驗證語言,如Synopsys的Vera或Verisity的e語言都是這樣工作的。而事務則可以處理結(jié)構(gòu)化可視數(shù)據(jù)類型。例如,一個以太網(wǎng)事務可以處理一個完整的以太網(wǎng)數(shù)據(jù)包;一個PCI DMA總線事務可以處理一個完整的突發(fā)傳輸。
仿真器外部接口的增強提高了驗證通信接口的性能。例如,仿真器的DirectC調(diào)用使驗證性能提高了大約一個數(shù)量級。然而這種仿真性能和驗證完整性的提高,僅僅把軟件調(diào)試周期減少到一年以內(nèi),仍然存在難以容忍的芯片設計質(zhì)量和上市時間的矛盾。低成本的服務器集群也不是理想的解決方案,因為它們只能解決多個小型測試的回歸問題,而不能加速像軟件集成這樣的線性過程。因此,對于大多數(shù)設計團隊,真正的應用開發(fā)和調(diào)試過程只有在拿到硅芯片之后才能開始。

仿真
多年來,仿真和模擬加速硬件系統(tǒng)已經(jīng)增強了模擬性能。這些硬件系統(tǒng)提供的性能加速從模擬加速器的幾十kHz到Aptix系統(tǒng)的幾十MHz。例如,運行在Aptix System Explore上的設計能夠以實時或者接近于實時的速度運行,與實際操作環(huán)境相互作用。
過去幾年開發(fā)的基于事務的系統(tǒng)級驗證技術能夠極大地影響SoC驗證的效率。例如,Zaiq的方法包含一個事務處理器(transactor)結(jié)構(gòu),可以無縫地重新定位仿真和模擬?,F(xiàn)在Aptix的最新產(chǎn)品是Aptix SoC Validation Lab。
Zaiq基于事務的驗證技術將處理器定義為HDL總線功能模型(BFM)和C語言間的接口部件。C語言一側(cè)包括測試控制、數(shù)據(jù)產(chǎn)生與檢查,以及C/C++抽象層,后者執(zhí)行數(shù)據(jù)操作,如分段與重組、打包和協(xié)議相關的功能。(見圖1)。
這種面向事務的定位,加上平臺庫所提供的數(shù)據(jù)打包能力具有多個優(yōu)點。首先,它為測試者提供了一個結(jié)構(gòu)化的視角和簡單的應用程序接口(API)。這可以把測試者從底層總線協(xié)議的細節(jié)中解放出來,只關注于產(chǎn)生完成測試目標所需要的條件,從而產(chǎn)生更有效率的測試代碼編寫和更高的測試質(zhì)量。其次,它提供可重用性,即通過改變底層的BFM模型,為一個接口所寫的測試可以運行在另外一個不同的接口上。最后,它可以提高性能。基于事務的傳輸層把C語言一側(cè)的事務請求映射到HDL寄存器,控制BFM中的狀態(tài)機。相對于發(fā)送周期性的信號請求,或者單個信號的編程語言接口(PLI)請求,使用事務傳輸層具有巨大的速度優(yōu)勢。在很多情況下,性能的提升超過幾個數(shù)量級。
傳輸層的TestBenchPlus (TBP)軟件支持線程,這樣可以啟動多個并發(fā)任務。這一特性加強了對被測試器件(DUT)的控制,更接近于仿真真實的系統(tǒng)級性能。
另外,Zaiq提供了一個應用型平臺庫和環(huán)境工具,以方便串行協(xié)議數(shù)據(jù)的產(chǎn)生與檢查、回歸配置管理、性能監(jiān)控和控制功能、以及圖形和命令行用戶界面的使用。

基于事務的仿真
目前已有兩項技術,基于事務的仿真和系統(tǒng)級仿真,問題是如何無縫地提供基于事務的仿真系統(tǒng)。在Aptix SoC Validation Lab以及其他與協(xié)同仿真相關產(chǎn)品的基礎上,Zaiq和Aptix已達成技術和市場合作關系來組合這兩項關鍵技術,新產(chǎn)品稱為PREP Messenger。對PREP Messenger的要求如下:
?在系統(tǒng)級驗證方面提供已被Zaiq證明是成功的豐富測試激勵方式,包括復雜數(shù)據(jù)類型和協(xié)議的產(chǎn)生,自檢查測試和隨機激勵。
?利用Aptix在硬件仿真方面的專業(yè)經(jīng)驗,達到相對于軟件仿真器的幾個數(shù)量級的性能提高。
?在不需要修改、轉(zhuǎn)換步驟,或者維持多組代碼的基礎上,允許相同的測試和BFM模型無縫地應用于模擬和仿真。
Zaiq和Aptix認識到讓PREP Messenger使用Accelera標準協(xié)同仿真API:建模接口(SCE-MI)的優(yōu)勢,該標準對基于事務的協(xié)同仿真提供了標準定義。SCE-MI標準定義了與硬件信息端口通信的軟件代理,結(jié)構(gòu)上與Zaiq的PREP環(huán)境相匹配。SCE-MI允許在軟件代理和HDL信息端口之間有多個虛擬通信通道。在事務架構(gòu)的硬件和軟件兩方面都符合工業(yè)標準接口,再加上相對于專用接口的性能優(yōu)勢,PREP Messenger可以保護開發(fā)者在驗證IP上的努力。Aptix/Zaiq的SCI-MI基礎結(jié)構(gòu)可由SCE-MI Tranporte獨立提供,并包含在PREP Messenger標準協(xié)同仿真?zhèn)鬏攲又小?BR>提供與SCE-MI兼容的基于事務的仿真涉及如下開發(fā)內(nèi)容:
1. 利用Aptix Expeditor高速物理接口實現(xiàn)SCE-MI通信基礎結(jié)構(gòu)。
2. 支持通過SCE-MI基礎結(jié)構(gòu)與Aptix System Explore平臺的通信,或者通過工業(yè)標準接口與軟件仿真器通信,同時對測試編寫者保持相同的系統(tǒng)驗證API。
3. 開發(fā)一個可綜合的BFM結(jié)構(gòu),包括與SCE-MI信息端口的標準接口,在不需要改變BFM的情況下,按照HDL進行軟件模擬,然后綜合成硬件仿真。
目的是既不改變高層基礎結(jié)構(gòu),也不改變測試代碼,從而當HDL和測試平臺的HDL部分(SCE-MI BFM)被映射進仿真器時,測試環(huán)境的其它部分保持不變。這種可重定位的概念意味著測試環(huán)境可以透明、無縫地從純軟件模擬轉(zhuǎn)換到高速硬件仿真。用這種方法,運行在最新PC平臺的Linux系統(tǒng)下,可以實現(xiàn)超過軟件模擬器20000倍的性能提高。
對于每個可綜合的BFM模型都有一個對應的C/C++側(cè)的函數(shù)。這個C語言側(cè)的處理器負責對高層協(xié)議建模和驗證,從而為測試編寫者提供了一個簡單的類似于加載/存儲的API。C語言側(cè)的多個處理器都作為一個單獨的插入執(zhí)行,在模擬和仿真中插入控制和切換都同樣由傳輸層處理,從而提供了硬件系統(tǒng)測試中所需要的并行操作。

SoC實例
為了展示PREP Messenger的強大能力,看一下假設的網(wǎng)絡SoC(NSoC),該實例實現(xiàn)了一個簡單的SOHO完整路由芯片。圖2所示的網(wǎng)絡SoC包含兩個主要部分。第一部分包含ARM 926EJ-S內(nèi)核,用于芯片的初始化、配置路由表和數(shù)據(jù)類型,并且實現(xiàn)USB2.0的用戶接口。該芯片中的ARM系統(tǒng)是ARM PrimeXsys平臺的一個子集。芯片的另一部分實現(xiàn)網(wǎng)絡路由引擎,通過一個雙端口的數(shù)據(jù)包存儲器分別與嵌入式微處理器和ARM AMBA-AHB總線相連。芯片的輸入側(cè)能夠把4個支持多協(xié)議的輸入端口與2個支持多協(xié)議的輸出端口相連。
NSoC的系統(tǒng)級測試集中在兩個方面:首先是網(wǎng)絡子系統(tǒng)的數(shù)據(jù)處理和協(xié)議檢查;其次是網(wǎng)絡子系統(tǒng)與用來配置和監(jiān)視系統(tǒng)的ARM代碼的兼容性。
在NSoC的驗證環(huán)境中,C語言測試組產(chǎn)生網(wǎng)絡子系統(tǒng)的測試條件。該測試條件詳細說明應用于NSoC的分組數(shù)據(jù)格式和協(xié)議:長度、載荷、報頭、數(shù)據(jù)包的間隔時間,以及錯誤情況。該條件即包括用來滿足特定事件覆蓋的直接測試用例,以及基于直接測試用來覆蓋測試編寫者沒有詳細描述情況的隨機激勵。
當今的數(shù)據(jù)、計算機和通信系統(tǒng)包含迅速增加的協(xié)議、格式和復雜層次。PREP平臺庫提供這種功能的可重用性,并且把這種復雜性跟測試編寫者、BFM模型編寫者以及SoC芯片設計者隔離開。數(shù)據(jù)產(chǎn)生庫提供大多數(shù)標準數(shù)據(jù)類型和協(xié)議,如以太網(wǎng)、Utopia接口、ATM、AMBA-AHB、AXI和PCIX。軟件計分板系統(tǒng)跟蹤加到系統(tǒng)上的激勵,并且自動檢查結(jié)果。測試編寫者可以完全描述數(shù)據(jù)類型來實現(xiàn)直接測試用例,或者允許平臺庫隨機產(chǎn)生數(shù)據(jù)類型的部分或者所有域?qū)ο到y(tǒng)進行實驗。
BFM模型對每個接口或者協(xié)議產(chǎn)生適當?shù)男盘柡椭芷?。它們產(chǎn)生總線周期,發(fā)送和接收數(shù)據(jù),監(jiān)視錯誤。它們可以連接到一個標準接口或者專用接口。
傳輸層通過一個事務API進行訪問,把適當?shù)氖聞照埱蟀l(fā)送給BFM模型。傳輸層使用標準的Verilog PLI或VHDL FLI接口作軟件模擬,使用SCE-MI傳輸器API作協(xié)同仿真。
每個事務處理器含一個帶有與SCE-MI硬件側(cè)信息端口接口的可綜合BFM核;與之相對應的C語言側(cè)函數(shù)來作協(xié)議檢查、錯誤處理、排隊和SCE-MI功能測試有關的處理,并且具有和SCE-MI軟件側(cè)信息端口代理的接口,以及一個可選的平臺庫的API。
Zaiq提供SYSTEMware驗證元件庫(SVC)。SVC是由Zaiq支持和驗證過的成熟的事務處理器,用來支持行業(yè)標準接口。SVC由可綜合的HDL編寫的BFM組成,與SCE-MI API兼容。它們有一個對應運行在自己線程內(nèi)的C函數(shù),來實現(xiàn)高層抽象,并且能夠無縫地重定位于模擬或仿真。
為了產(chǎn)生符合實際的測試,考慮單個分組從測試組1經(jīng)過該NSoC重新回到測試的流程。
1. 測試指示平臺庫產(chǎn)生一個隨機的分組負荷。
2. 平臺庫構(gòu)成分組,把它送給端口1 C語言側(cè)的Xactor“IP-1”。
3. Xactor“IP-1”通過傳輸層把分組送給SCE-MI兼容的BFM模型“IP-1”,后者接著緩存數(shù)據(jù),在被測芯片的時鐘控制下,把分組發(fā)送給被測芯片。
4. 分組流經(jīng)整個NSoC,通過輸出端口0的BFM模型“OP-0”和Xactor“OP-0”返回測試組1,由測試代碼檢驗正確性。

用于仿真的可重定位NSoC
Aptix Design Pilot可把所有的HDL映射到System Explore中的多個FPGA中。測試平臺中的BFM模型是和SCE-MI兼容并且可綜合的,它們也同樣被映射到System Explorer中的FPGA中。傳輸層使用SCE-MI傳輸器和Aptix Expeditor作為從C語言一側(cè)移動分組和控制數(shù)據(jù)的高速鏈路。由SCE-MI傳輸器完成多個通信通道的處理,它在Expeditor的超高速物理鏈路上透明地多路傳輸數(shù)據(jù)。對每個Accellera標準,SCE-MI傳輸器同樣支持時鐘管理和控制。

從協(xié)同模擬到協(xié)同仿真
系統(tǒng)級測試的另一個重要方面是專用邏輯(如該例中的網(wǎng)絡子系統(tǒng)部分)與嵌入式處理器硬件和軟件的相互作用。這種相互作用必須被測試到,以保證硬件的正確性,并且加速硬件/軟件的集成。
系統(tǒng)測試通過一系列的讀寫操作來啟動和配置網(wǎng)絡子系統(tǒng)。這些讀寫操作是由系統(tǒng)級測試發(fā)起的,表示為嵌入式處理器在啟動和芯片工作期間的寄存器配置動作。
測試序列詳細描述傳輸層在AHB SVC-BFM模型(SCE-MI兼容的SYSTEMware驗證部分)上的讀寫事務。AHB SVC-BFM模型在模擬或仿真模式下產(chǎn)生ARM AMBA-AHB總線上的總線周期。系統(tǒng)測試檢查適當?shù)目偩€周期響應,驗證總線基本接口、地址映射與寄存器定義。在平臺庫的幫助下,系統(tǒng)測試檢查通過整個芯片的數(shù)據(jù)流。
測試程序通過事務處理器和BFM模型,可以從所有關鍵的系統(tǒng)級的有利位置來控制和觀察SoC芯片設計:即每個SoC芯片的主要I/O接口,及芯片內(nèi)部的主要系統(tǒng)總線。因為測試是在事務的抽象級編寫的,因此測試代碼可以比開發(fā)者所需要關注的每個引腳的每個時鐘周期更早開發(fā)出來。在產(chǎn)品的早期階段開發(fā)的測試代碼可以在以后的所有階段使用。這些因素產(chǎn)生了一個非常強大和高效率的系統(tǒng)驗證環(huán)境。
在測試完軟件接口、寄存器定義和初始化順序后,協(xié)同模擬可以接著完成軟件調(diào)試。這時,整個應用軟件編譯到實際的目標處理器上(如ARM 926),目標代碼運行在ARM Developer Suite(ADS)上。
包含在ADS中的ARMulator指令集仿真器(ISS)捕獲對AHB總線地址的讀寫操作。傳輸層把捕獲的讀和寫送給AHB BFM模型;在模擬或仿真中產(chǎn)生總線周期;響應并被返回給ISS。
ADS提供一個高效和高度精確的軟件開發(fā)環(huán)境用來生成和調(diào)試應用軟件。PREP環(huán)境、事務傳輸層、BFM模型與HDL設計可以精確評估硬件和軟件之間的相互作用。系統(tǒng)級測試和平臺庫產(chǎn)生大量的NSoC激勵,仔細調(diào)試錯誤或硬件和軟件之間的算法。
PREP Messenger和System Explorer模擬平臺的事務基礎比軟件模擬器快幾個數(shù)量級,允許調(diào)試整個軟件包,而不僅僅是代碼片斷。
在與ISS協(xié)同模擬后,處理器內(nèi)核可以放置在仿真器硬件中。編譯后的代碼存放在EPROM或存儲器中。處理器內(nèi)核可以實現(xiàn)為“硬IP”,如封裝后的測試芯片,或者“軟宏”,映射到System Explorer FPGA中。處理器完全以硬件執(zhí)行代碼,以獲取最大性能,同時允許來自系統(tǒng)測試的豐富激勵、流量和錯誤情況。大多數(shù)處理器(包括ARM的)提供一個IEEE JTAG或其他的電路內(nèi)仿真器(ICE)接口,用來加載存儲器,檢查寄存器和控制程序運行。
在驗證的最后階段,SoC原型的部分或者全部主要的接口都可以連接到實際的激勵源上,從而把SoC驗證從直接和隨機測試擴展到可能還沒有覆蓋到的兼容性、互通性和集成效果測試。

結(jié)語
在單個芯片上,集成電路門數(shù)的持續(xù)增加和容納整個系統(tǒng)的能力,包括一個或者多個軟件控制的處理器,對驗證整個芯片功能的傳統(tǒng)模擬方法產(chǎn)生了持續(xù)增加的壓力。大多數(shù)SoC芯片是多標準,它們支持多個標準的內(nèi)部或外部接口標準,實現(xiàn)了第三方的IP核。確保正確地集成定制和可重用的IP核,并且能夠被編程執(zhí)行特定的功能,同時符合行業(yè)接口標準是一個嚴峻的驗證挑戰(zhàn)。對于長時間的線性過程,例如引導一個操作系統(tǒng),模擬已超出了其能力范圍。
把系統(tǒng)級測試平臺移到抽象的事務級,除性能之外,比引腳級的事件驅(qū)動或精確周期的模擬有更多的優(yōu)勢。而且,使用成熟的驗證IP產(chǎn)生測試程序可以用在項目的多個階段,提高測試質(zhì)量。成熟的驗證IP對于行業(yè)標準接口更有吸引力,因為供應商可以把它們的專業(yè)知識運用在IP中,由多個客戶來支付IP的開發(fā)費用。
最后,綜合被測試設計和測試平臺的所有精確周期部分,在硬件仿真環(huán)境下得到網(wǎng)表,可以實現(xiàn)相對于軟件模擬3到4個數(shù)量級的性能提升。
使用事務級的測試平臺,以及Aptix SoC Validation Lab工具,如PREP Messenger,完全可以應對幾百萬門SoC芯片的驗證挑戰(zhàn)?!?(曉東譯)



關鍵詞: SoC

評論


相關推薦

技術專區(qū)

關閉