ISAC Minutes February 17, 1995 Intergraph Corporation Mountain View, CA Minutes taken by John Willis (willis@vnet.ibm.com) Please send any corrections to the reflector... ---------------------------------------------------------- Bill Paulsen Alex Zamfirescu Andy Tsay (Friday only) John Willis Chuck Swart Ernst Christian (Saturday only) Clive Charlwood (Saturday only) ---------------------------------------------------------- Agenda: Review minutes and current action items New issues to be submitted List of migrated IRs Discussion of 1076.1 (Saturday) ---------------------------------------------------------- Review of Minutes: IR1090 will be updated by Jacques. IR1032 Clarify that we don't know what non-locally static checks are. Clarify that portable is another concern which must be recognized. Clarify that flow analysis should not be required. Ada's handling may be a long-term solution. Bill suggested adding the concept of warnings, whose occurence makes addition of a design unit optional. Clive will come up with a matrix of options on this topic. ---------------------------------------------------------- We have presented several IRs to the VASG, however they have not been sent out for a ballot. This is (in some sense) a waste of time. Clive and Paul need to conduct the ballot. ---------------------------------------------------------- Action item followup: Paul will send Alex the ballot resolution document for the repository Alex will exported approved IRs, maybe via Mosaic Paul has the task of integrating approved IRs into a "working LRM"; Clive will confirm. VI may be able to fund. Clive will add a "status list" to the IR database for new IRs Clive will contact Mary L. regarding IEEE / ISAC liason IR1003: Chuck presented, needs balloting. IR1004: John has migrated this to the database IR1010: Victor is to write this up IR1011: John has migrated this to the database IR1012: John has migrated this to the database IR1013: Bill needs to write this IR1015: John has added this to the database IR1016: Clive will write this up IR1017: Paul needs to write this IR1026: Paul will write this up IR1027: John has added this to the database IR1028: Daniel will write up, including a review of IR1097 & IR0135 IR1029: John has added this to the database IR1032: Clive will write up the discussion IR1033: Bill needs to write this up IR1035: Paul will write this IR1043: John has added this to the database IR1047: John has added this to the database IR1067: Migrated by Jacques IR1068: Assigned to Clive IR1069: Assigned to Paul IR1075: Victor owns this one IR1079: Al will write up and insert in database (John will ask Al) IR1080: Paul will write up and insert in database IR1083: Andy will write up IR1084: Daniel will analyze IR1085: Paul will write up and insert in database IR1086: Assigned to Chuck and closed. The IR does not modify the LRM, however the introduction of impure functions may introduce new but related issues. A new IR 1065 should address these issues. Paul will write. (Among the issues are order of association, how many times expressions are evaluated in generic maps of component specifications of "for all" and "for others" IR1090: Jacques will write up IR1091: Jacques will analyze IR1092: Clive will write up IR1095: Clive will insert in database IR1099: Daniel will write up draft LCS Bill will handle query the folks responsible for superseding issues and either insure that the work is done by March 15th or do it. Victor, Paul, Clive, and Al are the parties of concern. New IRs to be written: 1037: (apparently dropped, available for reassignment after Chuck checks mail) 1077: Out ports cannot drive buffer ports (Paul, Chuck will get in database) 1081: Expression elaboration with impure functions (Jacques) 1082: Implicit conversion of a universal real (Jaques) 1085: Staticness of pathname (Jacques) 1086: Use of character literal or operator symbol in alias (Jacques) 1087: Subtype checks when port and signal have different subtypes (Jacques) 1088: Logical to physical library mappering (Jacques) 1095: Physical literals not exact when numeric (Daniel will analyze) No new issues... New IRs to begin work on... IR1023: Specifications Applying to 0 Entities Consensus was that the phrase "one or more" should be deleted and no further verbiage should be added. The intent is that situations with 0 elements be legal (nothing is specified). Clive will update IR; Clive will insure that the IR is presented if needed. IR1054: Short-circuit operators don't when called as functions Concensus was that any reference to a builtin should have the same behavior (wrt short-circuiting) as the builtin operator. Chuck suggested wording "if the function name represents a predefined operator, then the semantics of the function call are the same as the semantics of the predefined operator". Ken suggested wording phrasing this in terms of an equivalence. This equivalence must also defined the association between arguments. John will write the analysis and proposed wording changes. IR1059: What is the allowed use of others in record aggregates? The example of the IR is illegal. How about: constant c: R := (others => (others => '1')); Replacing the word type by subtype is not sufficient since subtype equivalence is not well defined. Why is the IR example illegal? Alex will do the analysis. IR1060: A'left's result type is anomalously defined? The result type of a range and reverse_range s not defined in VHDL (Chuck will confirm this):"not applicable". A'right, a'high, and a'low will be changed to become consistent with a revised definition of a'left. Chuck will write this up. IR1066: Conversion function definition assumes different types A new issue came up: are type conversion functions even needed here? The proposed resolution should not introduce the (undefined) translation term. The situation must be defined in terms of the form of the text syntax. Sense of the group was that type conversion should have no effect; the association should be element by element. The assumption is that the distribution of activity by virtue of including a type conversion is should be a new IR1099, written by Chuck. IR1066 is owned by Alex. IR1036: Integer Subtypes and Operations. The range of the anonymous base type is implementation-defined. Thus this IR identifies a portability problem. The sample code is correct on some implementations and not others by the current LRM. Alex argues that the anonymous base type is not locally static and thus not suitable for the dispatch expression without further qualification. The portability may be addressed by qualifying the dispatch expression, define choices based on attributes of the type or use an others. The LRM "feature" may be fixed by defining the range of the anonymous base type. This should not be a performance concern. Jacques will write this issue up. Analog Review: Why we are here Structure of the Presentation * Basic definitions * New objects * (walk through declaration examples) * Statements of the simultaneous regime * (walk through simple modeling examples) * Mixed-mode simulation * Discontinuous Models * Implementation considerations * Open issues What is Analog? (Ernst) The continuous domain is modeled through differential equations and algebraic equations. There are several abstraction levels including circuit flow and spice-like levels. AHDL deals strictly with lumped parameters; it does not go down to the level of physically distributed parameters. AHDL is intended to provide primitive mechansisms for frequency domain analysis but not embed frequency domain analysis within the language. AHDL represents all derivatives with respect to time. Equations and Quantities The body of analog "processes" is not sequential, imperative. It is more like a set of constraint equations. These processes operate on basic quantities. Terminals Contribution Node Implicit DAEs [Conservation Laws] Quantity and Terminal Objects Nature (3 slides) Declaration of Terminals and Quantities (Ken's slide) See paper for terminal declaration Ken then went in to his example. Clive and John expressed concern that nature resembles types, yet is different. Ken responded that inventing a new notation eliminated a set of ugly constraints on the type system. There was substantial concern about the composition of derived types. We suggested NATURE elec_array IS ARRAY (integer RANGE <>) OF ELECTRICAL; The elements are then referenced as elec_array'across and elec_array'through. This would then be used to create an object. Terminals may not be passed to or returned from a subprogram. Simultaneous Statements Examples for Quantities, Terminals and Nodes The Analog kernel The Real versus the ideal Implicit Analog Signals Execution of the Analog Kernel Consequences: In General Consequences: Postponed Processes Consequences: A/D Conversion Consequences: D/A Conversion Prospective Examination of Signals Jacques pointed out that the absence of a keyword at the beginning of an equation may require parsing the entire statement before a constraint and a signal assignment are distinguished. Analog if conditions should be something of a when form. Discontinuous Models Breaks The Break Statement Some More Examples Implementation Considerations Potential Optimizations Equivalence of Implementation Open Issues Anyone desiring a copy of Ken's slides should contact crc@synopsys.com. The next meeting will be Monday and Tuesday, the 10th and 11th of April at Vantage.