SystemVerilog“struct”表示相同或不同數(shù)據(jù)類型的集合。
struct可以作為一個(gè)整體使用,也可以單獨(dú)通過名稱引用組成這個(gè)struct的元素。由于這些元素的數(shù)據(jù)類型可能不相同,所以不能夠使用數(shù)組。
如果需要在多個(gè)module或者類中使用相同的struct,則應(yīng)該將struct定義(`typedef)放到SystemVerilog package中,然后將其導(dǎo)入到每個(gè)module或者class。
默認(rèn)情況下,struct都是unpacked的,我們也可以顯式地加上關(guān)鍵字。下面是一個(gè)簡單的示例,展示了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;
當(dāng)然,我們也可以定義一個(gè)數(shù)組,其中數(shù)組中的每一個(gè)數(shù)據(jù)項(xiàng)都是一個(gè)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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
Verilog
+關(guān)注
關(guān)注
30文章
1373瀏覽量
114325 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
38549 -
Struct
+關(guān)注
關(guān)注
0文章
31瀏覽量
11242
原文標(biāo)題:SystemVerilog中的struct
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
SystemVerilog中的Virtual Methods
SystemVerilog中多態(tài)能夠工作的前提是父類中的方法被聲明為virtual的。
發(fā)表于 11-28 11:12
?1101次閱讀
SystemVerilog中的“const”類屬性
SystemVerilog中可以將類屬性聲明為常量,即“只讀”。目的就是希望,別人可以讀但是不能修改它的值。
發(fā)表于 11-29 10:25
?2521次閱讀
SystemVerilog的斷言手冊(cè)
SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
發(fā)表于 07-22 14:12
?20次下載
typedef struct的用法
typedef是類型定義的意思。typedef struct 是為了使用這個(gè)結(jié)構(gòu)體方便。具體區(qū)別在于:若struct node{ }這樣來定義結(jié)構(gòu)體的話。在定義 node 的結(jié)構(gòu)體變量時(shí),需要這樣寫:struct node n;
發(fā)表于 11-09 17:20
?4746次閱讀
SystemVerilog中$cast的應(yīng)用
SystemVerilog casting意味著將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。在將一個(gè)變量賦值給另一個(gè)變量時(shí),SystemVerilog要求這兩個(gè)變量具有相同的數(shù)據(jù)類型。
SystemVerilog中的操作方法
SystemVerilog提供了幾個(gè)內(nèi)置方法來支持?jǐn)?shù)組搜索、排序等功能。
SystemVerilog中可以嵌套的數(shù)據(jù)結(jié)構(gòu)
SystemVerilog中除了數(shù)組、隊(duì)列和關(guān)聯(lián)數(shù)組等數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)還可以嵌套。
Systemverilog中的union
SystemVerilog union允許單個(gè)存儲(chǔ)空間以不同的數(shù)據(jù)類型存在,所以u(píng)nion雖然看起來和struct一樣包含了很多個(gè)成員,實(shí)際上物理上共享相同的存儲(chǔ)區(qū)域。
SystemVerilog中的Shallow Copy
SystemVerilog中的句柄賦值和對(duì)象復(fù)制的概念是有區(qū)別的。
SystemVerilog中的Semaphores
SystemVerilog中Semaphore(旗語)是一個(gè)多個(gè)進(jìn)程之間同步的機(jī)制之一,這里需要同步的原因是這多個(gè)進(jìn)程共享某些資源。
C++中struct和class的區(qū)別?
C++中struct和class的區(qū)別是什么?C++中struct和class的最大區(qū)別在于: ? ? ? ? struct的成員默認(rèn)是公有
帶你了解SystemVerilog中的關(guān)聯(lián)數(shù)組
在SystemVerilog中,我們知道可以使用動(dòng)態(tài)數(shù)組實(shí)現(xiàn)數(shù)組元素個(gè)數(shù)的動(dòng)態(tài)分配,即隨用隨分
Systemverilog中的Driving Strength講解
在systemverilog中,net用于對(duì)電路中連線進(jìn)行建模,driving strength(驅(qū)動(dòng)強(qiáng)度)可以讓net變量值的建模更加精確。
SystemVerilog中的struct
評(píng)論