diff --git a/migen/corelogic/multimux.py b/migen/corelogic/multimux.py new file mode 100644 index 000000000..9db49b7b6 --- /dev/null +++ b/migen/corelogic/multimux.py @@ -0,0 +1,13 @@ +from migen.fhdl import structure as f + +def MultiMux(sel, inputs, output): + n = len(inputs) + i = 0 + comb = [] + for osig in output: + choices = [x[i] for x in inputs] + cases = [(f.Constant(j, sel.bv), [f.Assign(osig, choices[j])]) for j in range(n)] + default = cases.pop()[1] + comb.append(f.Case(sel, cases, default)) + i += 1 + return comb \ No newline at end of file