mux
Name | Type | Description | Optional |
---|---|---|---|
case0 |
?0 |
case selector for in0 |
yes |
case1 |
?0 |
case selector for in1 |
yes |
… |
|||
ase N-1 |
?0 |
case selector for in N-1 |
yes |
Name | Type | Description | Optional |
---|---|---|---|
selector |
?0 |
selector value |
no |
in0 |
?1 |
input selected when case0 is matched |
yes |
in1 |
?1 |
input selected when case1 is matched |
yes |
… |
|||
in N-1 |
?1 |
input selected when case N-1 is matched |
yes |
Name | Type | Description | Optional |
---|---|---|---|
output |
?1 |
destination for selected input value |
no |
mux
reads a selector
value and a value from each of its data inputs in0
through inN-1
. It compares the selector value to the case labels case0
through caseN-1
. If the selector value is equal to casei
, the value read from ini
is sent to the output
port. Otherwise the value read from the default input, if there is one, is sent to output. Otherwise it is an error. The default input is the input for which the corresponding case label is unused, i.e., has no incoming link. There can be at most one default input.
Please note carefully that the difference between between mux
and choose
is that all of mux’s data input ports are triggered, whereas `choose’s data input ports are untriggered. `mux
reads each of its input ports every time it fires, whereas choose
reads only one data input port, the selected one. mux
reads all and selects one value; choose
selects one data input port to read, and reads only that one. mux
is suitable for use in instances where several values are available simultaneously, one is to be chosen and the others are to be discarded.