Language Change Specification for
Process(all) Should Not Include Signals in Subprograms
Voting Results: Cast your votes here
Yes:
-
Rob Gaddi - 2017-02-06 - ver 1
-
Martin Thompson - 2017-02-06 - ver 1
No:
-
Patrick Lehmann - 2017-03-07 - ver 1
-
Kevin Jennings - 2017-03-12 - Ver 1. This is a change to 'fix' a non-existent problem
Abstain:
-
Jim Lewis - 2017-03-06 - not convinced this is a necessary change.
Details of Language Change:
Key:
- Existing LRM text is shown in BLACK font
- Additional LRM text is shown in RED and underlined
- Deleted LRM text is shown in
RED with strike-through
Section 11.3
Bottom page 171
It is an errorerroneous if a process statement with the reserved word all as its process sensitivity list is the parent of a subprogram declared in a design unit other than that containing the process statement, and the subprogram reads an explicitly declared signal that is not a formal signal parameter or member of a formal signal parameter of the subprogram or of any of its parents. Similarly, it is an errorerroneous if such a subprogram reads an implicit signal whose explicit ancestor is not a formal signal parameter or member of a formal parameter of the subprogram or of any of its parents.
Comments
I think this is a bad idea. Switching from error state to erroneous state is not a good idea without a strong reason, as it makes the tool weaker and may create portability issues. An elaborator knows the whole design, so it is able to detect such a violation.
--
Tristan Gingold - 2017-02-06
Tristan, the elaborator knows the whole design, but is that the type of analysis that's currently being performed, or would that be an additional ask for implementors? You'd have to flag something like:
package pkg:
function pkg_function:
implicit_references: [signal: pkg_signal, ...]
entity foo:
architecture bar:
process state_machine:
uses: [pkg.pkg_function, ...]
sensitivity_all : true
And handle all that at elaboration time just to throw an error that says you would have liked to catch that conflict at compile time, but you didn't have all the information yet. I know it's technically possible, but, at least in engines you know about, is any of that infrastructure in place yet?
--
Rob Gaddi - 2017-02-08
I think the original proposal is outdated. There is no indication from other vendors that they can't generate this exact error.
Furthermore, some vendors and developers indicate that they solved the problem.
--
Patrick Lehmann - 2017-03-07
Topic revision: r10 - 2017-03-16 - 11:00:42 -
BrentHahoe