精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于基帶處理芯片的應用RVM驗證方法的注意事項與技巧

電子設計 ? 來源:電子設計應用 ? 作者:常勇 ? 2021-03-22 15:27 ? 次閱讀

隨著SoC設計日趨復雜,驗證成為SoC設計過程中最關鍵的環節。本文介紹了Synopsys的RVM驗證方法學,采用Vera硬件驗證工具以及OpenVera驗證語言建立目標模型環境,自動生成激勵,完成自核對測試、覆蓋率分析等工作。通過建立層次化的可重用性驗證平臺,大大提高了驗證工程師的工作效率。文中以一個SIMC功能模塊的驗證為例,詳細介紹了RVM驗證方法學在SoC芯片驗證中的應用。

功能驗證

一個設計被綜合前,首先要對RTL描述進行邏輯功能驗證,以確保模塊或芯片的功能正確性。通常,RTL級的功能驗證主要采用自底向上的驗證策略,可分為模塊級驗證和系統級驗證兩個階段。

傳統驗證方法大多是在信號級的接口上直接與待驗證設計(DUT)通信,即用激勵直接驅動DUT的引腳,通過檢查接口信號的值和變化來達到驗證設計功能的目的。這種方法的抽象層次較低,驗證平臺的開發與DUT的接口協議緊密相關,使得驗證平臺的重用性較差。如果要做到一個驗證平臺可以驗證多個不同的DUT,必須將驗證平臺的抽象層次提高到事務級,而且應該構建層次化的結構,層與層之間具有一定的獨立性,改變底層并不會影響上層 。

基于事務的驗證

所謂事務(Transaction)是指設計對象與事務處理器(Transactor)之間通過接口所做的一次數據傳輸。從硬件的角度來看,事務可看成作用在一個特定接口上的一組信號的集合單元。事務具有3個要素:起始時間、終止時間,以及所有與這個事務相關的信息

基于事務的驗證工具讓用戶除了可以在信號/引腳級上進行驗證,還可以在事務級上進行驗證,從而提高了設計生產率。

基于事務驗證環境的基本要素

DUT:待驗證設計對象的RTL描述或門級描述。

事務:在DUT和事務處理器之間通過接口在特定起止時間內的一次數據傳輸。事務能夠對信號波形進行標識,表示相關的信號屬性,還可以標識錯誤。

事務處理器:也叫總線功能模型(BFM)。事物處理器可以表示事務所代表的信號變化,并與DUT通過接口進行連接。一個典型的DUT往往具有不同的接口,因此一個驗證環境中具有不同的事務處理器以產生相關的測試向量對DUT進行激勵。

測試例(Testcase):用來產生驗證DUT特定功能所需要的事務。

基于事務的驗證處理過程

測試例通過特定的事務來調用事務處理器的任務,事務處理器按照DUT所遵循的協議對事務進行處理,經過處理后的事務通過連接DUT的接口輸入到DUT中,DUT對輸入的激勵進行響應。DUT輸出的響應再轉換為事務的形式,這樣驗證平臺的自核對模塊就可以在事務級上對激勵和響應進行核對,以檢查DUT的功能是否正確。

RVM層次化驗證方法學

RVM驗證方法學是一種層次化的驗證方法學,它能把驗證的步驟分層進行,將驗證工作提高到更高的抽象層次,即事務層。層次化的驗證方法使得驗證工程師只需關心DUT的輸入/輸出接口,而不必關心DUT內部的具體實現。

根據RVM方法學,驗證工程師可以搭建出具有隨機測試、自動檢錯核對、功能覆蓋等功能的層次化驗證平臺。這類驗證平臺包含很多參考模型,每個模型可完成不同的功能。在搭建驗證平臺的過程中,還可以直接調用Synopsys提供的RVM基類庫,其中定義了豐富的標準類。利用RVM基類以及面向對象的技術可以更方便地生成驗證平臺各個層次的模塊。

基于RVM的驗證平臺分成5層,每層完成獨立的功能,層與層通過接口互相連接。RVM驗證模型如圖1所示。

信號層

信號層提供驗證平臺與DUT的信號級連接。驗證平臺通過信號層將上層產生的激勵驅動到DUT中。具體實現時,需要定義驗證平臺與DUT連接的虛端口,當DUT的接口改變時,只需要修改驗證平臺虛端口中的信號,上層模塊不需要修改,方便整個驗證平臺的重用。

命令層

命令層將信號層的信號抽象為事務,給高層提供DUT的接口與事務的轉換。命令層主要包括驅動器模塊和監視器模塊,與上層模塊通過事務級通道連接,與下層模塊通過虛端口連接。驅動器完成對DUT激勵的驅動。監視器檢測DUT的輸出,將輸出反饋給上層模塊。

功能層

功能層模擬DUT的基本行為,將DUT的行為抽象為更高一級的事務。功能層中包括事務處理器模塊和自核對模塊。事務處理器模塊根據DUT所遵循的協議將上層產生的事務進行處理,經過事務處理器處理的事務通過事務級通道傳給下層。自核對模塊用于對比事務經過DUT處理之后是否符合協議的要求,通常用于檢查DUT傳輸數據的正確性。

激勵產生層

激勵產生層用于產生對DUT的激勵事務。這一層包括產生器模塊,該模塊產生一系列的事務對象,通過事務級通道傳輸給下層。RVM支持兩種產生器: Atomic產生器,用于產生一組相似的事務對象; Scenario產生器,用于產生順序可控制的事務對象。

測試層

測試層用于對DUT的邏輯功能進行驗證。這一層主要是用戶為了驗證DUT的邏輯功能而編寫的不同測試例,在測試例中可以對各個模塊的限制條件進行修改。通過對不同測試例運行結果的統計,可以查看DUT的功能覆蓋率,只有功能覆蓋率達到一定要求,才能夠認為該DUT已經被完備的驗證通過。

SIMC模塊的功能驗證

SIMC是SIM卡控制器的簡稱,通過SIMC可以在手機基帶處理芯片上外接SIM卡,實現數據的發送和接收。SIMC模塊連接在系統的APB總線上,ARM微控制器通過APB總線對SIMC進行訪問。該模塊主要包括波特率產生部分、接收數據的串并轉換部分、發送數據的并串轉換部分、發送FIFO的控制部分、接收FIFO的控制部分等。發送數據時,SIMC模塊會將發送數據寄存器的數據先放到發送FIFO中,再將FIFO中的數據發送出去;接收數據時,SIMC模塊將接收到的數據放到接收FIFO中,再由處理器從接收數據寄存器中讀取數據。如果接收數據后,判斷校驗位或停止位出 錯,則數據不會被放入接收FIFO中,SIMC模塊的狀態寄存器會有相應的指示。

本文將以一款基帶處理芯片的SIMC為例,詳細介紹RVM驗證方法學的應用。其中DUT的RTL代碼用Verilog編寫,驗證平臺的代碼用OpenVera編寫。OpenVera語言是一種新型的高階驗證語言(HLV)。用OpenVera編寫的代碼中調用了RVM的基類和庫函數,充分應用了面向對象技術。

SIMC模塊的RVM分層驗證平臺結構

SIMC模塊的驗證平臺利用Synopsys公司Vera驗證工具搭建,驗證平臺的搭建遵循RVM驗證方法學,代碼的編寫過程調用了RVM基類庫。SIMC模塊驗證平臺結構如圖2所示。

基于基帶處理芯片的應用RVM驗證方法的注意事項與技巧

圖 2 SIMC模塊RVM層次化驗證模型

信號層

信號層包括定義的虛端口,用于和SIMC模塊RTL代碼的接口相連。首先定義一個interface變量,該變量中定義的接口對應于SIMC模塊的接口信號,interface變量的定義語句中用hdl_node關鍵字和RTL代碼的接口信號相連。定義的虛端口再和interface中的信號綁定。

命令層

命令層包括ARM端的驅動器和監視器、SIM卡端的驅動器和監視器。ARM端的驅動器模仿APB總線,按照協議的規定對DUT進行驅動,SIM卡端的驅動器模仿一個SIM卡對DUT進行驅動。兩端的監視器檢測DUT的輸出數據和驅動到DUT中的數據,將數據保存在自核對模塊中進行比較,通過比較來檢查DUT傳輸數據是否正確。

編程實現時,可以通過繼承RVM基類庫中的rvm_xactor類得到所需要的子類,在子類的代碼中加入需要實現的功能。

功能層

功能層包括將SIM卡事務轉化為ARM事務的事務處理器、實現中斷服務功能的事務處理器、自核對模塊。編程實現時,事務處理器可以通過繼承RVM基類庫中的rvm_xactor得到,在子類的代碼中加入需要實現的功能。自核對模塊用于比較DUT的激勵和響應是否符合要求。

激勵產生層

激勵產生層包括兩個Atomic產生器,兩個產生器是同一個類的兩個對象。產生器為DUT產生隨機激勵,激勵封裝在一個事務中,通過事務通道傳到下層模塊中。兩端的產生器都是產生SIM卡事務的,ARM端有一個將SIM卡事務轉化為ARM事務的事務處理器來完成SIM卡事務向ARM事務的轉化。通過產生器可以隨機產生符合協議規范的激勵。編寫代碼時,產生器可以通過調用RVM的宏rvm_atomic_gen很方便地實現。

測試層

在測試層,用戶可以編寫不同的測試例對DUT的功能進行驗證。在測試例中,通過對約束的限制、環境類的例化、配置類的約束來實現對DUT的功能覆蓋,以達到100%的功能覆蓋率。

驗證平臺的重用

對單個模塊驗證完畢之后可以進行系統級的驗證。根據RVM驗證方法學搭建的層次化驗證平臺可以被重用到系統級的驗證中。系統級驗證側重于檢查各模塊間的接口和數據交互是否符合設計規范,某些模塊級驗證的模塊可以被復用到系統級驗證中。對SIMC模塊來說,系統級驗證時,ARM端的驅動器、監視器以及激勵產生器都可以被APB總線代替,SIM卡端的各模塊可以繼續使用,達到重用的目的。

應用RVM驗證方法的注意事項與技巧

RVM驗證方法學由Synopsys公司提出,利用RVM驗證方法學首選的編程語言是OpenVera硬件驗證語言。筆者在應用RVM驗證方法學搭建驗證平臺過程中的一些技巧和注意事項歸納如下:

1、 驗證某個模塊前,首先要閱讀相關文檔,熟悉模塊的功能特性,然后搭建驗證平臺的基本框圖,選擇RVM的相關技術,在驗證平臺基本框圖指導下編程實現。

2、 驗證平臺中功能覆蓋點的定義是驗證成敗的關鍵,驗證過程中利用RVM的覆蓋率驅動技術,分析所定義的覆蓋點的覆蓋情況,改善該驗證平臺,每個功能覆蓋點都必須被覆蓋到。

3、 RVM基類庫提供了豐富的函數,但是Synopsys沒有開放RVM基類的源代碼,所以驗證代碼的編寫過程中應隨時查閱RVM文檔,盡量使用RVM基類提供的函數,而不是自己去重新開發一個函數。

4、 RVM驗證平臺中各個模塊之間通信有很多種方法,可以用RVM的callbacks類,也可以使用雙通道等。

5、 RVM為驗證平臺中的進程間通信提供了多種數據結構,例如semaphore、region、mailbox等,編程時應根據需要進行選擇。 例如,在某一時刻有多個并行的進程對同一個信號進行驅動,仿真工具會停止仿真并打印出錯信息。解決的方法是應用semaphores數據結構,每個進程得到semaphore才可以驅動信號,對信號驅動后再釋放semaphore供其他進程使用。

6、 如果要打印信息,應使用 rvm_log類而不是printf()函數。rvm_log類除了將信息打印出來,還可以顯示出信息來源于驗證平臺中的哪個模塊以及該模塊的仿真時間,便于編程人員調試代碼。

7、 隨機激勵的產生不是真正意義上的隨機,而是一種偽隨機。編程人員在多次運行同一個測試例時應改變驗證平臺的隨機種子,可通過調用srandom()函數來實現。

結語

用RVM驗證方法學搭建的層次化驗證平臺將大大提高驗證環境的執行效率。RVM驗證方法學中的隨機測試技術可以在很短的時間內達到更高的功能覆蓋率,提高驗證工程師的工作效率,達到有效縮短驗證周期的目的。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    454

    文章

    50439

    瀏覽量

    421915
  • 手機
    +關注

    關注

    35

    文章

    6851

    瀏覽量

    157425
  • 控制器
    +關注

    關注

    112

    文章

    16211

    瀏覽量

    177445
收藏 人收藏

    評論

    相關推薦

    芯片熱設計有什么注意事項

    芯片熱設計有什么注意事項
    發表于 04-23 06:25

    UPS電源連接方法注意事項

    UPS電源連接方法注意事項UPS電源的輸入插座要與市電連接,輸出插座可經接線板與計算機和顯示器連接。對于山特UPS電源,其輸出電源分兩部分:一部分是穩壓加電池輸出,用于接計算機主機;另一部分是穩壓
    發表于 11-16 07:05

    結合覆蓋率驅動技術的RVM驗證方法學在SOC驗證中的應用

            本文首先介紹RVM驗證方法學和覆蓋率驅動技術,然后詳細分析如何使用結合覆蓋率驅動技術的RVM
    發表于 09-05 08:53 ?15次下載

    膽機使用的注意事項

    膽機使用的注意事項:膽機使用的注意事項 我是初哥, 現在對膽機感興趣, 但聽說膽機使用麻煩, 請問有什么需要注意的?湖南吉首火車站 范增不必擔心, 膽機的使用方法
    發表于 11-29 17:09 ?46次下載

    電池充電方法、技巧與注意事項大全

    電池充電方法、技巧與注意事項大全 如果我們希望能夠延長電池的有效使用時間,除了充電器的質量要有保證外,正確的充電技巧
    發表于 11-04 15:33 ?1726次閱讀

    搖表的接線和使用方法注意事項

    本文介紹搖表的接線和搖表使用方法及搖表注意事項
    發表于 01-28 09:33 ?2w次閱讀

    stm32 fft庫使用注意事項

    stm32 fft庫使用方法注意事項
    發表于 11-02 10:55 ?0次下載

    使用大RAM430芯片注意事項

    使用大RAM430芯片注意事項
    發表于 10-13 08:28 ?13次下載
    使用大RAM430<b class='flag-5'>芯片</b>的<b class='flag-5'>注意事項</b>

    晶振的EMC設計及注意事項介紹

    本文提供了兩種常用晶振的簡要處理方案,并簡單列舉了晶振使用時的一些注意事項處理方法
    發表于 07-16 15:47 ?4484次閱讀
    晶振的EMC設計及<b class='flag-5'>注意事項</b>介紹

    媒體處理器的視頻過濾注意事項

    媒體處理器的視頻過濾注意事項
    發表于 05-17 19:06 ?4次下載
    媒體<b class='flag-5'>處理</b>器的視頻過濾<b class='flag-5'>注意事項</b>

    搪瓷儲罐修復方法及使用注意事項

    搪瓷儲罐修復方法及使用注意事項
    發表于 03-03 09:29 ?10次下載

    圖紙管理的方法注意事項

    圖紙管理的方法注意事項? 圖紙作為設計的“最終成果物”每日都在不斷增加。另外,由于圖紙也被當作設計、生產技術、采購、制造、質量管理等各部門信息共享的手段,因此在公司內部占據著極為重要的地位,其管理
    的頭像 發表于 03-09 11:15 ?1564次閱讀
    圖紙管理的<b class='flag-5'>方法</b>和<b class='flag-5'>注意事項</b>

    安全光幕選型方法以及注意事項

    安全光幕選型方法以及注意事項
    的頭像 發表于 06-28 14:35 ?810次閱讀
    安全光幕選型<b class='flag-5'>方法</b>以及<b class='flag-5'>注意事項</b>

    安全光幕選型方法以及注意事項

    安全光幕選型方法以及注意事項
    的頭像 發表于 07-06 13:59 ?888次閱讀
    安全光幕選型<b class='flag-5'>方法</b>以及<b class='flag-5'>注意事項</b>

    現場總線的使用方法注意事項

    的穩定可靠運行,正確的使用方法注意事項至關重要。本文將詳細介紹現場總線的使用方法注意事項,以供讀者參考。
    的頭像 發表于 06-06 11:49 ?709次閱讀