Home Articles

systemverilog中的unpacked union

Asked
Viewed 677 times
0

typedef union {logic [1:0] c3; bit [3:0] a3;字节b3; } pack3; pack3 p3;

根据LRM,默认初始化是根据union的第一个成员,即上例中的逻辑,因此,c3分配给X并且rest分配给0,但是当我在ModelSim中编译并检入对象窗口时,则有不同的结果对于a3和b3 . 当我指定p3.a3 = 4'b0010时; a3和b3的值发生了变化,但没有c3 . 请解释一下?我知道每个变量只有可用内存,因此任何值的更新都会反映所有内容 .

1 Answer

  • 1

    如果您写一个解压缩工会的一个成员并试图读取另一个成员(除了1800-2012 LRM中7.3部分末尾提到的一个特殊规定外),则无法保证 . 如果要在重叠成员的布局中保证,则需要使用压缩联合 .

Related