UVM中類(lèi)的例化用new和create有什么不同?什么時(shí)候可以用new?什么時(shí)候該用create?
new是OOP自帶屬性,create是UVM override屬性,可以理解成create比new更進(jìn)階~
create是用factory模式來(lái)construct對(duì)象,在factory中注冊(cè)過(guò)的uvm_object擴(kuò)展類(lèi)或是uvm_component 擴(kuò)展類(lèi)都可以用create,這樣做的好處是在testcase里面可以override. new是什么時(shí)候都可以用的。
只有與UVM基本類(lèi)相關(guān)的類(lèi)才可以使用create方法,相當(dāng)于在UVM這個(gè)大樹(shù)上面掛了個(gè)號(hào),具體號(hào)碼就是通過(guò)static function type_id來(lái)分配的,UVM的其他地方可以通過(guò)號(hào)碼來(lái)對(duì)使用create的這個(gè)類(lèi)進(jìn)行factory機(jī)制可以實(shí)現(xiàn)的有關(guān)功能,override是比較常用的一個(gè)功能。
new是一個(gè)class創(chuàng)建一個(gè)對(duì)象的方式,是在運(yùn)行內(nèi)存下面掛個(gè)號(hào),分配空間,是sv的語(yǔ)法,與UVM無(wú)關(guān)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
在systemverilog中,如果一個(gè)類(lèi)沒(méi)有顯式地聲明構(gòu)造函數(shù)(new()),那么編譯仿真工具會(huì)自動(dòng)提供一個(gè)隱式的new()函數(shù)。這個(gè)new
發(fā)表于 11-16 09:58
?3701次閱讀
的計(jì)算功能,完成scoreboard的比較功能。類(lèi)中可以有成員變量,這些成員變量可以控制類(lèi) 的行為,如控制driver的行為等。當(dāng)要實(shí)現(xiàn)一個(gè)功能時(shí),首先應(yīng)該想到的是從UVM的某個(gè)
發(fā)表于 12-04 15:48
平臺(tái),因?yàn)?b class='flag-5'>UVM的特性幾乎一 點(diǎn)都沒(méi)有用到。像上節(jié)中my_driver的實(shí)例化及drv.main_phase的顯式調(diào)用,即使不使用UVM,只使用簡(jiǎn)單的SystemVerilog也可以完 成。本節(jié)將會(huì)
發(fā)表于 12-08 12:07
工程師只需要將代碼寫(xiě)入適當(dāng)?shù)膒hase當(dāng)中,平臺(tái)運(yùn)行時(shí),會(huì)按照phase的執(zhí)行流程來(lái)自動(dòng)執(zhí)行驗(yàn)證工程師的代碼。uvm提供了一系列的基類(lèi),驗(yàn)證工程師需要根據(jù)實(shí)際的情況擴(kuò)展出合適的類(lèi)來(lái)構(gòu)建自己的驗(yàn)證平臺(tái)
發(fā)表于 01-21 16:00
直觀的印象,就是uvm驗(yàn)證平臺(tái),它是分層的結(jié)構(gòu)。圖中的每一個(gè)巨型框都代表著平臺(tái)的一個(gè)構(gòu)成元素。這些元素呢,我們稱(chēng)為平臺(tái)組建,下面來(lái)簡(jiǎn)單的分析一下。從最底層上來(lái)看,agent 中包含了driver,monitor和sequencer,其中driver ,monitor
發(fā)表于 02-14 06:46
在UVM方法學(xué)中,UVMsequences 是壽命有限的對(duì)象。UVM sequences從uvm_sequence_item基類(lèi)擴(kuò)展得到,
發(fā)表于 04-11 16:43
。uvm_factory中定義了一系列純虛函數(shù),主要包括以下幾種功能:重載、創(chuàng)建、查找、調(diào)試等。這些函數(shù)根據(jù)參數(shù)可以分為基于名字(name-based)和基于類(lèi)型(type-based)兩類(lèi)接口。也就是說(shuō),每一種
發(fā)表于 09-16 14:35
,uvm_reg_block還可以包含其他子uvm_reg_block。在同一類(lèi)族中,UVM還提供了uv
發(fā)表于 09-23 14:29
uvm_report_enabled(xxx)中,會(huì)分析傳過(guò)來(lái)的severity和id的配置verbosity要大于傳過(guò)來(lái)的verbosity,(get_report_verbosity_level(severity, id
發(fā)表于 03-17 16:41
下src/base/uvm_task_phase.svh文件。為方便分析,我截圖如下。在uvm_task_phase類(lèi)里execute(xxx)函數(shù)的第148行和150行確定了seq1和seq2的執(zhí)行
發(fā)表于 04-04 17:15
將 生成測(cè)試case的語(yǔ)句 從 main_phase 中獨(dú)立出來(lái),使得使用不同測(cè)試用例時(shí),只需要修改sequence部分即可,而不用關(guān)注 UVM剩余部分。
發(fā)表于 05-26 15:17
?1114次閱讀
Driver的作用是從sequencer中獲得數(shù)據(jù)項(xiàng),按照接口協(xié)議將數(shù)據(jù)項(xiàng)驅(qū)動(dòng)到總線上。UVM類(lèi)庫(kù)提供了uvm_driver基類(lèi),所有的Dr
發(fā)表于 05-30 16:17
?827次閱讀
在UVM中,Testcase是一個(gè)類(lèi),它封裝了測(cè)試用例開(kāi)發(fā)者編寫(xiě)的特定激勵(lì)序列。
發(fā)表于 06-15 09:41
?1664次閱讀
本次講一下UVM中的uvm_config_db,在UVM中提供了一個(gè)內(nèi)部數(shù)據(jù)庫(kù),可以在其中存儲(chǔ)給定名稱(chēng)下的值,之后可以由其它TB組件去檢索。
發(fā)表于 06-20 17:28
?1496次閱讀
本篇是對(duì)UVM設(shè)計(jì)模式 ( 二 ) 參數(shù)化類(lèi)、靜態(tài)變量/方法/類(lèi)、單例模式、UVM_ROOT、工廠模式、
發(fā)表于 08-06 10:38
?2053次閱讀
評(píng)論