《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 基于RVM的可重用性SoC測試平臺設(shè)計(jì)

基于RVM的可重用性SoC測試平臺設(shè)計(jì)

2008-05-29
作者:張旭峰,, 楊豐瑞, 鄭建宏

  摘 要: 簡要介紹了一種基于事務(wù)的用于SoC系統(tǒng)芯片驗(yàn)證的RVM驗(yàn)證方法" title="驗(yàn)證方法">驗(yàn)證方法學(xué),,以及應(yīng)用該方法學(xué)搭建的具有分層結(jié)構(gòu)的測試平臺" title="測試平臺">測試平臺,,該測試平臺具有良好的可重用性" title="可重用性">可重用性,。為了對該方法進(jìn)行示范,驗(yàn)證了TD-SCDMA手機(jī)芯片中的I2C模塊的RTL級實(shí)現(xiàn),,并給出了相應(yīng)的測試平臺模型及其在系統(tǒng)級" title="系統(tǒng)級">系統(tǒng)級上的重用,。
  關(guān)鍵詞: RVM 可重用性測試平臺 基于事務(wù)的驗(yàn)證 寄存器傳輸級驗(yàn)證


  隨著芯片復(fù)雜度的上升,驗(yàn)證工作的復(fù)雜度和工作量呈指數(shù)形式上升,。芯片系統(tǒng)要想盡快推向市場,,驗(yàn)證已經(jīng)成為極其重要的一環(huán),甚至是最重要的一環(huán),,這就迫使系統(tǒng)芯片驗(yàn)證工程師要盡可能多地重用已有的驗(yàn)證資源,。和設(shè)計(jì)重用類似,驗(yàn)證的重用可以大大提高驗(yàn)證的效率,,減小驗(yàn)證代價,,得到高質(zhì)量的設(shè)計(jì)。
  本文介紹的Synopsys的RVM(Reference Verification Methodology)驗(yàn)證方法學(xué),,是采用Vera硬件驗(yàn)證語言建立目標(biāo)模型環(huán)境,、激勵自動生成、含錯誤指示的自核對式測試,、覆蓋狀況分析能力[1],。通過簡化問題和建立復(fù)雜的測試平臺,為驗(yàn)證工程師提供了更高的設(shè)計(jì)生產(chǎn)率,,并使測試平臺具有良好的可重用性,。
1 搭建可重用測試平臺的關(guān)鍵技術(shù)
  在傳統(tǒng)驗(yàn)證方法的許多情況下,測試平臺是在信號級(Signal Level)的接口上直接與可驗(yàn)證性" title="可驗(yàn)證性">可驗(yàn)證性設(shè)計(jì)(Design Under Test,,DUT)相通信的,,即使用激勵直接驅(qū)動DUT的引腳,并通過檢查接口信號的值和變化,,達(dá)到驗(yàn)證設(shè)計(jì)功能的目的,。這種驗(yàn)證方法的抽象層次較低,平臺的開發(fā)與設(shè)計(jì)的接口協(xié)議緊密相關(guān),,從而使得測試平臺的重用變得十分困難,。所以測試平臺要想在不同的項(xiàng)目之間重復(fù)使用,至少是部分重用,,首先測試平臺的結(jié)構(gòu)要被有效地模塊化,,使得構(gòu)成平臺的各個模塊的改變和重用變得容易;其次測試平臺必須有明確的層次化定義,,并要清晰地定義層和層之間的接口,,使得各層之間具有一定的獨(dú)立性,,改變底層并不會影響上層的重用[2]
  基于上述考慮,,在驗(yàn)證過程中提出了基于事務(wù)的驗(yàn)證思想[3],。基于事務(wù)的驗(yàn)證:可以在一個更高的層次上進(jìn)行驗(yàn)證,,可以明顯地減少測試工作量,,簡化調(diào)試,并有助于統(tǒng)計(jì)測量功能覆蓋率,。所謂事務(wù)[4](Transaction)是指設(shè)計(jì)對象與事務(wù)處理器(Transactor)之間通過接口所做的一次數(shù)據(jù)或控制的傳輸,。事務(wù)可以是一個簡單事務(wù),如讀取某個存儲器單元,,也可以是一個復(fù)雜事務(wù),,如傳輸整個結(jié)構(gòu)式數(shù)據(jù)報文;同時可以把單獨(dú)信號的特殊性、比特和字節(jié)的繁瑣性都模型化并且包裝起來,,這樣把驗(yàn)證提高到更高的抽象的層次上,,這個層就是事務(wù)層,這樣能夠更有效地完成更多的功能,。具體在RTL級的驗(yàn)證中,可以設(shè)計(jì)一個用戶定義的事務(wù)處理器[5],,將可驗(yàn)證性設(shè)計(jì)(DUT)與所構(gòu)建的測試平臺連接起來,,其中用戶定義的事務(wù)處理器能夠?qū)⑹聞?wù)級的測試激勵與RTL級的信號(Singal)進(jìn)行相互轉(zhuǎn)換。
  基于事務(wù)的驗(yàn)證工具讓驗(yàn)證工程師除了可以在信號/引腳級上進(jìn)行驗(yàn)證,,還可以在事務(wù)級上進(jìn)行驗(yàn)證,,從而提高了驗(yàn)證工程師的設(shè)計(jì)效率,同時驗(yàn)證的模塊化也大大地提高了驗(yàn)證的可重用性,。
2 RVM驗(yàn)證方法學(xué)
  RVM驗(yàn)證方法學(xué)主要是基于事務(wù)驗(yàn)證的思想,,結(jié)合隨機(jī)化驗(yàn)證和覆蓋率驅(qū)動技術(shù),幫助驗(yàn)證工程師快速建立一個可重用的驗(yàn)證環(huán)境,。RVM采用了易于驗(yàn)證重用的分層測試平臺結(jié)構(gòu),,同時它還具有全面的采用面向?qū)ο蠹夹g(shù)的庫,從而使RVM驗(yàn)證環(huán)境模塊化,、實(shí)用化,。從基于事務(wù)驗(yàn)證思想的角度來分析,RVM可以分為三層:信號層,、事務(wù)層和測試層,。RVM測試平臺結(jié)構(gòu)如圖1[6]所示。


  其中,,信號層是與被測設(shè)計(jì)對象(DUT)直接聯(lián)系的,,主要起到事務(wù)層和DUT連通的作用,。事務(wù)層則包括了Scenario Generator、Driver,、Monitor,、Transactor、Scoreboard和Checker,,它將根據(jù)上層測試層的請求,,將測試層協(xié)議映射到信號層。測試層(Tests)用于在系統(tǒng)中協(xié)調(diào)事務(wù)層的處理,。
  RVM的分層結(jié)構(gòu)使驗(yàn)證的抽象層次從信號層提升到了事務(wù)層,,很好地利用了事務(wù)級驗(yàn)證的思想。這樣驗(yàn)證工程師就可以不用太關(guān)心DUT內(nèi)部的具體實(shí)現(xiàn)過程,,只需根據(jù)設(shè)計(jì)工程師提供的設(shè)計(jì)文檔,,提取出DUT工作所需的激勵和輸入輸出的端口信息以及相應(yīng)的時序關(guān)系,就可以進(jìn)行測試平臺的設(shè)計(jì)和驗(yàn)證代碼的編寫工作了,設(shè)計(jì)出的測試平臺具有明顯的模塊化特征,,易于重用,。
  為了更好地構(gòu)建RVM驗(yàn)證環(huán)境,完成層與層之間的通訊,,RVM還可以直接調(diào)用RVM驗(yàn)證基類函數(shù)庫,,里面定義了很多標(biāo)準(zhǔn)的函數(shù)類[7]。主要包括構(gòu)造事務(wù)對象的RVM_DATA類,、構(gòu)造處理事務(wù)對象的處理器(Transactor)的RVM_XACTOR類,、構(gòu)造傳輸事物對象的通道(Channel)的RVM_CHANNEL類、構(gòu)造控制整個驗(yàn)證環(huán)境的RVM_ENV類和反饋信息的消息類RVM_LOG等,。有了這些基類后,,驗(yàn)證工程師很容易實(shí)現(xiàn)各個組件間的同步關(guān)系和事物對象在組件間的傳輸?shù)龋粌H使得驗(yàn)證工程師能很容易地編寫一些較復(fù)雜的測試平臺,,而且還使得編寫出的驗(yàn)證環(huán)境更容易理解,、調(diào)試和重用。
3 RVM驗(yàn)證方法學(xué)在芯片驗(yàn)證中的應(yīng)用
  筆者在重郵信科TD-SCDMA手機(jī)芯片的驗(yàn)證中運(yùn)用了RVM驗(yàn)證方法學(xué)來搭建測試平臺,,提高了驗(yàn)證的效率,,同時也大大提高了驗(yàn)證資源的可重用性。本文重點(diǎn)介紹芯片中I2C總線的寄存器傳輸級(Register Transfer Level,,RTL)驗(yàn)證及相應(yīng)測試平臺的搭建,。I2C總線(即IIC總線,Inter Integrated Circuit Bus)是一種用于IC控制的簡單的雙向兩線串行總線,,系統(tǒng)中每個I2C器件都有一個唯一的地址,。發(fā)送器或接收器可以在主模式或從模式下操作。I2C總線最重要的特征就是只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL,。簡單的兩線串行I2C總線將IC間互聯(lián)減到最小,。

?


3.1 I2C的RTL級驗(yàn)證
  在驗(yàn)證過程中,需要對邏輯功能,、模塊行為,、波形定時關(guān)系等進(jìn)行檢查,如果不滿足要求,,會輸出仿真錯誤信息,,以引起驗(yàn)證人員注意。其中,,I2C的RTL級測試平臺的結(jié)構(gòu)如圖2所示,。
3.1.1測試平臺中的主要模塊
  (1)可驗(yàn)證性設(shè)計(jì)模塊(DUT):即被測試設(shè)計(jì)模塊,在測試中提供給信號層端口信息,,實(shí)現(xiàn)與整個驗(yàn)證模塊的正常通訊,。本文中的I2C DUT主要支持三種工作方式:寫、連續(xù)讀(直接讀取)和復(fù)合讀(先寫后讀),。DUT對外的主要通信端口如表1所示,。
  (2)測試?yán)K(Testcases):Testcase是頂層模塊,控制著整個環(huán)境的運(yùn)行,。主要是驗(yàn)證工程師根據(jù)設(shè)計(jì)人員提供的設(shè)計(jì)分析文檔編寫隨機(jī)測試?yán)?,限制底層模塊激勵的產(chǎn)生和驅(qū)動,驗(yàn)證工程師可以根據(jù)需要編寫的多個測試?yán)齺硗瓿赡K所有功能的測試,。I2C模塊共寫了四個測試?yán)?,分別是寫、連續(xù)讀,、復(fù)合讀和隨機(jī)產(chǎn)生錯誤ACK的測試?yán)?BR>  (3)激勵產(chǎn)生模塊(Generator):這個模塊主要是產(chǎn)生驗(yàn)證DUT的隨機(jī)激勵。這些激勵被封裝在一個數(shù)據(jù)對象(data object)或事務(wù)(transaction)中,,Generator將產(chǎn)生的這些數(shù)據(jù)對象或者事務(wù)通過輸出通道傳到下層模塊,。I2C包括兩個Generator:Master Generator和Slave Generator。Master Generator主要是隨機(jī)產(chǎn)生DUT的配置數(shù)據(jù),,如:寄存器的地址配置信息等,。Slave Generator主要是隨機(jī)產(chǎn)生讀、寫的數(shù)據(jù)和類型等事務(wù)序列,。
  (4)驅(qū)動模塊(Driver):包括主機(jī)驅(qū)動(Master Driver),、從機(jī)驅(qū)動(Slave Driver)和中斷服務(wù)程序(Interrupt Service Transactor)。在Master Driver中定義了寫,、讀兩個任務(wù)(task),,將寫或讀過程中的所有激勵都封裝在任務(wù)(task)中。Master Driver模仿外圍設(shè)備(APB)通過對DUT與APB的外部接口進(jìn)行驅(qū)動,將產(chǎn)生的數(shù)據(jù)傳給DUT,。Slave Driver主要是模仿Master要訪問的外設(shè),,通過Slave Generator隨機(jī)產(chǎn)生一些讀時需要的數(shù)據(jù),根據(jù)端口i2c_scl和i2c_sda_o來判斷何時主機(jī)開始讀數(shù)據(jù),,然后驅(qū)動i2c_sda_i來輸出數(shù)據(jù)并送到DUT的讀寄存器,。Interrupt Service Transactor是一個中斷服務(wù)程序,當(dāng)接收到中斷時,,會把中斷信息傳給Master Driver,。
  (5)監(jiān)控器(Monitor)和自檢器(Checker):I2C共有兩個Monitor:Master Monitor和Slave Monitor,分別負(fù)責(zé)監(jiān)測主機(jī)和從機(jī)的端口信息,。Monitor時刻監(jiān)測DUT的端口信息,,將DUT端口變化的數(shù)據(jù)信息記錄在一個事務(wù)中,通過相應(yīng)的事務(wù)通道將這個事務(wù)送到Checker中,。Checker將從兩個Monitor中接收到的事務(wù)進(jìn)行自動比較,,檢查DUT是否存在bugs。
  (6)功能覆蓋(Function Coverage):功能覆蓋模塊和測試平臺中的所有模塊都有聯(lián)系,,使用功能覆蓋可以幫助找出功能上的缺陷,,主要用來衡量模塊設(shè)計(jì)是否符合設(shè)計(jì)需求的所有功能。在I2C模塊中主要考察了寄存器配置,、中斷和使能等覆蓋的情況,。
3.1.2 測試結(jié)果
  通過編寫隨機(jī)測試?yán)笵UT的驗(yàn)證達(dá)到了代碼覆蓋率96.65%和功能覆蓋率100%。根據(jù)驗(yàn)證的要求,,代碼覆蓋率應(yīng)該達(dá)到100%,。通過和設(shè)計(jì)工程師的交流,找出沒有覆蓋到的代碼,,查找原因,,發(fā)現(xiàn)了一些驗(yàn)證中的不足和源程序中的冗余及缺陷(bug),通過修改源代碼,,同時增加一些直接的測試?yán)?,使代碼達(dá)到了完全的覆蓋。
  在驗(yàn)證中采用了含錯誤指示的自核對式測試技術(shù),,在生成的.log文件中根據(jù)是否有錯誤報警來判斷模塊設(shè)計(jì)或驗(yàn)證代碼是否存在缺陷,,免去了直接從仿真波形上查找錯誤的繁瑣性。但在測試中,,通過仿真出來的波形來檢驗(yàn)驗(yàn)證的過程及結(jié)果也是非常必要的,,特別是牽涉到時序方面的驗(yàn)證時,仿真波形更顯示出其在驗(yàn)證過程中的作用,;從波形上可以直接獲取信號的信息,,對驗(yàn)證代碼進(jìn)行修改完善,,同時也能觀察到存在于DUT內(nèi)部的信號,查找出更多的bug,。在驗(yàn)證I2C模塊中仿真出來的寫操作部分波形如圖3所示,。


  通過采用RVM設(shè)計(jì)的測試平臺,I2C模塊的RTL級驗(yàn)證很成功,,達(dá)到了預(yù)期的效果,,設(shè)計(jì)的測試平臺模塊性強(qiáng),易于理解和重用,。
3.2 I2C驗(yàn)證模塊在整個系統(tǒng)級驗(yàn)證中的重用
  進(jìn)行完RTL級的驗(yàn)證后,,需要把SoC芯片中的各個模塊通過接口連接起來,進(jìn)行整個系統(tǒng)級的驗(yàn)證,。在系統(tǒng)級驗(yàn)證時,,驗(yàn)證工程師需要對自己的驗(yàn)證模塊進(jìn)行監(jiān)控,檢查各個模塊的輸入和輸出端口,,進(jìn)行輸入輸出結(jié)果的比較,。此時,可以將模塊級測試平臺中的部分模塊重用到系統(tǒng)級驗(yàn)證中來,。由于此時的激勵是由系統(tǒng)產(chǎn)生的,,所以驗(yàn)證工程師只需要把各自模塊里面的Monitor、Checker及Functional Coverage模塊重用到系統(tǒng)級即可,。系統(tǒng)級中I2C驗(yàn)證模型如圖4所示,。


  圖2中的Master Monitor、Self checker和Slave Monitor分別被重用到圖4中的Master to I2C Monitor,、I2C Checker和I2C to Slave Monitor,,同時功能覆蓋模塊也可以重用到系統(tǒng)級,為系統(tǒng)級的驗(yàn)證節(jié)省了很多重新編寫新代碼的工作和寶貴的時間,。
  通過實(shí)際驗(yàn)證設(shè)計(jì),,與傳統(tǒng)的測試平臺比較,基于RVM的可重用性SoC測試平臺具有更高的抽象性,、更清晰的層次性和結(jié)構(gòu)的模塊化,,易于驗(yàn)證的重用,提高了驗(yàn)證的效率,,加快了產(chǎn)品設(shè)計(jì)和面市時間。
參考文獻(xiàn)
1孫海平,,丁 健.系統(tǒng)芯片(SoC)驗(yàn)證方法與技術(shù)[M].北京:電子工業(yè)出版社,,2005
2 Keating M, Bricaud P. Reuse methodology manual for system on a chip designs(third edition).[M] Kluwer Academic Pub-lishers,2002
3 詹文法. 測試平臺的可重用性研究.合肥工業(yè)大學(xué)碩士學(xué)位論文[D],2004:22~35
4 孟 慶,,何樂年等.基于事務(wù)的SoC驗(yàn)證策略.半導(dǎo)體技術(shù)[J],,2002;27(6):29~32
5 王錦程,李德識等.SCV及其在SoC驗(yàn)證中的應(yīng)用.武漢大學(xué)學(xué)報[J],2004;37(5):116~119
6 SYNOPSYS data sheet. VCS verificaton library. Printed in the U.S.A,2005
7 SYNOPSYS. Reference verification methodology user guild. Version 8.5.11, December 2004

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。