VHDL Issue Number: 0167 Classification: Language Deficiencies and Modeling Problems Language Version: VHDL-87 Summary: Combinatorial processes can be hard to write. Related Issues: None. Relevant LRM Sections: 9.2, 8.1 Key Words and Phrases: Processes, sensitivity lists, signals Current Status: Submitted 1076-1993 Disposition: Bugs Fixed, Enhancements Outstanding (No ISAC Issues) Disposition Rationale: Superseded By: N/A ----------------------- Date Submitted: 1991/03/14 Author of Submission: Paul Menchini Author's Affiliation: CAD Language Systems, Inc. Author's Post Address: P.O. Box 13036 Research Triangle Park, NC 27709-3036 Author's Phone Number: (919) 361-1913 Author's Fax Number: Author's Net Address: mench@clsi.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.9 $ Date Last Revised: $Date: 1995/05/13 19:34:42 $ Description of Problem ---------------------- When developing 1076-1987, the sensitivity list of processes was retained even as the wait statement was introduced. The reason for keeping the sensitivity list was to ease the creation of "simple processes"; those that compute a simple, usually combinatorial function of its inputs. One unaddressed difficulty presents itself when the process reads many different signals. All signals read by the process must be placed in the sensitivity list, otherwise the process will not exhibit the desired behavior. Proposed Resolution ------------------- Allow the sensitivity list of a process to consist entirely of the reserved word ALL. Such a sensitivity list is equivalent to a list of the longest static prefixes of all signals read by the process. A possible syntax is: sensitivity_list ::= *signal*_name { , *signal*_name } | ALL (This production is from Section 8.1.) Changing just this production then allows the sensitivity list of a wait statement to also consist of the reserved word ALL. This may or not be a good idea. If it is decided not to allow this, then either a semantic restriction can be added to Section 8.1, or the productions in Section 9.2 can be modified as follows: process_statement ::= [ *process*_label : ] PROCESS [ ( process_sensitivity_list ) ] process_declarative_part BEGIN process_statement_part END PROCESS [ *process*_label ] ; process_sensitivity_list ::= sensitivity_list | ALL VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD