From: Sebastien Bourdeauducq Date: Thu, 8 Dec 2011 22:04:34 +0000 (+0100) Subject: corelogic: multimux module X-Git-Tag: 24jan2021_ls180~2099^2~1160 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b2bc5ad4f44519a0da607bf51e4823d88cd1bc39;p=litex.git corelogic: multimux module --- diff --git a/migen/corelogic/multimux.py b/migen/corelogic/multimux.py new file mode 100644 index 00000000..9db49b7b --- /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