From e96ba1e46f8ff5db6dd769edc2b0716001369fdd Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Mon, 27 Apr 2015 15:08:10 +0200 Subject: [PATCH] migen/genlib/misc: add reverse_bytes --- migen/genlib/misc.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/migen/genlib/misc.py b/migen/genlib/misc.py index fc7528a6e..f13b93c3e 100644 --- a/migen/genlib/misc.py +++ b/migen/genlib/misc.py @@ -1,3 +1,5 @@ +import math + from migen.fhdl.std import * from migen.fhdl.structure import _Operator @@ -64,6 +66,14 @@ def chooser(signal, shift, output, n=None, reverse=False): return Case(shift, cases).makedefault() +def reverse_bytes(signal): + n = math.ceil(flen(signal)/8) + r = [] + for i in reversed(range(n)): + r.append(signal[i*8:min((i+1)*8, flen(signal))]) + return Cat(iter(r)) + + def timeline(trigger, events): lastevent = max([e[0] for e in events]) counter = Signal(max=lastevent+1)