From b2bc5ad4f44519a0da607bf51e4823d88cd1bc39 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 8 Dec 2011 23:04:34 +0100 Subject: [PATCH] corelogic: multimux module --- migen/corelogic/multimux.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 migen/corelogic/multimux.py 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