[sv-bc] RE: initialization of unpacked union in declaration

From: Bresticker, Shalom <shalom.bresticker@intel.com>
Date: Mon Aug 06 2012 - 01:24:29 PDT

On further thought, it is not at all clear that in SV, one would use an aggregate expression.
Although the unpacked union is an aggregate variable, you are really only assigning the first member, which is not itself an aggregate.

In the case of an unpacked tagged union, for example, you do not use an aggregate expression.
The following example appears in 11.9, on tagged unions:

typedef union tagged {
void Invalid;
int Valid;
} VInt;
VInt vi1, vi2;
vi1 = tagged Valid (23+34); // Create Valid int

Of course, untagged unions are different from tagged unions, but there does not seem to be a basis within SV for requiring the RHS of an initialization expression of an unpacked union to be an aggregate expression.

Shalom

From: Maidment, Matthew R
Sent: Monday, August 06, 2012 10:39
To: Bresticker, Shalom; sv-bc@eda.org
Subject: RE: initialization of unpacked union in declaration

The LRM is quite silent on the matter. That is the problem. We both know that.

I was conjecturing based on the fact that you can do it in C like this

http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Initializing-Union-Members

These features were derived from C and the intention was to make the 2 languages somewhat harmonious to better enable DPI.

Matt

--
Matt Maidment
mmaidmen@ichips.intel.com<mailto:mmaidmen@ichips.intel.com>
From: Bresticker, Shalom
Sent: Monday, August 06, 2012 12:35 AM
To: Maidment, Matthew R; sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: RE: initialization of unpacked union in declaration
Actually, I did not know the answer.
Besides, it is not clear from the LRM that you can do an assignment to an unpacked union (which an initialization is), where the left-hand side is just the union name, not followed by a period and a member name. If it is not allowed in the general assignment case, how would one know that it is legal in the initialization case?
Shalom
From: Maidment, Matthew R
Sent: Monday, August 06, 2012 10:29
To: Bresticker, Shalom; sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: RE: initialization of unpacked union in declaration
I reviewed the LRM based on your question and realized you already knew the answer.
Seems a mantis should be filed.
--
Matt Maidment
mmaidmen@ichips.intel.com<mailto:mmaidmen@ichips.intel.com>
From: Bresticker, Shalom
Sent: Monday, August 06, 2012 12:21 AM
To: Maidment, Matthew R; sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: RE: initialization of unpacked union in declaration
Maybe, but the LRM does not say so. It is silent.
Shalom
From: Maidment, Matthew R
Sent: Monday, August 06, 2012 09:47
To: Bresticker, Shalom; sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: RE: initialization of unpacked union in declaration
I would guess that it would be an aggregate expression of the type of the first member.
module bar();
union {
  bit a;
  string b;
} c = '{1'b1};
endmodule
--
Matt Maidment
mmaidmen@ichips.intel.com<mailto:mmaidmen@ichips.intel.com>
From: owner-sv-bc@eda.org<mailto:owner-sv-bc@eda.org> [mailto:owner-sv-bc@eda.org]<mailto:[mailto:owner-sv-bc@eda.org]> On Behalf Of Bresticker, Shalom
Sent: Sunday, August 05, 2012 11:10 PM
To: sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: [sv-bc] FW: initialization of unpacked union in declaration
Hi,
I never got any response to this.
I know some people are on vacation, but does no one have anything to say?
Thanks,
Shalom
From: owner-sv-bc@eda.org<mailto:owner-sv-bc@eda.org> [mailto:owner-sv-bc@eda.org]<mailto:[mailto:owner-sv-bc@eda.org]> On Behalf Of Bresticker, Shalom
Sent: Thursday, July 26, 2012 12:08
To: sv-bc@eda.org<mailto:sv-bc@eda.org>
Subject: [sv-bc] initialization of unpacked union in declaration
Hi,
The LRM says in 7.3,
"If no initial value is specified in the declaration of a variable of an unpacked union type, then the variable shall be initialized to the default initial value for variables of the type of the first member in declaration order of the union type."
Question: how *does* one specify an initial value of an unpacked union variable in its declaration?
Thanks,
Shalom
Shalom Bresticker
Intel LAD DA, Jerusalem, Israel
+972  2 589 6582 (office)
+972 54 721 1033 (cell)
http://www.linkedin.com/in/shalombresticker
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Aug 6 01:25:56 2012

This archive was generated by hypermail 2.1.8 : Mon Aug 06 2012 - 01:26:11 PDT