亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

uvm_object的理解

2019-11-10 17:53:53
字體:
來源:轉載
供稿:網友

typedef class函數new變量use_uvm_seeding成員變量和局部變量的區別set_name get_name get_full_name上述函數有一些是virtual function還有一些是靜態函數上述函數有一些是與uvm_object_wraper有關屬于factory的范疇暫時搞不懂后面再說還有很多函數packPRintcopyclonerecord之類的先看uvm class reference文檔再結合代碼理解

這里寫圖片描述

typedef class

typedef class uvm_component; 表示uvm_object會使用到uvm_component類,但是uvm_component類還沒有定義。 不過,在uvm_object,暫時沒發現使用。所以,個人理解,這一句刪掉也沒關系。

函數new

相關源代碼:

static protected int m_inst_count; //m是member,成員的意思吧。類實例化的個數。local int m_inst_id; //類實例化的id。跟類實例化個數有關系,比如類實例化3個,則類實例化的id為1,2,3local string m_leaf_name; //類的實例化名稱,是uvm樹形層次結構的一個枝葉。function uvm_object::new (string name=""); m_inst_id = m_inst_count++; m_leaf_name = name;endfunctionfunction int uvm_object::get_inst_count(); return m_inst_count;endfunctionfunction int uvm_object::get_inst_id(); return m_inst_id;endfunction

注意: 如果基類構造函數new()有參數,那么擴展類,必須有一個構造函數,并在構造函數的第一行調用基類的構造函數。

Class basel Function new(input int var); this.var = var;//利用this關鍵詞,把new函數的參數,傳遞給類成員變量。 endfunction endclassclass extended extends basel function new(input int var); super.new(var); endfunctionendclass

變量use_uvm_seeding

相關源代碼:

static bit use_uvm_seeding = 1; //靜態變量,所以systemverilog全部對象,都可以訪問它,可寫可讀。function void uvm_object::reseed (); if(use_uvm_seeding) this.srandom(uvm_create_random_seed(get_type_name(), get_full_name())); //類的方法,如果使用成員函數和成員變量的話,需要this關鍵詞定位為當前類。理解這個,需要了解成員變量和局部變量的區別。見下面介紹。//這里的意思,個人理解,是重新產生一個uvm_object類的隨機種子,默認隨機種子是與process進程有關。endfunction

參考: 類聲明中的靜態方法,類的全范圍內可以調用,也可以無創建對象的方式被訪問,不可以訪問非靜態的成員(屬性和其他方法); 不能聲明為virtual,聲明中不能使用this句柄; this指針,涉及類的屬性、變量參數、對象本地的變量參數或方法,應用在非靜態方法中。

成員變量和局部變量的區別

1、成員變量和局部變更的類型可以是systemverilog中的任何一種數據類型.變量定義部分所定義的變更被稱為類的成員變量(類里的變量),在方法體中定義的變量和方法的參數被稱為局部變量(方法里的變量)。2、成員變量在整個類內都有效,局部變量只在定義它的方法內有效。3、成員變量又分為實例成員變量(實例變量)和類變量(靜態變量)。、4、如果局部變量的名字和成員變量的名字相同,則成員變量被隱藏,即這個成員變量在這個方法內暫時失效。5、如果局部變量的名字和成員變量的名字相同,則成員變量被隱藏。這時如果想在該方法內使用成員變量,必須使用關鍵字this.【如果是靜態成員變量,就不需要了?!?h1 id="setname-getname-getfullname">set_name get_name get_full_name// get_name// --------function string uvm_object::get_name (); return m_leaf_name; //返回值是類的實例名稱endfunction// get_full_name// -------------function string uvm_object::get_full_name ();//本意是全層次結構下的實例名稱。這里看來就是枝葉的實例名稱,沒有結構層次。應該是因為uvm_object沒有樹形結構吧(uvm_component才有樹形結構)。 return get_name();endfunction// set_name// --------function void uvm_object::set_name (string name); m_leaf_name = name;//設置類的實例名稱,跟new設置實例名稱是一樣的作用。endfunction

上述函數有一些是virtual function,還有一些是靜態函數。

virtual function,這樣擴展類中才可以重新定義。擴展類中函數,和基類中函數名一樣時,通過supper.函數名,調用基類中函數。Systemverilog中不允許supper.supper.new方式經行多層調用。pure virtual function,在子類里定義這個函數。該類里,只聲明。static function,函數內的變量,都是靜態變量。定義靜態函數,意義是為了訪問一大堆靜態變量。

上述函數,有一些是與uvm_object_wraper有關,屬于factory的范疇,暫時搞不懂。后面再說。

function description
get_type Returns the type-proxy (wrapper) for this object.
get_object_type Returns the type-proxy (wrapper) for this object.
get_type_name This function returns the type name of the object, which is typically the type identifier enclosed in quotes.

還有很多函數,pack、print、copy、clone、record之類的,先看uvm class reference文檔再結合代碼理解。

有需要的時候,再看吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品av电影| 91视频-88av| 欧美第一黄网免费网站| 中文字幕在线看视频国产欧美| 日韩电影免费观看中文字幕| 亚洲欧美日韩中文在线| 国产精品久久久久久久久借妻| 国产精品视频资源| 一区二区欧美久久| 隔壁老王国产在线精品| 在线观看国产成人av片| 色噜噜国产精品视频一区二区| 91高潮精品免费porn| 国产99久久精品一区二区| 午夜剧场成人观在线视频免费观看| 国产精品99久久久久久白浆小说| 欧美精品久久久久| 精品久久香蕉国产线看观看亚洲| 在线观看免费高清视频97| 国产精品久久精品| 色老头一区二区三区在线观看| 久久免费视频在线观看| 韩国三级日本三级少妇99| 亚洲天天在线日亚洲洲精| 欧美电影免费观看高清完整| 久久在线免费观看视频| 久久99久久99精品中文字幕| 亚洲人成人99网站| 一夜七次郎国产精品亚洲| www国产亚洲精品久久网站| 亚洲色图13p| 中文字幕在线日韩| 国产精品免费福利| 国产免费一区二区三区在线能观看| 亚洲欧洲日产国码av系列天堂| 欧美激情一区二区三区久久久| 日韩欧美国产一区二区| 欧美高跟鞋交xxxxxhd| 成人网中文字幕| 欧美性猛交xxxx富婆弯腰| 国产精品麻豆va在线播放| 欧美激情精品久久久久久黑人| 亚洲欧美国产精品va在线观看| 久久青草福利网站| 欧美在线欧美在线| 午夜精品一区二区三区视频免费看| 欧美亚洲视频在线看网址| 日韩精品视频免费专区在线播放| 日av在线播放中文不卡| 98精品国产高清在线xxxx天堂| 欧美又大又粗又长| 一夜七次郎国产精品亚洲| 人九九综合九九宗合| 色综合色综合久久综合频道88| 国模gogo一区二区大胆私拍| 亚洲国产成人av在线| 精品久久久久久久久中文字幕| 国产精品久久久久国产a级| 97在线日本国产| 国产精品福利在线观看网址| 国产精品丝袜久久久久久高清| 欧美激情第三页| 伊是香蕉大人久久| 青青青国产精品一区二区| 97在线观看视频国产| 亚洲欧美色婷婷| 国产精品老女人视频| 久久久久久中文字幕| 日韩电影免费观看在线观看| 国产精国产精品| 欧美人与性动交a欧美精品| 日韩黄色高清视频| 日韩欧美在线第一页| 国产在线观看精品| 久久精品国产久精国产一老狼| 激情成人中文字幕| 久久亚洲欧美日韩精品专区| 国产在线日韩在线| 亚洲黄色av女优在线观看| 日韩av电影手机在线| 欧美精品福利视频| 91在线免费观看网站| 欧美性精品220| 欧美视频一二三| 欧美性xxxxxxxxx| 日韩亚洲精品电影| 亚洲成avwww人| 最近2019年手机中文字幕| 国产精品美女呻吟| 92裸体在线视频网站| 不卡av电影院| 亚洲日韩中文字幕在线播放| 久久久久久久久久久免费| 日韩视频在线免费观看| 国产精品欧美激情| 精品国产91久久久久久老师| 亚洲欧洲第一视频| 欧美大胆在线视频| 欧美成年人视频| 中文字幕亚洲激情| 美女福利精品视频| 456亚洲影院| 国产精品久久久久久久久久小说| 国产经典一区二区| 国产精品视频一区二区三区四| 在线观看国产精品91| 中文字幕亚洲一区| 欧美巨乳在线观看| 精品国产自在精品国产浪潮| www.亚洲天堂| 欧美裸体xxxx极品少妇| 91久久精品在线| 91精品国产九九九久久久亚洲| 亚洲欧美日韩精品久久亚洲区| 日韩av电影在线免费播放| 最新亚洲国产精品| 日韩av在线网| 亚洲一区中文字幕在线观看| 国产欧美日韩中文| 国产精品久久久久久久7电影| 日韩av网站在线| 夜夜嗨av色一区二区不卡| 爽爽爽爽爽爽爽成人免费观看| 欧美激情第三页| 久久福利视频导航| 亚洲免费中文字幕| 欧美在线一区二区视频| 亚洲精品国产精品乱码不99按摩| 久久久久久久激情视频| 精品丝袜一区二区三区| 亚洲影影院av| 欧美日在线观看| 久久久成人精品| 91精品国产91久久久久久| 中国日韩欧美久久久久久久久| 国产97色在线|日韩| 日韩一区在线视频| 欧美日韩成人免费| 91av在线精品| 国产精品视频一区国模私拍| 91久久综合亚洲鲁鲁五月天| 一区二区三区国产视频| 日韩在线视频线视频免费网站| 欧美一级电影在线| 欧美日韩电影在线观看| 国产精品亚洲视频在线观看| 国产精品视频一区国模私拍| 91理论片午午论夜理片久久| 国产精品久久久久免费a∨| 欧美成人激情在线| 91精品在线观看视频| 亚洲精品一区二区久| 中文字幕综合在线| 国产精自产拍久久久久久| 亚洲人在线观看| 日韩在线视频观看正片免费网站| 国内精品久久久久影院 日本资源| 亚洲国产成人91精品| 青青青国产精品一区二区| 美女999久久久精品视频| 国产精品国内视频| 亚洲视频在线观看视频| 亚洲精品久久久一区二区三区| 国产精品无av码在线观看|