From: Florent Kermarrec Date: Mon, 27 Apr 2015 13:08:10 +0000 (+0200) Subject: migen/genlib/misc: add reverse_bytes X-Git-Tag: 24jan2021_ls180~2099^2~75 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e96ba1e46f8ff5db6dd769edc2b0716001369fdd;p=litex.git migen/genlib/misc: add reverse_bytes --- diff --git a/migen/genlib/misc.py b/migen/genlib/misc.py index fc7528a6..f13b93c3 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)