uvm類庫搜尋 UVM的類庫

2021-10-17 02:18:26 字數 1311 閱讀 7943

***

乙個uvm驗證平台可以看成由多個模組組合在一起的,這和以前的verilog**,以及verilog結合其它各種語言的驗證手段在理念上是一樣的,最大的不同就是這些模組不再是函式或者過程,而是乙個個物件,其實仔細想想如果想實現繼承,多型等等這些功能,類的概念勢必要引入的,這一點在學習systemverilog中也會深有體會。

參見下圖,總的來說uvm驗證平台包含data item, driver, sequencer, monitor, agent和environment幾個部分,把各個模組放在一起,最後通過介面和dut連線。需要注意的是dut和各個其它模組之間的連線是通過真正的物理介面實現的,而諸如很多驗證模組之間的連線是通過tlm(transaction level modeling)進行資料通訊。

1. 資料項

資料就好象是血液一樣在各個模組之間流動,從sequencer,driver到dut,資料也可能被monitor採集到然後進行分析。除了dut內部 資料是以邏輯單位傳輸之外,其它部分之間的通訊都是以transaction來完成的,所以需要對資料進行包裝,這一點很想c語言與c++中資料的不同。 例如乙太網協議中的資料就非常適合定義為乙個類,類的各種屬性可以用來描述資料報的特性,通過受限隨機化可以隨心所欲的產生各種資料。

2. driver/bfm(匯流排功能模型)

driver就是不停地對從sequencer獲取資料然後驅動dut,控制匯流排的讀寫訊號,對特定位址進行讀寫操作的模組可以說是典型的driver。

3. sequencer和sequence

sequencer可以向driver提供資料,sequencer中的資料是從sequence獲得的,當然為了產生更為複雜的激勵乙個sequencer可以從多個sequence獲得資料。

4. monitor

monitor是乙個被動的實體,它用於取樣dut的輸入輸出訊號,而不是驅動。其主要功能有通過監聽匯流排來獲取輸入輸出資料,檢驗匯流排協議和收集覆蓋率資料,捕捉特定事件或資料。

5. agent

agent的作用就是將sequencer,monitor,driver等封裝在一起,以便於在**重用時減少工作量。在乙個驗證環境中可以包含多個agent,根據其負責的任務不同可以將其設定分為主動或者被動agent。

6. environment

environment在uvm驗證平台中是最高層的元件,一般來講environment中包含乙個或多個agent, bus_monitor, scoreboard等元件,另外乙個重要的元件就是其配置屬性,用於配置環境中其它各元件的引數,從而有利於實現驗證系統的重用。

這裡不需要對一些細部概念過於注意,只要有個大概的印象就可以了,在後面將會對各個組成部分一一詳細介紹。

UVM學習之 uvm object類

1.層次結構 2.類的預定義 typedef class uvm report object typedef class uvm objection uvm object類中未使用 typedef class uvm component uvm object類中未使用 typedef class u...

核心類庫 常用類庫

math類 math.abs 傳入引數的絕對值 math.max min 比較傳入的多個引數的最大 最小值 math.random 初始值是隨機生成0 1之間的double型別的正值 math.round 對傳入的float double值四捨五入 math.floor 返回值小於或等於傳入的數字的...

常用類庫 StringBuffer類

掌握目標 1,掌握stringbuffer與string的區別。2,掌握stringbuffer常用方法。3,掌握stringbuffer實際應用。stringbuffer是使用緩衝區的,本身也是操作字串的,但是與string類不同,string類的內容一旦宣告則不可改變,改變的只是位址指向。而st...