system verilog筆記總結(jié)

system verilog筆記總結(jié)

ID:3140594

大?。?6.68 KB

頁數(shù):25頁

時間:2017-11-19

system verilog筆記總結(jié)_第1頁
system verilog筆記總結(jié)_第2頁
system verilog筆記總結(jié)_第3頁
system verilog筆記總結(jié)_第4頁
system verilog筆記總結(jié)_第5頁
資源描述:

《system verilog筆記總結(jié)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫

1、Systemverilog數(shù)據(jù)類型l???????合并數(shù)組和非合并數(shù)組1)合并數(shù)組:存儲方式是連續(xù)的,中間沒有閑置空間。例如,32bit的寄存器,可以看成是4個8bit的數(shù)據(jù),或者也可以看成是1個32bit的數(shù)據(jù)。表示方法:數(shù)組大小和位,必須在變量名前指定,數(shù)組大小必須是【msb:lsb】Bit[3:0][7:0]bytes???;?2)二維數(shù)組和合并數(shù)組識別:合并數(shù)組:??bit[3:0][7:0]arrys;???大小在變量名前面放得,且降序二維數(shù)組:??intarrays[0:7][0:3];??大小在變量名后面放得,可降

2、序可升序位寬在變量名前面,用于識別合并和非合并數(shù)組,位寬在后面,用于識別數(shù)組中元素個數(shù)。?3)非合并數(shù)組一般仿真器存放數(shù)組元素時使用32bit的字邊界,byte、shortint、int都放在一個字中。非合并數(shù)組:字的地位存放變量,高位不用。表示方法:?Bit???[7:0]bytes;????????4)合并數(shù)組和非合并數(shù)組的選擇????????(1)當(dāng)需要以字節(jié)或字為單位對存儲單元操作。????????(2)當(dāng)需要等待數(shù)組中變化的,則必須使用合并數(shù)組。例如測試平臺需要通過存儲器數(shù)據(jù)的變化來喚醒,需要用到@,@只能用于標(biāo)量或者

3、合并數(shù)組。??????Bit[3:0][7:0]barray[3]??;表示合并數(shù)組,合并數(shù)組中有3個元素,每個元素時8bit,4個元素可以組成合并數(shù)組?????可以使用barry[0]作敏感信號。?l???????動態(tài)數(shù)組隨機事物不確定大小。使用方法:數(shù)組在開始是空的,同時使用new[]來分配空間,在new[n]指定元素的個數(shù)。Intdyn[];???Dyn=new[5];?????//分配5個元素空間??????????Dyn.delete();?????//釋放空間l???????隊列在隊列中增加或刪除元素比較方便。l??

4、?????關(guān)聯(lián)數(shù)組當(dāng)你需要建立一個超大容量的數(shù)組。關(guān)聯(lián)數(shù)組,存放稀疏矩陣中的值。表示方法:采用在方括號中放置數(shù)據(jù)類型的形式聲明:Bit[63:0]assoc[bit[63:0]];?l???????常量:1)Verilog推薦使用文本宏。好處:全局作用范圍,且可以用于位段或類型定義缺點:當(dāng)需要局部常量時,可能引起沖突。2)Parameter???作用范圍僅限于單個module3)Systemverilog:???參數(shù)可以在多個模塊里共同使用,可以用typedef代替單調(diào)乏味的宏。?過程語句l???????可以在for循環(huán)中定義變

5、量,作用范圍僅在循環(huán)內(nèi)部for(inti=0;i<10;i++)array[i]=i;?l???????任務(wù)、函數(shù)及void函數(shù)1)區(qū)別:Verilog中task和function最重要的區(qū)別是:task可以消耗時間而函數(shù)不能。函數(shù)中不能使用#100的延時或@的阻塞語句,也不能調(diào)用任務(wù);Systemverilog中函數(shù)可以調(diào)用任務(wù),但只能在fork??joinnone生成的線程中。2)使用:???如果有一個不消耗時間的systemverilog任務(wù),應(yīng)該把它定義成void函數(shù);這樣它可以被任何函數(shù)或任務(wù)調(diào)用。??從最大靈活性角度

6、考慮,所有用于調(diào)用的子程序都應(yīng)該被定義成函數(shù)而非任務(wù),以便被任何其它任務(wù)或函數(shù)調(diào)用。(因為定義成任務(wù),函數(shù)調(diào)用任務(wù)很有限制)?l???????類靜態(tài)變量作用:1)類的靜態(tài)變量,可以被這個類的對象實例所共享。當(dāng)你想使用全局變量的時候,應(yīng)該先想到創(chuàng)建一個類的靜態(tài)變量靜態(tài)變量在聲明的時候初始化。2)類的每一個實例都需要從同一個對象獲取信息。l???????靜態(tài)方法作用:當(dāng)靜態(tài)變量很多的時候,操作它們的代碼是一個很大的程序,可以用在類中創(chuàng)建一個靜態(tài)方法讀寫靜態(tài)變量,但是靜態(tài)方法不能讀寫非靜態(tài)變量。l???????ref高級的參數(shù)類型Re

7、f參數(shù)傳遞為引用而不是復(fù)制。Ref比input、output、inout更好用。Functionvoidprint_checksum(constrefbit[31:0]a[]);1)???????也可以不用ref進行數(shù)組參數(shù)傳遞,這時數(shù)組會被復(fù)制到堆棧區(qū),代價很高。2)???????用帶ref進行數(shù)組參數(shù)傳遞,僅僅是引用,不需要復(fù)制;向子程序傳遞數(shù)組時,應(yīng)盡量使用ref以獲得最佳性能,如果不希望子程序改變數(shù)組的值,可以使用constref。3)???????Ref參數(shù),用ref傳遞變量;可以在任務(wù)里修改變量而且,修改結(jié)果對調(diào)用它

8、的函數(shù)可見,相對于指針的功能。?l???????Return語句增加了return語句。Task任務(wù)由于發(fā)現(xiàn)了錯誤而需要提前返回,如果不這樣,那么任務(wù)中剩下的語句就必須被放到一個else條件語句中。體會下Taskload_array(intlen.Refinta

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。