This annex lists those VHDL constructs whose use may result in nonportable descriptions. A description is considered portable if it
a) Compiles, elaborates, initializes, and simulates to termination of the simulation cycle on all conformant implementations, and
b) The time-variant state of all signals and variables in the description are the same at all times during the simulation
under the condition that the same stimuli are applied at the same times to the description. The stimuli applied to a model include the values supplied to generics and ports at the root of the design hierarchy of the model, if any.
Note that the content of files generated by a description are not part of the state of the description, but that the content of files consumed by a description are part of the state of the description.
The use of the following constructs may lead to nonportable VHDL descriptions:
-- Resolution functions that do not treat all inputs symmetrically.
-- The comparison of floating point values.
-- Events on floating-point-valued signals.
-- The use of explicit type conversion to convert floating point values to integer values.
-- Any value that does not fall within the minimum guaranteed range for the type.
-- The use of architectures and subprogram bodies implemented via the foreign language interface (the 'FOREIGN attribute).
-- Processes that communicate via file I/O, including TEXTIO.
-- Impure functions.
-- Linkage ports.
-- Ports and generics in the root of a design hierarchy.
-- Use of a time resolution greater than fs.
-- Shared variables.
-- Procedure calls passing a single object of an array or record type to multiple formals where at least one of the formals is of mode out or inout.
-- Models that depend on a particular format of T'Image.
-- Declarations of integer or physical types that have a secondary unit whose position number is outside of the range -(2**31-1) to 2**31-1.
-- The predefined attributes 'INSTANCE_NAME or 'PATH_NAME, if the behavior of the model is dependent on the values returned by the attributes.