mux¶
Multiplexes the data, i.e. can be used to select which part of the input data to forward to output.
-
mux(ctrl: Uint, *din) → Union:¶ Uses the value received at the
ctrlinput to select from which input interface the data should be forwarded to the output.dinis a tuple of interfaces, and the data recieved onctrlinput is used as an index to select the interface to forward.ctrl = drv(t=Uint[2], seq=[0, 1, 2, 0, 1, 2]) a = drv(t=Uint[4], seq=[10, 11]) b = drv(t=Uint[5], seq=[20, 21]) c = drv(t=Uint[6], seq=[30, 31]) mux(ctrl, a, b, c) \ | check(ref=[(10, 0), (20, 1), (30, 2), (11, 0), (21, 1), (31, 2)])
-
mux(ctrl: Uint, din: Tuple) → Union: Uses the value received at the
ctrlinput to select which part of theTuplereceived at thedininput should be forwarded to the output. The data recieved at thectrlinput is used as an index to select which field of theTupleto forward.ctrl = drv(t=Uint[2], seq=[0, 1, 2]) drv(t=Tuple[Uint[4], Uint[5], Uint[6]], seq=[(10, 20, 30), (11, 21, 31), (12, 22, 32)]) \ | mux(ctrl) \ | check(ref=[(10, 0), (21, 1), (32, 2)])