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

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

uvm_object的理解

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

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.【如果是靜態成員變量,就不需要了。】

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中文一区二区三区天美| 欧美日韩国产激情| 亚洲伦理中文字幕| 最近2019中文字幕mv免费看| 久久中文字幕一区| 日韩黄在线观看| 亚洲欧美资源在线| 欧美一乱一性一交一视频| 久久天天躁狠狠躁夜夜av| 久久91亚洲精品中文字幕| 亚洲丝袜一区在线| 欧美色视频日本高清在线观看| 欧美精品18videos性欧| 日韩欧美亚洲一二三区| 国产精品爽爽爽爽爽爽在线观看| 精品国产一区二区三区久久狼5月| 欧美国产精品日韩| 一本大道香蕉久在线播放29| 日韩国产欧美精品在线| 亚洲自拍偷拍第一页| 亚洲美女久久久| 中文字幕日韩精品在线观看| 国产日韩欧美中文| 最好看的2019年中文视频| 26uuu另类亚洲欧美日本老年| 久久国内精品一国内精品| 国产欧美va欧美va香蕉在| 国模视频一区二区| 福利一区视频在线观看| 国产在线久久久| 日韩视频欧美视频| 国产97在线|日韩| 中文日韩在线视频| 亚洲综合日韩中文字幕v在线| 欧美自拍视频在线| 欧美成人一二三| 午夜精品理论片| 一区二区三区天堂av| 亚洲欧美一区二区三区久久| 色琪琪综合男人的天堂aⅴ视频| 国产啪精品视频| 中日韩午夜理伦电影免费| 亚洲视频一区二区三区| 91精品久久久久久久久久久久久| 久久久精品一区二区| 欧美在线播放视频| 欧美猛少妇色xxxxx| 国产一区二区三区精品久久久| 日韩视频―中文字幕| 欧美成人h版在线观看| 懂色av中文一区二区三区天美| 亚洲国产精品字幕| 欧美精品videosex性欧美| 久久久久久久影院| 欧美中文字幕视频在线观看| 日韩免费不卡av| 97色在线视频| 欧美国产中文字幕| 成人啪啪免费看| 久久久久国色av免费观看性色| 欧美日韩国产二区| 狠狠久久亚洲欧美专区| 精品国内自产拍在线观看| 国产精品自拍视频| 国产做受高潮69| 久久精品成人动漫| 欧美大片欧美激情性色a∨久久| 亚洲欧美日韩第一区| 一区二区欧美亚洲| 日韩电视剧免费观看网站| 最好看的2019的中文字幕视频| 精品亚洲一区二区三区四区五区| 91欧美日韩一区| 欧美一乱一性一交一视频| 欧美激情网站在线观看| 国产亚洲精品成人av久久ww| 日韩精品在线观看网站| 欧美小视频在线观看| 视频一区视频二区国产精品| 97香蕉超级碰碰久久免费软件| 亚洲欧洲在线免费| y97精品国产97久久久久久| 久久久伊人日本| 国产九九精品视频| 成人444kkkk在线观看| 欧美在线观看网址综合| 成人激情视频在线播放| 日韩在线观看免费全| 欧美黑人xxx| 91精品视频在线免费观看| 精品无人区太爽高潮在线播放| 欧美激情videoshd| 成人黄色av播放免费| 性视频1819p久久| 亚洲精品久久在线| 福利一区福利二区微拍刺激| 亚洲精品自在久久| 亚洲精品国产拍免费91在线| 亚洲自拍另类欧美丝袜| 亚洲国产99精品国自产| 久久精品视频亚洲| 欧美大荫蒂xxx| 国产精品中文久久久久久久| 国产一区二区欧美日韩| 国产精品久久久久久网站| 久久综合伊人77777蜜臀| 57pao国产精品一区| 亚洲一区二区三区视频| 日本精品久久中文字幕佐佐木| 亚洲国产精品一区二区久| 国产成人精品久久二区二区| 午夜精品视频在线| 2019中文在线观看| 中日韩午夜理伦电影免费| 精品亚洲一区二区三区在线观看| 日韩在线视频播放| 亚洲无限乱码一二三四麻| 日韩欧美一区二区三区| 久久久视频免费观看| 中文字幕日韩高清| 国产精品中文字幕在线观看| 久久久免费高清电视剧观看| 日本亚洲欧洲色| 亚洲美女久久久| 亚洲黄色av网站| 亚洲美女av网站| 国产情人节一区| 国产精品99久久久久久久久| 欧美黄网免费在线观看| 欧美性猛交xxxx黑人猛交| 欧美激情videoshd| 粉嫩老牛aⅴ一区二区三区| 一区二区三区精品99久久| 亚洲国产三级网| 久久久久久久一区二区三区| 欧美成人亚洲成人日韩成人| 欧美午夜丰满在线18影院| 国产一区二区在线免费视频| 久久夜色精品国产| 91精品视频在线播放| 国产亚洲精品成人av久久ww| 国产美女久久精品香蕉69| 97色在线观看免费视频| 欧美一级大胆视频| 亚洲第一区第二区| 亚洲一区二区三区久久| 国产精品免费观看在线| 97欧美精品一区二区三区| 国产精品久久在线观看| 亚洲精品日韩在线| 国产精品视频久久| 欧美成在线观看| 秋霞成人午夜鲁丝一区二区三区| 亚洲a∨日韩av高清在线观看| 日韩精品久久久久久福利| 精品久久久久久中文字幕一区奶水| 欧美大片大片在线播放| 国产精品三级久久久久久电影| 日本在线观看天堂男亚洲| 色婷婷**av毛片一区| 菠萝蜜影院一区二区免费| 亚洲国产精品va在看黑人| 色在人av网站天堂精品| 中国china体内裑精亚洲片|