SystemVerilog中的tagged Unions是什么

在systemverilog中,union可以被声明为tagged unions。
union tagged { int a; byte b; bit [15:0] c; } data;  
tagged union包含一个隐式成员,该成员存储tag,也就是标记,它表示这个union最终存储的到底是哪一个成员。
tagged union 是一种类型检查(type-checked)union.
这意味着你不能写入union中的一个成员,而读取另外一个成员。因为在这期间,tagged union会进行读写类型检查
data = tagged a 32'hffff_ffff;  
如果从不同的union成员中读取值,仿真器则会报错:
module tagged_union_example;logic [31:0] x;typedef union tagged {int a;byte b;bit [15:0] c;} data;data d1;initial begind1 = tagged a 32'hffff_ffff; //write to 'a'//read from 'b'. since 'a' was written last, cannot access//'b'. - errorx = d1.b;$display(x = %h,x);endendmodule  
在上面的例子中,我们创建了一个tagged union data ,并声明 d1 为 data 类型。然后我们写入成员a:
d1 = tagged a 32'hffff_ffff;  
然后我们读取值“d1.b”。因为读写的成员类型不同,所以会打印错误信息:
error-[tu-invmemusg] invalid member usage of a tagged union.testbench.sv, 15member of a tagged union referred is not valid since a different member isin use. the expected tag is 'a', but tag 'b' is used.please check which member of the tagged union is in use. v c s s i m u l a t i o n r e p o r t


5G应用场景广泛 智慧码头指日可待
输电线路异频参数测试仪零序电容测试接线图
制造业的最新趋势是智能包装
采用LCD模块为显尚光电的DST2001PH TFTLCD
荣耀新品性能全面进阶,荣耀商城周年庆典福利享不停
SystemVerilog中的tagged Unions是什么
多频带OFDM为何比直接序列(DS)技术更适合高速UWB通讯
如果你只能学习一门语言,除了Python,别无选择
安歌科技Enotek如何实现全链路智能物流解决方案?
基于USB 2.0集成芯片的H.264解码器芯片设计
同步与异步电路信号交互的问题
玉米赤霉烯酮检测仪 飞测生物FD600
生物识别技术大跨步发展会给我们带来怎样的变化
伊戈尔发布《2018年半年度业绩快报》净利下滑53.75%
预定火爆!iPhone 12mini和iPhone 12 Pro Max正式发售
pcb塞孔工艺流程
苹果核心供应商大族激光发布2020年业绩预告
英创信息技术CE6.0内置数据库CEDB的异常检测与修复简介
2030年共享汽车将去掉驾驶舱实现完全的自动驾驶
新型非接触式键盘的传感器选择分析