IEEE 200X Fast Track Change Proposal ID: FT-27 Proposer: Stephen Bailey email: sbailey@model.com Status: Proposed Proposed: 01/04 Analyzed: Date Resolved: Date Related issues: Relevant LRM sections: 1.1.2 Entity declarative part 1.1.3 Entity statement part Enhancement/Requirements Summary: -------------------------------------------------------- Eliminate the restriction that entity statement part must contain only passive concurrent procedure calls and passive process statements. (That is, make the need for an architecture optional.) Enhancement/Requirements Detail: -------------------------------------------------------- In many cases, separating a block or module into separate entities and architectures is not needed. There is no intention or need to have multiple implementations of the same entity interface. When such separation is not required it would be significantly more convenient to simply put the implementation (architecture) together with the entity interface specification. If the restriction on passive concurrent statements is eliminated, the language must also allow for non-passive (active?) concurrent statements in both the entity and architecture in the event that a user still desires to separate some of the implementation from the entity. In this case, the active concurrent state- ments would be common to any implementation (architecture) for the entity. Implementation Summary: ---------------------------- Remove the restrictions documented in the 2002 LRM on entity declarative items and entity statement parts. Whatever is legal in an architecture in both cases should also be legal in the entity. Implementation Details: ---------------------------- Section 1.1.2 Entity declarative part Replace the current entity_declarative_item BNF production with: entity_declarative_item ::= { block_declarative_item } Move the block_declarative_item BNF production from section 1.2.1 to section 1.1.2 as this will become the 1st reference to a block_declarative_item. Section 1.1.3 Entity statement part Replace the current entity_statement BNF production with: entity_statement ::= { concurrent_statement } Replace the paragraph "It is an error if any statements ..." With: "All of the statements in the entity statement part are concurrent statements which execute asynchronously with respect to one another. The various kinds of concurrent statements are described in Clause 9." Annex A: The BNF productions for entity_declarative_part and entity_statement need to be modified consistent with the above discussion. Discussion: ---------------------------- There is no good reason to enforce the current restrictions on entity declarative and statement parts. The affect of the restrictions is to enforce a specific coding style. While it is fine for the language to support such a coding style (separation of interface and implementation), it should not dictate coding styles. This change allows both a good coding style of interface/implementation separation while also allowing more efficient coding when there is no perceived benefit of following such a coding style. The restriction does not simplify tool implementations nor make them more efficient. Analysis/LRM Changes ---------------------------- See above. Note: This change is backward compatible. Resolution: ---------------------------- [To be performed by the 200X Fast Track Working Group]