SystemVerilog里面向?qū)ο蟮幕局R(shí)點(diǎn)_第1頁
SystemVerilog里面向?qū)ο蟮幕局R(shí)點(diǎn)_第2頁
SystemVerilog里面向?qū)ο蟮幕局R(shí)點(diǎn)_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、面向?qū)ο缶幊蘋OP一、OOP術(shù)語1. class類:包含變量和子程序的基本構(gòu)建塊。2. 對(duì)象:類的一個(gè)實(shí)例。3. 句柄:指向?qū)ο蟮闹羔?,一個(gè)OOP句柄就像對(duì)象的地址,但是它只 能保存在一個(gè)只能指向單一類型數(shù)據(jù)類型的指針中。4. 屬性:存貯數(shù)據(jù)的變量。5. 方法:任務(wù)和函數(shù)二、創(chuàng)建新對(duì)象1. 區(qū)別 Verilog 和 SV(1) Verilog中的一個(gè)模塊是在代碼編譯的時(shí)候例化的。SV中是運(yùn) 行測(cè)試平臺(tái)時(shí)需要的時(shí)候才被建立的。(2)Verilog的例化是靜態(tài)的,像硬件一樣,只有信號(hào)值得變化。SV激勵(lì)對(duì)象不斷地被創(chuàng)建并且驅(qū)動(dòng) DUT最后這些對(duì)象所占用的內(nèi)存 可以被釋放供新對(duì)象使用。(3)Veril

2、og的頂層模塊不會(huì)被顯示的例化,但是 SV類在使用之前 必須要先例化。(4)Verilog實(shí)例名只可以指向一個(gè)實(shí)例。而 SV句柄可以指向很多 對(duì)象,當(dāng)然一次只能指向一個(gè)。2.構(gòu)造函數(shù)new ():例化一個(gè)對(duì)象時(shí),相當(dāng)于為對(duì)象申請(qǐng)一個(gè)新的內(nèi)存來保存對(duì)象的變量。不能有返回值,因?yàn)槠浞祷氐氖侵赶蛞粋€(gè)類對(duì)象的句柄, 其類型就是類本身。當(dāng)出現(xiàn)多個(gè)同名的對(duì)象時(shí),至于new()調(diào)用的是哪個(gè)new()函數(shù),這取決于賦值操作符左邊的句柄類型Trans tr; /聲明一個(gè)句柄,初始化為特殊值nulltr =new(); II為一個(gè)Trans對(duì)象分配空間,將變量初始化為默認(rèn)值,二值的為0,四值的為x.并返回保存對(duì)象

3、的地址3將聲明和創(chuàng)建分開:若同時(shí)會(huì)引起順序問題。若忘記使用automatic存儲(chǔ)空間,構(gòu)造函數(shù)將在開始仿真時(shí),而非進(jìn)入塊的時(shí)候調(diào)用。*4.聲明一個(gè)句柄來創(chuàng)建一個(gè)對(duì)象,在仿真中一個(gè)句柄可以指向多個(gè)對(duì)象。Trans tr1,tr2;聲明兩個(gè)句柄tr1=n ew();為第一個(gè)類對(duì)象分配地址空間tr2=tr1;/復(fù)制,指向同一個(gè)地址,都指向第一個(gè)對(duì)象tr1=n ew();為第二個(gè)Trans對(duì)象分配地址*5.SV中分辨對(duì)象不再被引用的方法是記住指向它的句柄的數(shù)量,當(dāng)最后一個(gè)句柄不在引用某個(gè)對(duì)象了, SV就將釋放這個(gè)對(duì)象。三、靜態(tài)變量1.靜態(tài)變量使用范圍只在這個(gè)類中。通常在聲明時(shí)初始化,引用時(shí)無需句柄,可

4、以用作用域操作符:2. 不允許靜態(tài)方法讀寫非靜態(tài)變量四、類的方法默認(rèn)為自動(dòng)存儲(chǔ)五、this是什么?將局部變量賦給類一級(jí)變量class tr;stri ng a;fun cti on n ew(str ing a);this.a二a; /類變量a二局部變量aendfun cti onen dclass六、在類內(nèi)使用另一個(gè)類:通過指向?qū)ο蟮木浔?,一個(gè)類內(nèi)部可以包含另一個(gè)類的實(shí)例。在調(diào)用其他類的成員時(shí)要記得例化,否則句柄為null,調(diào)用失敗,一般在構(gòu)造函數(shù)中實(shí)現(xiàn)例化。七、動(dòng)態(tài)對(duì)象:在00沖可能有很多對(duì)象,但是只有少數(shù)句柄。句柄 可能存儲(chǔ)在數(shù)組或者隊(duì)列中1將對(duì)象傳給方法:當(dāng)調(diào)用方法的時(shí)候,傳遞的是對(duì)象

5、的句柄而不是 對(duì)象本身。2當(dāng)調(diào)用一個(gè)標(biāo)量變量(存儲(chǔ)單個(gè)數(shù)據(jù),不是數(shù)字也不是對(duì)象)的方 法時(shí)并且使用ref關(guān)鍵詞,SV傳遞該標(biāo)量變量的地址,所以方法可 以改變標(biāo)量變量的值。若不帶ref則是把標(biāo)量變量的值復(fù)制到參數(shù)變 量中,對(duì)該參數(shù)變量的任何改變不會(huì)影響原變量的值。若忘記給參數(shù)前加ref則在方法的內(nèi)部對(duì)參數(shù)的修改不會(huì)被調(diào)用該方法的代碼看 到*3.方法可以改變一個(gè)對(duì)象,即使方法的句柄參數(shù)沒有使用ref關(guān)鍵詞。因?yàn)榉椒梢栽诓桓淖兙浔那闆r下,將對(duì)象改變。如果不想讓 對(duì)象在被方法調(diào)用中改變,那就傳遞一個(gè)對(duì)象的拷貝給方法,這樣就明,盡管在sss中修改了參數(shù)tr,調(diào)用塊中的句柄t仍是null。functi

6、onvoid sss(trans tr); / 應(yīng)改為(ref trans tr )tr=n ew();tr.addr=42;en dfucti ontrans t;in itial beg insss(t);/創(chuàng)建一個(gè) trans$display(t.addr);失敗,因?yàn)?t=nullend4.句柄數(shù)組:保存并且引用多個(gè)對(duì)象,數(shù)組的每一個(gè)元素指向一個(gè)對(duì) 象(或者多個(gè)對(duì)象?),由句柄構(gòu)成,而不是對(duì)象構(gòu)成,所以需要 在使用它們之前創(chuàng)建所有對(duì)象。*5對(duì)象的復(fù)制:防止對(duì)象的方法修改原始對(duì)象的值(1)淺復(fù)制(shallow copy)使用new復(fù)制一個(gè)對(duì)象,句柄 的復(fù)制而不是數(shù)據(jù)data的復(fù)制Trans src,dst;in itial begi nsrc=n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論