UVM驗證培訓 factory 實用的UVM機制

2021-08-22 10:08:45 字數 1420 閱讀 7810

路科驗證官網:路科驗證 - 專注於數字晶元驗證的系統思想和前沿工程領域

eetop路科首頁: eetop - 路科驗證 - ic驗證培訓

csdn路科首頁:csdn - 路科驗證 - ic驗證培訓

uvm鼓勵工程師建立模組化、可復用的測試平台。uvm通過tlm介面,把乙個元件及其他與之相連的元件隔離開來,以此實現模組化。只要transaction型別相同,模組化的功能允許sequence 連線到任何適配的driver上。也允許多種覆蓋率收集器通過分析介面連線到monitor上。這種模組化的功能,使得搭建環境的工程師可以把庫中的各種元件進行混合匹配,最終組合放到dut的配置環境中。這對於驗證工程師當然是非常有用的。

很多時候驗證工程師需要很多環境,這些環境大體上很相似,只在一些小的方面稍有不同。每個環境有其特定的用途,同時他們的大多數元件都是完全相同的。那麼,我們如何做到共享其通用的部分、定製其獨特的部分呢?當然,這是oop(物件導向程式設計)的基本特點,oop語言實現這種功能並不難。但是,我們要說的是uvm,因為uvm又將這種實現方法進一步簡化了。

乙個經驗淺的oop程式設計師可能會直接在環境中例項化元件,如下:

env的例項化也類似:

對於驗證工程師,當testbench能正確執行transaction時,我們可能想要改變一些東西,比如看看當在transaction流裡插入錯誤會發生什麼。為了做到這一點,可以建立乙個新的driver,派生my_driver類得到my_err_driver,並在環境中將其實例化。oop能讓我們實現這一點,派生my_env類,並如下圖一樣過載build_phase()方法。

這樣的話,兩個環境的不同之處僅僅是driver的型別。因為my_err_driver是從my_driver派生得到,所以他們有相同的介面,而且driver和squencer之間的連線也是相同的。所以我們就不用重複其他**了。類似的,我們可以派生my_test,以使用新的env:

factory:實用的uvm機制

UVM的factory機制(二)

factory機制 1 uvm強烈推薦使用uvm component utils或者uvm object utils巨集來註冊。用法 class a extends uvm component uvm component utils a endclass 建立乙個a的例項如下 a a a a typ...

factory 實用的UVM機制

本文 uvm鼓勵工程師建立模組化 可復用的測試平台。uvm通過tlm介面,把乙個元件及其他與之相連的元件隔離開來,以此實現模組化。只要transaction型別相同,模組化的功能允許sequence 連線到任何適配的driver上。也允許多種覆蓋率收集器通過分析介面連線到monitor上。這種模組化...

uvm設計分析 factory

uvm的factory機制,通過例項乙個static型別default factory,並且通過巨集將所有例化extend出來的object,component register到該factory的內部變數中 所以有了可以override的條件 register通過註冊乙個proxy,該proxy是...