VHDL Issue Number: 0246 Classification: Language Definition Problem Language Version: VHDL-87 Summary: Definition Of Resolved Signal Is Incomplete Related Issues: IR0095, IR0230, IR0233 Relevant LRM Sections: 4.3.1.2 Key Words and Phrases: None. Current Status: Submitted 1076-1993 Disposition: Superseded (ISAC Issues Outstanding) Disposition Rationale: N/A Superseded By: 1046 ----------------------- Date Submitted: 1991/10/11 Author of Submission: Chuck Swart Author's Affiliation: Mentor Graphics Corporation Author's Post Address: 8005 S.W. Boeckman Road Wilsonville, OR 97070-7777 Author's Phone Number: (503) 685-7000 Author's Fax Number: Author's Net Address: chuck_swart@mentorg.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.9 $ Date Last Revised: $Date: 1995/08/04 01:45:13 $ Description of Problem ---------------------- The rules concerning resolved signals are incomplete and inadequate for some forms of composite signals. To illustrate these problems, consider the following VHDL code: PACKAGE p1 IS FUNCTION wired_or(b:bit_vector) RETURN bit; SUBTYPE resolved_bit IS wired_or bit; TYPE t1 IS ARRAY (1 TO 10) OF resolved_bit; TYPE t2 IS ARRAY(1 TO 10) OF bit; TYPE t2_vec IS ARRAY( natural RANGE <>) of t2; FUNCTION wired_t2(b:t2_vec) RETURN t2; SUBTYPE t2_resolved IS wired_t2 t2; TYPE t3 IS ARRAY (1 TO 10) OF t2_resolved;; TYPE t4 IS RECORD e1: bit; e2: resolved_bit; END RECORD; SIGNAL s1: t1; SIGNAL s3: t3; SIGNAL s4: t4; END p1; Is s1 a resolved signal? Everyone would agree that s1 is resolved in some sense (perhaps at the element level.) However, the LRM states: "If the name of a resolution function appears in the declaration of a signal, or in the declaration of the subtype used to declare the signal, then that resolution function is associated with the declared signal. Such a signal is called a resolved signal." This definition seems to cover only the case in which resolution occurs for the entire composite, and does not cover the case in which resolution occurs at the subelement level. Is s3 a resolved signal? The consensus is that s3 is not itself resolved, but that it consists of subelements which are resolved. Yet the definition of resolved signals does not seem to apply to subelements, but only to the declared signal. There is general agreement that if a process drives s3(1)(1) then it must also drive s3(1)(2) through s3(1)(10), but that it need not drive, for example, s3(2). The applicable LRM paragraph reads: "If a subelement of a resolved signal of composite type has a driver in a given process, then every scalar subelement of that signal must have a driver in the same process, and the collection of all of those drivers taken together constitute one source of the signal." The definition of resolved signal should be such that the above general agreement holds. Finally, is s4 a legal signal? I spoke with several vendors about this. Some had vague recollections about a requirement in the LRM that stated that if one element of a composite signal were resolved, then all elements had to be resolved, but no one was able to find such a reference. Several vendors think that s4 is a legal signal. If s4 is a legal signal, then is it resolved? Again, the general view is that s4 is not resolved, but that it contains resolved elements. IR 0095 deals with related issues in considering null transactions applied to composite signals. It introduces the notion of a basic signal, which seems to be a step in the right direction in resolving this issue. However, that definition uses the concept of resolved signal in its definition, hence, can't be used as written to define a resolved signal. Proposed Resolution ------------------- The concept of resolved signal in the LRM should be revised to include subelements of signals which are resolved, even though the signal itself is not resolved. Rules about drivers and such need to apply to resolved subelements of signals, not just to entire signals. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD