| |
LCS-2016-045a History |
| |
6 |
| |
2017-Mar-30 |
| |
Voting |
| |
Jim Lewis, Patrick Lehmann, Lieven Lemiengre |
| |
Interface Construct and Port Mode Configurations Use Case - Complex RTL Signal CPU Interface |
| |
Provide the independent interface mode control for the elements of composite type objects |
| |
LCS-2016-045b LCS-2016-045c |
view (view_name) syntax
[ of subtype]
type handshake is record valid, ready: bit; end record; view ControllerHandshake of handshake is valid : out; ready : in; end view; view TargetHandshake of handshake is valid : in; ready : out; end view;
type T is record a, b, c : bit; end record; view V of T is a, c : in; end view V;
mode_indication optional in a mode_view_element_definition?
The lexically conformance rule makes no sense. We are talking about a single lexical element: an identifier.
Why have modes default expressions?
This LCS does not describe how a mode view works/behaves. It misses what choices are allowed (e.g. array indices, because it's still a composite, what I would forbid ...) and how elements in a mode correlate with composite elements.
Don't insert auxiliary sentences with parentheses. It's still an English text in prose.
-- view V of T is a, c : in; b; end view V;
unresolved_composite_subtype_indication: I think it needs to be an unresolved composite type mark. The text calls it reserved, which is probably an error.
mode can appear. A mode view does always cover all subelements with modes. So there is no need for an implicit in.
#2 The default expression only applies to simple mode indication and thus to mode indication, but not to mode view indication.
#3 The mentioned paragraph describes how to infer the optional part after view myView appended with of myBusType.
There are 2 cases: of myBusType in this scenario:
type SlaveType is record
end record;
view SlaveView of SlaveType is
end view;
type SlaveVector is array(natural range <>) of SlaveType;
type SystemType is record
Slaves : SlaveVector;
end record;
view myView of SystemType is
Slaves : view (SlaveView); -- of SlaveVector
end view;
So the subtype is taken from the corresponding record element for an array mode view indication.
Does it make sense so far?
--