VASG Issue Number: 0154 Comment Author: Paul Menchini Comment Number: PM01 Comment Date: 1992/08/12 Larry Groves, in I0154-LG01 (dated 2 June 1992), states that IR 0040 and LCS-0007 both address the issue raised by IR 0154. I disagree with this conclusion. The part of IR 0040 discussed in I0154-LG01 deals with the decoration of a named entity declared within a primary unit from within a corresponding secondary unit. IR 0040 states that this should not be possible, as a logical result of making all specifications declarative-part-based. This decision is reflected in P1076-1992/A v5. I0154-LG01 goes on to state "So it is clear that IR 40 covers the issues raised by IR 154, and I recommend that IR 154 be closed." It is not clear to me that this statement is true. Consider the following (illegal) VHDL: package body P is use Synth.IMPLEMENTATION_DETAILS.all; function F (...) return ... is ... begin ... end function F; attribute IMPLEMENTATION of F: function is "vendor-specific.TTL.74LS1742"; -- this attribute specification is illegal, as attribute -- specifications cannot appear in package bodies ... end package body P; This seems like an eminently reasonable thing to do, a capability that synthesis tools in particular, may wish to exploit. However, this is not possible either in 1076-1987 or P1076-1992/A v5. If this were possible, it would be true that no expressions outside of the package body can access this attribute; however, tools that process the library unit may. This is why I am proposing this change. Note that I am not proposing, either in IR 0154 or here, that attribute specifications appearing in the package body be allowed to adorn named entities in the package interface, the package, the package's interface, or the package's body; attributes are still declarative-part based. Further note that attribute specifications are allowed in architecture declarations; these specifications are allowed to adorn only named entities declared in the architecture declarative part or the architecture name itself. I am merely proposing that a similar capability be extended to the named entities declared in a package body declarative part. As a final note, I0154-LG01 goes on to state "Another issue, not addressed here, is the affect of LCS 7, which appears to reverse the above position, and allows attribute specification (but not declaration) within a package body." I cannot find anything in LCS-0007(2), dated 6 February 1992. However, the history log entry for this date states (in part) "Changed mind on attributing package bodies", so perhaps version 1 contained some proposal in this area. In any case, if this is not addressed in 1076-1992, I would recommend that we not close IR 0154, but keep it open for the ISAC to address.