uvm 形式验证_验证平台自动化篇之二:UVM Framework
原標題:驗證平臺自動化篇之二:UVM Framework
一個UVM使用者,從新手到精通大致會經歷三年的時間,而在經過這三年之后,verifier會有倦怠期。除了不可避免地在80%以上工作處于重復性勞動或者稱之為沒有創新的勞動以外,剩下的那一點可以用來成長的時間也往往被日常的項目事務所切分地很凌亂。在跟這些有經驗的UVM驗證工程師溝通的過程中,我們會了解到他們被哪些大致的事情所困擾:
對于新的設計,需要構建新的驗證平臺,這往往需要兩周甚至更多的時間。其實,環境的調試還要消耗很多的精力,這對于新人來講尤甚。
對于原有的驗證環境,如果設計更新了,譬如接口的更新,需要在原有環境的基礎上進行擴展和復用原有的sequence/test。
如果項目組中有新人,他們還需要幫助他們快速搭建環境。對于一個快公司(fast company),人員的快速流動下,有經驗的工程師在培養新人上面就會面臨越來越多的傳幫帶任務。
在驗證的后期,需要對驗證環境代碼進行回顧檢視(review),看代碼的風格、文檔還有測試場景。
上面的這些困惑,確實耗時耗力,而工程師們在有限的資源下,又沒有更好的辦法。但如果這個時候,有一款合適的驗證平臺自動化工具可以幫助工程師們完成這些任務,想必工程師的日常業務開銷比重會很快地從80%降下來:
根據設計的接口、數據協議和驗證需求來給出一個快速構建好的驗證環境和連接
有自動生成好的激勵完成數據傳輸
有更高層的transaction分析可以從仿真器中觀察
生成好的平臺可以在項目之間和模塊到系統級別完成復用
提供覆蓋率的管理
同時支持隨機驗證和直接驗證
擁有這樣一款驗證平臺自動化工具無疑是很具有吸引力的,而MentorGraphics公司推出的UVM Framework無疑是這樣一款“走心”的工具。這款工具的背景,或者說是如果使用者想產生最大驗證產出的前提是,verifier所在的公司是它們的客戶,不但是simulator QuestaSim的客戶,同時也是他們的驗證VIP(QVIP)的用戶。MentorGraphics提供覆蓋全面的VIP系列,譬如常見的AMBA系列、PCIe、USB、DDR等VIP,在公司擁有了這些VIP的前提下,那要恭喜你,首先你們擁有了這張“門票”,可以進一步來使用UVM Framework這款工具。
讀到這里,也許你們沒有使用QuestaSim而是其它的仿真器,也許你們僅僅使用了QuestaSim而沒有購買它家的商業VIP,但路桑介紹這款工具是為了能夠幫助讀者理清一款優秀的驗證平臺自動化工具需要解決什么最終目的、利用哪些現有的資源、而最終可行的工具開發計劃是什么。在這個理念下,我們在下一節中會帶領大家理解路桑開發的驗證平臺自動化工具Pangu(盤古)。
首先來看一看,MentorGraphics所需要解決的問題和擁有的資源有哪些:
UVM Framework工具需要幫助用戶最快地建立一個驗證平臺,即完成標準的驗證框架自動化。
這款工具需要整合已有的QVIP的配置工具,即QVIP configurator,該工具可以快速集成VIP的驗證環境。
這款工具也可以在生成了結構化的環境之后,利用結構化的用戶自定義激勵和QVIP的標準激勵,配合Infact工具,實現可移植復用的激勵。
在上面的這些要求下,已有的資源是QVIP configurator工具和Infact工具。而新的工具UVM Framework則可以通過一致化的框架,來給出一個中心化的解決方案。
關于上面提到的QVIP configurator工具和Infact工具,用戶可以登錄到MentorGraphics官網,下載這兩種工具的說明或者觀看它們的入門視頻。從下面的這張圖中可以看到,這款工具最終可以有效地降低三個難度:
UVM的使用難度(從構建環境層面)
VIP的使用難度(從VIP的集成和應用層面)
激勵的不完整性(從VIP常規意義下的不完整覆蓋激勵層面)
為了更好地理解這一款工具,或者說是完整的解決方案,即通過UVM Framwork、QVIP configuration來實現testbench自動化,同時利用Infact實現測試的可移植性和更充分的覆蓋率,我們給出一個例子,來說明這個方案的。
例如有一個模塊block_c,它需要驗證環境提供一些輸入和輸出接口,同時伴隨著其它組件的生成,這些需要自動生成的部分包括:
自定義接口:cpb_in、cpb_out和mem_out。
標準接口:axi4_master_0、axi_master_1、pcie_ep、axi4_slave和apb3_config_master。
自定義的predictor和scoreboard:blk_c_pred、cpb_sb、mem_sb、axi4_slave_sb和apb3_cfg_sb。
頂層的環境:集成自定義接口、標準接口、predictor和scoreboard。
頂層testbench:各個接口組件的interface同DUT的連接。
接下來看看UVM Framework這款工具是如何整合資源的。首先,它可以作為用戶自定義接口(custom interface)的代碼生成器,創建好上面的自定義接口組件。下面的例碼是使用這款工具時分別用來創建接口組件的Python腳本文件和生成的文件:
接下來,需要利用Questa VIP Configurator工具來生成集成多個VIP組件的環境 。由于該工具支持GUI模式,用戶可以很方便地在工具中選擇需要的VIP類型、設定配置選項與DUT的連接關系,通過配置最終可以生成一個頂層環境為qvip_agents的環境,這個環境將稍微作為子環境被集成到更上層的環境中。
在頂層環境的集成過程中,需要通過UVM Framework來創建、例化和集成predictor和scoreboad,同時也包括集成之前的自定義接口組件和標準接口組件子環境,該集成的腳本代碼如下:
在頂層環境和各個組件都通過腳本完成之后,我們還需要完成頂層測試平臺的物理接口連接,而這一步驟也可以通過UVM Framework實現。
所以,上面的例碼演示了Questa的兩個工具UVM Framework和QVIP Configurator在互相配合的基礎上,最終實現了快速創建一個驗證環境的目標。而生成的testbench結構采用的還是“雙TB”的方式,將硬件信號驅動層hdl_top與軟件信號驅動層hvl_top剝離開,實現了將來跨平臺(simulator和emulator)運行的可能性。關于跨平臺運行的TB建立方式,我們將會在后面的一章《跨平臺移植復用》中詳細介紹。
另外,UVM Framework還能夠配置Questa inFact工具實現可跨平臺復用的激勵和更容易快速收斂的激勵形式。更多關于跨平臺激勵復用的介紹,我們會在后面的《跨平臺移植復用》中解釋其理念。在這一節中,我們需要清楚的是,正是由于Questa VIP的較為統一的sequence/item類,再配合inFact工具,這使得幫助用戶可以更快地創建系統級的激勵、更快達到接口協議的覆蓋率,而不再受限制于使用者無法掌握VIP的使用、測試代碼在檢視起來可讀性差(無法在系統級去理解)、無法更方便地協調控制各個接口以及無法很好地去移植,譬如從底層移植到系統層,或者從simulator移植到emulator等。
最后,我們再來回顧一下MentorGraphics提出的驗證平臺自動化的解決方案:
通過QVIP Configurator實現標準化商業VIP的快速集成。
通過UVM Framework實現自定義組件、頂層環境和測試平臺的集成連接。
通過inFact工具實現測試場景的系統級介入、實現更好地移植性、操作性和可讀性。
可以鎖,正是UVM Framework這樣一款工具實現了環境自動化、以及測試平臺和激勵層面的移植性,這非常符合當下驗證面臨的挑戰和需求。也正由于這樣一款工具,將原有的工具資源整合起來,實現了效率的最大化。那么這樣一款工具對于UVM的初級用戶和高級用戶分別帶來了什么價值呢?
對于初級用戶而言,它的優勢在于:
節省創建驗證平臺的時間
降低由于經驗不足致使驗證平臺不成熟而給項目帶來的風險
對于整個驗證團隊和項目而言是可以得到迅速回報的選擇
對于高級用戶而言,它的優勢在于:
節省創建驗證平臺的時間
實現更大的產出,即搭建平臺的時間節省下來投入到創建測試場景中去
由于inFact工具的幫助使得接口協議的驗證可以更充分、更快達到覆蓋率
用戶要掌握上面的工具,在實際使用中,只需要掌握基本的Python語法,更多的需要實現了解DUT的接口、數據流和環境的目標結構,在有了這些要求之后,就可以利用UVM Framework和Python腳本快速地生成環境了。所以,MentorGraphics給出的測試平臺自動化解決方案是完整的,這具體表現在了:
實現各個組件、頂層環境的集成和連接(需要UVM Framework和QVIP Configurator)。
激勵場景的快速創建(需要inFact工具)。
實現更好地調試環境和系統層的數據流檢查(QuestaSim UVM-Aware Debug特性)
在掌握了上面提到的工具和驗證平臺自動化完整方案的設計理念之后,我們將在下一節就路桑團隊自開發的Pangu進行介紹。希望讀者可以在了解了Pangu之后,也能夠結合自己所在公司的實際要求,在合適的時間點,開發出符合公司需要的這樣一款工具,實現驗證效率的提高。
謝謝你對路科驗證的關注,也歡迎你分享和轉發真正的技術價值,你的支持是我們保持前行的動力。返回搜狐,查看更多
責任編輯:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的uvm 形式验证_验证平台自动化篇之二:UVM Framework的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山四绝分别是什么 它们是黄山最著名的风
- 下一篇: 【Trie】最长异或路径(ybtoj T