您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“SystemVerilog和UVM的關(guān)系是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“SystemVerilog和UVM的關(guān)系是什么”吧!
UVM提供了豐富的基類庫和驗證方法學(xué),并且被主流的EDA工具、IP供應(yīng)商和設(shè)計公司采用?,F(xiàn)在,使用SystemVerilog基本上等同于使用UVM驗證。
如果你要問我,SystemVerilog和UVM到底是啥關(guān)系,我覺得漢字和詩的比喻也許比較恰當。我自然不會說是code language和library的關(guān)系,太沒有想象空間。
當天空下雪了,
SystemVerilog+UVM:忽如一夜春風(fēng)來,千樹萬樹梨花開。
Only UVM:thousands of pear flowers bloom as if spring wind just passed by
Only SystemVerilog:“風(fēng)景美如畫,吟詩贈天下。奈何沒文化,臥槽雪好大”。
SystemVerilog是一種硬件設(shè)計和驗證語言(hardware design and verification language,HDVL),Verilog HDL的升級版。
為了更好地支持驗證環(huán)境,SystemVerilog提供了面向?qū)ο缶幊蹋∣OP)的能力、受約束隨機激勵、斷言和功能覆蓋率等特性。
在復(fù)雜驗證環(huán)境搭建的過程中,僅僅使用SystemVerilog已經(jīng)無法滿足驗證需求,這時候就需要基類庫(base class libraries)、工具包(toolkits)或者說方法學(xué)(methodology guidance)的支持,提高驗證平臺搭建效率。
關(guān)于驗證平臺需要基于UVM的最主要的原因就是:復(fù)用(reuse)
1、 工具之間復(fù)用
SystemVerilog語言參考手冊超過1300頁,Cadence、Synopsys和Mentor等主流EDA工具在具體實現(xiàn)時存在差異,但在支持UVM時保持一致,也就是說基于UVM的驗證環(huán)境可以在不同EDA工具之間移植。
2、 項目之間復(fù)用
基于UVM的驗證環(huán)境很容易項目之間復(fù)用,同時工程師之間對于驗證環(huán)境也容易達成共識。這是僅僅使用SystemVerilog語言無法做到的。
3、 驗證IP的復(fù)用
在SoC設(shè)計中存在很多標準協(xié)議,AMBA、DDR和Ethernet等。UVM還能方便VIP的復(fù)用和維護。
4、解決方案的復(fù)用
驗證和其他軟件開發(fā)一樣,存在幾乎每個項目遇到的問題。UVM提供現(xiàn)成的解決方案實現(xiàn)。
下面介紹UVM中的一些關(guān)鍵概念:
1、Components&Data
UVM中的類主要分為兩類:Components和Data。
Components繼承自uvm_component,Data繼承自uvm_sequence_item。
uvm_component和uvm_sequence_item都繼承自uvm_object。
Components在仿真開始消耗時間之前的0時刻(build_phase)創(chuàng)建。用戶在繼承了Components之后,覆蓋build_phase方法即可。
build_phase這種phase callback是top-down的??梢钥闯鰜鞺VM的Components是一個樹形結(jié)構(gòu),根節(jié)點只有一個uvm_root(singleton object)
Data在仿真過程產(chǎn)生的,像數(shù)據(jù)流一樣流過各個Components。
2、factory機制
使用面向?qū)ο缶幊碳夹g(shù)用戶可以很容易地基于基類創(chuàng)建新的驗證組件并且利用OOP的繼承特性以通用方式操作用戶定義的對象。例如,在基本的數(shù)據(jù)事物類的基礎(chǔ)上進行錯誤注入。
為了充分利用這種OOP在驗證平臺中的靈活性,有必要利用factory機制這個設(shè)計模式在驗證過程中實現(xiàn)類的替換。
class user_monitor extends uvm_monitor;`uvm_component_utils(user_monitor)...
3、configure&resourcedatabase
configure可以看成是一個全局可以訪問的,使用字符串名稱進行檢索的數(shù)據(jù)資源??梢愿鶕?jù)數(shù)據(jù)值配置相應(yīng)的驗證平臺。
4、TLM connection
對于組件,需要在build_phase自上而下地完成實例化,對于組件之間的連接需要在connect_phase自下而上地完成TLM連接,用于數(shù)據(jù)流的發(fā)送和接收。
到此,相信大家對“SystemVerilog和UVM的關(guān)系是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。