Model Composer does not make implicit synchronization mechanisms available. Instead, synchronization is the responsibility of the designer, and must be done explicitly.
Valid Ports
tvalid /
tready ports might not be visible based on
the configuration of the IP. Color association denotes a collection of ports for
each interface on the block as shown below. Blocks with interfaces can be
chained, affording a primitive form of flow control. Examples of such blocks
with AXI interfaces include the FFT, FIR, and DDS.Indeterminate Data
Indeterminate values are common in many hardware simulation environments. Often they are called "don't cares" or "Xs." In particular, values in Model Composer simulations can be indeterminate.
A dual port memory block, for example, can produce indeterminate results if both ports of the memory attempt to write the same address simultaneously. What actually happens in hardware depends upon effectively random implementation details that determine which port sees the clock edge first. Allowing values to become indeterminate gives the system designer greater flexibility. Continuing the example, there is nothing wrong with writing to memory in an indeterminate fashion if subsequent processing does not rely on the indeterminate result.
HDL modules introduced through HDL co-simulation are a common source of indeterminate data samples. Model Composer presents indeterminate values to the inputs of an HDL co-simulating module as the standard logic vector 'XXX. . .XX'.
Indeterminate values that drive a Gateway Out become NaNs (Not a Number). In a Simulink scope, NaN values are not plotted. Conversely, NaNs that drive a Gateway In become indeterminate values. Model Composer provides an Indeterminate Probe block that allows for the detection of indeterminate values. This probe cannot translate into hardware.
In Model Composer, any arithmetic signal can be indeterminate, but Boolean signals cannot be. If a simulation reaches a condition that forces a Boolean to become indeterminate, the simulation stops and reports an error. Many AMD blocks have control ports that only allow Boolean signals as inputs. The rule concerning indeterminate Booleans means that such blocks never see an indeterminate on a control port
A UFix_1_0 is a type that is equivalent to Boolean except for the above restriction concerning indeterminate data.