SystemVerilog union允許單個存儲空間以不同的數(shù)據(jù)類型存在,所以union雖然看起來和struct一樣包含了很多個成員,實際上物理上共享相同的存儲區(qū)域。
結(jié)構(gòu)體占用的內(nèi)存空間是其中所有成員的存儲空間之和,而聯(lián)合體所占用的存儲空間是等于其中所有成員中最大的存儲空間。
union { int a; byte b; bit [15:0] c; } data;
在上面的例子中,由于占用最大存儲空間的成員是int a,所以這個聯(lián)合體的存儲空間是32bit,示意圖如下
而對于結(jié)構(gòu)體
struct { int a; byte b; bit [15:0] c; } data;
所占用的存儲空間是所有成員之和。示意圖如下
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112163 -
System
+關(guān)注
關(guān)注
0文章
166瀏覽量
37747 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
130瀏覽量
11095 -
union
+關(guān)注
關(guān)注
0文章
10瀏覽量
4437
原文標題:Systemverilog中的union
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SystemVerilog中的Virtual Methods
SystemVerilog中的“const”類屬性
union 的概念及在嵌入式編程中的應(yīng)用

SystemVerilog中$cast的應(yīng)用
SystemVerilog中可以嵌套的數(shù)據(jù)結(jié)構(gòu)
SystemVerilog中的tagged Unions是什么
SystemVerilog中的Packed Union
SystemVerilog中的Semaphores
Systemverilog中的Driving Strength講解

評論