IEEE 200X Fast Track Change Proposal ID: FT-20 Proposer: Jim Lewis email: Jim@SynthWorks.com Status: Analyzed Proposed: 1/04 Analyzed: 1/04 Resolved: Date Enhancement Summary: Permit concatenation on LHS of an expression Related issues: Relevant LRM section: Enhancement Detail: ---------------------------- Allow concatenation on the LHS of an assignment CarryOut & Result <= ('0'&A) + ('0'&B) ; Analysis: ---------------------------- Modifications to 1076-2002 Modify target defintion in clause 8.4 to: target ::= name | aggregate | name {& name} | (name {& name}) Add paragraph in clause 8.4 addressing concatentation on LHS: If the target of the signal assignment statement is in the form of concatenation, each name in the target must a signal. Each name in the target must be a subtype or a one-dimensional array whose element type is the same subtype. The base type of the value component of each transaction produced by a waveform element on the right-hand side must be the same as the base type of the concatenation of signals on the left-hand side. This form of signal assignment assigns slices or elements of the right-hand side values to the drivers associated with the signals named in the concatenation on the left-hand side. Add paragraph in clause 8.5 addressing concatentation on LHS: If the target of the variable assignment statement is in the form of concatenation, each name in the target must a variable. Each name in the target must be a subtype or a one-dimensional array whose element type is the same subtype. The base type of the value component of each transaction produced by a waveform element on the right-hand side must be the same as the base type of the concatenation of variables on the left-hand side. This form of variable assignment assigns slices or elements of the right-hand side values to the variables named in the concatenation on the left-hand side. Resolution: ---------------------------- [To be performed by the 200X Fast Track Working Group]