VHDL Issue Number: 0010 Classification: Language Definition Problem Language Version: VHDL-87 Summary: The disconnection time of a guarded signal is unclear when the signal is associated through a port map. Related Issues: 0063 Relevant LRM Sections: 5.3, 9.5, 12.3.2.3 Key Words and Phrases: Disconnection specification, interface signals, guarded signals, signal association Current Status: ISAC-Approved 1076-1993 Disposition: closed Disposition Rationale: Issue has been addressed Superseded By: N/A ----------------------- Date Submitted: 1988/11/09 Author of Submission: Daniel Barclay Author's Affiliation: CAD Language Systems, Inc. Author's Post Address: 15245 Shady Grove Avenue, Suite 310 Rockville, MD 20850-3344 Author's Phone Number: (919) 361-1913 Author's Fax Number: Author's Net Address: daniel@clsi.com ----------------------- Date Analyzed: 1991/01/11 Author of Analysis: Paul Menchini (mench@clsi.com) Revision Number: $Revision: 1.9 $ Date Last Revised: $Date: 1995/07/26 18:23:17 $ Description of Problem ---------------------- It appears that more than one disconnection specification is applicable to a signal when the signal is associated through a port map. Consider the following example: B1: block function ResFn (V: Bit_Vector) return Bit is ... end ResFn; signal S1: ResFn Bit bus; disconnect S1: Bit after 10 nS; begin B2: block (Ena = '1') port (S2: out ResFn Bit bus); port map (S2 => B1.S1); -- disconnect S2: Bit after 0 nS; -- implicit disconnect. spec. begin S2 <= guarded '1' after 42 nS; end block B2; end block B1; In the guarded signal assignment statement's equivalent process statement, what turn-off time is used? Is the explicitly specified time for B1.S1 (10 nS) used, or is the implicitly specified time for B2.S2 used (0 nS)? (If an explicit disconnection specification for S2 was given, and the time was other than 10 nS, the situation would be even more confusing.) LRM Section 12.3.2.3, item 3 states: "The disconnection time is associated with each affected signal for later use in constructing disconnection statements in the equivalent processes for guarded assignments to the affected signals." In Section 9.5, paragraph 14: "... [the] time expression [of the waveform of the sequential signal assignment forming the disconnection statement] is given by the applicable disconnection specification." Section 5.3, paragraph 8 states: "It is an error if more than one disconnection specification applies to drivers of the same signal." However, "applicable disconnection specification" is not defined. Moreover, nowhere in the LRM is the effect of signal association on disconnection times of the associated signals discussed. Proposed Resolution ------------------- Use as the turn-off time the value supplied by the disconnection specification applicable to the local signal. In the above example, the applicable turn-off time is 0 nS. State this explicitly in Section 5.3. VASG-ISAC Analysis & Rationale ------------------------------ The ISAC believes that the LRM is clear on this point; furthermore, there are no inconsistencies in the LRM's approach. Disconnection specifications corresponding to a given signal are used only to construct the equivalent processes for guarded signal assignment statements that drive that signal; hence, any disconnection specifications applicable to any signals associated with the signal via association lists are not germane. To illustrate, here is the process equivalent to the guarded signal assignment statement in the above example: process begin if GUARD then S2 <= '1' after 42 nS; else S2 <= null after 0 nS; end if; wait on GUARD; end process; Note that S2, and not B1.S1, is driven by the guarded signal assignment statement; therefore, it is S2's disconnection specification that applies. VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- No changes need be made to the LRM or any interpretations with respect to this issue. However, see issue 0063 regarding "applicable disconnection specifications." VASG-ISAC Recommendation for Future Revisions --------------------------------------------- No changes need be made to the LRM or any interpretations with respect to this issue. However, see issue 0063 regarding "applicable disconnection specifications."