SystemVerilog“struct”表示相同或不同數(shù)據(jù)類型的集合。
struct可以作為一個整體使用,也可以單獨通過名稱引用組成這個struct的元素。由于這些元素的數(shù)據(jù)類型可能不相同,所以不能夠使用數(shù)組。
如果需要在多個module或者類中使用相同的struct,則應(yīng)該將struct定義(`typedef)放到SystemVerilog package中,然后將其導(dǎo)入到每個module或者class。
默認情況下,struct都是unpacked的,我們也可以顯式地加上關(guān)鍵字。下面是一個簡單的示例,展示了array和struct的區(qū)別。
// Normal arrays -> a collection of variables of same data type int array [10]; // all elements are of type ‘int’ bit [7:0] mem [256]; // all elements are of type ‘bit’ // Structures -> a collection of variables of same or different data types struct { byte val1; int val2; string val3; } DataValue;
當然,我們也可以定義一個數(shù)組,其中數(shù)組中的每一個數(shù)據(jù)項都是一個struct.
DataValue v1[20]; //array of structures
struct
{
byte val1;
int val2[10]; //array within a structure
string val3; } DataValue;
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Verilog
+關(guān)注
關(guān)注
30文章
1374瀏覽量
114523 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
38670 -
Struct
+關(guān)注
關(guān)注
0文章
31瀏覽量
11266
原文標題:SystemVerilog中的struct
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
SystemVerilog中的Virtual Methods
SystemVerilog中多態(tài)能夠工作的前提是父類中的方法被聲明為virtual的。
發(fā)表于 11-28 11:12
?1141次閱讀
SystemVerilog中的“const”類屬性
SystemVerilog中可以將類屬性聲明為常量,即“只讀”。目的就是希望,別人可以讀但是不能修改它的值。
發(fā)表于 11-29 10:25
?2550次閱讀
SystemVerilog的斷言手冊
SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
發(fā)表于 07-22 14:12
?20次下載
typedef struct的用法
typedef是類型定義的意思。typedef struct 是為了使用這個結(jié)構(gòu)體方便。具體區(qū)別在于:若struct node{ }這樣來定義結(jié)構(gòu)體的話。在定義 node 的結(jié)構(gòu)體變量時,需要這樣寫:struct node n;
發(fā)表于 11-09 17:20
?4794次閱讀
SystemVerilog中$cast的應(yīng)用
SystemVerilog casting意味著將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。在將一個變量賦值給另一個變量時,SystemVerilog要求這兩個變量具有相同的數(shù)據(jù)類型。
SystemVerilog中可以嵌套的數(shù)據(jù)結(jié)構(gòu)
SystemVerilog中除了數(shù)組、隊列和關(guān)聯(lián)數(shù)組等數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)還可以嵌套。
Systemverilog中的union
SystemVerilog union允許單個存儲空間以不同的數(shù)據(jù)類型存在,所以union雖然看起來和struct一樣包含了很多個成員,實際上物理上共享相同的存儲區(qū)域。
SystemVerilog中的Semaphores
SystemVerilog中Semaphore(旗語)是一個多個進程之間同步的機制之一,這里需要同步的原因是這多個進程共享某些資源。
C++中struct和class的區(qū)別?
C++中struct和class的區(qū)別是什么?C++中struct和class的最大區(qū)別在于: ? ? ? ? struct的成員默認是公有
帶你了解SystemVerilog中的關(guān)聯(lián)數(shù)組
在SystemVerilog中,我們知道可以使用動態(tài)數(shù)組實現(xiàn)數(shù)組元素個數(shù)的動態(tài)分配,即隨用隨分
Systemverilog中的Driving Strength講解
在systemverilog中,net用于對電路中連線進行建模,driving strength(驅(qū)動強度)可以讓net變量值的建模更加精確。
typedef struct和直接struct的區(qū)別
在C語言中, typedef 和 struct 是兩種不同的關(guān)鍵字,它們在定義和使用上有著明顯的區(qū)別。 typedef struct 和直接 struct 在 C 語言中用于定義結(jié)構(gòu)體類型,但它們在
SystemVerilog中的struct
評論