[ ] Multiplexer :: { inputs :: [I v], sel :: [I v], out :: O v }
[ ] Multiplexer PU for it. Here we have a lot of options on internal design, depends from the protocol (we need to start with simplest one). Few examples:
Load selector and save it -> Load inputs and save only selected input (can be an extended FRAM) -> output saved value.
Load inputs and save all of them, Load selector and save it, output value by selector. Loading sequence not restricted.
Combination of them, depends from scheduling.
Multiple functions at one time.
How many options we provide? Simplest -- two. But what about switch? Maybe, it should be a part of comporator PU?
We need to design:
Multiplexer
function:Multiplexer :: { inputs :: [I v], sel :: [I v], out :: O v }
<
,<=
,==
,>=
,>
.